More Motif stuff incl. beginnings of wxToolBar
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@895 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -14,13 +14,39 @@
|
||||
#endif
|
||||
|
||||
#include "wx/timer.h"
|
||||
#include "wx/app.h"
|
||||
#include "wx/list.h"
|
||||
|
||||
#include <Xm/Xm.h>
|
||||
|
||||
#include "wx/motif/private.h"
|
||||
|
||||
#if !USE_SHARED_LIBRARY
|
||||
IMPLEMENT_ABSTRACT_CLASS(wxTimer, wxObject)
|
||||
#endif
|
||||
|
||||
static wxList wxTimerList(wxKEY_INTEGER);
|
||||
|
||||
void wxTimerCallback (wxTimer * timer)
|
||||
{
|
||||
// Check to see if it's still on
|
||||
if (!wxTimerList.Find((long)timer))
|
||||
return;
|
||||
|
||||
if (timer->m_id == 0)
|
||||
return; // Avoid to process spurious timer events
|
||||
|
||||
if (!timer->m_oneShot)
|
||||
timer->m_id = XtAppAddTimeOut ((XtAppContext) wxTheApp->GetAppContext(), timer->m_milli,
|
||||
(XtTimerCallbackProc) wxTimerCallback, (XtPointer) timer);
|
||||
else
|
||||
timer->m_id = 0;
|
||||
timer->Notify ();
|
||||
}
|
||||
|
||||
wxTimer::wxTimer()
|
||||
{
|
||||
m_id = 0;
|
||||
m_milli = 0 ;
|
||||
m_id = 0;
|
||||
m_oneShot = FALSE;
|
||||
@@ -31,21 +57,34 @@ wxTimer::~wxTimer()
|
||||
Stop();
|
||||
}
|
||||
|
||||
bool wxTimer::Start(int milliseconds,bool mode)
|
||||
bool wxTimer::Start(int milliseconds, bool mode)
|
||||
{
|
||||
m_oneShot = mode ;
|
||||
Stop();
|
||||
|
||||
m_oneShot = mode;
|
||||
if (milliseconds < 0)
|
||||
milliseconds = m_lastMilli;
|
||||
|
||||
if (milliseconds <= 0)
|
||||
return FALSE;
|
||||
|
||||
m_milli = milliseconds;
|
||||
m_lastMilli = m_milli = milliseconds;
|
||||
|
||||
// TODO: set the timer going.
|
||||
return FALSE;
|
||||
if (!wxTimerList.Find((long)this))
|
||||
wxTimerList.Append((long)this, this);
|
||||
|
||||
m_id = XtAppAddTimeOut ((XtAppContext) wxTheApp->GetAppContext(), milliseconds,
|
||||
(XtTimerCallbackProc) wxTimerCallback, (XtPointer) this);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void wxTimer::Stop()
|
||||
{
|
||||
m_id = 0 ;
|
||||
if (m_id > 0)
|
||||
{
|
||||
XtRemoveTimeOut (m_id);
|
||||
m_id = 0;
|
||||
}
|
||||
m_milli = 0 ;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user