Applied patch #1198422 (CheckBox labels being truncated).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36273 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Neis
2005-11-27 21:30:40 +00:00
parent 9630cac5fc
commit c5f975dddb
4 changed files with 25 additions and 44 deletions

View File

@@ -108,22 +108,9 @@ void wxCheckBox::SetLabel(
wxSize wxCheckBox::DoGetBestSize() const
{
static int nCheckSize = 0;
if (!nCheckSize)
{
wxScreenDC vDc;
vDc.SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
//
// The height of a standard button in the dialog units is 8,
// translate this to pixels (as one dialog unit is precisely equal to
// 8 character heights, it's just the char height)
//
nCheckSize = vDc.GetCharHeight();
}
// We should probably compute nCheckSize but it seems to be a constant
// independent of its label's font size and not made available by OS/2.
int nCheckSize = RADIO_SIZE;
int nWidthCheckbox;
int nHeightCheckbox;
wxString sStr = wxGetWindowText(GetHWND());
@@ -134,7 +121,7 @@ wxSize wxCheckBox::DoGetBestSize() const
,&nWidthCheckbox
,&nHeightCheckbox
);
nWidthCheckbox += nCheckSize + GetCharWidth();
nWidthCheckbox += nCheckSize;
if (nHeightCheckbox < nCheckSize)
nHeightCheckbox = nCheckSize;

View File

@@ -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)
@@ -873,23 +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( GetLabel(), &nWidthLabel, NULL );
nWidthLabel += RADIO_SIZE;
wxString sStr = wxGetWindowText(GetHwnd());
if (!sStr.IsEmpty())
{
GetTextExtent( sStr
,&nWidthLabel
,NULL
);
nWidthLabel += 2*nCx1;
}
if (nWidthLabel > nWidth)
nWidth = nWidthLabel;

View File

@@ -111,17 +111,11 @@ bool wxRadioButton::Create(
wxSize wxRadioButton::DoGetBestSize() const
{
static int snRadioSize = 0;
// We should probably compute snRadioSize but it seems to be a constant
// independent of its label's font size and not made available by OS/2.
static int snRadioSize = RADIO_SIZE;
if (!snRadioSize)
{
wxScreenDC vDC;
vDC.SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
snRadioSize = vDC.GetCharHeight();
}
wxString sStr = GetLabel();
wxString sStr = wxGetWindowText(GetHwnd());
int nRadioWidth;
int nRadioHeight;
@@ -131,7 +125,7 @@ wxSize wxRadioButton::DoGetBestSize() const
,&nRadioWidth
,&nRadioHeight
);
nRadioWidth += snRadioSize + GetCharWidth();
nRadioWidth += snRadioSize;
if (nRadioHeight < snRadioSize)
nRadioHeight = snRadioSize;
}

View File

@@ -96,16 +96,12 @@ wxSize wxStaticBox::DoGetBestSize() const
int nCx;
int nCy;
int wBox;
wxFont vFont = GetFont();
wxGetCharSize( GetHWND()
,&nCx
,&nCy
,&vFont
);
nCx = GetCharWidth();
nCy = GetCharHeight();
GetTextExtent( wxGetWindowText(m_hWnd)
,&wBox
,&nCy
,NULL
);
wBox += 3 * nCx;