X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8aa4edd248534c4c1879c93d363d1b7fb8e8c5c6..06cc1fb991aa0b6ec8966627d3c6d6bd0ade04be:/include/wx/module.h diff --git a/include/wx/module.h b/include/wx/module.h index e15b4de06b..aeee79b942 100644 --- a/include/wx/module.h +++ b/include/wx/module.h @@ -12,7 +12,7 @@ #ifndef _WX_MODULEH__ #define _WX_MODULEH__ -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(__APPLE__) #pragma interface "module.h" #endif @@ -21,7 +21,7 @@ // declare a linked list of modules class wxModule; -WX_DECLARE_LIST(wxModule, wxModuleList); +WX_DECLARE_EXPORTED_LIST(wxModule, wxModuleList); // declaring a class derived from wxModule will automatically create an // instance of this class on program startup, call its OnInit() method and call @@ -32,15 +32,20 @@ public: wxModule() {} virtual ~wxModule() {} - // if module init routine returns FALSE application will fail to startup + // if module init routine returns FALSE application + // will fail to startup + bool Init() { return OnInit(); } void Exit() { OnExit(); } - // Override both of these + // Override both of these // called on program startup + virtual bool OnInit() = 0; - // called just before program termination, but only if OnInit() + + // called just before program termination, but only if OnInit() // succeeded + virtual void OnExit() = 0; static void RegisterModule(wxModule* module); @@ -48,6 +53,10 @@ public: static bool InitializeModules(); static void CleanUpModules(); + // used by wxObjectLoader when unloading shared libs's + + static void UnregisterModule(wxModule* module); + protected: static wxModuleList m_modules;