]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/checkbox.cpp
setting clipping correctly
[wxWidgets.git] / src / msw / checkbox.cpp
index 1734a9b214b700100ea147354a0ebd4b0321f64a..4a11fa5c469ebe02d04a9f29ed72661cc4610c07 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        msw/checkbox.cpp
+// Name:        src/msw/checkbox.cpp
 // Purpose:     wxCheckBox
 // Author:      Julian Smart
 // Modified by:
 // headers
 // ----------------------------------------------------------------------------
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #pragma implementation "checkbox.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
@@ -30,8 +26,9 @@
 
 #if wxUSE_CHECKBOX
 
+#include "wx/checkbox.h"
+
 #ifndef WX_PRECOMP
-    #include "wx/checkbox.h"
     #include "wx/brush.h"
     #include "wx/dcscreen.h"
     #include "wx/settings.h"
@@ -216,9 +213,9 @@ wxSize wxCheckBox::DoGetBestSize() const
     wxString str = wxGetWindowText(GetHWND());
 
     int wCheckbox, hCheckbox;
-    if ( !str.IsEmpty() )
+    if ( !str.empty() )
     {
-        GetTextExtent(str, &wCheckbox, &hCheckbox);
+        GetTextExtent(GetLabelText(str), &wCheckbox, &hCheckbox);
         wCheckbox += s_checkSize + GetCharWidth();
 
         if ( hCheckbox < s_checkSize )
@@ -374,6 +371,12 @@ void wxCheckBox::MakeOwnerDrawn(bool ownerDrawn)
     }
 
     ::SetWindowLong(GetHwnd(), GWL_STYLE, style);
+
+    if ( !ownerDrawn )
+    {
+        // ensure that controls state is consistent with internal state
+        DoSet3StateValue(m_state);
+    }
 }
 
 void wxCheckBox::OnMouseEnterOrLeave(wxMouseEvent& event)
@@ -451,7 +454,8 @@ bool wxCheckBox::MSWOnDraw(WXDRAWITEMSTRUCT *item)
     // to it without breaking backwards compatibility
 
     // classic Win32 version -- this can be useful when we move this into
-#if 0
+    // wxRendererNative
+#if defined(__WXWINCE__) || !wxUSE_UXTHEME
     UINT state = DFCS_BUTTONCHECK;
     if ( !IsEnabled() )
         state |= DFCS_INACTIVE;