X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6670f56440ae9209b3e2e51e06acf3bc5aaf1905..a55d039a23c730975a8b5efedab6b4940fb4009b:/src/os2/radiobox.cpp diff --git a/src/os2/radiobox.cpp b/src/os2/radiobox.cpp index 1e026433fc..b379cd3724 100644 --- a/src/os2/radiobox.cpp +++ b/src/os2/radiobox.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: radiobox.cpp +// Name: src/os2/radiobox.cpp // Purpose: wxRadioBox // Author: David Webster // Modified by: @@ -337,7 +337,7 @@ bool wxRadioBox::Create( HWND hWndBtn = (WXHWND)::WinCreateWindow ( GetHwndOf(pParent) ,WC_BUTTON - ,(PSZ)asChoices[i].c_str() + ,::wxPMTextToLabel(asChoices[i]) ,lStyleBtn ,0, 0, 0, 0 ,GetWinHwnd(pParent) @@ -376,16 +376,16 @@ bool wxRadioBox::Create( // // Create a dummy radio control to end the group. // - (void)::WinCreateWindow ( GetHwndOf(pParent) - ,WC_BUTTON - ,"" - ,WS_GROUP | BS_AUTORADIOBUTTON - ,0, 0, 0, 0 - ,GetWinHwnd(pParent) - ,HWND_TOP - ,(HMENU)NewControlId() - ,NULL - ,NULL + (void)::WinCreateWindow ( GetHwndOf(pParent), + WC_BUTTON, + "", + WS_GROUP | BS_AUTORADIOBUTTON, + 0, 0, 0, 0, + GetWinHwnd(pParent), + HWND_TOP, + (HMENU)NewControlId(), + NULL, + NULL ); SetFont(*wxSMALL_FONT); fnWndProcRadioBox = (WXFARPROC)::WinSubclassWindow( GetHwnd() @@ -686,18 +686,6 @@ bool wxRadioBox::Enable( return true; } // end of wxRadioBox::Enable -int wxRadioBox::FindString( - const wxString& rsStr -) const -{ - for (int i = 0; i < m_nNoItems; i++) - { - if (rsStr == wxGetWindowText(m_ahRadioButtons[i]) ) - return i; - } - return wxNOT_FOUND; -} // end of wxRadioBox::FindString - int wxRadioBox::GetColumnCount() const { return GetNumHor(); @@ -708,9 +696,7 @@ int wxRadioBox::GetCount() const return m_nNoItems; } // end of wxRadioBox::GetCount -wxString wxRadioBox::GetLabel( - int nItem -) const +wxString wxRadioBox::GetLabel(int nItem) const { wxCHECK_MSG( IsValid(nItem), wxEmptyString, wxT("invalid radiobox index") ); @@ -838,10 +824,7 @@ int wxRadioBox::GetSelection() const return m_nSelectedButton; } // end of wxRadioBox::GetSelection -void wxRadioBox::GetSize( - int* pnWidth -, int* pnHeight -) const +void wxRadioBox::GetSize( int* pnWidth, int* pnHeight ) const { RECT vRect; int i; @@ -890,26 +873,27 @@ wxSize wxRadioBox::GetTotalButtonSize( const wxSize& rSizeBtn ) const { int nCx1; int nCy1; - int nExtraHeight; int nHeight; int nWidth; - int nWidthLabel; - wxFont vFont = GetFont(); - - wxGetCharSize( m_hWnd, &nCx1, &nCy1, &vFont ); - nExtraHeight = nCy1; + int nWidthLabel = 0; + nCx1 = GetCharWidth(); + nCy1 = GetCharHeight(); nHeight = GetNumVer() * rSizeBtn.y + (2 * nCy1); nWidth = GetNumHor() * (rSizeBtn.x + nCx1) + nCx1; // // And also wide enough for its label // - GetTextExtent( GetTitle() - ,&nWidthLabel - ,NULL - ); - nWidthLabel += RADIO_SIZE; + wxString sStr = wxGetWindowText(GetHwnd()); + if (!sStr.IsEmpty()) + { + GetTextExtent( sStr + ,&nWidthLabel + ,NULL + ); + nWidthLabel += 2*nCx1; + } if (nWidthLabel > nWidth) nWidth = nWidthLabel; @@ -1051,11 +1035,9 @@ void wxRadioBox::SetString( ::WinSetWindowText((HWND)m_ahRadioButtons[nItem], (PSZ)rsLabel.c_str()); } // end of wxRadioBox::SetString -bool wxRadioBox::SetStringSelection( - const wxString& rsStr -) +bool wxRadioBox::SetStringSelection(const wxString& rsStr) { - int nSel = FindString(rsStr); + int nSel = FindString(rsStr); if (nSel > -1) { @@ -1200,17 +1182,14 @@ MRESULT wxRadioBtnWndProc( ); } // end of wxRadioBtnWndProc -MRESULT EXPENTRY wxRadioBoxWndProc( - HWND hWnd -, UINT uMessage -, MPARAM wParam -, MPARAM lParam -) +MRESULT EXPENTRY wxRadioBoxWndProc( HWND hWnd, + UINT uMessage, + MPARAM wParam, + MPARAM lParam ) { - return (fnWndProcRadioBox( hWnd - ,(ULONG)uMessage - ,(MPARAM)wParam - ,(MPARAM)lParam - ) + return (fnWndProcRadioBox( hWnd, + (ULONG)uMessage, + (MPARAM)wParam, + (MPARAM)lParam ) ); } // end of wxRadioBoxWndProc