+#ifdef __GNUG__
+ #pragma interface "timerbase.h"
+#endif
+
+#include "wx/setup.h"
+#include "wx/object.h"
+#include "wx/longlong.h"
+
+// ----------------------------------------------------------------------------
+// wxTimer
+// ----------------------------------------------------------------------------
+
+// the interface of wxTimer class
+class WXDLLEXPORT wxTimerBase : public wxObject
+{
+public:
+ wxTimerBase() { m_oneShot = FALSE; m_milli = 0; }
+
+ // working with the timer
+ // ----------------------
+
+ // start the timer: if milliseconds == -1, use the same value as for the
+ // last Start()
+ virtual bool Start(int milliseconds = -1, bool oneShot = FALSE)
+ {
+ if ( milliseconds != -1 )
+ {
+ m_milli = milliseconds;
+ }
+
+ m_oneShot = oneShot;
+
+ return TRUE;
+ }
+
+
+ // stop the timer
+ virtual void Stop() = 0;
+
+ // override this in your wxTimer-derived class
+ virtual void Notify() = 0;
+
+ // getting info
+ // ------------
+
+ // return TRUE if the timer is running
+ virtual bool IsRunning() const = 0;
+
+ // get the (last) timer interval in the milliseconds
+ int GetInterval() const { return m_milli; }
+
+ // return TRUE if the timer is one shot
+ bool IsOneShot() const { return m_oneShot; }
+
+#if WXWIN_COMPATIBILITY_2
+ // deprecated functions
+ int Interval() const { return GetInterval(); };
+ bool OneShot() const { return IsOneShot(); }
+#endif // WXWIN_COMPATIBILITY_2
+
+protected:
+ int m_milli; // the timer interval
+ bool m_oneShot; // TRUE if one shot
+};
+