home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wxos2240.zip / wxWindows-2.4.0 / include / wx / module.h < prev    next >
C/C++ Source or Header  |  2002-08-31  |  2KB  |  68 lines

  1. /////////////////////////////////////////////////////////////////////////////
  2. // Name:        module.h
  3. // Purpose:     Modules handling
  4. // Author:      Wolfram Gloger/adapted by Guilhem Lavaux
  5. // Modified by:
  6. // Created:     04/11/98
  7. // RCS-ID:      $Id: module.h,v 1.6 2002/08/31 11:29:11 GD Exp $
  8. // Copyright:   (c) Wolfram Gloger and Guilhem Lavaux
  9. // Licence:     wxWindows licence
  10. /////////////////////////////////////////////////////////////////////////////
  11.  
  12. #ifndef _WX_MODULEH__
  13. #define _WX_MODULEH__
  14.  
  15. #if defined(__GNUG__) && !defined(__APPLE__)
  16.     #pragma interface "module.h"
  17. #endif
  18.  
  19. #include "wx/object.h"
  20. #include "wx/list.h"
  21.  
  22. // declare a linked list of modules
  23. class wxModule;
  24. WX_DECLARE_EXPORTED_LIST(wxModule, wxModuleList);
  25.  
  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
  30. {
  31. public:
  32.     wxModule() {}
  33.     virtual ~wxModule() {}
  34.  
  35.         // if module init routine returns FALSE application
  36.     // will fail to startup
  37.  
  38.     bool Init() { return OnInit(); }
  39.     void Exit() { OnExit(); }
  40.  
  41.     // Override both of these
  42.         // called on program startup
  43.  
  44.     virtual bool OnInit() = 0;
  45.  
  46.         // called just before program termination, but only if OnInit()
  47.         // succeeded
  48.     
  49.     virtual void OnExit() = 0;
  50.  
  51.     static void RegisterModule(wxModule* module);
  52.     static void RegisterModules();
  53.     static bool InitializeModules();
  54.     static void CleanUpModules();
  55.  
  56.         // used by wxObjectLoader when unloading shared libs's
  57.  
  58.     static void UnregisterModule(wxModule* module);
  59.  
  60. protected:
  61.     static wxModuleList m_modules;
  62.  
  63.     DECLARE_CLASS(wxModule)
  64. };
  65.  
  66. #endif // _WX_MODULEH__
  67.  
  68.