preparation for allowing to use wxTimer in wxBase (heavily modified patch 1113088):

1. Changed wxTimer to use wxTimerImpl
2. Added Unix-specific generic timer implementation
3. Added wxAppTraits::CreateTimerImpl()


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45544 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2007-04-20 01:29:16 +00:00
parent a9c9588480
commit c2ca375c56
62 changed files with 1554 additions and 931 deletions

View File

@@ -12,7 +12,7 @@
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#include "wx/timer.h"
#include "wx/os2/private/timer.h"
#ifndef WX_PRECOMP
#include "wx/list.h"
@@ -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,17 +64,17 @@ IMPLEMENT_ABSTRACT_CLASS(wxTimer, wxEvtHandler)
// wxTimer class
// ----------------------------------------------------------------------------
void wxTimer::Init()
void wxOS2TimerImpl::Init()
{
m_ulId = 0;
}
wxTimer::~wxTimer()
wxOS2TimerImpl::~wxOS2TimerImpl()
{
wxTimer::Stop();
wxOS2TimerImpl::Stop();
}
void wxTimer::Notify()
void wxOS2TimerImpl::Notify()
{
//
// The base class version generates an event if it has owner - which it
@@ -96,9 +90,9 @@ void wxTimer::Notify()
(void)m_owner->ProcessEvent(vEvent);
} // end of wxTimer::Notify
bool wxTimer::Start( int nMilliseconds, bool bOneShot )
bool wxOS2TimerImpl::Start( int nMilliseconds, bool bOneShot )
{
(void)wxTimerBase::Start( nMilliseconds, bOneShot );
(void)wxTimerImpl::Start( nMilliseconds, bOneShot );
wxCHECK_MSG( m_milli > 0L, false, wxT("invalid value for timer") );
@@ -147,7 +141,7 @@ bool wxTimer::Start( int nMilliseconds, bool bOneShot )
}
}
void wxTimer::Stop()
void wxOS2TimerImpl::Stop()
{
if ( m_ulId )
{
@@ -170,7 +164,7 @@ void wxTimer::Stop()
// ----------------------------------------------------------------------------
void wxProcessTimer(
wxTimer& rTimer
wxOS2TimerImpl& rTimer
)
{
//

View File

@@ -33,6 +33,7 @@
#endif //WX_PRECOMP
#include "wx/apptrait.h"
#include "wx/os2/private/timer.h"
#include "wx/os2/private.h" // includes <windows.h>
@@ -261,6 +262,11 @@ wxPortId wxGUIAppTraits::GetToolkitVersion(int *verMaj, int *verMin) const
return wxPORT_OS2;
}
wxTimerImpl* wxGUIAppTraits::CreateTimerImpl(wxTimer *timer)
{
return new wxOS2TimerImpl(timer);
}
// ---------------------------------------------------------------------------
// window information functions