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;
59 std::map<TString, TGeoManager*> fGeometries;
62 RGTopFrame(const TGWindow *p, UInt_t w, UInt_t h, LookType_e look=LT_Classic);
64 TCanvas* GetCC() { return fCC; }
65 VSDSelector* GetSelector() { return fSelector; }
66 RGBrowser* GetBrowser() { return fBrowser; }
67 TGStatusBar* GetStatusBar() { return fStatusBar; }
69 TGListTree* GetListTree() const;
70 EventBase* GetCurrentEvent() const { return fCurrentEvent; }
71 RenderElementList* GetGlobalStore() const { return fGlobalStore; }
73 TFolder* GetMacroFolder() const { return fMacroFolder; }
74 TMacro* GetMacro(const Text_t* name) const;
76 RGEditor* GetEditor() const { return fEditor; }
77 void EditRenderElement(RenderElement* rnr_element);
79 void DisableRedraw() { ++fRedrawDisabled; }
80 void EnableRedraw() { --fRedrawDisabled; if(fRedrawDisabled <= 0) Redraw3D(); }
82 void Redraw3D() { if(fRedrawDisabled <= 0 && !fTimerActive) RegisterRedraw3D(); }
83 void RegisterRedraw3D();
86 static int SpawnGuiAndRun(int argc, char **argv);
88 // These are more like ReveManager stuff.
89 TGListTreeItem* AddEvent(EventBase* event); // Could have Reve::Event ...
90 TGListTreeItem* AddRenderElement(RenderElement* rnr_element);
91 TGListTreeItem* AddRenderElement(RenderElement* parent, RenderElement* rnr_element);
92 TGListTreeItem* AddGlobalRenderElement(RenderElement* rnr_element);
93 TGListTreeItem* AddGlobalRenderElement(RenderElement* parent, RenderElement* rnr_element);
95 void RemoveRenderElement(RenderElement* parent, RenderElement* rnr_element);
97 void DrawRenderElement(RenderElement* rnr_element, TVirtualPad* pad=0);
98 void UndrawRenderElement(RenderElement* rnr_element, TVirtualPad* pad=0);
100 void RenderElementChecked(TObject* obj, Bool_t state);
102 void NotifyBrowser(TGListTreeItem* parent_lti=0);
103 void NotifyBrowser(RenderElement* parent);
105 // Hmmph ... geometry management?
106 TGeoManager* GetGeometry(const TString& filename);
108 ClassDef(RGTopFrame, 0);
113 extern Reve::RGTopFrame* gReve;