]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/toplevel.cpp
really show the window after creation (calling Show(TRUE) doesn't do it any more)
[wxWidgets.git] / src / msw / toplevel.cpp
index 47bc5ff54a1bcf528ed52689350a1c64327f96ee..0296aac6ce94c317c3d1e6c7d6e95e3f63dfe874 100644 (file)
@@ -41,8 +41,6 @@
 #include "wx/module.h"
 
 #include "wx/msw/private.h"
-#include "wx/msw/missing.h"
-
 #if defined(__WXWINCE__)
   #include <ole2.h>
   #include <shellapi.h>
@@ -52,6 +50,7 @@
 #include "wx/msw/wince/missing.h"
 #endif
 
+#include "wx/msw/missing.h"
 #include "wx/msw/winundef.h"
 
 // This can't be undefed in winundef.h or
@@ -140,9 +139,6 @@ void wxTopLevelWindowMSW::Init()
     m_iconized =
     m_maximizeOnShow = FALSE;
 
-    // unlike (almost?) all other windows, frames are created hidden
-    m_isShown = FALSE;
-
     // Data to save/restore when calling ShowFullScreen
     m_fsStyle = 0;
     m_fsOldWindowStyle = 0;
@@ -226,7 +222,6 @@ WXDWORD wxTopLevelWindowMSW::MSWGetStyle(long style, WXDWORD *exflags) const
 
     if ( exflags )
     {
-#if !defined(__WIN16__)
         if ( !(GetExtraStyle() & wxTOPLEVEL_EX_DIALOG) )
         {
             if ( style & wxFRAME_TOOL_WINDOW )
@@ -259,7 +254,6 @@ WXDWORD wxTopLevelWindowMSW::MSWGetStyle(long style, WXDWORD *exflags) const
 #endif
             //else: nothing to do [here]
         }
-#endif // !Win16
 
         if ( style & wxSTAY_ON_TOP )
             *exflags |= WS_EX_TOPMOST;
@@ -393,25 +387,7 @@ bool wxTopLevelWindowMSW::CreateDialog(const void *dlgTemplate,
 
     // move the dialog to its initial position without forcing repainting
     int x, y, w, h;
-    if ( !MSWGetCreateWindowCoords(pos, size, x, y, w, h) )
-    {
-        x =
-        w = (int)CW_USEDEFAULT;
-    }
-
-    // we can't use CW_USEDEFAULT here as we're not calling CreateWindow()
-    // and passing CW_USEDEFAULT to MoveWindow() results in resizing the
-    // window to (0, 0) size which breaks quite a lot of things, e.g. the
-    // sizer calculation in wxSizer::Fit()
-    if ( w == (int)CW_USEDEFAULT )
-    {
-        // the exact number doesn't matter, the dialog will be resized
-        // again soon anyhow but it should be big enough to allow
-        // calculation relying on "totalSize - clientSize > 0" work, i.e.
-        // at least greater than the title bar height
-        w =
-        h = 100;
-    }
+    (void)MSWGetCreateWindowCoords(pos, size, x, y, w, h);
 
     if ( x == (int)CW_USEDEFAULT )
     {
@@ -457,9 +433,12 @@ bool wxTopLevelWindowMSW::Create(wxWindow *parent,
                                  const wxString& name)
 {
     bool ret wxDUMMY_INITIALIZE(false);
-
+    int w, h;
+    
     // init our fields
     Init();
+    w = WidthDefault(size.x);
+    h = HeightDefault(size.y);
 
     m_windowStyle = style;
 
@@ -502,12 +481,12 @@ bool wxTopLevelWindowMSW::Create(wxWindow *parent,
         if ( style & (wxRESIZE_BORDER | wxCAPTION) )
             dlgTemplate->style |= DS_MODALFRAME;
 
-        ret = CreateDialog(dlgTemplate, title, pos, size);
+        ret = CreateDialog(dlgTemplate, title, pos, wxSize(w,h));
         free(dlgTemplate);
     }
     else // !dialog
     {
-        ret = CreateFrame(title, pos, size);
+        ret = CreateFrame(title, pos, wxSize(w,h));
     }
 
     if ( ret && !(GetWindowStyleFlag() & wxCLOSE_BOX) )