3 #ifndef REVE_RGTopFrame_H
4 #define REVE_RGTopFrame_H
7 #include <TGeoManager.h>
8 #include <TGStatusBar.h>
26 class RenderElementList;
31 class RGTopFrame : public TGMainFrame
34 enum LookType_e { LT_Classic, LT_Editor, LT_GLViewer };
39 TCanvas *fHistoCanvas;
40 VSDSelector *fSelector;
42 TGStatusBar *fStatusBar;
45 TFolder *fMacroFolder;
49 EventBase *fCurrentEvent;
50 RenderElementList *fGlobalStore;
52 Int_t fRedrawDisabled;
60 std::map<TString, TGeoManager*> fGeometries;
63 RGTopFrame(const TGWindow *p, UInt_t w, UInt_t h, LookType_e look=LT_Classic);
65 TCanvas* GetCC() { return fCC; }
66 VSDSelector* GetSelector() { return fSelector; }
67 RGBrowser* GetBrowser() { return fBrowser; }
68 TGStatusBar* GetStatusBar() { return fStatusBar; }
70 TGListTree* GetListTree() const;
71 EventBase* GetCurrentEvent() const { return fCurrentEvent; }
72 RenderElementList* GetGlobalStore() const { return fGlobalStore; }
74 TFolder* GetMacroFolder() const { return fMacroFolder; }
75 TMacro* GetMacro(const Text_t* name) const;
77 RGEditor* GetEditor() const { return fEditor; }
78 void EditRenderElement(RenderElement* rnr_element);
80 void DisableRedraw() { ++fRedrawDisabled; }
81 void EnableRedraw() { --fRedrawDisabled; if(fRedrawDisabled <= 0) Redraw3D(); }
83 void Redraw3D(Bool_t resetCameras=kFALSE) {
84 if(fRedrawDisabled <= 0 && !fTimerActive) RegisterRedraw3D();
85 if(resetCameras) fResetCameras = kTRUE;
87 void RegisterRedraw3D();
90 static int SpawnGuiAndRun(int argc, char **argv);
92 // These are more like ReveManager stuff.
93 TGListTreeItem* AddEvent(EventBase* event); // Could have Reve::Event ...
94 TGListTreeItem* AddRenderElement(RenderElement* rnr_element);
95 TGListTreeItem* AddRenderElement(RenderElement* parent, RenderElement* rnr_element);
96 TGListTreeItem* AddGlobalRenderElement(RenderElement* rnr_element);
97 TGListTreeItem* AddGlobalRenderElement(RenderElement* parent, RenderElement* rnr_element);
99 void RemoveRenderElement(RenderElement* parent, RenderElement* rnr_element);
101 void DrawRenderElement(RenderElement* rnr_element, TVirtualPad* pad=0);
102 void UndrawRenderElement(RenderElement* rnr_element, TVirtualPad* pad=0);
104 void RenderElementChecked(TObject* obj, Bool_t state);
106 void NotifyBrowser(TGListTreeItem* parent_lti=0);
107 void NotifyBrowser(RenderElement* parent);
109 // Hmmph ... geometry management?
110 TGeoManager* GetGeometry(const TString& filename);
112 ClassDef(RGTopFrame, 0);
117 extern Reve::RGTopFrame* gReve;