X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b698c8e9bfbcf149f8ac375ea5b5ff6af9cba86a..e7300ec6d9ebbd1cfa2fcf12c0ce6e5aee85a152:/src/mac/radiobox.cpp diff --git a/src/mac/radiobox.cpp b/src/mac/radiobox.cpp index f2651ba594..2d002e7852 100644 --- a/src/mac/radiobox.cpp +++ b/src/mac/radiobox.cpp @@ -117,11 +117,9 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& label, MacPreControlCreate( parent , id , label , pos , size ,style, val , name , &bounds , title ) ; - m_macControl = UMANewControl( parent->GetMacRootWindow() , &bounds , title , false , 0 , 0 , 1, + m_macControl = ::NewControl( MAC_WXHWND(parent->MacGetRootWindow()) , &bounds , title , false , 0 , 0 , 1, kControlGroupBoxTextTitleProc , (long) this ) ; - MacPostControlCreate() ; - for (i = 0; i < n; i++) { wxRadioButton *radBtn = new wxRadioButton(this, NewControlId(),choices[i],wxPoint(5,20*i+10), @@ -132,7 +130,7 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& label, } SetSelection(0); - SetSize(pos.x,pos.y,size.x,size.y); + MacPostControlCreate() ; return TRUE; } @@ -481,6 +479,39 @@ void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) } } +wxSize wxRadioBox::DoGetBestSize() const +{ + int charWidth, charHeight; + int maxWidth, maxHeight; + int eachWidth, eachHeight; + int totWidth, totHeight; + + wxFont font = GetParent()->GetFont(); + GetTextExtent(wxString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), + &charWidth, &charHeight, NULL, NULL, &font); + charWidth /= 52; + + maxWidth = -1; + maxHeight = -1; + + // handle radio box title as well + GetTextExtent(GetTitle(), &eachWidth, NULL); + eachWidth = (int)(eachWidth + RADIO_SIZE); + if (maxWidth < eachWidth) maxWidth = eachWidth; + + for (int i = 0 ; i < m_noItems; i++) + { + GetTextExtent(GetString(i), &eachWidth, &eachHeight); + eachWidth = (int)(eachWidth + RADIO_SIZE) ; + eachHeight = (int)((3 * eachHeight) / 2); + if (maxWidth < eachWidth) maxWidth = eachWidth; + if (maxHeight < eachHeight) maxHeight = eachHeight; + } + + totHeight = GetRowCount() * (maxHeight + charHeight/2) + charHeight * 3/2; + totWidth = GetColumnCount() * (maxWidth + charWidth) + charWidth; + return wxSize(totWidth, totHeight); +} //------------------------------------------------------------------------------------- // ¥ GetNumVer //-------------------------------------------------------------------------------------