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