]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/module.tex
added unit tests for wxStringStreams
[wxWidgets.git] / docs / latex / wx / module.tex
CommitLineData
a660d684
KB
1\section{\class{wxModule}}\label{wxmodule}
2
fc2171bd
JS
3The module system is a very simple mechanism to allow applications (and parts of wxWidgets itself) to
4define initialization and cleanup functions that are automatically called on wxWidgets
a660d684
KB
5startup and exit.
6
7To define a new kind of module, derive a class from wxModule, override the OnInit and OnExit functions,
8and add the DECLARE\_DYNAMIC\_CLASS and IMPLEMENT\_DYNAMIC\_CLASS to header and implementation files
fc2171bd
JS
9(which can be the same file). On initialization, wxWidgets will find all classes derived from wxModule,
10create an instance of each, and call each OnInit function. On exit, wxWidgets will call the OnExit
a660d684
KB
11function for each module instance.
12
e2a6f233
JS
13Note that your module class does not have to be in a header file.
14
15For example:
16
17\begin{verbatim}
18 // A module to allow DDE initialization/cleanup
19 // without calling these functions from app.cpp or from
20 // the user's application.
21
22 class wxDDEModule: public wxModule
23 {
24 DECLARE_DYNAMIC_CLASS(wxDDEModule)
25 public:
26 wxDDEModule() {}
cc81d32f 27 bool OnInit() { wxDDEInitialize(); return true; };
e2a6f233
JS
28 void OnExit() { wxDDECleanUp(); };
29 };
30
31 IMPLEMENT_DYNAMIC_CLASS(wxDDEModule, wxModule)
32\end{verbatim}
33
a660d684
KB
34\wxheading{Derived from}
35
36\helpref{wxObject}{wxobject}
37
954b8ae6
JS
38\wxheading{Include files}
39
40<wx/module.h>
41
a660d684
KB
42\latexignore{\rtfignore{\wxheading{Members}}}
43
44\membersection{wxModule::wxModule}\label{wxmoduleconstr}
45
46\func{}{wxModule}{\void}
47
48Constructs a wxModule object.
49
50\membersection{wxModule::\destruct{wxModule}}
51
52\func{}{\destruct{wxModule}}{\void}
53
54Destructor.
55
56\membersection{wxModule::CleanupModules}\label{wxmodulecleanupmodules}
57
58\func{static void}{CleanupModules}{\void}
59
fc2171bd 60Calls Exit for each module instance. Called by wxWidgets on exit, so there is no
a660d684
KB
61need for an application to call it.
62
63\membersection{wxModule::Exit}\label{wxmoduleexit}
64
65\func{void}{Exit}{\void}
66
fc2171bd 67Calls OnExit. This function is called by wxWidgets and should not need to be called
a660d684
KB
68by an application.
69
70\membersection{wxModule::Init}\label{wxmoduleinit}
71
72\func{bool}{Init}{\void}
73
fc2171bd 74Calls OnInit. This function is called by wxWidgets and should not need to be called
a660d684
KB
75by an application.
76
77\membersection{wxModule::InitializeModules}\label{wxmoduleinitializemodules}
78
79\func{static bool}{InitializeModules}{\void}
80
fc2171bd 81Calls Init for each module instance. Called by wxWidgets on startup, so there is no
a660d684
KB
82need for an application to call it.
83
84\membersection{wxModule::OnExit}\label{wxmoduleonexit}
85
dfad0599 86\func{virtual void}{OnExit}{\void}
a660d684
KB
87
88Provide this function with appropriate cleanup for your module.
89
90\membersection{wxModule::OnInit}\label{wxmoduleoninit}
91
92\func{virtual bool}{OnInit}{\void}
93
94Provide this function with appropriate initialization for your module. If the function
fc2171bd 95returns false, wxWidgets will exit immediately.
a660d684
KB
96
97\membersection{wxModule::RegisterModule}\label{wxmoduleregistermodule}
98
99\func{static void}{RegisterModule}{\param{wxModule*}{ module}}
100
fc2171bd 101Registers this module with wxWidgets. Called by wxWidgets on startup, so there is no
a660d684
KB
102need for an application to call it.
103
104\membersection{wxModule::RegisterModules}\label{wxmoduleregistermodules}
105
106\func{static bool}{RegisterModules}{\void}
107
fc2171bd 108Creates instances of and registers all modules. Called by wxWidgets on startup, so there is no
a660d684
KB
109need for an application to call it.
110