Update of /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21767/include/wxDevCenter Modified Files: Tag: modularisation Element.h FileSystemStandard.h Frame.h MainFrame.h Application.h Plugin.h Module.h Log Message: Rename Plugin::Module(RefData) in Plugin::DynLib(RefData). Make all chages to compile with module support. Index: Module.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/Attic/Module.h,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** Module.h 21 Sep 2005 15:00:38 -0000 1.1.2.1 --- Module.h 22 Sep 2005 16:41:35 -0000 1.1.2.2 *************** *** 31,57 **** class WXDC_DLL_BASE Module : public wxObject { DECLARE_CLASS(Module); - - static ObjectManager<wxClassInfo> s_ModuleClassInfoManager; - - wxClassInfo* m_pClassInfo; public: ! Module(wxClassInfo* pClassInfo); ! ! static void RegisterModules(); }; - #define WXDC_DECLARE_MODULE_CLASS(CLASS) static wxDevCenter::Module gs_wxdcModule(CLASSINFO(CLASS)); - class WXDC_DLL_BASE ModuleClass - { - protected: - static ObjectManager<wxClassInfo> s_ModuleClassInfoManager; - public: - - }; } --- 31,63 ---- + /** Define a type manager of class info.*/ + typedef ObjectManager<wxClassInfo> ClassInfoManager; + + /** Module management.*/ class WXDC_DLL_BASE Module : public wxObject { DECLARE_CLASS(Module); public: ! Module(wxClassInfo* pClassInfo, ClassInfoManager* pBaseClassInfoManager); }; + /** Macro to declare a module base class.*/ + #define WXDC_DECLARE_MODULE_BASE_CLASS(BASECLASS) \ + public:\ + static ObjectManager<wxClassInfo> s_wxdc_ClassInfoManager;\ + static BASECLASS* CreateDerivateClass()\ + {\ + if(s_wxdc_ClassInfoManager.GetCount()==0)return NULL;\ + return (BASECLASS*) s_wxdc_ClassInfoManager[s_wxdc_ClassInfoManager.GetCount()-1].CreateObject();\ + }\ + protected: + + /** Macro to implement a module base class.*/ + #define WXDC_IMPLEMENT_MODULE_BASE_CLASS(BASECLASS) ObjectManager<wxClassInfo> BASECLASS::s_wxdc_ClassInfoManager; + + /** Macro to automanipulate modules.*/ + #define WXDC_DECLARE_MODULE_CLASS(CLASS, BASECLASS) static wxDevCenter::Module gs_wxdcModule(CLASSINFO(CLASS), &(BASECLASS::s_wxdc_ClassInfoManager)); } Index: MainFrame.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/MainFrame.h,v retrieving revision 1.12 retrieving revision 1.12.2.1 diff -C2 -d -r1.12 -r1.12.2.1 *** MainFrame.h 2 Aug 2005 17:13:01 -0000 1.12 --- MainFrame.h 22 Sep 2005 16:41:35 -0000 1.12.2.1 *************** *** 48,60 **** class MainFrame : public TopFrame { ! friend class Application; ! /** Déclare la table d'interception des évènements de fenêtres.*/ ! DECLARE_EVENT_TABLE(); ! /** Déclare les infos RTTI de la classe.*/ ! DECLARE_CLASS(MainFrame); protected: - MainFrame(void); - virtual ~MainFrame(void); - /** LayoutManager.*/ wxLayoutManager* m_pLayoutManager; --- 48,56 ---- class MainFrame : public TopFrame { ! /** Déclare la table d'interception des évènements de fenêtres.*/ ! DECLARE_EVENT_TABLE(); ! /** Déclare les infos RTTI de la classe.*/ ! DECLARE_DYNAMIC_CLASS(MainFrame); protected: /** LayoutManager.*/ wxLayoutManager* m_pLayoutManager; *************** *** 156,159 **** --- 152,161 ---- // Fonctions de manipulation des vues: public: + MainFrame(void); + virtual ~MainFrame(void); + /** Créateur.*/ + virtual bool Create(const wxString& title, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE); + + /** Ajoute une vue. * Ajoute une vue à la fenêtre. *************** *** 162,166 **** * @param pView Vue à attacher. */ ! void AddView(View *pView); /** Retourne la fenetre cadre fille des vues.*/ --- 164,168 ---- * @param pView Vue à attacher. */ ! virtual bool AddView(View *pView); /** Retourne la fenetre cadre fille des vues.*/ Index: FileSystemStandard.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/FileSystemStandard.h,v retrieving revision 1.14 retrieving revision 1.14.2.1 diff -C2 -d -r1.14 -r1.14.2.1 *** FileSystemStandard.h 17 Aug 2005 16:33:17 -0000 1.14 --- FileSystemStandard.h 22 Sep 2005 16:41:35 -0000 1.14.2.1 *************** *** 57,62 **** * Implémentation partielle commune aux systèmes de fichiers réels (physiques) comme ceux de Windows ou Unix. */ ! class FileSystemStandardBase : public FileSystem { public: virtual wxString GetFileSystemName()const{return WXDC_SYSTEM_STDFS_NAME;} --- 57,64 ---- * Implémentation partielle commune aux systèmes de fichiers réels (physiques) comme ceux de Windows ou Unix. */ ! class FileSystemStandard : public FileSystem { + WXDC_DECLARE_MODULE_BASE_CLASS(FileSystemStandard) + DECLARE_ABSTRACT_CLASS(FileSystemStandard) public: virtual wxString GetFileSystemName()const{return WXDC_SYSTEM_STDFS_NAME;} *************** *** 91,108 **** } // Fin du namespace - - - // Inclut la déclaration spécifique à la plateforme. - #ifdef __WINDOWS__ - - #include <wxDevCenter/msw/FileSystemStandard.h> - - #else - - #include <wxDevCenter/unix/FileSystemStandard.h> - - #endif - - - #endif --- 93,95 ---- Index: Application.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/Application.h,v retrieving revision 1.20 retrieving revision 1.20.2.1 diff -C2 -d -r1.20 -r1.20.2.1 *** Application.h 15 Sep 2005 16:11:47 -0000 1.20 --- Application.h 22 Sep 2005 16:41:35 -0000 1.20.2.1 *************** *** 38,42 **** class FilePath; class Document; ! class MainFrame; class FileSystem; class DocManager; --- 38,42 ---- class FilePath; class Document; ! class TopFrame; class FileSystem; class DocManager; *************** *** 69,73 **** /** Fenêtre cadre principale.*/ ! MainFrame *m_pMainFrame; /** Données de configuration de la mise en pages.*/ --- 69,73 ---- /** Fenêtre cadre principale.*/ ! TopFrame *m_pTopFrame; /** Données de configuration de la mise en pages.*/ *************** *** 98,102 **** void AboutBox(int nPage=0); /** Fenêtre principale.*/ ! MainFrame& GetMainFrame(){return *m_pMainFrame;} /** Acces sur l'application. --- 98,102 ---- void AboutBox(int nPage=0); /** Fenêtre principale.*/ ! TopFrame& GetTopFrame(){return *m_pTopFrame;} /** Acces sur l'application. Index: Frame.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/Frame.h,v retrieving revision 1.13 retrieving revision 1.13.2.1 diff -C2 -d -r1.13 -r1.13.2.1 *** Frame.h 14 Sep 2005 15:37:06 -0000 1.13 --- Frame.h 22 Sep 2005 16:41:35 -0000 1.13.2.1 *************** *** 33,36 **** --- 33,38 ---- #include <wxDevCenter/Layout.h> + #include <wxDevCenter/Module.h> + namespace wxDevCenter *************** *** 136,142 **** class WXDC_DLL_BASE TopFrame : public wxFrame { ! DECLARE_CLASS(TopFrame); DECLARE_EVENT_TABLE() ! friend class MenuBar; protected: /** Fenetre cadre fille contenant les vues.*/ --- 138,144 ---- class WXDC_DLL_BASE TopFrame : public wxFrame { ! DECLARE_ABSTRACT_CLASS(TopFrame); DECLARE_EVENT_TABLE() ! WXDC_DECLARE_MODULE_BASE_CLASS(TopFrame) protected: /** Fenetre cadre fille contenant les vues.*/ *************** *** 147,161 **** public: /** Constructeur.*/ ! TopFrame(const wxString& title, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE); /** Destructeur.*/ ~TopFrame(void); ! /** Fixe la fenetre cadre fille des vues.*/ void SetViewFrame(ViewFrame* pViewFrame){m_pViewFrame = pViewFrame;} /** Retourne la fenetre cadre fille des vues.*/ ViewFrame* GetViewFrame()const{return m_pViewFrame;} ! ! /** Ajoute une fenetre comme barre de travail. * @param pWorkBar Adresse de la barre de travail. --- 149,175 ---- public: + /** Constructeur.*/ ! TopFrame(); ! /** Créateur.*/ ! virtual bool Create(const wxString& title, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE); /** Destructeur.*/ ~TopFrame(void); ! /** @name View. ! * @{ */ ! virtual bool AddView(View* WXUNUSED(pView)){return false;} ! /** @} */ ! ! /** @name ViewFrame. ! * @{ */ ! /** Fixe la fenetre cadre fille des vues.*/ void SetViewFrame(ViewFrame* pViewFrame){m_pViewFrame = pViewFrame;} /** Retourne la fenetre cadre fille des vues.*/ ViewFrame* GetViewFrame()const{return m_pViewFrame;} ! /** @} */ ! ! /** @name WorkBar. ! * @{ */ /** Ajoute une fenetre comme barre de travail. * @param pWorkBar Adresse de la barre de travail. *************** *** 167,171 **** * @return Faux si la barre n'était pas attachée à cette fenêtre cadre.*/ virtual bool RemoveWorkBar(WorkBar* WXUNUSED(pWorkBar)){return false;} - /** Affiche/Cache une workbar. * @param pWorkBar Adresse de la workbar à afficher. --- 181,184 ---- *************** *** 173,177 **** --- 186,192 ---- * @return True si l'action a été effectuée correctement.*/ virtual bool ShowWorkBar(WorkBar* WXUNUSED(pWorkBar), bool WXUNUSED(bShow)){return false;} + /** @} */ + /** Retourne le layout attaché à la fenetre. Index: Plugin.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/Plugin.h,v retrieving revision 1.5 retrieving revision 1.5.2.1 diff -C2 -d -r1.5 -r1.5.2.1 *** Plugin.h 12 Aug 2005 09:25:19 -0000 1.5 --- Plugin.h 22 Sep 2005 16:41:35 -0000 1.5.2.1 *************** *** 52,57 **** // Prédéclaration des classes : struct Version; ! class ModuleRefData; ! class Module; class Plugin; class Feature; --- 52,57 ---- // Prédéclaration des classes : struct Version; ! class DynLibRefData; ! class DynLib; class Plugin; class Feature; *************** *** 134,140 **** /** Descriptif de module. * Objet référençable des modules.*/ ! class WXDC_DLL_BASE ModuleRefData : public wxObjectRefData { ! friend class Module; protected: /** Flag d'état du module.*/ --- 134,140 ---- /** Descriptif de module. * Objet référençable des modules.*/ ! class WXDC_DLL_BASE DynLibRefData : public wxObjectRefData { ! friend class DynLib; protected: /** Flag d'état du module.*/ *************** *** 150,155 **** BaseElementManager m_Elements; public: ! ModuleRefData(); ! virtual ~ModuleRefData(); /** Débugage : Dump du contenu. */ --- 150,155 ---- BaseElementManager m_Elements; public: ! DynLibRefData(); ! virtual ~DynLibRefData(); /** Débugage : Dump du contenu. */ *************** *** 175,179 **** /** Drapeaux d'états du module.*/ ! enum ModuleState { Initial = 0x0000, --- 175,179 ---- /** Drapeaux d'états du module.*/ ! enum DynLibState { Initial = 0x0000, *************** *** 189,207 **** * Un module est une dll/so qui contient des objets enregistrables. */ ! class WXDC_DLL_BASE Module : public wxObject { friend class Plugin; ! DECLARE_CLASS(Module) protected: /** Accesseur sur la référence de module.*/ ! ModuleRefData* GetModuleRef()const {return (ModuleRefData*) GetRefData();} // create a new m_refData ! virtual wxObjectRefData *CreateRefData() const{return new ModuleRefData;} public: /** Constructeur.*/ ! Module(); /** Constructeur.*/ ! Module(const Module& module):wxObject(){Ref(module);} /** Débugage : Dump du contenu. */ --- 189,207 ---- * Un module est une dll/so qui contient des objets enregistrables. */ ! class WXDC_DLL_BASE DynLib : public wxObject { friend class Plugin; ! DECLARE_CLASS(DynLib) protected: /** Accesseur sur la référence de module.*/ ! DynLibRefData* GetDynLibRef()const {return (DynLibRefData*) GetRefData();} // create a new m_refData ! virtual wxObjectRefData *CreateRefData() const{return new DynLibRefData;} public: /** Constructeur.*/ ! DynLib(); /** Constructeur.*/ ! DynLib(const DynLib& module):wxObject(){Ref(module);} /** Débugage : Dump du contenu. */ *************** *** 271,275 **** wxString m_strURL; /** Liste des modules du plugin.*/ ! wxArrayString m_arrstrModules; /** Liste des plugins dépendants.*/ wxArrayString m_arrstrPlugins; --- 271,275 ---- wxString m_strURL; /** Liste des modules du plugin.*/ ! wxArrayString m_arrstrDynLibs; /** Liste des plugins dépendants.*/ wxArrayString m_arrstrPlugins; *************** *** 423,427 **** WX_DECLARE_STRING_HASH_MAP_WITH_DECL(Feature, FeatureMap, class WXDC_DLL_BASE); WX_DECLARE_STRING_HASH_MAP_WITH_DECL(Plugin, PluginMap, class WXDC_DLL_BASE); ! WX_DECLARE_STRING_HASH_MAP_WITH_DECL(Module, ModuleMap, class WXDC_DLL_BASE); --- 423,427 ---- WX_DECLARE_STRING_HASH_MAP_WITH_DECL(Feature, FeatureMap, class WXDC_DLL_BASE); WX_DECLARE_STRING_HASH_MAP_WITH_DECL(Plugin, PluginMap, class WXDC_DLL_BASE); ! WX_DECLARE_STRING_HASH_MAP_WITH_DECL(DynLib, DynLibMap, class WXDC_DLL_BASE); *************** *** 434,438 **** FeatureMap m_FeatureMap; /**> Fonctionnalité indéxé par son nom.*/ PluginMap m_PluginMap; /**> Plugin indexé par son nom.*/ ! ModuleMap m_ModuleMap; /**> Module indexé par son chemin.*/ public: --- 434,438 ---- FeatureMap m_FeatureMap; /**> Fonctionnalité indéxé par son nom.*/ PluginMap m_PluginMap; /**> Plugin indexé par son nom.*/ ! DynLibMap m_DynLibMap; /**> DynLib indexé par son chemin.*/ public: *************** *** 446,450 **** * @param strPath Adrese du module. * @return Adresse du descripteur de module associé si chargé et NULL sinon..*/ ! Module* LoadModule(wxString strPath); /** Précharge la description des fonctionnalités et des plugins.*/ --- 446,450 ---- * @param strPath Adrese du module. * @return Adresse du descripteur de module associé si chargé et NULL sinon..*/ ! DynLib* LoadDynLib(wxString strPath); /** Précharge la description des fonctionnalités et des plugins.*/ *************** *** 493,497 **** * @return Vrai si le module est correctement initialisé. */ ! bool InitializeModule(wxString strName); /** Initialise le contenu chargé. --- 493,497 ---- * @return Vrai si le module est correctement initialisé. */ ! bool InitializeDynLib(wxString strName); /** Initialise le contenu chargé. *************** *** 569,573 **** m_strNotes, m_strURL; ! wxArrayString m_arrstrModules, m_arrstrPlugins; public: /** Constructeur. --- 569,573 ---- m_strNotes, m_strURL; ! wxArrayString m_arrstrDynLibs, m_arrstrPlugins; public: /** Constructeur. *************** *** 603,607 **** void FillDependantPluginArray(wxArrayString& array); /** Remplit une liste des chemins relatifs des modules à charger.*/ ! void FillModuleArray(wxArrayString& array); }; --- 603,607 ---- void FillDependantPluginArray(wxArrayString& array); /** Remplit une liste des chemins relatifs des modules à charger.*/ ! void FillDynLibArray(wxArrayString& array); }; Index: Element.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/Element.h,v retrieving revision 1.3 retrieving revision 1.3.2.1 diff -C2 -d -r1.3 -r1.3.2.1 *** Element.h 3 Aug 2005 19:21:22 -0000 1.3 --- Element.h 22 Sep 2005 16:41:35 -0000 1.3.2.1 *************** *** 92,96 **** namespace plugins { ! class ModuleRefData; } --- 92,96 ---- namespace plugins { ! class DynLibRefData; } *************** *** 101,105 **** class WXDC_DLL_BASE Element { ! friend class plugins::ModuleRefData; DECLARE_CLASS(Element) private: --- 101,105 ---- class WXDC_DLL_BASE Element { ! friend class plugins::DynLibRefData; DECLARE_CLASS(Element) private: |