]> git.saurik.com Git - wxWidgets.git/commitdiff
Remove sm_cocoaDelegate singleton. We need per-instance data anyway so we
authorDavid Elliott <dfe@tgwbd.org>
Tue, 18 Oct 2005 16:02:51 +0000 (16:02 +0000)
committerDavid Elliott <dfe@tgwbd.org>
Tue, 18 Oct 2005 16:02:51 +0000 (16:02 +0000)
may as well make it the target instead of the userInfo.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35942 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/cocoa/timer.h
src/cocoa/timer.mm

index 27aa354e6e39292a526e927808b24063f6b2ad31..626a85635a2bd9248a9a6c4297a1de297349376c 100644 (file)
@@ -40,7 +40,6 @@ protected:
 
 private:
     WX_NSTimer m_cocoaNSTimer;
-    static const wxObjcAutoRefFromAlloc<struct objc_object *> sm_cocoaDelegate;
 
     DECLARE_ABSTRACT_CLASS(wxTimer)
 };
index 8f112e17e748db208c39ff042bb5a9aa981c26e0..2dfe2cb30a778bb79380b3e8df3455f0f2c1a167 100644 (file)
 
 IMPLEMENT_CLASS(wxTimer, wxTimerBase)
 
-// ========================================================================
-// wxNSTimerDelegate
-// ========================================================================
-@interface wxNSTimerDelegate : NSObject
-{
-}
-
-- (void)onNotify:(NSTimer *)theTimer;
-@end // interface wxNSTimerDelegate : NSObject
-
 // ========================================================================
 // wxNSTimerData
 // ========================================================================
@@ -57,6 +47,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,13 +71,10 @@ 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 
 
@@ -94,8 +82,6 @@ IMPLEMENT_CLASS(wxTimer, wxTimerBase)
 // wxTimer
 // ----------------------------------------------------------------------------
 
-const wxObjcAutoRefFromAlloc<struct objc_object*> wxTimer::sm_cocoaDelegate = [[wxNSTimerDelegate alloc] init];
-
 wxTimer::~wxTimer()
 {
     Stop();
@@ -112,14 +98,14 @@ bool wxTimer::Start(int millisecs, bool oneShot)
     
     wxAutoNSAutoreleasePool thePool;
 
-    wxNSTimerData *userInfo = [[wxNSTimerData alloc] initWithWxTimer:this];
+    wxNSTimerData *timerData = [[wxNSTimerData alloc] initWithWxTimer:this];
     m_cocoaNSTimer =     [[NSTimer 
             scheduledTimerWithTimeInterval: millisecs / 1000.0 //seconds
-            target:            wxTimer::sm_cocoaDelegate
+            target:    timerData
             selector:  @selector(onNotify:) 
-            userInfo:  userInfo
+            userInfo:  nil
             repeats:   oneShot == false] retain];
-    [userInfo release];
+    [timerData release];
                        
     return IsRunning();
 }