#ifndef _WX_MODULEH__
#define _WX_MODULEH__
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma interface "module.h"
#endif
// declare a linked list of modules
class wxModule;
-WX_DECLARE_LIST(wxModule, wxModuleList);
+WX_DECLARE_USER_EXPORTED_LIST(wxModule, wxModuleList, WXDLLIMPEXP_BASE);
// declaring a class derived from wxModule will automatically create an
// instance of this class on program startup, call its OnInit() method and call
// OnExit() on program termination (but only if OnInit() succeeded)
-class WXDLLEXPORT wxModule : public wxObject
+class WXDLLIMPEXP_BASE wxModule : public wxObject
{
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);
static bool InitializeModules();
static void CleanUpModules();
+ // used by wxObjectLoader when unloading shared libs's
+
+ static void UnregisterModule(wxModule* module);
+
protected:
static wxModuleList m_modules;