]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/toplevel.cpp
don't show scrollbars at all when the window is big enough
[wxWidgets.git] / src / msw / toplevel.cpp
index 9aeb9eefd5ad77bfd9503f130e43f5078d60ab7c..6df54650629d8efcfd7935737cd3c45fda001a25 100644 (file)
@@ -252,35 +252,39 @@ bool wxTopLevelWindowMSW::CreateDialog(const wxChar *dlgTemplate,
 
     // move the dialog to its initial position without forcing repainting
     int x, y, w, h;
-    if ( MSWGetCreateWindowCoords(pos, size, x, y, w, h) )
+    if ( !MSWGetCreateWindowCoords(pos, size, x, y, w, h) )
     {
-        // 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;
-        }
+        x =
+        w = (int)CW_USEDEFAULT;
+    }
 
-        if ( x == (int)CW_USEDEFAULT )
-        {
-            // well, where should we put it? maybe centre it on screen?
-            x =
-            y = 0;
-        }
+    // 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;
+    }
 
-        if ( !::MoveWindow(GetHwnd(), x, y, w, h, FALSE) )
-        {
-            wxLogLastError(wxT("MoveWindow"));
-        }
+    if ( x == (int)CW_USEDEFAULT )
+    {
+        // centre it on the screen - what else can we do?
+        wxSize sizeDpy = wxGetDisplaySize();
+
+        x = (sizeDpy.x - w) / 2;
+        y = (sizeDpy.y - h) / 2;
+    }
+
+    if ( !::MoveWindow(GetHwnd(), x, y, w, h, FALSE) )
+    {
+        wxLogLastError(wxT("MoveWindow"));
     }
-    //else: leave it at default position
 
     if ( !title.empty() )
     {
@@ -616,8 +620,9 @@ bool wxTopLevelWindowMSW::EnableCloseButton(bool enable)
 
     // enabling/disabling the close item from it also automatically
     // disables/enables the close title bar button
-    if ( !::EnableMenuItem(hmenu, SC_CLOSE,
-                           MF_BYCOMMAND | (enable ? MF_ENABLED : MF_GRAYED)) )
+    if ( ::EnableMenuItem(hmenu, SC_CLOSE,
+                          MF_BYCOMMAND |
+                          (enable ? MF_ENABLED : MF_GRAYED)) == -1 )
     {
         wxLogLastError(_T("EnableMenuItem(SC_CLOSE)"));