Moved all interface headers into a 'wx' subdirectory for proper use of Doxygen path settings.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54385 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
184
interface/wx/timer.h
Normal file
184
interface/wx/timer.h
Normal file
@@ -0,0 +1,184 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: timer.h
|
||||
// Purpose: interface of wxTimer
|
||||
// Author: wxWidgets team
|
||||
// RCS-ID: $Id$
|
||||
// Licence: wxWindows license
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
@class wxTimer
|
||||
@wxheader{timer.h}
|
||||
|
||||
The wxTimer class allows you to execute code at specified intervals. Its
|
||||
precision is platform-dependent, but in general will not be better than 1ms nor
|
||||
worse than 1s.
|
||||
|
||||
There are three different ways to use this class:
|
||||
|
||||
You may derive a new class from wxTimer and override the
|
||||
wxTimer::Notify member to perform the required action.
|
||||
Or you may redirect the notifications to any
|
||||
wxEvtHandler derived object by using the non-default
|
||||
constructor or wxTimer::SetOwner. Then use the @c EVT_TIMER
|
||||
macro to connect it to the event handler which will receive
|
||||
wxTimerEvent notifications.
|
||||
Or you may use a derived class and the @c EVT_TIMER
|
||||
macro to connect it to an event handler defined in the derived class.
|
||||
If the default constructor is used, the timer object will be its
|
||||
own owner object, since it is derived from wxEvtHandler.
|
||||
|
||||
In any case, you must start the timer with wxTimer::Start
|
||||
after constructing it before it actually starts sending notifications. It can
|
||||
be stopped later with wxTimer::Stop.
|
||||
|
||||
@note A timer can only be used from the main thread.
|
||||
|
||||
@library{wxbase}
|
||||
@category{misc}
|
||||
|
||||
@see wxStopWatch
|
||||
*/
|
||||
class wxTimer : public wxEvtHandler
|
||||
{
|
||||
public:
|
||||
//@{
|
||||
/**
|
||||
Creates a timer and associates it with @e owner. Please see
|
||||
SetOwner() for the description of parameters.
|
||||
*/
|
||||
wxTimer();
|
||||
wxTimer(wxEvtHandler* owner, int id = -1);
|
||||
//@}
|
||||
|
||||
/**
|
||||
Destructor. Stops the timer if it is running.
|
||||
*/
|
||||
~wxTimer();
|
||||
|
||||
/**
|
||||
Returns the ID of the events generated by this timer.
|
||||
*/
|
||||
int GetId() const;
|
||||
|
||||
/**
|
||||
Returns the current interval for the timer (in milliseconds).
|
||||
*/
|
||||
int GetInterval() const;
|
||||
|
||||
/**
|
||||
Returns the current @e owner of the timer.
|
||||
If non-@NULL this is the event handler which will receive the
|
||||
@ref overview_wxtimerevent "timer events" when the timer is running.
|
||||
*/
|
||||
wxEvtHandler GetOwner() const;
|
||||
|
||||
/**
|
||||
Returns @true if the timer is one shot, i.e. if it will stop after firing the
|
||||
first notification automatically.
|
||||
*/
|
||||
bool IsOneShot() const;
|
||||
|
||||
/**
|
||||
Returns @true if the timer is running, @false if it is stopped.
|
||||
*/
|
||||
bool IsRunning() const;
|
||||
|
||||
/**
|
||||
This member should be overridden by the user if the default constructor was
|
||||
used and SetOwner() wasn't called.
|
||||
Perform whatever action which is to be taken periodically here.
|
||||
*/
|
||||
void Notify();
|
||||
|
||||
/**
|
||||
Associates the timer with the given @a owner object. When the timer is
|
||||
running, the owner will receive @ref overview_wxtimerevent "timer events" with
|
||||
id equal to @a id specified here.
|
||||
*/
|
||||
void SetOwner(wxEvtHandler* owner, int id = -1);
|
||||
|
||||
/**
|
||||
(Re)starts the timer. If @a milliseconds parameter is -1 (value by default),
|
||||
the previous value is used. Returns @false if the timer could not be started,
|
||||
@true otherwise (in MS Windows timers are a limited resource).
|
||||
If @a oneShot is @false (the default), the Notify()
|
||||
function will be called repeatedly until the timer is stopped. If @true,
|
||||
it will be called only once and the timer will stop automatically. To make your
|
||||
code more readable you may also use the following symbolic constants:
|
||||
|
||||
wxTIMER_CONTINUOUS
|
||||
|
||||
Start a normal, continuously running, timer
|
||||
|
||||
wxTIMER_ONE_SHOT
|
||||
|
||||
Start a one shot timer
|
||||
|
||||
If the timer was already running, it will be stopped by this method before
|
||||
restarting it.
|
||||
*/
|
||||
bool Start(int milliseconds = -1, bool oneShot = false);
|
||||
|
||||
/**
|
||||
Stops the timer.
|
||||
*/
|
||||
void Stop();
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
@class wxTimerEvent
|
||||
@wxheader{timer.h}
|
||||
|
||||
wxTimerEvent object is passed to the event handler of timer events.
|
||||
|
||||
For example:
|
||||
|
||||
@code
|
||||
class MyFrame : public wxFrame
|
||||
{
|
||||
public:
|
||||
...
|
||||
void OnTimer(wxTimerEvent& event);
|
||||
|
||||
private:
|
||||
wxTimer m_timer;
|
||||
};
|
||||
|
||||
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
|
||||
EVT_TIMER(TIMER_ID, MyFrame::OnTimer)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
MyFrame::MyFrame()
|
||||
: m_timer(this, TIMER_ID)
|
||||
{
|
||||
m_timer.Start(1000); // 1 second interval
|
||||
}
|
||||
|
||||
void MyFrame::OnTimer(wxTimerEvent& event)
|
||||
{
|
||||
// do whatever you want to do every second here
|
||||
}
|
||||
@endcode
|
||||
|
||||
@library{wxbase}
|
||||
@category{events}
|
||||
|
||||
@see wxTimer
|
||||
*/
|
||||
class wxTimerEvent : public wxEvent
|
||||
{
|
||||
public:
|
||||
/**
|
||||
Returns the interval of the timer which generated this event.
|
||||
*/
|
||||
int GetInterval() const;
|
||||
|
||||
/**
|
||||
Returns the timer object which generated this event.
|
||||
*/
|
||||
wxTimer GetTimer() const;
|
||||
};
|
||||
|
Reference in New Issue
Block a user