Checking Storage Manager state added to ED. Now GUI reacts depending on status of SM.
[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
78   void DoSetEvent();
79
80   void DoRefresh();
81   void DoSetAutoLoad();
82   void DoSetAutoLoadTime();
83   void DoSetTrigSel();
84
85   void Update();
86     
87     void StorageManagerChangedState(int state);
88
89 protected:
90   AliEveEventManager   *fM;            // Model object.
91
92   TGTextButton         *fFirstEvent;   // Go to first event
93   TGTextButton         *fPrevEvent;    // Go to prev event
94   TGTextButton         *fNextEvent;    // Go to next event
95   TGTextButton         *fLastEvent;    // Go to last event
96   TGTextButton         *fRefresh;      // Refresh event-file state
97   TGTextButton         *fMarkEvent;    // Mark current event
98
99   TGNumberEntry        *fEventId;      // Display/edit current event id
100   TGLabel              *fInfoLabel;    // Display last available event id
101
102   TGCheckButton        *fAutoLoad;     // Check-box for automatic loading of events
103   TEveGValuator        *fAutoLoadTime; // Time for automatic loading of events
104
105   TGComboBox           *fTrigSel;      // Trigger selection combo box
106   TGLabel              *fStorageStatus; // Display status of Storage Manager
107
108   TGTextView           *fEventInfo;    // Text box with event info
109
110   TGTextButton* MkTxtButton(TGCompositeFrame* p, const char* txt, Int_t width=0,
111                             Int_t lo=0, Int_t ro=0, Int_t to=0, Int_t bo=0);
112   TGLabel* MkLabel(TGCompositeFrame* p, const char* txt, Int_t width,
113                    Int_t lo=0, Int_t ro=0, Int_t to=2, Int_t bo=0);
114
115 private:
116   AliEveEventManagerWindow(const AliEveEventManagerWindow&);            // Not implemented
117   AliEveEventManagerWindow& operator=(const AliEveEventManagerWindow&); // Not implemented
118
119   ClassDef(AliEveEventManagerWindow, 0); // GUI window for AliEveEventManager.
120 };
121
122 #endif