]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/cocoa/radiobox.h
Corrected/added support for column headers with icon and text
[wxWidgets.git] / include / wx / cocoa / radiobox.h
index e628f593dfc25a0d0881d85b60cffb3a39e18971..9e84110d2d244fc07bd4a4b82de41ba96c451ba6 100644 (file)
@@ -18,10 +18,12 @@ DECLARE_WXCOCOA_OBJC_CLASS(NSMatrix);
 // ========================================================================
 // wxRadioBox
 // ========================================================================
 // ========================================================================
 // wxRadioBox
 // ========================================================================
-class WXDLLEXPORT wxRadioBox: public wxControl, public wxRadioBoxBase// , protected wxCocoaNSButton
+class WXDLLIMPEXP_CORE wxRadioBox: public wxControl, public wxRadioBoxBase// , protected wxCocoaNSButton
 {
     DECLARE_DYNAMIC_CLASS(wxRadioBox)
     DECLARE_EVENT_TABLE()
 {
     DECLARE_DYNAMIC_CLASS(wxRadioBox)
     DECLARE_EVENT_TABLE()
+    // NOTE: We explicitly skip NSControl because our primary cocoa view is
+    // the NSBox but we want to receive action messages from the NSMatrix.
     WX_DECLARE_COCOA_OWNER(NSBox,NSView,NSView)
 // ------------------------------------------------------------------------
 // initialization
     WX_DECLARE_COCOA_OWNER(NSBox,NSView,NSView)
 // ------------------------------------------------------------------------
 // initialization
@@ -91,8 +93,9 @@ public:
 // Cocoa callbacks
 // ------------------------------------------------------------------------
 protected:
 // Cocoa callbacks
 // ------------------------------------------------------------------------
 protected:
-    // Static boxes cannot be enabled/disabled
-    virtual void CocoaSetEnabled(bool enable) { }
+    // Radio boxes cannot be enabled/disabled
+    virtual void CocoaSetEnabled(bool WXUNUSED(enable)) { }
+    virtual void CocoaTarget_action(void);
 // ------------------------------------------------------------------------
 // Implementation
 // ------------------------------------------------------------------------
 // ------------------------------------------------------------------------
 // Implementation
 // ------------------------------------------------------------------------
@@ -107,8 +110,29 @@ public:
     virtual void SetString(unsigned int n, const wxString& label);
     // change the individual radio button state
 protected:
     virtual void SetString(unsigned int n, const wxString& label);
     // change the individual radio button state
 protected:
+    // We don't want the typical wxCocoaNSBox behavior because our real
+    // implementation is by using an NSMatrix as the NSBox's contentView.
     WX_NSMatrix GetNSMatrix() const;
     WX_NSMatrix GetNSMatrix() const;
+    void AssociateNSBox(WX_NSBox theBox);
+    void DisassociateNSBox(WX_NSBox theBox);
+
     virtual wxSize DoGetBestSize() const;
     virtual wxSize DoGetBestSize() const;
+
+    int GetRowForIndex(int n) const
+    {
+        if(m_windowStyle & wxRA_SPECIFY_COLS)
+            return n / GetMajorDim();
+        else
+            return n % GetMajorDim();
+    }
+
+    int GetColumnForIndex(int n) const
+    {
+        if(m_windowStyle & wxRA_SPECIFY_COLS)
+            return n % GetMajorDim();
+        else
+            return n / GetMajorDim();
+    }
 };
 
 #endif // __WX_COCOA_RADIOBOX_H__
 };
 
 #endif // __WX_COCOA_RADIOBOX_H__