X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/dc26eeb36a7415bd73d3e442c79b7acc0aeed6eb..63ab3daed955b52885e75daeab6088564f9e64d2:/src/msw/radiobox.cpp diff --git a/src/msw/radiobox.cpp b/src/msw/radiobox.cpp index 66534b1e2a..45424eb27e 100644 --- a/src/msw/radiobox.cpp +++ b/src/msw/radiobox.cpp @@ -211,7 +211,7 @@ bool wxRadioBox::Create(wxWindow *parent, SetSize(pos.x, pos.y, size.x, size.y); // Now that we have items determine what is the best size and set it. - SetBestSize(size); + SetInitialSize(size); return true; } @@ -323,7 +323,7 @@ void wxRadioBox::SendNotificationEvent() unsigned int wxRadioBox::GetCount() const { - return m_radioButtons->GetCount(); + return m_radioButtons ? m_radioButtons->GetCount() : 0u; } void wxRadioBox::SetString(unsigned int item, const wxString& label) @@ -495,7 +495,7 @@ wxSize wxRadioBox::GetTotalButtonSize(const wxSize& sizeBtn) const // and also wide enough for its label int widthLabel; - GetTextExtent(wxStripMenuCodes(GetLabel()), &widthLabel, NULL); + GetTextExtent(GetLabelText(), &widthLabel, NULL); widthLabel += RADIO_SIZE; // FIXME this is bogus too if ( widthLabel > width ) width = widthLabel; @@ -505,6 +505,13 @@ wxSize wxRadioBox::GetTotalButtonSize(const wxSize& sizeBtn) const wxSize wxRadioBox::DoGetBestSize() const { + if ( !m_radioButtons ) + { + // if we're not fully initialized yet, we can't meaningfully compute + // our best size, we'll do it later + return wxSize(1, 1); + } + wxSize best = GetTotalButtonSize(GetMaxButtonSize()); CacheBestSize(best); return best;