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:
@@ -108,22 +108,9 @@ void wxCheckBox::SetLabel(
|
|||||||
|
|
||||||
wxSize wxCheckBox::DoGetBestSize() const
|
wxSize wxCheckBox::DoGetBestSize() const
|
||||||
{
|
{
|
||||||
static int nCheckSize = 0;
|
// 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.
|
||||||
if (!nCheckSize)
|
int nCheckSize = RADIO_SIZE;
|
||||||
{
|
|
||||||
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();
|
|
||||||
}
|
|
||||||
|
|
||||||
int nWidthCheckbox;
|
int nWidthCheckbox;
|
||||||
int nHeightCheckbox;
|
int nHeightCheckbox;
|
||||||
wxString sStr = wxGetWindowText(GetHWND());
|
wxString sStr = wxGetWindowText(GetHWND());
|
||||||
@@ -134,7 +121,7 @@ wxSize wxCheckBox::DoGetBestSize() const
|
|||||||
,&nWidthCheckbox
|
,&nWidthCheckbox
|
||||||
,&nHeightCheckbox
|
,&nHeightCheckbox
|
||||||
);
|
);
|
||||||
nWidthCheckbox += nCheckSize + GetCharWidth();
|
nWidthCheckbox += nCheckSize;
|
||||||
|
|
||||||
if (nHeightCheckbox < nCheckSize)
|
if (nHeightCheckbox < nCheckSize)
|
||||||
nHeightCheckbox = nCheckSize;
|
nHeightCheckbox = nCheckSize;
|
||||||
|
@@ -337,7 +337,7 @@ bool wxRadioBox::Create(
|
|||||||
|
|
||||||
HWND hWndBtn = (WXHWND)::WinCreateWindow ( GetHwndOf(pParent)
|
HWND hWndBtn = (WXHWND)::WinCreateWindow ( GetHwndOf(pParent)
|
||||||
,WC_BUTTON
|
,WC_BUTTON
|
||||||
,(PSZ)asChoices[i].c_str()
|
,::wxPMTextToLabel(asChoices[i])
|
||||||
,lStyleBtn
|
,lStyleBtn
|
||||||
,0, 0, 0, 0
|
,0, 0, 0, 0
|
||||||
,GetWinHwnd(pParent)
|
,GetWinHwnd(pParent)
|
||||||
@@ -873,23 +873,27 @@ wxSize wxRadioBox::GetTotalButtonSize( const wxSize& rSizeBtn ) const
|
|||||||
{
|
{
|
||||||
int nCx1;
|
int nCx1;
|
||||||
int nCy1;
|
int nCy1;
|
||||||
int nExtraHeight;
|
|
||||||
int nHeight;
|
int nHeight;
|
||||||
int nWidth;
|
int nWidth;
|
||||||
int nWidthLabel;
|
int nWidthLabel = 0;
|
||||||
wxFont vFont = GetFont();
|
|
||||||
|
|
||||||
wxGetCharSize( m_hWnd, &nCx1, &nCy1, &vFont );
|
|
||||||
nExtraHeight = nCy1;
|
|
||||||
|
|
||||||
|
nCx1 = GetCharWidth();
|
||||||
|
nCy1 = GetCharHeight();
|
||||||
nHeight = GetNumVer() * rSizeBtn.y + (2 * nCy1);
|
nHeight = GetNumVer() * rSizeBtn.y + (2 * nCy1);
|
||||||
nWidth = GetNumHor() * (rSizeBtn.x + nCx1) + nCx1;
|
nWidth = GetNumHor() * (rSizeBtn.x + nCx1) + nCx1;
|
||||||
|
|
||||||
//
|
//
|
||||||
// And also wide enough for its label
|
// And also wide enough for its label
|
||||||
//
|
//
|
||||||
GetTextExtent( GetLabel(), &nWidthLabel, NULL );
|
wxString sStr = wxGetWindowText(GetHwnd());
|
||||||
nWidthLabel += RADIO_SIZE;
|
if (!sStr.IsEmpty())
|
||||||
|
{
|
||||||
|
GetTextExtent( sStr
|
||||||
|
,&nWidthLabel
|
||||||
|
,NULL
|
||||||
|
);
|
||||||
|
nWidthLabel += 2*nCx1;
|
||||||
|
}
|
||||||
if (nWidthLabel > nWidth)
|
if (nWidthLabel > nWidth)
|
||||||
nWidth = nWidthLabel;
|
nWidth = nWidthLabel;
|
||||||
|
|
||||||
|
@@ -111,17 +111,11 @@ bool wxRadioButton::Create(
|
|||||||
|
|
||||||
wxSize wxRadioButton::DoGetBestSize() const
|
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)
|
wxString sStr = wxGetWindowText(GetHwnd());
|
||||||
{
|
|
||||||
wxScreenDC vDC;
|
|
||||||
|
|
||||||
vDC.SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
|
|
||||||
snRadioSize = vDC.GetCharHeight();
|
|
||||||
}
|
|
||||||
|
|
||||||
wxString sStr = GetLabel();
|
|
||||||
int nRadioWidth;
|
int nRadioWidth;
|
||||||
int nRadioHeight;
|
int nRadioHeight;
|
||||||
|
|
||||||
@@ -131,7 +125,7 @@ wxSize wxRadioButton::DoGetBestSize() const
|
|||||||
,&nRadioWidth
|
,&nRadioWidth
|
||||||
,&nRadioHeight
|
,&nRadioHeight
|
||||||
);
|
);
|
||||||
nRadioWidth += snRadioSize + GetCharWidth();
|
nRadioWidth += snRadioSize;
|
||||||
if (nRadioHeight < snRadioSize)
|
if (nRadioHeight < snRadioSize)
|
||||||
nRadioHeight = snRadioSize;
|
nRadioHeight = snRadioSize;
|
||||||
}
|
}
|
||||||
|
@@ -96,16 +96,12 @@ wxSize wxStaticBox::DoGetBestSize() const
|
|||||||
int nCx;
|
int nCx;
|
||||||
int nCy;
|
int nCy;
|
||||||
int wBox;
|
int wBox;
|
||||||
wxFont vFont = GetFont();
|
|
||||||
|
|
||||||
wxGetCharSize( GetHWND()
|
nCx = GetCharWidth();
|
||||||
,&nCx
|
nCy = GetCharHeight();
|
||||||
,&nCy
|
|
||||||
,&vFont
|
|
||||||
);
|
|
||||||
GetTextExtent( wxGetWindowText(m_hWnd)
|
GetTextExtent( wxGetWindowText(m_hWnd)
|
||||||
,&wBox
|
,&wBox
|
||||||
,&nCy
|
,NULL
|
||||||
);
|
);
|
||||||
wBox += 3 * nCx;
|
wBox += 3 * nCx;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user