]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/unix/private/timer.h
Implement monitoring of file descriptors in wxMotif event loop.
[wxWidgets.git] / include / wx / unix / private / timer.h
index cdcf53b3d22ae3f24af896c7d6228f4a49b5a65d..ceb107c3b16ee2d9428e12b684fd2b2cb8602d6e 100644 (file)
@@ -11,6 +11,8 @@
 #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
@@ -21,7 +23,9 @@ typedef wxMilliClock_t wxUsecClock_t;
 // 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);
@@ -31,10 +35,17 @@ public:
     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;
 };
 
 // ----------------------------------------------------------------------------
@@ -101,8 +112,9 @@ public:
     // 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
@@ -122,10 +134,6 @@ private:
     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_