+struct MacTimerInfo
+{
+ wxCarbonTimerImpl* m_timer;
+ EventLoopTimerUPP m_proc;
+ EventLoopTimerRef m_timerRef;
+};
+
+static pascal void wxProcessTimer( EventLoopTimerRef WXUNUSED(theTimer), void *data )
+{
+ if ( data == NULL )
+ return;
+
+ wxCarbonTimerImpl* timer = (wxCarbonTimerImpl*)data;
+
+ if ( timer->IsOneShot() )
+ timer->Stop();
+
+ timer->Notify();
+}
+
+wxCarbonTimerImpl::wxCarbonTimerImpl(wxTimer *timer)
+ : wxTimerImpl(timer)
+{
+ m_info = new MacTimerInfo();
+ m_info->m_timer = this;
+ m_info->m_proc = NULL;
+ m_info->m_timerRef = kInvalidID;
+}
+
+bool wxCarbonTimerImpl::IsRunning() const