]> git.saurik.com Git - wxWidgets.git/blob - docs/latex/wx/timer.tex
mention Watcom makefile for wxBase
[wxWidgets.git] / docs / latex / wx / timer.tex
1 \section{\class{wxTimer}}\label{wxtimer}
2
3 The wxTimer class allows you to execute code at specified intervals. Its
4 precision is platform-dependent, but in general will not be better than 1ms nor
5 worse than 1s.
6
7 There are two different ways to use this class:
8
9 \begin{enumerate}
10 \item You may derive a new class from wxTimer and override the
11 \helpref{Notify}{wxtimernotify} member to perform the required action.
12 \item Or you may redirect the notifications to any
13 \helpref{wxEvtHandler}{wxevthandler} derived object by using the non default
14 constructor or \helpref{SetOwner}{wxtimersetowner}. Then use {\tt EVT\_TIMER}
15 macro to connect it to the event handler which will receive
16 \helpref{wxTimerEvent}{wxtimerevent} notifications.
17 \end{enumerate}
18
19 In any case, you must start the timer with \helpref{Start}{wxtimerstart}
20 after constructing it before it actually starts sending notifications. It can
21 be stopped later with \helpref{Stop}{wxtimerstop}.
22
23 {\bf NB:} note that timer can only be used from the main thread currently.
24
25 \wxheading{Derived from}
26
27 \helpref{wxObject}{wxobject}
28
29 \wxheading{Include files}
30
31 <wx/timer.h>
32
33 \wxheading{See also}
34
35 \helpref{::wxStartTimer}{wxstarttimer}, \helpref{::wxGetElapsedTime}{wxgetelapsedtime}, \helpref{wxStopWatch}{wxstopwatch}
36
37 \latexignore{\rtfignore{\wxheading{Members}}}
38
39 \membersection{wxTimer::wxTimer}\label{wxtimerwxtimer}
40
41 \func{}{wxTimer}{\void}
42
43 Default constructor. If you use it to construct the object and don't call
44 \helpref{SetOwner}{wxtimersetowner} later, you must override
45 \helpref{Notify}{wxtimernotify} method to process the notifications.
46
47 \func{}{wxTimer}{\param{wxEvtHandler *}{owner}, \param{int }{id = -1}}
48
49 Creates a timer and associates it with {\it owner}. Please see
50 \helpref{SetOwner}{wxtimersetowner} for the description of parameters.
51
52 \membersection{wxTimer::\destruct{wxTimer}}
53
54 \func{}{\destruct{wxTimer}}{\void}
55
56 Destructor. Stops the timer if it is running.
57
58 \membersection{wxTimer::GetInterval}{wxtimergetinterval}
59
60 \constfunc{int}{GetInterval}{\void}
61
62 Returns the current interval for the timer (in milliseconds).
63
64 \membersection{wxTimer::IsOneShot}\label{wxtimerisoneshot}
65
66 \constfunc{bool}{IsOneShot}{\void}
67
68 Returns {\tt true} if the timer is one shot, i.e.\ if it will stop after firing the
69 first notification automatically.
70
71 \membersection{wxTimer::IsRunning}\label{wxtimerisrunning}
72
73 \constfunc{bool}{IsRunning}{\void}
74
75 Returns {\tt true} if the timer is running, {\tt false} if it is stopped.
76
77 \membersection{wxTimer::Notify}\label{wxtimernotify}
78
79 \func{void}{Notify}{\void}
80
81 This member should be overridden by the user if the default constructor was
82 used and \helpref{SetOwner}{wxtimersetowner} wasn't called.
83
84 Perform whatever action which is to be taken periodically here.
85
86 \membersection{wxTimer::SetOwner}\label{wxtimersetowner}
87
88 \func{void}{SetOwner}{\param{wxEvtHandler *}{owner}, \param{int }{id = -1}}
89
90 Associates the timer with the given {\it owner}\/ object. When the timer is
91 running, the owner will receive \helpref{timer events}{wxtimerevent} with
92 id equal to {\it id}\/ specified here.
93
94 \membersection{wxTimer::Start}\label{wxtimerstart}
95
96 \func{bool}{Start}{\param{int}{milliseconds = -1}, \param{bool }{oneShot = {\tt false}}}
97
98 (Re)starts the timer. If {\it milliseconds}\/ parameter is -1 (value by default),
99 the previous value is used. Returns {\tt false} if the timer could not be started,
100 {\tt true} otherwise (in MS Windows timers are a limited resource).
101
102 If {\it oneShot}\/ is {\tt false} (the default), the \helpref{Notify}{wxtimernotify}
103 function will be called repeatedly until the timer is stopped. If {\tt true},
104 it will be called only once and the timer will stop automatically. To make your
105 code more readable you may also use the following symbolic constants
106 \twocolwidtha{5cm}%
107 \begin{twocollist}\itemsep=0pt
108 \twocolitem{wxTIMER\_CONTINUOUS}{Start a normal, continuously running, timer}
109 \twocolitem{wxTIMER\_ONE\_SHOT}{Start a one shot timer}
110 \end{twocollist}
111
112
113 If the timer was already running, it will be stopped by this method before
114 restarting it.
115
116 \membersection{wxTimer::Stop}\label{wxtimerstop}
117
118 \func{void}{Stop}{\void}
119
120 Stops the timer.
121
122 \section{\class{wxTimerEvent}}\label{wxtimerevent}
123
124 wxTimerEvent object is passed to the event handler of timer events.
125
126 For example:
127
128 \begin{verbatim}
129 class MyFrame : public wxFrame
130 {
131 public:
132 ...
133 void OnTimer(wxTimerEvent& event);
134
135 private:
136 wxTimer m_timer;
137 };
138
139 BEGIN_EVENT_TABLE(MyFrame, wxFrame)
140 EVT_TIMER(TIMER_ID, MyFrame::OnTimer)
141 END_EVENT_TABLE()
142
143 MyFrame::MyFrame()
144 : m_timer(this, TIMER_ID)
145 {
146 m_timer.Start(1000); // 1 second interval
147 }
148
149 void MyFrame::OnTimer(wxTimerEvent& event)
150 {
151 // do whatever you want to do every second here
152 }
153
154 \end{verbatim}
155
156 \wxheading{Include files}
157
158 <wx/timer.h>
159
160 \wxheading{See also}
161
162 \helpref{wxTimer}{wxtimer}
163
164 \latexignore{\rtfignore{\wxheading{Members}}}
165
166 \membersection{wxTimerEvent::GetInterval}\label{wxtimereventgetinterval}
167
168 \constfunc{int}{GetInterval}{\void}
169
170 Returns the interval of the timer which generated this event.
171