X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/376ef4a1f497822dd6e0de572e2d59ea192a7380..84f6927eca931441abec9b6d21c0e412841eaab9:/src/os2/toplevel.cpp diff --git a/src/os2/toplevel.cpp b/src/os2/toplevel.cpp index 3f5d41eeba..9fbc3e6ae3 100644 --- a/src/os2/toplevel.cpp +++ b/src/os2/toplevel.cpp @@ -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);