X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9ed97552373524bb54b71cd967b2df135e81ee51..b7527dde394466affd11a1119b030bcd985fd089:/include/wx/cocoa/radiobox.h diff --git a/include/wx/cocoa/radiobox.h b/include/wx/cocoa/radiobox.h index e628f593df..e1928c22eb 100644 --- a/include/wx/cocoa/radiobox.h +++ b/include/wx/cocoa/radiobox.h @@ -22,6 +22,8 @@ class WXDLLEXPORT wxRadioBox: public wxControl, public wxRadioBoxBase// , protec { 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 @@ -93,6 +95,7 @@ public: protected: // Static boxes cannot be enabled/disabled virtual void CocoaSetEnabled(bool enable) { } + virtual void CocoaTarget_action(void); // ------------------------------------------------------------------------ // Implementation // ------------------------------------------------------------------------ @@ -107,8 +110,29 @@ public: 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; + void AssociateNSBox(WX_NSBox theBox); + void DisassociateNSBox(WX_NSBox theBox); + 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__