mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-26 15:49:50 -06:00
Import r67258 of the wxWidgets trunk, which I expect will before
long become wxWidgets 2.9.2, which in turn is expected to be the last 2.9 release before the 3.0 stable release. Since the full wxWidgets distribution is rather large, I have imported only the parts that we use, on a subdirectory basis: art include/wx/*.* include/wx/aui include/wx/cocoa include/wx/generic include/wx/gtk include/wx/meta include/wx/msw include/wx/osx include/wx/persist include/wx/private include/wx/protocol include/wx/unix src/aui src/common src/generic src/gtk src/msw src/osx src/unix git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7380 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
193
Externals/wxWidgets3/include/wx/timer.h
vendored
Normal file
193
Externals/wxWidgets3/include/wx/timer.h
vendored
Normal file
@ -0,0 +1,193 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: wx/timer.h
|
||||
// Purpose: wxTimer, wxStopWatch and global time-related functions
|
||||
// Author: Julian Smart
|
||||
// Modified by: Vadim Zeitlin (wxTimerBase)
|
||||
// Guillermo Rodriguez (global clean up)
|
||||
// Created: 04/01/98
|
||||
// RCS-ID: $Id: timer.h 58757 2009-02-08 11:45:59Z VZ $
|
||||
// Copyright: (c) Julian Smart
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_TIMER_H_BASE_
|
||||
#define _WX_TIMER_H_BASE_
|
||||
|
||||
#include "wx/defs.h"
|
||||
|
||||
#if wxUSE_TIMER
|
||||
|
||||
#include "wx/object.h"
|
||||
#include "wx/longlong.h"
|
||||
#include "wx/event.h"
|
||||
#include "wx/stopwatch.h" // for backwards compatibility
|
||||
#include "wx/utils.h"
|
||||
|
||||
|
||||
// more readable flags for Start():
|
||||
|
||||
// generate notifications periodically until the timer is stopped (default)
|
||||
#define wxTIMER_CONTINUOUS false
|
||||
|
||||
// only send the notification once and then stop the timer
|
||||
#define wxTIMER_ONE_SHOT true
|
||||
|
||||
class WXDLLIMPEXP_FWD_BASE wxTimerImpl;
|
||||
class WXDLLIMPEXP_FWD_BASE wxTimerEvent;
|
||||
|
||||
// timer event type
|
||||
wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_BASE, wxEVT_TIMER, wxTimerEvent);
|
||||
|
||||
// the interface of wxTimer class
|
||||
class WXDLLIMPEXP_BASE wxTimer : public wxEvtHandler
|
||||
{
|
||||
public:
|
||||
// ctors and initializers
|
||||
// ----------------------
|
||||
|
||||
// default: if you don't call SetOwner(), your only chance to get timer
|
||||
// notifications is to override Notify() in the derived class
|
||||
wxTimer()
|
||||
{
|
||||
Init();
|
||||
SetOwner(this);
|
||||
}
|
||||
|
||||
// ctor which allows to avoid having to override Notify() in the derived
|
||||
// class: the owner will get timer notifications which can be handled with
|
||||
// EVT_TIMER
|
||||
wxTimer(wxEvtHandler *owner, int timerid = wxID_ANY)
|
||||
{
|
||||
Init();
|
||||
SetOwner(owner, timerid);
|
||||
}
|
||||
|
||||
// same as ctor above
|
||||
void SetOwner(wxEvtHandler *owner, int timerid = wxID_ANY);
|
||||
|
||||
virtual ~wxTimer();
|
||||
|
||||
|
||||
// working with the timer
|
||||
// ----------------------
|
||||
|
||||
// NB: Start() and Stop() are not supposed to be overridden, they are only
|
||||
// virtual for historical reasons, only Notify() can be overridden
|
||||
|
||||
// start the timer: if milliseconds == -1, use the same value as for the
|
||||
// last Start()
|
||||
//
|
||||
// it is now valid to call Start() multiple times: this just restarts the
|
||||
// timer if it is already running
|
||||
virtual bool Start(int milliseconds = -1, bool oneShot = false);
|
||||
|
||||
// stop the timer, does nothing if the timer is not running
|
||||
virtual void Stop();
|
||||
|
||||
// override this in your wxTimer-derived class if you want to process timer
|
||||
// messages in it, use non default ctor or SetOwner() otherwise
|
||||
virtual void Notify();
|
||||
|
||||
|
||||
// accessors
|
||||
// ---------
|
||||
|
||||
// get the object notified about the timer events
|
||||
wxEvtHandler *GetOwner() const;
|
||||
|
||||
// return true if the timer is running
|
||||
bool IsRunning() const;
|
||||
|
||||
// return the timer ID
|
||||
int GetId() const;
|
||||
|
||||
// get the (last) timer interval in milliseconds
|
||||
int GetInterval() const;
|
||||
|
||||
// return true if the timer is one shot
|
||||
bool IsOneShot() const;
|
||||
|
||||
protected:
|
||||
// common part of all ctors
|
||||
void Init();
|
||||
|
||||
wxTimerImpl *m_impl;
|
||||
|
||||
wxDECLARE_NO_COPY_CLASS(wxTimer);
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxTimerRunner: starts the timer in its ctor, stops in the dtor
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class WXDLLIMPEXP_BASE wxTimerRunner
|
||||
{
|
||||
public:
|
||||
wxTimerRunner(wxTimer& timer) : m_timer(timer) { }
|
||||
wxTimerRunner(wxTimer& timer, int milli, bool oneShot = false)
|
||||
: m_timer(timer)
|
||||
{
|
||||
m_timer.Start(milli, oneShot);
|
||||
}
|
||||
|
||||
void Start(int milli, bool oneShot = false)
|
||||
{
|
||||
m_timer.Start(milli, oneShot);
|
||||
}
|
||||
|
||||
~wxTimerRunner()
|
||||
{
|
||||
if ( m_timer.IsRunning() )
|
||||
{
|
||||
m_timer.Stop();
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
wxTimer& m_timer;
|
||||
|
||||
wxDECLARE_NO_COPY_CLASS(wxTimerRunner);
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxTimerEvent
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class WXDLLIMPEXP_BASE wxTimerEvent : public wxEvent
|
||||
{
|
||||
public:
|
||||
wxTimerEvent()
|
||||
: wxEvent(wxID_ANY, wxEVT_TIMER) { m_timer=NULL; }
|
||||
|
||||
wxTimerEvent(wxTimer& timer)
|
||||
: wxEvent(timer.GetId(), wxEVT_TIMER),
|
||||
m_timer(&timer)
|
||||
{
|
||||
SetEventObject(timer.GetOwner());
|
||||
}
|
||||
|
||||
// accessors
|
||||
int GetInterval() const { return m_timer->GetInterval(); }
|
||||
wxTimer& GetTimer() const { return *m_timer; }
|
||||
|
||||
// implement the base class pure virtual
|
||||
virtual wxEvent *Clone() const { return new wxTimerEvent(*this); }
|
||||
virtual wxEventCategory GetEventCategory() const { return wxEVT_CATEGORY_TIMER; }
|
||||
|
||||
private:
|
||||
wxTimer* m_timer;
|
||||
|
||||
DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxTimerEvent)
|
||||
};
|
||||
|
||||
typedef void (wxEvtHandler::*wxTimerEventFunction)(wxTimerEvent&);
|
||||
|
||||
#define wxTimerEventHandler(func) \
|
||||
wxEVENT_HANDLER_CAST(wxTimerEventFunction, func)
|
||||
|
||||
#define EVT_TIMER(timerid, func) \
|
||||
wx__DECLARE_EVT1(wxEVT_TIMER, timerid, wxTimerEventHandler(func))
|
||||
|
||||
#endif // wxUSE_TIMER
|
||||
|
||||
#endif // _WX_TIMER_H_BASE_
|
Reference in New Issue
Block a user