3 #ifndef REVE_ReveManager_H
4 #define REVE_ReveManager_H
7 #include <TGeoManager.h>
10 #include <TVirtualPad.h>
37 class Viewer; class ViewerList;
38 class Scene; class SceneList;
45 ReveManager(const ReveManager&); // Not implemented
46 ReveManager& operator=(const ReveManager&); // Not implemented
52 RedrawDisabler(const RedrawDisabler&); // Not implemented
53 RedrawDisabler& operator=(const RedrawDisabler&); // Not implemented
57 RedrawDisabler(ReveManager* f) : fFrame(f)
58 { if (fFrame) fFrame->DisableRedraw(); }
60 { if (fFrame) fFrame->EnableRedraw(); }
66 RGLTEFrame *fLTEFrame;
68 TGStatusBar *fStatusBar;
70 TFolder *fMacroFolder;
75 Viewer *fViewer; // First / default gl-viewer.
78 EventBase *fCurrentEvent;
80 Int_t fRedrawDisabled;
84 Bool_t fKeepEmptyCont;
89 std::map<TString, TGeoManager*> fGeometries;
92 ReveManager(UInt_t w, UInt_t h);
93 virtual ~ReveManager();
95 RGBrowser* GetBrowser() const { return fBrowser; }
96 RGLTEFrame* GetLTEFrame() const { return fLTEFrame; }
97 RGEditor* GetEditor() const { return fEditor; }
98 TGStatusBar* GetStatusBar() const { return fStatusBar; }
100 SceneList* GetScenes() const { return fScenes; }
101 ViewerList* GetViewers() const { return fViewers; }
103 Viewer* GetDefViewer() const { return fViewer; }
104 Scene* GetGlobalScene() const { return fGlobalScene; }
105 Scene* GetEventScene() const { return fEventScene; }
106 EventBase* GetCurrentEvent() const { return fCurrentEvent; }
108 TCanvas* AddCanvasTab(const char* name);
109 TGWindow* GetMainWindow() const;
110 TGLViewer* GetGLViewer() const;
111 Viewer* SpawnNewViewer(const Text_t* name, const Text_t* title="", Bool_t embed=kTRUE);
112 Scene* SpawnNewScene(const Text_t* name, const Text_t* title="");
114 TFolder* GetMacroFolder() const { return fMacroFolder; }
115 TMacro* GetMacro(const Text_t* name) const;
117 void EditRenderElement(RenderElement* rnr_element);
119 void DisableRedraw() { ++fRedrawDisabled; }
120 void EnableRedraw() { --fRedrawDisabled; if(fRedrawDisabled <= 0) Redraw3D(); }
122 void Redraw3D(Bool_t resetCameras=kFALSE, Bool_t dropLogicals=kFALSE)
124 if(fRedrawDisabled <= 0 && !fTimerActive) RegisterRedraw3D();
125 if(resetCameras) fResetCameras = kTRUE;
126 if(dropLogicals) fDropLogicals = kTRUE;
128 void RegisterRedraw3D();
130 void FullRedraw3D(Bool_t resetCameras=kFALSE, Bool_t dropLogicals=kFALSE);
132 Bool_t GetKeepEmptyCont() const { return fKeepEmptyCont; }
133 void SetKeepEmptyCont(Bool_t k) { fKeepEmptyCont = k; }
136 void RenderElementChanged(RenderElement* rnr_element);
137 void ScenesChanged(std::list<Reve::RenderElement*>& scenes);
139 static int SpawnGuiAndRun(int argc, char **argv);
140 static void SpawnGui();
142 // These are more like ReveManager stuff.
143 TGListTree* GetListTree() const;
144 TGListTreeItem* AddToListTree(RenderElement* re, Bool_t open, TGListTree* lt=0);
145 void RemoveFromListTree(RenderElement* re, TGListTree* lt, TGListTreeItem* lti);
147 TGListTreeItem* AddEvent(EventBase* event);
148 TGListTreeItem* AddRenderElement(RenderElement* rnr_element,
149 RenderElement* parent=0);
150 TGListTreeItem* AddGlobalRenderElement(RenderElement* rnr_element,
151 RenderElement* parent=0);
153 void RemoveRenderElement(RenderElement* rnr_element, RenderElement* parent);
154 void PreDeleteRenderElement(RenderElement* rnr_element);
156 void RenderElementSelect(RenderElement* rnr_element);
157 Bool_t RenderElementPaste(RenderElement* rnr_element);
158 void RenderElementChecked(RenderElement* rnrEl, Bool_t state);
160 void NotifyBrowser(TGListTreeItem* parent_lti=0);
161 void NotifyBrowser(RenderElement* parent);
163 // Hmmph ... geometry management?
164 TGeoManager* GetGeometry(const TString& filename);
166 void SetStatusLine(const char* text);
167 void ThrowException(const char* text="foo");
169 ClassDef(ReveManager, 0); // Reve application manager.
174 extern Reve::ReveManager* gReve;