// 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;
};
,int nIdTimer
,ULONG
);
-#endif
- // _WX_TIMER_H_
+#endif // _WX_OS2_PRIVATE_TIMER_H_
#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
// 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;
);
}
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
void wxToolBar::OnTimer ( wxTimerEvent& rEvent )
{
- if (rEvent.GetId() == m_vToolTimer.GetTimerId())
+ if (rEvent.GetId() == m_vToolTimer.GetId())
{
wxPoint vPos( m_vXMouse, m_vYMouse );
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();