]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/toplevel.cpp
implemented Freeze/Thaw() (patch 922156)
[wxWidgets.git] / src / os2 / toplevel.cpp
index 3f5d41eeba0cf3b2feba8b2aa33dd8a5a101891f..9fbc3e6ae35311cfb4cd7c8d9f22559fe3f12049 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     30.12.01
 // RCS-ID:      $Id$
 // Copyright:   (c) 2001 SciTech Software, Inc. (www.scitechsoft.com)
-// License:     wxWindows license
+// License:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 // ============================================================================
@@ -39,6 +39,7 @@
     #include "wx/containr.h"        // wxSetFocusToChild()
 #endif //WX_PRECOMP
 
+#include "wx/module.h"        // wxSetFocusToChild()
 #include "wx/os2/private.h"
 
 // ----------------------------------------------------------------------------
@@ -75,8 +76,8 @@ END_EVENT_TABLE()
 // Dialog window proc
 MRESULT EXPENTRY wxDlgProc( HWND WXUNUSED(hWnd)
                            ,UINT uMessage
-                           ,MPARAM WXUNUSED(wParam)
-                           ,MPARAM WXUNUSED(lParam)
+                           ,void * WXUNUSED(wParam)
+                           ,void * WXUNUSED(lParam)
                           )
 {
     switch(uMessage)
@@ -166,7 +167,7 @@ void wxTopLevelWindowOS2::OnActivate(
         //
         // Restore focus to the child which was last focused
         //
-        wxLogTrace(_T("focus"), _T("wxTLW %08x activated."), m_hWnd);
+        wxLogTrace(_T("focus"), _T("wxTLW %08lx activated."), m_hWnd);
 
         wxWindow*                   pParent = m_pWinLastFocused ? m_pWinLastFocused->GetParent()
                                                                 : NULL;
@@ -205,7 +206,7 @@ void wxTopLevelWindowOS2::OnActivate(
         }
 
         wxLogTrace(_T("focus"),
-                   _T("wxTLW %08x deactivated, last focused: %08x."),
+                   _T("wxTLW %08lx deactivated, last focused: %08lx."),
                    m_hWnd,
                    m_pWinLastFocused ? GetHwndOf(m_pWinLastFocused)
                                      : NULL);
@@ -363,9 +364,9 @@ bool wxTopLevelWindowOS2::CreateDialog(
 
     if ( !m_hWnd )
     {
-        wxFAIL_MSG(_("Did you forget to include wx/os2/wx.rc in your resources?"));
+        wxFAIL_MSG(wxT("Did you forget to include wx/os2/wx.rc in your resources?"));
 
-        wxLogSysError(_("Can't create dialog using template '%ul'"), ulDlgTemplate);
+        wxLogSysError(wxT("Can't create dialog using template '%ld'"), ulDlgTemplate);
 
         return FALSE;
     }
@@ -500,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;
     }
 
@@ -524,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;
     }
 
@@ -561,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
@@ -580,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
 )
@@ -592,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);
@@ -716,7 +730,6 @@ bool wxTopLevelWindowOS2::Show(
 {
     int                             nShowCmd;
     SWP                             vSwp;
-    RECTL                           vRect;
 
     if (bShow != IsShown() )
     {
@@ -800,13 +813,12 @@ void wxTopLevelWindowOS2::Maximize(
         // We can't maximize the hidden frame because it shows it as well, so
         // just remember that we should do it later in this case
         //
-        m_bMaximizeOnShow = TRUE;
+        m_bMaximizeOnShow = bMaximize;
     }
 } // end of wxTopLevelWindowOS2::Maximize
 
 bool wxTopLevelWindowOS2::IsMaximized() const
 {
-    bool                            bIconic;
 
     ::WinQueryWindowPos(m_hFrame, (PSWP)&m_vSwp);
     return (m_vSwp.fl & SWP_MAXIMIZE);