]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/checkbox.cpp
no message
[wxWidgets.git] / src / msw / checkbox.cpp
index fec4da27fc483f84635236f73d01c6417960e8df..a92fc1b2d6238baea46d66002a6cace8cc727731 100644 (file)
@@ -39,8 +39,8 @@
 // macros
 // ----------------------------------------------------------------------------
 
 // macros
 // ----------------------------------------------------------------------------
 
-    IMPLEMENT_DYNAMIC_CLASS(wxCheckBox, wxControl)
-    IMPLEMENT_DYNAMIC_CLASS(wxBitmapCheckBox, wxCheckBox)
+IMPLEMENT_DYNAMIC_CLASS(wxCheckBox, wxControl)
+IMPLEMENT_DYNAMIC_CLASS(wxBitmapCheckBox, wxCheckBox)
 
 // ============================================================================
 // implementation
 
 // ============================================================================
 // implementation
@@ -60,14 +60,18 @@ bool wxCheckBox::MSWCommand(WXUINT WXUNUSED(param), WXWORD WXUNUSED(id))
 }
 
 // Single check box item
 }
 
 // Single check box item
-bool wxCheckBox::Create(wxWindow *parent, wxWindowID id, const wxString& label,
-           const wxPoint& pos,
-           const wxSize& size, long style,
-           const wxValidator& validator,
-           const wxString& name)
+bool wxCheckBox::Create(wxWindow *parent,
+                        wxWindowID id,
+                        const wxString& label,
+                        const wxPoint& pos,
+                        const wxSize& size, long style,
+                        const wxValidator& validator,
+                        const wxString& name)
 {
     SetName(name);
 {
     SetName(name);
+#if wxUSE_VALIDATORS
     SetValidator(validator);
     SetValidator(validator);
+#endif // wxUSE_VALIDATORS
     if (parent) parent->AddChild(this);
 
     SetBackgroundColour(parent->GetBackgroundColour()) ;
     if (parent) parent->AddChild(this);
 
     SetBackgroundColour(parent->GetBackgroundColour()) ;
@@ -75,9 +79,14 @@ bool wxCheckBox::Create(wxWindow *parent, wxWindowID id, const wxString& label,
 
     m_windowStyle = style;
 
 
     m_windowStyle = style;
 
+    // VZ: disabling this ugliness which completely breaks checkboxes in wxGrid
+    //     whoever did it, please tell me where and how does the checkbox fail
+    //     to appear
+#if 0
     wxString Label = label;
     if (Label == wxT(""))
         Label = wxT(" "); // Apparently needed or checkbox won't show
     wxString Label = label;
     if (Label == wxT(""))
         Label = wxT(" "); // Apparently needed or checkbox won't show
+#endif // 0
 
     if ( id == -1 )
         m_windowId = NewControlId();
 
     if ( id == -1 )
         m_windowId = NewControlId();
@@ -107,7 +116,7 @@ bool wxCheckBox::Create(wxWindow *parent, wxWindowID id, const wxString& label,
        msStyle |= WS_BORDER;
      */
 
        msStyle |= WS_BORDER;
      */
 
-    m_hWnd = (WXHWND)CreateWindowEx(exStyle, wxT("BUTTON"), Label,
+    m_hWnd = (WXHWND)CreateWindowEx(exStyle, wxT("BUTTON"), label,
             msStyle,
             0, 0, 0, 0,
             (HWND)parent->GetHWND(), (HMENU)m_windowId,
             msStyle,
             0, 0, 0, 0,
             (HWND)parent->GetHWND(), (HMENU)m_windowId,
@@ -136,24 +145,26 @@ void wxCheckBox::SetLabel(const wxString& label)
   SetWindowText(GetHwnd(), label);
 }
 
   SetWindowText(GetHwnd(), label);
 }
 
+#define CHECK_SIZE 13
+
 wxSize wxCheckBox::DoGetBestSize() const
 {
     int wCheckbox, hCheckbox;
 
 wxSize wxCheckBox::DoGetBestSize() const
 {
     int wCheckbox, hCheckbox;
 
-    wxString str = wxGetWindowText(GetHWND());
+    wxString str = wxGetWindowText(GetHWND()) + " ";
 
     if ( !str.IsEmpty() )
     {
         GetTextExtent(str, &wCheckbox, &hCheckbox);
 
     if ( !str.IsEmpty() )
     {
         GetTextExtent(str, &wCheckbox, &hCheckbox);
-        wCheckbox += RADIO_SIZE;
+        wCheckbox += CHECK_SIZE;
 
 
-        if ( hCheckbox < RADIO_SIZE )
-            hCheckbox = RADIO_SIZE;
+        if ( hCheckbox < CHECK_SIZE )
+            hCheckbox = CHECK_SIZE;
     }
     else
     {
     }
     else
     {
-        wCheckbox = RADIO_SIZE;
-        hCheckbox = RADIO_SIZE;
+        wCheckbox = CHECK_SIZE;
+        hCheckbox = CHECK_SIZE;
     }
 
     return wxSize(wCheckbox, hCheckbox);
     }
 
     return wxSize(wCheckbox, hCheckbox);
@@ -194,7 +205,9 @@ bool wxBitmapCheckBox::Create(wxWindow *parent, wxWindowID id, const wxBitmap *l
            const wxString& name)
 {
   SetName(name);
            const wxString& name)
 {
   SetName(name);
+#if wxUSE_VALIDATORS
   SetValidator(validator);
   SetValidator(validator);
+#endif // wxUSE_VALIDATORS
   if (parent) parent->AddChild(this);
 
   SetBackgroundColour(parent->GetBackgroundColour()) ;
   if (parent) parent->AddChild(this);
 
   SetBackgroundColour(parent->GetBackgroundColour()) ;