X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/06c2bab0852eea898770b124bed58f024f9b7cb0..189da67c55cb8ce76725d77e58b76c1fc666d9a6:/src/cocoa/timer.mm diff --git a/src/cocoa/timer.mm b/src/cocoa/timer.mm index 8f112e17e7..4815472d7b 100644 --- a/src/cocoa/timer.mm +++ b/src/cocoa/timer.mm @@ -22,8 +22,9 @@ #if wxUSE_TIMER +#include "wx/timer.h" + #ifndef WX_PRECOMP - #include "wx/timer.h" #endif #include "wx/cocoa/autorelease.h" @@ -36,16 +37,6 @@ IMPLEMENT_CLASS(wxTimer, wxTimerBase) -// ======================================================================== -// wxNSTimerDelegate -// ======================================================================== -@interface wxNSTimerDelegate : NSObject -{ -} - -- (void)onNotify:(NSTimer *)theTimer; -@end // interface wxNSTimerDelegate : NSObject - // ======================================================================== // wxNSTimerData // ======================================================================== @@ -57,6 +48,7 @@ IMPLEMENT_CLASS(wxTimer, wxTimerBase) - (id)init; - (id)initWithWxTimer:(wxTimer*)theTimer; - (wxTimer*)timer; +- (void)onNotify:(NSTimer *)theTimer; @end // interface wxNSTimerData : NSObject @implementation wxNSTimerData : NSObject @@ -80,22 +72,17 @@ IMPLEMENT_CLASS(wxTimer, wxTimerBase) { return m_timer; } -@end -@implementation wxNSTimerDelegate : NSObject - (void)onNotify:(NSTimer *)theTimer { - wxNSTimerData* theData = [theTimer userInfo]; - [theData timer]->Notify(); //wxTimerBase method + m_timer->Notify(); //wxTimerBase method } -@end +@end // ---------------------------------------------------------------------------- // wxTimer // ---------------------------------------------------------------------------- -const wxObjcAutoRefFromAlloc wxTimer::sm_cocoaDelegate = [[wxNSTimerDelegate alloc] init]; - wxTimer::~wxTimer() { Stop(); @@ -109,18 +96,18 @@ void wxTimer::Init() bool wxTimer::Start(int millisecs, bool oneShot) { Stop(); - + wxAutoNSAutoreleasePool thePool; - wxNSTimerData *userInfo = [[wxNSTimerData alloc] initWithWxTimer:this]; - m_cocoaNSTimer = [[NSTimer + wxNSTimerData *timerData = [[wxNSTimerData alloc] initWithWxTimer:this]; + m_cocoaNSTimer = [[NSTimer scheduledTimerWithTimeInterval: millisecs / 1000.0 //seconds - target: wxTimer::sm_cocoaDelegate - selector: @selector(onNotify:) - userInfo: userInfo - repeats: oneShot == false] retain]; - [userInfo release]; - + target: timerData + selector: @selector(onNotify:) + userInfo: nil + repeats: oneShot == false] retain]; + [timerData release]; + return IsRunning(); }