#ifndef _WX_UNIX_PRIVATE_TIMER_H_
#define _WX_UNIX_PRIVATE_TIMER_H_
+#if wxUSE_TIMER
+
#include "wx/private/timer.h"
// the type used for milliseconds is large enough for microseconds too but
// wxTimer implementation class for Unix platforms
// ----------------------------------------------------------------------------
-class wxUnixTimerImpl : public wxTimerImpl
+// NB: we have to export at least this symbol from the shared library, because
+// it's used by wxDFB's wxCore
+class WXDLLIMPEXP_BASE wxUnixTimerImpl : public wxTimerImpl
{
public:
wxUnixTimerImpl(wxTimer *timer);
virtual bool Start(int milliseconds = -1, bool oneShot = false);
virtual void Stop();
+ // for wxTimerScheduler only: resets the internal flag indicating that the
+ // timer is running
+ void MarkStopped()
+ {
+ wxASSERT_MSG( m_isRunning, wxT("stopping non-running timer?") );
+
+ m_isRunning = false;
+ }
+
private:
bool m_isRunning;
-
- friend class wxTimerScheduler;
};
// ----------------------------------------------------------------------------
// it returns false if there are no timers
bool GetNext(wxUsecClock_t *remaining) const;
- // trigger the timer event for all timers which have expired
- void NotifyExpired();
+ // trigger the timer event for all timers which have expired, return true
+ // if any did
+ bool NotifyExpired();
private:
// ctor and dtor are private, this is a singleton class only created by
static wxTimerScheduler *ms_instance;
};
-// this helper function currently only exists for Unix platforms but could be
-// moved to wx/stopwatch.h if it turns out to be useful elsewhere
-//
-// returns the number of microseconds since the Epoch
-extern wxUsecClock_t wxGetLocalTimeUsec();
+#endif // wxUSE_TIMER
#endif // _WX_UNIX_PRIVATE_TIMER_H_