| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        module.h
 
- // Purpose:     interface of wxModule
 
- // Author:      wxWidgets team
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- /**
 
-     @class wxModule
 
-     The module system is a very simple mechanism to allow applications (and parts
 
-     of wxWidgets itself) to define initialization and cleanup functions that are
 
-     automatically called on wxWidgets startup and exit.
 
-     To define a new kind of module, derive a class from wxModule, override the
 
-     wxModule::OnInit and wxModule::OnExit functions, and add the
 
-     wxDECLARE_DYNAMIC_CLASS and wxIMPLEMENT_DYNAMIC_CLASS to header and implementation
 
-     files (which can be the same file).
 
-     On initialization, wxWidgets will find all classes derived from wxModule, create
 
-     an instance of each, and call each wxModule::OnInit function. On exit, wxWidgets
 
-     will call the wxModule::OnExit function for each module instance.
 
-     Note that your module class does not have to be in a header file.
 
-     For example:
 
-     @code
 
-         // A module to allow DDE initialization/cleanup
 
-       // without calling these functions from app.cpp or from
 
-       // the user's application.
 
-       class wxDDEModule: public wxModule
 
-       {
 
-       public:
 
-           wxDDEModule() { }
 
-           virtual bool OnInit() { wxDDEInitialize(); return true; };
 
-           virtual void OnExit() { wxDDECleanUp(); };
 
-       private:
 
-           wxDECLARE_DYNAMIC_CLASS(wxDDEModule);
 
-       };
 
-       wxIMPLEMENT_DYNAMIC_CLASS(wxDDEModule, wxModule);
 
-       // Another module which uses DDE in its OnInit()
 
-       class MyModule: public wxModule
 
-       {
 
-       public:
 
-           MyModule() { AddDependency(wxCLASSINFO(wxDDEModule)); }
 
-           virtual bool OnInit() { ... code using DDE ... }
 
-           virtual void OnExit() { ... }
 
-       private:
 
-           wxDECLARE_DYNAMIC_CLASS(MyModule);
 
-       };
 
-       wxIMPLEMENT_DYNAMIC_CLASS(MyModule, wxModule);
 
-       // Another module which uses DDE in its OnInit()
 
-       // but uses a named dependency
 
-       class MyModule2: public wxModule
 
-       {
 
-       public:
 
-           MyModule2() { AddDependency("wxDDEModule"); }
 
-           virtual bool OnInit() { ... code using DDE ... }
 
-           virtual void OnExit() { ... }
 
-       private:
 
-           wxDECLARE_DYNAMIC_CLASS(MyModule2)
 
-       };
 
-       wxIMPLEMENT_DYNAMIC_CLASS(MyModule2, wxModule)
 
-     @endcode
 
-     @library{wxbase}
 
-     @category{appmanagement}
 
- */
 
- class wxModule : public wxObject
 
- {
 
- public:
 
-     /**
 
-         Constructs a wxModule object.
 
-     */
 
-     wxModule();
 
-     /**
 
-         Destructor.
 
-     */
 
-     virtual ~wxModule();
 
-     /**
 
-         Provide this function with appropriate cleanup for your module.
 
-     */
 
-     virtual void OnExit() = 0;
 
-     /**
 
-         Provide this function with appropriate initialization for your module.
 
-         If the function returns @false, wxWidgets will exit immediately.
 
-     */
 
-     virtual bool OnInit() = 0;
 
- protected:
 
-     /**
 
-         Call this function from the constructor of the derived class.
 
-         @a dep must be the wxCLASSINFO() of a wxModule-derived class and the
 
-         corresponding module will be loaded before and unloaded after this module.
 
-         @param dep
 
-             The class information object for the dependent module.
 
-     */
 
-     void AddDependency(wxClassInfo* dep);
 
-     /**
 
-         Call this function from the constructor of the derived class.
 
-         This overload allows a dependency to be added by name without access to
 
-         the class info.
 
-         This is useful when a module is  declared entirely in a source file and
 
-         there is no header for the declaration of the module needed by wxCLASSINFO(),
 
-         however errors are not detected until run-time, instead of compile-time, then.
 
-         Note that circular dependencies are detected and result in a fatal error.
 
-         @param classname
 
-             The class name of the dependent module.
 
-     */
 
-     void AddDependency(const char* classname);
 
- };
 
 
  |