]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/timer.h
1. coloured buttons seem to work
[wxWidgets.git] / include / wx / timer.h
index 93d3f94f7c86bdfde09507c5006f3d8d8ce604d1..b8c8e8dc28740c55bdb33c946a4754e8124e5521 100644 (file)
+/////////////////////////////////////////////////////////////////////////////
+// Name:        wx/timer.h
+// Purpose:     wxTimer class and global time-related functions
+// Author:      Julian Smart
+// Modified by:
+// Created:     04/01/98
+// RCS-ID:      $Id$
+// Copyright:   (c) Julian Smart and Markus Holzem
+// Licence:    wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
 #ifndef _WX_TIMER_H_BASE_
 #define _WX_TIMER_H_BASE_
 
+#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
+};
+
 #if defined(__WXMSW__)
-#include "wx/msw/timer.h"
+    #include "wx/msw/timer.h"
 #elif defined(__WXMOTIF__)
-#include "wx/motif/timer.h"
+    #include "wx/motif/timer.h"
 #elif defined(__WXGTK__)
-#include "wx/gtk/timer.h"
+    #include "wx/gtk/timer.h"
 #elif defined(__WXQT__)
-#include "wx/qt/timer.h"
+    #include "wx/qt/timer.h"
 #elif defined(__WXMAC__)
-#include "wx/mac/timer.h"
+    #include "wx/mac/timer.h"
 #elif defined(__WXPM__)
-#include "wx/os2/timer.h"
+    #include "wx/os2/timer.h"
 #elif defined(__WXSTUBS__)
-#include "wx/stubs/timer.h"
+    #include "wx/stubs/timer.h"
 #endif
 
-class wxChrono
+// ----------------------------------------------------------------------------
+// wxStopWatch
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxStopWatch
 {
 public: 
-  wxChrono();
-  
-  void Start(long t=0);
-  void Pause();
-  void Resume();
+    // ctor starts the stop watch
+    wxStopWatch()        { Start(); }
+    void Start(long t = 0);
+    inline void Pause()  { m_pause = GetElapsedTime(); }
+    inline void Resume() { Start(m_pause); }
 
-  long Time();
+    // get elapsed time since the last Start() or Pause() in milliseconds
+    long Time() const;
 
+protected:
+    // returns the elapsed time since t0
+    long GetElapsedTime() const;
+    
 private:
-  long m_t0;
-  long m_pause;
+    wxLongLong m_t0;      // the time of the last Start()
+    long m_pause;         // the time of the last Pause() or 0
 };
 
-// Timer functions (milliseconds)
+
+// Starts a global timer 
+// -- DEPRECATED: use wxStopWatch instead
 void WXDLLEXPORT wxStartTimer();
 
-// Gets time since last wxStartTimer or wxGetElapsedTime
+// Gets elapsed milliseconds since last wxStartTimer or wxGetElapsedTime
+// -- DEPRECATED: use wxStopWatch instead
 long WXDLLEXPORT wxGetElapsedTime(bool resetTimer = TRUE);
 
-// EXPERIMENTAL: comment this out if it doesn't compile.
-bool WXDLLEXPORT wxGetLocalTime(long *timeZone, int *dstObserved);
 
-// Get number of seconds since 00:00:00 GMT, Jan 1st 1970.
-long WXDLLEXPORT wxGetCurrentTime();
+// ----------------------------------------------------------------------------
+// global time functions
+// ----------------------------------------------------------------------------
+
+// Get number of seconds since local time 00:00:00 Jan 1st 1970.
+long WXDLLEXPORT wxGetLocalTime();
+
+// Get number of seconds since GMT 00:00:00, Jan 1st 1970.
+long WXDLLEXPORT wxGetUTCTime();
 
-// Get number of milliseconds since 00:00:00 GMT, Jan 1st 1970.
-long WXDLLEXPORT wxGetCurrentUTime();
+#define wxGetCurrentTime() wxGetLocalTime()
 
 #endif
     // _WX_TIMER_H_BASE_