]>
git.saurik.com Git - wxWidgets.git/blob - include/wx/module.h
1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: Modules handling
4 // Author: Wolfram Gloger/adapted by Guilhem Lavaux
8 // Copyright: (c) Wolfram Gloger and Guilhem Lavaux
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
16 #pragma interface "module.h"
19 #include "wx/object.h"
22 // declare a linked list of modules
24 WX_DECLARE_EXPORTED_LIST(wxModule
, wxModuleList
);
26 // declaring a class derived from wxModule will automatically create an
27 // instance of this class on program startup, call its OnInit() method and call
28 // OnExit() on program termination (but only if OnInit() succeeded)
29 class WXDLLEXPORT wxModule
: public wxObject
33 virtual ~wxModule() {}
35 // if module init routine returns FALSE application will fail to startup
36 bool Init() { return OnInit(); }
37 void Exit() { OnExit(); }
39 // Override both of these
40 // called on program startup
41 virtual bool OnInit() = 0;
42 // called just before program termination, but only if OnInit()
44 virtual void OnExit() = 0;
46 static void RegisterModule(wxModule
* module);
47 static void RegisterModules();
48 static bool InitializeModules();
49 static void CleanUpModules();
52 static wxModuleList m_modules
;
54 DECLARE_CLASS(wxModule
)
57 #endif // _WX_MODULEH__