00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 #ifndef ROOT_TGedEditor
00013 #define ROOT_TGedEditor
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 #ifndef ROOT_TGFrame
00027 #include "TGFrame.h"
00028 #endif
00029 #ifndef ROOT_TVirtualPadEditor
00030 #include "TVirtualPadEditor.h"
00031 #endif
00032 #ifndef ROOT_TList
00033 #include "TList.h"
00034 #endif
00035 #ifndef ROOT_TMap
00036 #include "TMap.h"
00037 #endif
00038 
00039 class TCanvas;
00040 class TGCanvas;
00041 class TGTab;
00042 class TGTabElement;
00043 class TVirtualPad;
00044 class TGedFrame;
00045 class TGedNameFrame;
00046 
00047 class TGedTabInfo;
00048 
00049 class TGedEditor : public TVirtualPadEditor, public TGMainFrame
00050 {
00051 private:
00052    TGedEditor(const TGedEditor&);            
00053    TGedEditor& operator=(const TGedEditor&); 
00054 
00055 protected:
00056    TMap              fFrameMap;         
00057    TMap              fExclMap;          
00058    TList             fGedFrames;        
00059 
00060    TGCanvas         *fCan;              
00061    TGTab            *fTab;              
00062 
00063    TList             fCreatedTabs;      
00064    TList             fVisibleTabs;      
00065    TGCompositeFrame *fTabContainer;     
00066 
00067    TObject          *fModel;            
00068    TVirtualPad      *fPad;              
00069    TCanvas          *fCanvas;           
00070    TClass           *fClass;            
00071    Bool_t            fGlobal;           
00072 
00073    void              ConfigureGedFrames(Bool_t objChaged);
00074 
00075    virtual TGedFrame* CreateNameFrame(const TGWindow* parent, const char* tab_name); 
00076 
00077    static TGedEditor *fgFrameCreator; 
00078 
00079 public:
00080    TGedEditor(TCanvas* canvas = 0, UInt_t width = 175, UInt_t height = 20);
00081    virtual ~TGedEditor();
00082 
00083    void          PrintFrameStat();
00084    virtual void  Update(TGedFrame* frame = 0);
00085    void          ReinitWorkspace();
00086    void          ActivateEditor (TClass* cl, Bool_t recurse);
00087    void          ActivateEditors(TList* bcl, Bool_t recurse);
00088    void          ExcludeClassEditor(TClass* cl, Bool_t recurse = kFALSE);
00089    void          InsertGedFrame(TGedFrame* f);
00090 
00091    TGCanvas*                 GetTGCanvas() const { return fCan; }
00092    TGTab*                    GetTab()      const { return fTab; }
00093    virtual TGCompositeFrame* GetEditorTab(const char* name);
00094    virtual TGedTabInfo*      GetEditorTabInfo(const char* name);
00095 
00096    virtual TCanvas*          GetCanvas() const { return fCanvas; }
00097    virtual TVirtualPad*      GetPad()    const { return fPad; }
00098    virtual TObject*          GetModel()  const { return fModel; }
00099 
00100 
00101    virtual void   CloseWindow();
00102    virtual void   ConnectToCanvas(TCanvas *c);
00103    virtual void   DisconnectFromCanvas();
00104    virtual Bool_t IsGlobal() const  { return fGlobal; } 
00105    virtual void   Hide();
00106    virtual void   GlobalClosed();
00107    virtual void   SetCanvas(TCanvas *c);
00108    virtual void   SetGlobal(Bool_t global);
00109    virtual void   GlobalSetModel(TVirtualPad *, TObject *, Int_t);
00110    virtual void   SetModel(TVirtualPad* pad, TObject* obj, Int_t event);
00111    virtual void   Show();
00112    virtual void   RecursiveRemove(TObject* obj);
00113 
00114    static TGedEditor* GetFrameCreator();
00115    static void SetFrameCreator(TGedEditor* e);
00116 
00117    ClassDef(TGedEditor,0)  
00118 };
00119 
00120 #endif