]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/checkbox.cpp
update the year in wx information dialog (#9701)
[wxWidgets.git] / src / msw / checkbox.cpp
index 1b47fbe0a499e2a0ddfbbacde7aaf138b7b8b397..38449a2da39d48f4f5075ce82329aba0358e857e 100644 (file)
 
 #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
@@ -187,6 +190,8 @@ bool wxCheckBox::Create(wxWindow *parent,
         msStyle |= BS_LEFTTEXT | BS_RIGHT;
     }
 
+    msStyle |= wxMSWButton::GetMultilineStyle(label);
+
     return MSWCreateControl(wxT("BUTTON"), msStyle, pos, size, label, 0);
 }
 
@@ -211,7 +216,9 @@ wxSize wxCheckBox::DoGetBestSize() const
     int wCheckbox, hCheckbox;
     if ( !str.empty() )
     {
-        GetTextExtent(GetLabelText(str), &wCheckbox, &hCheckbox);
+        wxClientDC dc(wx_const_cast(wxCheckBox *, this));
+        dc.SetFont(GetFont());
+        dc.GetMultiLineTextExtent(GetLabelText(str), &wCheckbox, &hCheckbox);
         wCheckbox += s_checkSize + GetCharWidth();
 
         if ( hCheckbox < s_checkSize )
@@ -235,6 +242,13 @@ wxSize wxCheckBox::DoGetBestSize() const
 // 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);