]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EVE/Reve/RGTopFrame.h
Try to fix Delete problem in trigger code
[u/mrichter/AliRoot.git] / EVE / Reve / RGTopFrame.h
CommitLineData
5a5a1232 1// $Header$
2
3#ifndef REVE_RGTopFrame_H
4#define REVE_RGTopFrame_H
5
6#include <TGFrame.h>
7#include <TGeoManager.h>
8#include <TGStatusBar.h>
9
10#include <map>
11
3adb4b94 12class TMacro;
13class TFolder;
5a5a1232 14class TCanvas;
15class TGStatusBar;
16class TGListTree;
17class TGListTreeItem;
18
19namespace Reve {
20
21class VSDSelector;
22class RGBrowser;
23class RGEditor;
1a4ab447 24
5a5a1232 25class RenderElement;
1a4ab447 26class RenderElementList;
27
28class EventBase;
29
5a5a1232 30
31class RGTopFrame : public TGMainFrame
32{
33public:
34 enum LookType_e { LT_Classic, LT_Editor, LT_GLViewer };
35
36private:
37 void Init();
38 TCanvas *fCC;
39 TCanvas *fHistoCanvas;
40 VSDSelector *fSelector;
41 RGBrowser *fBrowser;
42 TGStatusBar *fStatusBar;
43 const char *fVSDFile;
44
3adb4b94 45 TFolder *fMacroFolder;
46
5a5a1232 47 RGEditor *fEditor;
48
1a4ab447 49 EventBase *fCurrentEvent;
50 RenderElementList *fGlobalStore;
5a5a1232 51
1a4ab447 52 Int_t fRedrawDisabled;
5a5a1232 53 Bool_t fTimerActive;
54 TTimer fRedrawTimer;
55
56protected:
57 LookType_e fLook;
58
59 std::map<TString, TGeoManager*> fGeometries;
60
61public:
62 RGTopFrame(const TGWindow *p, UInt_t w, UInt_t h, LookType_e look=LT_Classic);
63
64 TCanvas* GetCC() { return fCC; }
65 VSDSelector* GetSelector() { return fSelector; }
66 RGBrowser* GetBrowser() { return fBrowser; }
67 TGStatusBar* GetStatusBar() { return fStatusBar; }
68
1a4ab447 69 TGListTree* GetListTree() const;
70 EventBase* GetCurrentEvent() const { return fCurrentEvent; }
71 RenderElementList* GetGlobalStore() const { return fGlobalStore; }
5a5a1232 72
3adb4b94 73 TFolder* GetMacroFolder() const { return fMacroFolder; }
74 TMacro* GetMacro(const Text_t* name) const;
75
5a5a1232 76 RGEditor* GetEditor() const { return fEditor; }
77 void EditRenderElement(RenderElement* rnr_element);
78
1a4ab447 79 void DisableRedraw() { ++fRedrawDisabled; }
80 void EnableRedraw() { --fRedrawDisabled; if(fRedrawDisabled <= 0) Redraw3D(); }
5a5a1232 81
1a4ab447 82 void Redraw3D() { if(fRedrawDisabled <= 0 && !fTimerActive) RegisterRedraw3D(); }
5a5a1232 83 void RegisterRedraw3D();
84 void DoRedraw3D();
85
86 static int SpawnGuiAndRun(int argc, char **argv);
87
88 // These are more like ReveManager stuff.
1a4ab447 89 TGListTreeItem* AddEvent(EventBase* event); // Could have Reve::Event ...
5a5a1232 90 TGListTreeItem* AddRenderElement(RenderElement* rnr_element);
1a4ab447 91 TGListTreeItem* AddRenderElement(RenderElement* parent, RenderElement* rnr_element);
5a5a1232 92 TGListTreeItem* AddGlobalRenderElement(RenderElement* rnr_element);
1a4ab447 93 TGListTreeItem* AddGlobalRenderElement(RenderElement* parent, RenderElement* rnr_element);
94
95 void RemoveRenderElement(RenderElement* parent, RenderElement* rnr_element);
5a5a1232 96
97 void DrawRenderElement(RenderElement* rnr_element, TVirtualPad* pad=0);
5a34ca2d 98 void UndrawRenderElement(RenderElement* rnr_element, TVirtualPad* pad=0);
5a5a1232 99
100 void RenderElementChecked(TObject* obj, Bool_t state);
101
1a4ab447 102 void NotifyBrowser(TGListTreeItem* parent_lti=0);
103 void NotifyBrowser(RenderElement* parent);
5a5a1232 104
105 // Hmmph ... geometry management?
106 TGeoManager* GetGeometry(const TString& filename);
107
108 ClassDef(RGTopFrame, 0);
109};
110
111} // namespace Reve
112
113extern Reve::RGTopFrame* gReve;
114
115#endif