#ifndef ROOT_TGeoTabManager
#define ROOT_TGeoTabManager
#ifndef ROOT_TGFrame
#include "TGFrame.h"
#endif
#ifndef ROOT_TMap
#include "TMap.h"
#endif
class TVirtualPad;
class TClass;
class TList;
class TGCompositeFrame;
class TGLabel;
class TGTab;
class TGComboBox;
class TGListTree;
class TGListTreeItem;
class TGCanvas;
class TGedEditor;
class TGeoShape;
class TGeoVolume;
class TGeoMedium;
class TGeoMaterial;
class TGeoMatrix;
class TGeoTreeDialog;
class TGeoTransientPanel;
class TGeoTabManager : public TObject {
friend class TGeoManagerEditor;
private:
TGedEditor *fGedEditor;
TVirtualPad *fPad;
TGTab *fTab;
TGeoVolume *fVolume;
TGeoTransientPanel *fShapePanel;
TGeoTransientPanel *fMediumPanel;
TGeoTransientPanel *fMaterialPanel;
TGeoTransientPanel *fMatrixPanel;
TGCompositeFrame *fVolumeTab;
static TMap fgEditorToMgrMap;
void GetEditors(TClass *cl);
public:
TGeoTabManager(TGedEditor *ged);
virtual ~TGeoTabManager();
static TGeoTabManager *GetMakeTabManager(TGedEditor *ged);
static void Cleanup(TGCompositeFrame *frame);
TVirtualPad *GetPad() const {return fPad;}
TGTab *GetTab() const {return fTab;}
Int_t GetTabIndex() const;
static void MoveFrame(TGCompositeFrame *fr, TGCompositeFrame *p);
void SetVolTabEnabled(Bool_t flag=kTRUE);
void SetModel(TObject *model);
void SetTab();
void GetShapeEditor(TGeoShape *shape);
void GetVolumeEditor(TGeoVolume *vol);
void GetMatrixEditor(TGeoMatrix *matrix);
void GetMediumEditor(TGeoMedium *medium);
void GetMaterialEditor(TGeoMaterial *material);
TGCompositeFrame *GetVolumeTab() const {return fVolumeTab;}
TGeoVolume *GetVolume() const {return fVolume;}
ClassDef(TGeoTabManager, 0)
};
class TGeoTreeDialog : public TGTransientFrame {
protected:
static TObject *fgSelectedObj;
TGCanvas *fCanvas;
TGLabel *fObjLabel;
TGListTree *fLT;
TGCompositeFrame *f1;
TGTextButton *fClose;
virtual void BuildListTree() = 0;
virtual void ConnectSignalsToSlots() = 0;
public:
TGeoTreeDialog(TGFrame *caller, const TGWindow *main, UInt_t w = 1, UInt_t h = 1);
virtual ~TGeoTreeDialog();
static TObject *GetSelected();
virtual void DoClose() = 0;
virtual void DoItemClick(TGListTreeItem *item, Int_t btn) = 0;
void DoSelect(TGListTreeItem *item);
ClassDef(TGeoTreeDialog, 0)
};
class TGeoVolumeDialog : public TGeoTreeDialog {
protected:
virtual void BuildListTree();
virtual void ConnectSignalsToSlots();
public:
TGeoVolumeDialog(TGFrame *caller, const TGWindow *main, UInt_t w = 1, UInt_t h = 1);
virtual ~TGeoVolumeDialog() {;}
virtual void DoClose();
virtual void DoItemClick(TGListTreeItem *item, Int_t btn);
ClassDef(TGeoVolumeDialog, 0)
};
class TGeoShapeDialog : public TGeoTreeDialog {
protected:
virtual void BuildListTree();
virtual void ConnectSignalsToSlots();
public:
TGeoShapeDialog(TGFrame *caller, const TGWindow *main, UInt_t w = 1, UInt_t h = 1);
virtual ~TGeoShapeDialog() {;}
virtual void DoClose();
virtual void DoItemClick(TGListTreeItem *item, Int_t btn);
ClassDef(TGeoShapeDialog, 0)
};
class TGeoMediumDialog : public TGeoTreeDialog {
protected:
virtual void BuildListTree();
virtual void ConnectSignalsToSlots();
public:
TGeoMediumDialog(TGFrame *caller, const TGWindow *main, UInt_t w = 1, UInt_t h = 1);
virtual ~TGeoMediumDialog() {;}
virtual void DoClose();
virtual void DoItemClick(TGListTreeItem *item, Int_t btn);
ClassDef(TGeoMediumDialog, 0)
};
class TGeoMaterialDialog : public TGeoTreeDialog {
protected:
virtual void BuildListTree();
virtual void ConnectSignalsToSlots();
public:
TGeoMaterialDialog(TGFrame *caller, const TGWindow *main, UInt_t w = 1, UInt_t h = 1);
virtual ~TGeoMaterialDialog() {;}
virtual void DoClose();
virtual void DoItemClick(TGListTreeItem *item, Int_t btn);
ClassDef(TGeoMaterialDialog, 0)
};
class TGeoMatrixDialog : public TGeoTreeDialog {
protected:
virtual void BuildListTree();
virtual void ConnectSignalsToSlots();
public:
TGeoMatrixDialog(TGFrame *caller, const TGWindow *main, UInt_t w = 1, UInt_t h = 1);
virtual ~TGeoMatrixDialog() {;}
virtual void DoClose();
virtual void DoItemClick(TGListTreeItem *item, Int_t btn);
ClassDef(TGeoMatrixDialog, 0)
};
class TGeoTransientPanel : public TGMainFrame {
TGedEditor *fGedEditor;
TGCanvas *fCan;
TGTab *fTab;
TGCompositeFrame *fTabContainer;
TGCompositeFrame *fStyle;
TObject *fModel;
TGTextButton *fClose;
public:
TGeoTransientPanel(TGedEditor* ged, const char *name, TObject *obj);
virtual ~TGeoTransientPanel();
virtual void CloseWindow();
virtual void DeleteEditors();
TGTab *GetTab() const {return fTab;}
TGCompositeFrame *GetStyle() const {return fStyle;}
TObject *GetModel() const {return fModel;}
void GetEditors(TClass *cl);
virtual void Hide();
virtual void Show();
void SetModel(TObject *model);
ClassDef(TGeoTransientPanel, 0)
};
#endif