Fixing bugs in Event Display
[u/mrichter/AliRoot.git] / EVE / EveBase / AliEveEventManagerEditor.h
1 // @(#)root/eve:$Id$
2 // Author: Matevz Tadel 2007
3
4 /**************************************************************************
5  * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
6  * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
7  * full copyright notice.                                                 *
8  **************************************************************************/
9
10 #ifndef AliEveEventManagerEditor_H
11 #define AliEveEventManagerEditor_H
12
13 #include "TGedFrame.h"
14 #include "TGComboBox.h"
15 #include <TObjString.h>
16
17 class AliEveEventManager;
18 class TEveGValuator;
19 class TGButton;
20 class TGCheckButton;
21 class TGTextButton;
22 class TGTextView;
23 class TGNumberEntry;
24 class TGLabel;
25
26 //==============================================================================
27 // AliEveEventManagerEditor
28 //==============================================================================
29
30 //______________________________________________________________________________
31 // Short description of AliEveEventManagerEditor
32 //
33
34 class AliEveEventManagerEditor : public TGedFrame
35 {
36 public:
37    AliEveEventManagerEditor(const TGWindow* p=0, Int_t width=170, Int_t height=30,
38          UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground());
39    virtual ~AliEveEventManagerEditor() {}
40
41    virtual void SetModel(TObject* obj);
42
43    void DumpEventInfo();
44
45 protected:
46    AliEveEventManager  *fM;             // Model object.
47    TGTextButton        *fDumpEventInfo; // Button that dumps event-info into a file.
48    TGTextView          *fEventInfo;     // Text box with event info.
49
50 private:
51    AliEveEventManagerEditor(const AliEveEventManagerEditor&);            // Not implemented
52    AliEveEventManagerEditor& operator=(const AliEveEventManagerEditor&); // Not implemented
53
54    ClassDef(AliEveEventManagerEditor, 0); // GUI editor for AliEveEventManager.
55 };
56
57
58 //==============================================================================
59 // AliEveEventManagerWindow
60 //==============================================================================
61
62 //______________________________________________________________________________
63 // Short description of AliEveEventManagerWindow
64 //
65
66 class AliEveEventManagerWindow : public TGMainFrame
67 {
68 public:
69   AliEveEventManagerWindow(AliEveEventManager* mgr);
70   virtual ~AliEveEventManagerWindow();
71
72   void DoFirstEvent();
73   void DoPrevEvent();
74   void DoNextEvent();
75   void DoLastEvent();
76   void DoMarkEvent();
77     void DoRestartReco();
78     void DoRestartManager();
79
80   void DoSetEvent();
81
82   void DoRefresh();
83   void DoSetAutoLoad();
84   void DoSetAutoLoadTime();
85   void DoSetTrigSel();
86
87   void Update(int=1);    
88   void StorageManagerChangedState(int state);
89
90 protected:
91   AliEveEventManager   *fM;            // Model object.
92     
93     TGTextButton         *fFirstEvent;   // Go to first event
94     TGTextButton         *fPrevEvent;    // Go to prev event
95     TGTextButton         *fNextEvent;    // Go to next event
96     TGTextButton         *fLastEvent;    // Go to last event
97     TGTextButton         *fRefresh;      // Refresh event-file state
98     TGTextButton         *fMarkEvent;    // Mark current event
99     TGTextButton         *fRestartReco;    // Restart reconstruction server
100     TGTextButton         *fRestartManager; // Restart storage manager
101
102   TGNumberEntry        *fEventId;      // Display/edit current event id
103   TGLabel              *fInfoLabel;    // Display last available event id
104
105   TGCheckButton        *fAutoLoad;     // Check-box for automatic loading of events
106   TEveGValuator        *fAutoLoadTime; // Time for automatic loading of events
107
108   TGComboBox           *fTrigSel;      // Trigger selection combo box
109   TGLabel              *fStorageStatus; // Display status of Storage Manager
110   TGLabel              *fEventServerStatus; // Display status of Event Server
111
112   TGTextView           *fEventInfo;    // Text box with event info
113
114   TGTextButton* MkTxtButton(TGCompositeFrame* p, const char* txt, Int_t width=0,
115                             Int_t lo=0, Int_t ro=0, Int_t to=0, Int_t bo=0);
116   TGLabel* MkLabel(TGCompositeFrame* p, const char* txt, Int_t width,
117                    Int_t lo=0, Int_t ro=0, Int_t to=2, Int_t bo=0);
118
119 private:
120   AliEveEventManagerWindow(const AliEveEventManagerWindow&);            // Not implemented
121   AliEveEventManagerWindow& operator=(const AliEveEventManagerWindow&); // Not implemented
122
123   ClassDef(AliEveEventManagerWindow, 0); // GUI window for AliEveEventManager.
124 };
125
126 #endif