1 \section{\class{wxTimer
}}\label{wxtimer
}
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
7 There are two different ways to use this class:
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.
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
}.
23 {\bf NB:
} note that timer can only be used from the main thread currently.
25 \wxheading{Derived from
}
27 \helpref{wxObject
}{wxobject
}
29 \wxheading{Include files
}
35 \helpref{::wxStartTimer
}{wxstarttimer
},
\helpref{::wxGetElapsedTime
}{wxgetelapsedtime
},
\helpref{wxStopWatch
}{wxstopwatch
}
37 \latexignore{\rtfignore{\wxheading{Members
}}}
39 \membersection{wxTimer::wxTimer
}\label{wxtimerwxtimer
}
41 \func{}{wxTimer
}{\void}
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.
47 \func{}{wxTimer
}{\param{wxEvtHandler *
}{owner
},
\param{int
}{id = -
1}}
49 Creates a timer and associates it with
{\it owner
}. Please see
50 \helpref{SetOwner
}{wxtimersetowner
} for the description of parameters.
52 \membersection{wxTimer::
\destruct{wxTimer
}}
54 \func{}{\destruct{wxTimer
}}{\void}
56 Destructor. Stops the timer if it is running.
58 \membersection{wxTimer::GetInterval
}{wxtimergetinterval
}
60 \constfunc{int
}{GetInterval
}{\void}
62 Returns the current interval for the timer (in milliseconds).
64 \membersection{wxTimer::IsOneShot
}\label{wxtimerisoneshot
}
66 \constfunc{bool
}{IsOneShot
}{\void}
68 Returns
{\tt TRUE
} if the timer is one shot, i.e.\ if it will stop after firing the
69 first notification automatically.
71 \membersection{wxTimer::IsRunning
}\label{wxtimerisrunning
}
73 \constfunc{bool
}{IsRunning
}{\void}
75 Returns
{\tt TRUE
} if the timer is running,
{\tt FALSE
} if it is stopped.
77 \membersection{wxTimer::Notify
}\label{wxtimernotify
}
79 \func{void
}{Notify
}{\void}
81 This member should be overridden by the user if the default constructor was
82 used and
\helpref{SetOwner
}{wxtimersetowner
} wasn't called.
84 Perform whatever action which is to be taken periodically here.
86 \membersection{wxTimer::SetOwner
}\label{wxtimersetowner
}
88 \func{void
}{SetOwner
}{\param{wxEvtHandler *
}{owner
},
\param{int
}{id = -
1}}
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.
94 \membersection{wxTimer::Start
}\label{wxtimerstart
}
96 \func{bool
}{Start
}{\param{int
}{milliseconds = -
1},
\param{bool
}{oneShot =
{\tt FALSE
}}}
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).
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
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
}
113 If the timer was already running, it will be stopped by this method before
116 \membersection{wxTimer::Stop
}\label{wxtimerstop
}
118 \func{void
}{Stop
}{\void}
122 \section{\class{wxTimerEvent
}}\label{wxtimerevent
}
124 wxTimerEvent object is passed to the event handler of timer events.
129 class MyFrame : public wxFrame
133 void OnTimer(wxTimerEvent& event);
139 BEGIN_EVENT_TABLE(MyFrame, wxFrame)
140 EVT_TIMER(TIMER_ID, MyFrame::OnTimer)
144 : m_timer(this, TIMER_ID)
146 m_timer.Start(
1000); //
1 second interval
149 void MyFrame::OnTimer(wxTimerEvent& event)
151 // do whatever you want to do every second here
156 \wxheading{Include files
}
162 \helpref{wxTimer
}{wxtimer
}
164 \latexignore{\rtfignore{\wxheading{Members
}}}
166 \membersection{wxTimerEvent::GetInterval
}\label{wxtimereventgetinterval
}
168 \constfunc{int
}{GetInterval
}{\void}
170 Returns the interval of the timer which generated this event.