// ESAF : Euso Simulation and Analysis Framework // $Id: EsafConfigurable.hh,v 1.2 2005/10/18 23:17:30 thea Exp $ // D. De Marco, M. Pallavicini created Jan, 18 2002 // class description: // base class for all objects that need to access to Config parameters // #ifndef __EUSOCONFIGURABLE_HH_ #define __EUSOCONFIGURABLE_HH_ #include "euso.hh" #include "RConfig.h" #include "BaseDialogFactory.hh" #include "ConfigFileParser.hh" class TGTransientFrame; // root class for Dialog window class SimuApplication; class TGMainFrame; class TGWindow; // macro used by all children of this class // defines a ClassType and a ClassName through ROOT TObject #define EsafConfigClass(type,name) \ public: \ virtual const char* ClassType() const {return _QUOTE_(type);} \ virtual const char* ClassName() const {return _QUOTE_(name);} // each sub-class should add the previous macro providing a class type // and a class name class EsafConfigurable { public: EsafConfigurable(const char* ClassName=0, const char* parent=0 ); virtual ~EsafConfigurable(); static void SelectFactory( BaseDialogFactory* f ) { gFactory=f;} virtual const char* ClassType() const = 0; virtual const char* ClassName() const = 0; virtual ConfigFileParser* Conf(const char* name=0) const; virtual TGTransientFrame *GetDialog( SimuApplication* pApp, TGWindow* pWin, TGMainFrame* pMain) const; private: static BaseDialogFactory *gFactory; ClassDef(EsafConfigurable,0) }; #endif /* __EUSOCONFIGURABLE_HH_ */