]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/control.cpp
fixes needed for separate DLL build to work
[wxWidgets.git] / src / msw / control.cpp
index 930d7542ce8ff106fbfb3ad4a5afffed908ee7f7..bbb8d431dd825b4ba27b6b032699101e31aafb24 100644 (file)
@@ -5,7 +5,7 @@
 // Modified by:
 // Created:     01/02/97
 // RCS-ID:      $Id$
-// Copyright:   (c) Julian Smart and Markus Holzem
+// Copyright:   (c) Julian Smart
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
@@ -33,7 +33,7 @@
 
 #include "wx/msw/private.h"
 
-#if defined(__WIN95__) && !((defined(__GNUWIN32_OLD__) || defined(__TWIN32__)) && !defined(__CYGWIN10__))
+#if defined(__WIN95__) && !(defined(__GNUWIN32_OLD__) && !defined(__CYGWIN10__))
     #include <commctrl.h>
 #endif
 
@@ -78,11 +78,10 @@ bool wxControl::Create(wxWindow *parent,
 bool wxControl::MSWCreateControl(const wxChar *classname,
                                  const wxString& label,
                                  const wxPoint& pos,
-                                 const wxSize& size,
-                                 long style)
+                                 const wxSize& size)
 {
     WXDWORD exstyle;
-    WXDWORD msStyle = MSWGetStyle(style, &exstyle);
+    WXDWORD msStyle = MSWGetStyle(GetWindowStyle(), &exstyle);
 
     return MSWCreateControl(classname, msStyle, pos, size, label, exstyle);
 }
@@ -94,21 +93,22 @@ bool wxControl::MSWCreateControl(const wxChar *classname,
                                  const wxString& label,
                                  WXDWORD exstyle)
 {
-    // want3D tells us whether or not the style specified a 3D border.
-    // If so, under WIN16 we can use Ctl3D to give it an appropriate style.
-    // Sometimes want3D is used to indicate that the non-extended style should have
-    // WS_BORDER.
-    bool want3D = TRUE;
-
     // if no extended style given, determine it ourselves
     if ( exstyle == (WXDWORD)-1 )
     {
-        exstyle = Determine3DEffects(WS_EX_CLIENTEDGE, &want3D);
+//        exstyle = Determine3DEffects(WS_EX_CLIENTEDGE, &want3D);
+        exstyle = 0;
+        (void) MSWGetStyle(GetWindowStyle(), & exstyle) ;
     }
 
-    // all controls should have these styles (wxWindows creates all controls
-    // visible by default)
-    style |= WS_CHILD | WS_VISIBLE;
+    // all controls should have this style
+    style |= WS_CHILD;
+
+    // create the control visible if it's currently shown for wxWindows
+    if ( m_isShown )
+    {
+        style |= WS_VISIBLE;
+    }
 
     int x = pos.x == -1 ? 0 : pos.x,
         y = pos.y == -1 ? 0 : pos.y,
@@ -151,7 +151,7 @@ bool wxControl::MSWCreateControl(const wxChar *classname,
     InheritAttributes();
 
     // set the size now if no initial size specified
-    if ( w == 0 || h == 0 )
+    if ( w <= 0 || h <= 0 )
     {
         SetBestSize(size);
     }
@@ -269,7 +269,7 @@ WXHBRUSH wxControl::OnCtlColor(WXHDC pDC, WXHWND WXUNUSED(pWnd), WXUINT WXUNUSED
 #endif // wxUSE_CTL3D
 
     HDC hdc = (HDC)pDC;
-    if (GetParent()->GetTransparentBackground())
+    if (GetParent()->GetTransparentBackground() /* || (GetParent()->GetExtraStyle() & wxWS_EX_THEMED_BACKGROUND) */ )
         SetBkMode(hdc, TRANSPARENT);
     else
         SetBkMode(hdc, OPAQUE);