void wxTimerCallback (wxMotifTimerImpl *timer) { // Check to see if it's still on if ( gs_timers.find(timer) == gs_timers.end() ) return; if ( !timer->IsRunning() ) return; // Avoid to process spurious timer events timer->Notify(); }
bool wxMotifTimerImpl::Start(int milliseconds, bool mode) { if ( !wxTimerImpl::Start(milliseconds, mode) ) return false; if ( gs_timers.find(this) == gs_timers.end() ) gs_timers[this] = this; DoStart(); return true; }
bool wxTimer::Start(int milliseconds, bool mode) { Stop(); (void)wxTimerBase::Start(milliseconds, mode); if (s_timers.find(this) == s_timers.end()) s_timers[this] = this; m_id = XtAppAddTimeOut((XtAppContext) wxTheApp->GetAppContext(), m_milli, (XtTimerCallbackProc) wxTimerCallback, (XtPointer) this); return true; }
void wxTimerCallback (wxTimer * timer) { // Check to see if it's still on if (s_timers.find(timer) == s_timers.end()) 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(); }
wxMotifTimerImpl::~wxMotifTimerImpl() { gs_timers.erase(this); }
wxTimer::~wxTimer() { Stop(); s_timers.erase(this); }