]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/checkbox.cpp
wxSYS_COLOUR_WINDOW is better for window backgrounds on PPC/Smartphone
[wxWidgets.git] / src / os2 / checkbox.cpp
index 720eff958e818448211d80c52e614bbd08cd97ac..83480a8ef2ff54c281fd68f3c1e27b536de6e982 100644 (file)
 IMPLEMENT_DYNAMIC_CLASS(wxCheckBox, wxControl)
 IMPLEMENT_DYNAMIC_CLASS(wxBitmapCheckBox, wxCheckBox)
 
+extern void  wxAssociateWinWithHandle( HWND         hWnd
+                                      ,wxWindowOS2* pWin
+                                     );
+
 // ============================================================================
 // implementation
 // ============================================================================
@@ -58,35 +62,44 @@ bool wxCheckBox::Create(
 , const wxPoint&                    rPos
 , const wxSize&                     rSize
 , long                              lStyle
-#if wxUSE_VALIDATORS
 , const wxValidator&                rValidator
-#endif
 , const wxString&                   rsName
 )
 {
+    LONG                            lColor;
+    bool                            bOk;
+
     if (!CreateControl( pParent
                        ,vId
                        ,rPos
                        ,rSize
                        ,lStyle
-#if wxUSE_VALIDATORS
-                       ,wxDefaultValidator
-#endif
+                       ,rValidator
                        ,rsName
                       ))
         return FALSE;
 
+
     long                            osStyle = BS_AUTOCHECKBOX |
                                               WS_TABSTOP      |
                                               WS_VISIBLE;
 
-    return OS2CreateControl( wxT("BUTTON")
-                            ,osStyle
-                            ,rPos
-                            ,rSize
-                            ,rsLabel
-                            ,0
-                           );
+    bOk = OS2CreateControl( wxT("BUTTON")
+                           ,osStyle
+                           ,rPos
+                           ,rSize
+                           ,rsLabel
+                           ,0
+                          );
+    m_backgroundColour = pParent->GetBackgroundColour();
+    lColor = (LONG)m_backgroundColour.GetPixel();
+    ::WinSetPresParam( m_hWnd
+                      ,PP_BACKGROUNDCOLOR
+                      ,sizeof(LONG)
+                      ,(PVOID)&lColor
+                     );
+    wxAssociateWinWithHandle(m_hWnd, this);
+    return bOk;
 } // end of wxCheckBox::Create
 
 void wxCheckBox::SetLabel(
@@ -175,9 +188,7 @@ bool wxBitmapCheckBox::Create(
 , const wxPoint&                    rPos
 , const wxSize&                     rSize
 , long                              lStyle
-#if wxUSE_VALIDATORS
 , const wxValidator&                rValidator
-#endif
 , const wxString&                   rsName
 )
 {