#ifndef WX_PRECOMP
#include "wx/brush.h"
+ #include "wx/dcclient.h"
#include "wx/dcscreen.h"
#include "wx/settings.h"
#endif
-#include "wx/msw/uxtheme.h"
+#include "wx/msw/dc.h" // for wxDCTemp
#include "wx/renderer.h"
+#include "wx/msw/uxtheme.h"
+#include "wx/msw/private/button.h"
// ----------------------------------------------------------------------------
// constants
// ----------------------------------------------------------------------------
-#ifndef BST_UNCHECKED
- #define BST_UNCHECKED 0x0000
-#endif
-
-#ifndef BST_CHECKED
- #define BST_CHECKED 0x0001
-#endif
-
-#ifndef BST_INDETERMINATE
- #define BST_INDETERMINATE 0x0002
-#endif
-
-#ifndef DT_HIDEPREFIX
- #define DT_HIDEPREFIX 0x00100000
-#endif
-
#ifndef BP_CHECKBOX
#define BP_CHECKBOX 3
#endif
msStyle |= BS_LEFTTEXT | BS_RIGHT;
}
+ msStyle |= wxMSWButton::GetMultilineStyle(label);
+
return MSWCreateControl(wxT("BUTTON"), msStyle, pos, size, label, 0);
}
int wCheckbox, hCheckbox;
if ( !str.empty() )
{
- GetTextExtent(GetLabelText(str), &wCheckbox, &hCheckbox);
+ wxClientDC dc(const_cast<wxCheckBox *>(this));
+ dc.SetFont(GetFont());
+ dc.GetMultiLineTextExtent(GetLabelText(str), &wCheckbox, &hCheckbox);
wCheckbox += s_checkSize + GetCharWidth();
if ( hCheckbox < s_checkSize )
// wxCheckBox operations
// ----------------------------------------------------------------------------
+void wxCheckBox::SetLabel(const wxString& label)
+{
+ wxMSWButton::UpdateMultilineStyle(GetHwnd(), label);
+
+ wxCheckBoxBase::SetLabel(label);
+}
+
void wxCheckBox::SetValue(bool val)
{
Set3StateValue(val ? wxCHK_CHECKED : wxCHK_UNCHECKED);
break;
default:
- wxFAIL_MSG( _T("unexpected Get3StateValue() return value") );
+ wxFAIL_MSG( wxT("unexpected Get3StateValue() return value") );
// fall through
case wxCHK_UNCHECKED:
if ( !::DrawText(hdc, label.wx_str(), label.length(), &rectLabel,
fmt | DT_CALCRECT) )
{
- wxLogLastError(_T("DrawText(DT_CALCRECT)"));
+ wxLogLastError(wxT("DrawText(DT_CALCRECT)"));
}
}
if ( !::DrawText(hdc, label.wx_str(), label.length(), &rectLabel, fmt) )
{
- wxLogLastError(_T("DrawText()"));
+ wxLogLastError(wxT("DrawText()"));
}
// finally draw the focus
rectLabel.right++;
if ( !::DrawFocusRect(hdc, &rectLabel) )
{
- wxLogLastError(_T("DrawFocusRect()"));
+ wxLogLastError(wxT("DrawFocusRect()"));
}
}