From 5d644707ca96dcaa63dc5a24c9eb5c2b7ee0b50d Mon Sep 17 00:00:00 2001 From: David Webster Date: Thu, 11 Jul 2002 22:14:39 +0000 Subject: [PATCH] Toolbar/tooltip udates git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16141 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/os2/timer.h | 2 +- src/os2/timer.cpp | 37 +++++++++++++++++++++++++++---------- src/os2/toolbar.cpp | 4 ++-- src/os2/tooltip.cpp | 2 +- 4 files changed, 31 insertions(+), 14 deletions(-) diff --git a/include/wx/os2/timer.h b/include/wx/os2/timer.h index 3c9ff0267d..90019563b3 100644 --- a/include/wx/os2/timer.h +++ b/include/wx/os2/timer.h @@ -36,7 +36,7 @@ public: virtual void Stop(void); inline virtual bool IsRunning(void) const { return m_ulId != 0L; } - inline ULONG GetTimerId(void) const { return m_ulId; } + inline int GetTimerId(void) const { return m_idTimer; } protected: void Init(void); diff --git a/src/os2/timer.cpp b/src/os2/timer.cpp index 292dfbb1f9..bb897e1f78 100644 --- a/src/os2/timer.cpp +++ b/src/os2/timer.cpp @@ -65,7 +65,7 @@ void wxTimer::Notify() // wxCHECK_RET( m_owner, _T("wxTimer::Notify() should be overridden.") ); - wxTimerEvent vEvent( m_ulId + wxTimerEvent vEvent( m_idTimer ,m_milli ); @@ -85,14 +85,23 @@ bool wxTimer::Start( wxTimerList.DeleteObject(this); - // - // Create a windowless timer - // - m_ulId = ::WinStartTimer( m_Hab - ,NULLHANDLE - ,0 - ,(ULONG)nMilliseconds - ); + wxWindow* pWin = NULL; + + if (m_owner) + { + pWin = (wxWindow*)m_owner; + m_ulId = ::WinStartTimer( m_Hab + ,pWin->GetHWND() + ,m_idTimer + ,(ULONG)nMilliseconds + ); + } + else + m_ulId = ::WinStartTimer( m_Hab + ,NULLHANDLE + ,0 + ,(ULONG)nMilliseconds + ); if (m_ulId > 0L) { wxTimerList.Append( m_ulId @@ -112,9 +121,17 @@ void wxTimer::Stop() { if ( m_ulId ) { - ::WinStopTimer(m_Hab, NULL, m_ulId); + if (m_owner) + { + wxWindow* pWin = (wxWindow*)m_owner; + + ::WinStopTimer(m_Hab, pWin->GetHWND(), m_ulId); + } + else + ::WinStopTimer(m_Hab, NULLHANDLE, m_ulId); wxTimerList.DeleteObject(this); } + m_ulId = 0L; } // ---------------------------------------------------------------------------- diff --git a/src/os2/toolbar.cpp b/src/os2/toolbar.cpp index a64272e0ab..2cf452ba77 100644 --- a/src/os2/toolbar.cpp +++ b/src/os2/toolbar.cpp @@ -1439,7 +1439,7 @@ void wxToolBar::OnTimer ( wxTimerEvent& rEvent ) { - if (rEvent.GetId() == (int)m_vToolTimer.GetTimerId()) + if (rEvent.GetId() == m_vToolTimer.GetTimerId()) { wxPoint vPos( m_vXMouse ,m_vYMouse @@ -1449,7 +1449,7 @@ void wxToolBar::OnTimer ( m_vToolTimer.Stop(); m_vToolExpTimer.Start(3000L, TRUE); } - else if (rEvent.GetId() == (int)m_vToolExpTimer.GetTimerId()) + else if (rEvent.GetId() == m_vToolExpTimer.GetTimerId()) { m_pToolTip->HideToolTipWindow(); GetParent()->Refresh(); diff --git a/src/os2/tooltip.cpp b/src/os2/tooltip.cpp index 38d58abce4..a89e99ae42 100644 --- a/src/os2/tooltip.cpp +++ b/src/os2/tooltip.cpp @@ -98,7 +98,7 @@ void wxToolTip::DisplayToolTipWindow( LONG lWidth = 0L; LONG lHeight = 0L; - lWidth = m_sText.Length() * 13; + lWidth = m_sText.Length() * 8; lHeight = 15; ::WinSetWindowPos( m_hWnd ,HWND_TOP -- 2.47.2