+#include "wx/timer.h"
+#include "wx/evtloop.h"
+
+void TestTimer()
+{
+ wxPuts(_T("*** Testing wxTimer ***\n"));
+
+ class MyTimer : public wxTimer
+ {
+ public:
+ MyTimer() : wxTimer() { m_num = 0; }
+
+ virtual void Notify()
+ {
+ wxPrintf(_T("%d"), m_num++);
+ fflush(stdout);
+
+ if ( m_num == 10 )
+ {
+ wxPrintf(_T("... exiting the event loop"));
+ Stop();
+
+ wxEventLoop::GetActive()->Exit(0);
+ wxPuts(_T(", ok."));
+ }
+
+ fflush(stdout);
+ }
+
+ private:
+ int m_num;
+ };
+
+ wxEventLoop loop;
+
+ wxTimer timer1;
+ timer1.Start(100, true /* one shot */);
+ timer1.Stop();
+ timer1.Start(100, true /* one shot */);
+
+ MyTimer timer;
+ timer.Start(500);
+
+ loop.Run();
+}
+