]> git.saurik.com Git - wxWidgets.git/blobdiff - src/univ/winuniv.cpp
implemented wxDateTime::ParseDateTime() (patch 779794)
[wxWidgets.git] / src / univ / winuniv.cpp
index e569871c409324cfce003ae3920c460270bb7e04..d36c97fb753126abad2f6e386a7d7a52bef02d87 100644 (file)
@@ -17,7 +17,7 @@
 // headers
 // ---------------------------------------------------------------------------
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
     #pragma implementation "univwindow.h"
 #endif
 
@@ -121,17 +121,29 @@ bool wxWindow::Create(wxWindow *parent,
                       long style,
                       const wxString& name)
 {
+    long actualStyle = style;
+    
+    // FIXME: may need this on other platforms
+#ifdef __WXMSW__
+    actualStyle &= ~wxVSCROLL;
+    actualStyle &= ~wxHSCROLL;
+#endif    
+    
     // we add wxCLIP_CHILDREN to get the same ("natural") behaviour under MSW
     // as under the other platforms
     if ( !wxWindowNative::Create(parent, id, pos, size,
-                                 style | wxCLIP_CHILDREN,
+                                 actualStyle | wxCLIP_CHILDREN,
                                  name) )
     {
         return FALSE;
     }
 
-    // if we should always have the scrollbar, do show it
-    if ( GetWindowStyle() & wxALWAYS_SHOW_SB )
+    // Set full style again, including those we didn't want present
+    // when calling the base window Create().
+    wxWindowBase::SetWindowStyleFlag(style);
+
+    // if we should always have a vertical scrollbar, do show it
+    if ( style & wxALWAYS_SHOW_SB )
     {
 #if wxUSE_TWO_WINDOWS
         SetInsertIntoMain( TRUE );
@@ -142,8 +154,25 @@ bool wxWindow::Create(wxWindow *parent,
 #if wxUSE_TWO_WINDOWS
         SetInsertIntoMain( FALSE );
 #endif
+    }
 
-        // and position it
+    // if we should always have a horizontal scrollbar, do show it
+    if ( style & wxHSCROLL )
+    {
+#if wxUSE_TWO_WINDOWS
+        SetInsertIntoMain( TRUE );
+#endif
+        m_scrollbarHorz = new wxScrollBar(this, -1,
+                                          wxDefaultPosition, wxDefaultSize,
+                                          wxSB_HORIZONTAL);
+#if wxUSE_TWO_WINDOWS
+        SetInsertIntoMain( FALSE );
+#endif
+    }
+    
+    if (m_scrollbarHorz || m_scrollbarVert)
+    {
+        // position it/them
         PositionScrollbars();
     }