]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/toplevel.cpp
as after recent change wxID_SEPARATOR is now -2, it is better for idMenuTitle to...
[wxWidgets.git] / src / os2 / toplevel.cpp
index 3fbed4f75574c1ce423e0228d4d63101fe214749..c3bea8a366b4c2af6107cffdd027e347f61d522d 100644 (file)
@@ -37,9 +37,9 @@
     #include "wx/frame.h"
     #include "wx/control.h"
     #include "wx/containr.h"        // wxSetFocusToChild()
-    #include "wx/module.h"        // wxSetFocusToChild()
 #endif //WX_PRECOMP
 
+#include "wx/module.h"        // wxSetFocusToChild()
 #include "wx/os2/private.h"
 
 // ----------------------------------------------------------------------------
@@ -501,7 +501,7 @@ bool wxTopLevelWindowOS2::CreateFrame(
     {
         vError = ::WinGetLastError(vHabmain);
         sError = wxPMErrorToStr(vError);
-        wxLogError("Error creating frame. Error: %s\n", sError);
+        wxLogError("Error creating frame. Error: %s\n", sError.c_str());
         return FALSE;
     }
 
@@ -525,7 +525,7 @@ bool wxTopLevelWindowOS2::CreateFrame(
     {
         vError = ::WinGetLastError(vHabmain);
         sError = wxPMErrorToStr(vError);
-        wxLogError("Error creating frame. Error: %s\n", sError);
+        wxLogError("Error creating frame. Error: %s\n", sError.c_str());
         return FALSE;
     }
 
@@ -562,7 +562,7 @@ bool wxTopLevelWindowOS2::CreateFrame(
     {
         vError = ::WinGetLastError(vHabmain);
         sError = wxPMErrorToStr(vError);
-        wxLogError("Error sizing frame. Error: %s\n", sError);
+        wxLogError("Error sizing frame. Error: %s\n", sError.c_str());
         return FALSE;
     }
     lStyle =  ::WinQueryWindowULong( m_hWnd
@@ -581,7 +581,7 @@ bool wxTopLevelWindowOS2::Create(
 , wxWindowID                        vId
 , const wxString&                   rsTitle
 , const wxPoint&                    rPos
-, const wxSize&                     rSize
+, const wxSize&                     rSizeOrig
 , long                              lStyle
 , const wxString&                   rsName
 )
@@ -593,6 +593,19 @@ bool wxTopLevelWindowOS2::Create(
     m_windowStyle = lStyle;
     SetName(rsName);
     m_windowId = vId == -1 ? NewControlId() : vId;
+
+    // always create a frame of some reasonable, even if arbitrary, size (at
+    // least for MSW compatibility)
+    wxSize rSize = rSizeOrig;
+    if ( rSize.x == -1 || rSize.y == -1 )
+    {
+        wxSize sizeDpy = wxGetDisplaySize();
+        if ( rSize.x == -1 )
+            rSize.x = sizeDpy.x / 3;
+        if ( rSize.y == -1 )
+            rSize.y = sizeDpy.y / 5;
+    }
+
     wxTopLevelWindows.Append(this);
     if (pParent)
         pParent->AddChild(this);