X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/af266e5bf7e064ba818c1b1619325eb8c5b874f7..e91e1e3d5cab263883c1cee1689c898b8f7c4ecd:/include/wx/module.h diff --git a/include/wx/module.h b/include/wx/module.h index a35aab0e5e..96600b76ca 100644 --- a/include/wx/module.h +++ b/include/wx/module.h @@ -1,10 +1,9 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: module.h +// Name: wx/module.h // Purpose: Modules handling // Author: Wolfram Gloger/adapted by Guilhem Lavaux // Modified by: // Created: 04/11/98 -// RCS-ID: $Id$ // Copyright: (c) Wolfram Gloger and Guilhem Lavaux // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -14,10 +13,11 @@ #include "wx/object.h" #include "wx/list.h" +#include "wx/arrstr.h" #include "wx/dynarray.h" // declare a linked list of modules -class WXDLLIMPEXP_BASE wxModule; +class WXDLLIMPEXP_FWD_BASE wxModule; WX_DECLARE_USER_EXPORTED_LIST(wxModule, wxModuleList, WXDLLIMPEXP_BASE); // and an array of class info objects @@ -68,11 +68,19 @@ protected: // after that void AddDependency(wxClassInfo *dep) { - wxCHECK_RET( dep, _T("NULL module dependency") ); + wxCHECK_RET( dep, wxT("NULL module dependency") ); m_dependencies.Add(dep); } + // same as the version above except it will look up wxClassInfo by name on + // its own + void AddDependency(const char *className) + { + m_namedDependencies.Add(className); + } + + private: // initialize module and Append it to initializedModules list recursively // calling itself to satisfy module dependencies if needed @@ -84,11 +92,19 @@ private: // could be initialized) and also empty m_modules itself static void DoCleanUpModules(const wxModuleList& modules); + // resolve all named dependencies and add them to the normal m_dependencies + bool ResolveNamedDependencies(); - // module dependencies: contains + + // module dependencies: contains wxClassInfo pointers for all modules which + // must be initialized before this one wxArrayClassInfo m_dependencies; - // used internally while initiliazing/cleaning up modules + // and the named dependencies: those will be resolved during run-time and + // added to m_dependencies + wxArrayString m_namedDependencies; + + // used internally while initializing/cleaning up modules enum { State_Registered, // module registered but not initialized yet @@ -101,4 +117,3 @@ private: }; #endif // _WX_MODULE_H_ -