diff --git a/include/wx/os2/private/timer.h b/include/wx/os2/private/timer.h index fc231d26c3..be2e3d8a30 100644 --- a/include/wx/os2/private/timer.h +++ b/include/wx/os2/private/timer.h @@ -9,31 +9,24 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifndef _WX_TIMER_H_ -#define _WX_TIMER_H_ +#ifndef _WX_OS2_PRIVATE_TIMER_H_ +#define _WX_OS2_PRIVATE_TIMER_H_ -#include "wx/private/timerimpl.h" +#include "wx/private/timer.h" class WXDLLEXPORT wxOS2TimerImpl: public wxTimerImpl { friend void wxProcessTimer(wxOS2TimerImpl& timer); public: - wxOS2TimerImpl(wxTimer *timer) : wxTimerImpl(timer) { Init(); } - virtual ~wxOS2TimerImpl(); + wxOS2TimerImpl(wxTimer *timer) : wxTimerImpl(timer) { m_ulId = 0; } - virtual void Notify(void); - virtual bool Start( int nMilliseconds = -1 - ,bool bOneShot = FALSE - ); + virtual bool Start(int nMilliseconds = -1, bool bOneShot = FALSE); virtual void Stop(void); - inline virtual bool IsRunning(void) const { return m_ulId != 0L; } - inline int GetTimerId(void) const { return m_idTimer; } + virtual bool IsRunning(void) const { return m_ulId != 0L; } protected: - void Init(void); - ULONG m_ulId; HAB m_Hab; }; @@ -43,5 +36,4 @@ extern ULONG wxTimerProc( HWND WXUNUSED(hwnd) ,int nIdTimer ,ULONG ); -#endif - // _WX_TIMER_H_ +#endif // _WX_OS2_PRIVATE_TIMER_H_ diff --git a/src/os2/evtloop.cpp b/src/os2/evtloop.cpp index e558aaefeb..187227a0b5 100644 --- a/src/os2/evtloop.cpp +++ b/src/os2/evtloop.cpp @@ -36,6 +36,7 @@ #include "wx/ptr_scpd.h" #include "wx/os2/private.h" +#include "wx/os2/private/timer.h" // for wxTimerProc #if wxUSE_THREADS // define the array of QMSG strutures diff --git a/src/os2/timer.cpp b/src/os2/timer.cpp index 46f01a8ded..764afc22ab 100644 --- a/src/os2/timer.cpp +++ b/src/os2/timer.cpp @@ -64,37 +64,10 @@ ULONG wxTimerProc(HWND hwnd, ULONG, int nIdTimer, ULONG); // wxTimer class // ---------------------------------------------------------------------------- -void wxOS2TimerImpl::Init() -{ - m_ulId = 0; -} - -wxOS2TimerImpl::~wxOS2TimerImpl() -{ - wxOS2TimerImpl::Stop(); -} - -void wxOS2TimerImpl::Notify() -{ - // - // 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 wxOS2TimerImpl::Start( int nMilliseconds, bool bOneShot ) { - (void)wxTimerImpl::Start( nMilliseconds, bOneShot ); - - wxCHECK_MSG( m_milli > 0L, false, wxT("invalid value for timer") ); + if ( !wxTimerImpl::Start( nMilliseconds, bOneShot ) ) + return false; wxWindow* pWin = NULL; @@ -108,11 +81,14 @@ bool wxOS2TimerImpl::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 diff --git a/src/os2/toolbar.cpp b/src/os2/toolbar.cpp index 40e61c1be4..edc4752374 100644 --- a/src/os2/toolbar.cpp +++ b/src/os2/toolbar.cpp @@ -1169,7 +1169,7 @@ void wxToolBar::RaiseTool ( wxToolBarToolBase* pToolBase, void wxToolBar::OnTimer ( wxTimerEvent& rEvent ) { - if (rEvent.GetId() == m_vToolTimer.GetTimerId()) + if (rEvent.GetId() == m_vToolTimer.GetId()) { wxPoint vPos( m_vXMouse, m_vYMouse ); @@ -1177,7 +1177,7 @@ void wxToolBar::OnTimer ( wxTimerEvent& rEvent ) m_vToolTimer.Stop(); m_vToolExpTimer.Start(4000L, TRUE); } - else if (rEvent.GetId() == m_vToolExpTimer.GetTimerId()) + else if (rEvent.GetId() == m_vToolExpTimer.GetId()) { m_pToolTip->HideToolTipWindow(); GetParent()->Refresh();