3 #ifndef REVE_RGTopFrame_H
4 #define REVE_RGTopFrame_H
8 #include <TGStatusBar.h>
9 #include <TGeoManager.h>
12 #include <TVirtualPad.h>
38 class RGTopFrame : public TGMainFrame
40 RGTopFrame(const RGTopFrame&); // Not implemented
41 RGTopFrame& operator=(const RGTopFrame&); // Not implemented
44 enum LookType_e { LT_Classic, LT_Editor, LT_GLViewer };
49 RedrawDisabler(const RedrawDisabler&); // Not implemented
50 RedrawDisabler& operator=(const RedrawDisabler&); // Not implemented
54 RedrawDisabler(RGTopFrame* f) : fFrame(f)
55 { if (fFrame) fFrame->DisableRedraw(); }
57 { if (fFrame) fFrame->EnableRedraw(); }
61 TGCompositeFrame *fMasterFrame;
65 VSDSelector *fSelector;
67 TGStatusBar *fStatusBar;
70 TFolder *fMacroFolder;
74 EventBase *fCurrentEvent;
75 PadPrimitive *fGlobalStore;
76 Bool_t fKeepEmptyCont;
78 Int_t fRedrawDisabled;
87 std::map<TString, TGeoManager*> fGeometries;
90 RGTopFrame(const TGWindow *p, UInt_t w, UInt_t h, LookType_e look=LT_Classic);
92 TGCompositeFrame* GetMasterFrame() { return fMasterFrame; }
93 TGTab* GetMasterTab() { return fMasterTab; }
95 TCanvas* GetGLCanvas() { return fGLCanvas; }
96 VSDSelector* GetSelector() { return fSelector; }
97 RGBrowser* GetBrowser() { return fBrowser; }
98 TGStatusBar* GetStatusBar() { return fStatusBar; }
100 // Temporary cheating.
101 TGLViewer* GetGLViewer();
103 TCanvas* AddCanvasTab(const char* name);
105 TGListTree* GetListTree() const;
106 EventBase* GetCurrentEvent() const { return fCurrentEvent; }
107 PadPrimitive* GetGlobalStore() const { return fGlobalStore; }
109 Bool_t GetKeepEmptyCont() { return fKeepEmptyCont; }
110 void SetKeepEmptyCont(Bool_t keep) { fKeepEmptyCont=keep; }
112 TFolder* GetMacroFolder() const { return fMacroFolder; }
113 TMacro* GetMacro(const Text_t* name) const;
115 RGEditor* GetEditor() const { return fEditor; }
116 void EditRenderElement(RenderElement* rnr_element);
118 void DisableRedraw() { ++fRedrawDisabled; }
119 void EnableRedraw() { --fRedrawDisabled; if(fRedrawDisabled <= 0) Redraw3D(); }
121 void Redraw3D(Bool_t resetCameras=kFALSE, Bool_t dropLogicals=kFALSE)
123 if(fRedrawDisabled <= 0 && !fTimerActive) RegisterRedraw3D();
124 if(resetCameras) fResetCameras = kTRUE;
125 if(dropLogicals) fDropLogicals = kTRUE;
127 void RegisterRedraw3D();
130 static int SpawnGuiAndRun(int argc, char **argv);
131 static void SpawnGui(LookType_e revemode = LT_Editor);
133 // These are more like ReveManager stuff.
134 TGListTreeItem* AddEvent(EventBase* event); // Could have Reve::Event ...
135 TGListTreeItem* AddRenderElement(RenderElement* rnr_element);
136 TGListTreeItem* AddRenderElement(RenderElement* parent, RenderElement* rnr_element);
137 TGListTreeItem* AddGlobalRenderElement(RenderElement* rnr_element);
138 TGListTreeItem* AddGlobalRenderElement(RenderElement* parent, RenderElement* rnr_element);
140 void RemoveRenderElement(RenderElement* parent, RenderElement* rnr_element);
141 void PreDeleteRenderElement(RenderElement* rnr_element);
143 void DrawRenderElement(RenderElement* rnr_element, TVirtualPad* pad=0);
144 void UndrawRenderElement(RenderElement* rnr_element, TVirtualPad* pad=0);
146 void RenderElementChecked(TObject* obj, Bool_t state);
148 void NotifyBrowser(TGListTreeItem* parent_lti=0);
149 void NotifyBrowser(RenderElement* parent);
151 // Hmmph ... geometry management?
152 TGeoManager* GetGeometry(const TString& filename);
154 void ThrowException(const char* text="foo");
156 ClassDef(RGTopFrame, 0);
161 extern Reve::RGTopFrame* gReve;