]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EVE/Reve/RGTopFrame.h
Merge from EVE-dev.
[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;
426530cc 53 Bool_t fResetCameras;
5a5a1232 54 Bool_t fTimerActive;
55 TTimer fRedrawTimer;
56
57protected:
58 LookType_e fLook;
59
60 std::map<TString, TGeoManager*> fGeometries;
61
62public:
63 RGTopFrame(const TGWindow *p, UInt_t w, UInt_t h, LookType_e look=LT_Classic);
64
65 TCanvas* GetCC() { return fCC; }
66 VSDSelector* GetSelector() { return fSelector; }
67 RGBrowser* GetBrowser() { return fBrowser; }
68 TGStatusBar* GetStatusBar() { return fStatusBar; }
69
1a4ab447 70 TGListTree* GetListTree() const;
71 EventBase* GetCurrentEvent() const { return fCurrentEvent; }
72 RenderElementList* GetGlobalStore() const { return fGlobalStore; }
5a5a1232 73
3adb4b94 74 TFolder* GetMacroFolder() const { return fMacroFolder; }
75 TMacro* GetMacro(const Text_t* name) const;
76
5a5a1232 77 RGEditor* GetEditor() const { return fEditor; }
78 void EditRenderElement(RenderElement* rnr_element);
79
1a4ab447 80 void DisableRedraw() { ++fRedrawDisabled; }
81 void EnableRedraw() { --fRedrawDisabled; if(fRedrawDisabled <= 0) Redraw3D(); }
5a5a1232 82
426530cc 83 void Redraw3D(Bool_t resetCameras=kFALSE) {
84 if(fRedrawDisabled <= 0 && !fTimerActive) RegisterRedraw3D();
85 if(resetCameras) fResetCameras = kTRUE;
86 }
5a5a1232 87 void RegisterRedraw3D();
88 void DoRedraw3D();
89
90 static int SpawnGuiAndRun(int argc, char **argv);
91
92 // These are more like ReveManager stuff.
1a4ab447 93 TGListTreeItem* AddEvent(EventBase* event); // Could have Reve::Event ...
5a5a1232 94 TGListTreeItem* AddRenderElement(RenderElement* rnr_element);
1a4ab447 95 TGListTreeItem* AddRenderElement(RenderElement* parent, RenderElement* rnr_element);
5a5a1232 96 TGListTreeItem* AddGlobalRenderElement(RenderElement* rnr_element);
1a4ab447 97 TGListTreeItem* AddGlobalRenderElement(RenderElement* parent, RenderElement* rnr_element);
98
99 void RemoveRenderElement(RenderElement* parent, RenderElement* rnr_element);
5a5a1232 100
101 void DrawRenderElement(RenderElement* rnr_element, TVirtualPad* pad=0);
5a34ca2d 102 void UndrawRenderElement(RenderElement* rnr_element, TVirtualPad* pad=0);
5a5a1232 103
104 void RenderElementChecked(TObject* obj, Bool_t state);
105
1a4ab447 106 void NotifyBrowser(TGListTreeItem* parent_lti=0);
107 void NotifyBrowser(RenderElement* parent);
5a5a1232 108
109 // Hmmph ... geometry management?
110 TGeoManager* GetGeometry(const TString& filename);
111
112 ClassDef(RGTopFrame, 0);
113};
114
115} // namespace Reve
116
117extern Reve::RGTopFrame* gReve;
118
119#endif