]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/cocoa/NSButton.h
Factory some of wxFilterClassFactory into a base class.
[wxWidgets.git] / include / wx / cocoa / NSButton.h
index 7e8f8add03912101abce3bdf4227c4d854eaf6b8..f2a2800f5f9b451e6f16b247b416c3729b1ffca9 100644 (file)
@@ -4,16 +4,17 @@
 // Author:      David Elliott
 // Modified by:
 // Created:     2002/12/09
-// RCS-ID:      $Id
-// Copyright:   (c) 2002 David Elliott
-// Licence:     wxWindows license
+// RCS-ID:      $Id$
+// Copyright:   (c) 2002-2004 David Elliott
+// Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
-#ifndef __WX_COCOA_NSBUTTON_H__
-#define __WX_COCOA_NSBUTTON_H__
+#ifndef _WX_COCOA_NSBUTTON_H__
+#define _WX_COCOA_NSBUTTON_H__
 
 #include "wx/hashmap.h"
 #include "wx/cocoa/ObjcAssociate.h"
+#include "wx/cocoa/ObjcRef.h"
 
 WX_DECLARE_OBJC_HASHMAP(NSButton);
 
@@ -22,13 +23,17 @@ class wxCocoaNSButton
     WX_DECLARE_OBJC_INTERFACE_HASHMAP(NSButton);
 public:
     void AssociateNSButton(WX_NSButton cocoaNSButton);
-    inline void DisassociateNSButton(WX_NSButton cocoaNSButton)
+    void DisassociateNSButton(WX_NSButton cocoaNSButton)
     {
-        sm_cocoaHash.erase(cocoaNSButton);
+        if(cocoaNSButton)
+            sm_cocoaHash.erase(cocoaNSButton);
     }
 
-public:
     virtual void Cocoa_wxNSButtonAction(void) = 0;
+    virtual ~wxCocoaNSButton() { }
+
+protected:
+    static const wxObjcAutoRefFromAlloc<struct objc_object*> sm_cocoaTarget;
 };
 
-#endif // _WX_COCOA_NSBUTTON_H_
+#endif // _WX_COCOA_NSBUTTON_H__