fixed bug with using wrong interval (-1) when restarting a running timer

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15536 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2002-05-12 22:46:12 +00:00
parent 3fde374f3f
commit 62f17a1864

View File

@@ -53,6 +53,11 @@ UINT WINAPI _EXPORT wxTimerProc(HWND hwnd, WORD, int idTimer, DWORD);
#define _EXPORT _export
#endif
// should probably be in wx/msw/private.h
#ifdef __WXMICROWIN__
#define MakeProcInstance(proc, hinst) proc
#endif
IMPLEMENT_ABSTRACT_CLASS(wxTimer, wxObject)
// ============================================================================
@@ -81,18 +86,11 @@ bool wxTimer::Start(int milliseconds, bool oneShot)
wxCHECK_MSG( m_milli > 0, FALSE, wxT("invalid value for timer timeour") );
wxTimerList.DeleteObject(this);
#ifdef __WXMICROWIN__
m_id = SetTimer(NULL, (UINT)(m_id ? m_id : 1),
(UINT)milliseconds, (TIMERPROC) wxTimerProc);
#else
TIMERPROC wxTimerProcInst = (TIMERPROC)
MakeProcInstance((FARPROC)wxTimerProc, wxGetInstance());
m_id = SetTimer(NULL, (UINT)(m_id ? m_id : 1),
(UINT)milliseconds, wxTimerProcInst);
#endif
m_id = ::SetTimer(NULL, (UINT)(m_id ? m_id : 1),
(UINT)m_milli, wxTimerProcInst);
if ( m_id > 0 )
{
@@ -112,7 +110,8 @@ void wxTimer::Stop()
{
if ( m_id )
{
KillTimer(NULL, (UINT)m_id);
::KillTimer(NULL, (UINT)m_id);
wxTimerList.DeleteObject(this);
}