X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e4db172a3b318df9aff178eb6c5da149d56e0859..404b319a85dadd7decf7a5a5331020520031a41c:/src/os2/timer.cpp diff --git a/src/os2/timer.cpp b/src/os2/timer.cpp index 9036f7d5aa..764afc22ab 100644 --- a/src/os2/timer.cpp +++ b/src/os2/timer.cpp @@ -12,6 +12,8 @@ // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" +#include "wx/os2/private/timer.h" + #ifndef WX_PRECOMP #include "wx/list.h" #include "wx/window.h" @@ -23,8 +25,6 @@ #include "wx/os2/private.h" -#include "wx/timer.h" - #include #include @@ -36,7 +36,7 @@ // define a hash containing all the timers: it is indexed by timer id and // contains the corresponding timer -WX_DECLARE_HASH_MAP(unsigned long, wxTimer *, wxIntegerHash, wxIntegerEqual, +WX_DECLARE_HASH_MAP(unsigned long, wxOS2TimerImpl *, wxIntegerHash, wxIntegerEqual, wxTimerMap); // instead of using a global here, wrap it in a static function as otherwise it @@ -56,12 +56,6 @@ static wxTimerMap& TimerMap() // timer callback used for all timers ULONG wxTimerProc(HWND hwnd, ULONG, int nIdTimer, ULONG); -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -IMPLEMENT_ABSTRACT_CLASS(wxTimer, wxEvtHandler) - // ============================================================================ // implementation // ============================================================================ @@ -70,37 +64,10 @@ IMPLEMENT_ABSTRACT_CLASS(wxTimer, wxEvtHandler) // wxTimer class // ---------------------------------------------------------------------------- -void wxTimer::Init() -{ - m_ulId = 0; -} - -wxTimer::~wxTimer() -{ - wxTimer::Stop(); -} - -void wxTimer::Notify() +bool wxOS2TimerImpl::Start( int nMilliseconds, bool bOneShot ) { - // - // The base class version generates an event if it has owner - which it - // should because otherwise nobody can process timer events, but it does - // not use the OS's ID, which OS/2 must have to figure out which timer fired - // - wxCHECK_RET( m_owner, _T("wxTimer::Notify() should be overridden.") ); - - wxTimerEvent vEvent( m_idTimer - ,m_milli - ); - - (void)m_owner->ProcessEvent(vEvent); -} // end of wxTimer::Notify - -bool wxTimer::Start( int nMilliseconds, bool bOneShot ) -{ - (void)wxTimerBase::Start( nMilliseconds, bOneShot ); - - wxCHECK_MSG( m_milli > 0L, false, wxT("invalid value for timer") ); + if ( !wxTimerImpl::Start( nMilliseconds, bOneShot ) ) + return false; wxWindow* pWin = NULL; @@ -114,11 +81,14 @@ bool wxTimer::Start( int nMilliseconds, bool bOneShot ) ); } else + { m_ulId = ::WinStartTimer( m_Hab ,NULLHANDLE ,0 ,(ULONG)nMilliseconds ); + } + if (m_ulId > 0L) { // check that SetTimer() didn't reuse an existing id: according to @@ -147,7 +117,7 @@ bool wxTimer::Start( int nMilliseconds, bool bOneShot ) } } -void wxTimer::Stop() +void wxOS2TimerImpl::Stop() { if ( m_ulId ) { @@ -170,7 +140,7 @@ void wxTimer::Stop() // ---------------------------------------------------------------------------- void wxProcessTimer( - wxTimer& rTimer + wxOS2TimerImpl& rTimer ) { //