X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/53758b0fc16d5aa5b2e1e3346a113cc1db677a83..263e3a8327f544990c7ba7edb8cd34994c908049:/src/os2/toplevel.cpp diff --git a/src/os2/toplevel.cpp b/src/os2/toplevel.cpp index 0bd4b9e388..b7df26740e 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 licence +// Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -24,9 +24,10 @@ #pragma hdrstop #endif +#include "wx/toplevel.h" + #ifndef WX_PRECOMP #include "wx/app.h" - #include "wx/toplevel.h" #include "wx/dialog.h" #include "wx/string.h" #include "wx/log.h" @@ -35,9 +36,9 @@ #include "wx/control.h" #include "wx/containr.h" // wxSetFocusToChild() #include "wx/settings.h" + #include "wx/module.h" // wxSetFocusToChild() #endif //WX_PRECOMP -#include "wx/module.h" // wxSetFocusToChild() #include "wx/os2/private.h" // ---------------------------------------------------------------------------- @@ -149,7 +150,7 @@ void wxTopLevelWindowOS2::Init() m_hFrame = NULLHANDLE; memset(&m_vSwp, 0, sizeof(SWP)); memset(&m_vSwpClient, 0, sizeof(SWP)); - m_pWinLastFocused = (wxWindow *)NULL; + m_pWinLastFocused = NULL; } // end of wxTopLevelWindowIOS2::Init void wxTopLevelWindowOS2::OnActivate( @@ -161,7 +162,7 @@ void wxTopLevelWindowOS2::OnActivate( // // Restore focus to the child which was last focused // - wxLogTrace(_T("focus"), _T("wxTLW %08lx activated."), m_hWnd); + wxLogTrace(wxT("focus"), wxT("wxTLW %08lx activated."), m_hWnd); wxWindow* pParent = m_pWinLastFocused ? m_pWinLastFocused->GetParent() : NULL; @@ -199,8 +200,8 @@ void wxTopLevelWindowOS2::OnActivate( pWin = pWin->GetParent(); } - wxLogTrace(_T("focus"), - _T("wxTLW %08lx deactivated, last focused: %08lx."), + wxLogTrace(wxT("focus"), + wxT("wxTLW %08lx deactivated, last focused: %08lx."), m_hWnd, m_pWinLastFocused ? GetHwndOf(m_pWinLastFocused) : NULL); @@ -234,7 +235,7 @@ WXDWORD wxTopLevelWindowOS2::OS2GetStyle( lMsflags |= FCF_MINBUTTON; if (lStyle & wxMAXIMIZE_BOX) lMsflags |= FCF_MAXBUTTON; - if (lStyle & wxTHICK_FRAME) + if (lStyle & wxRESIZE_BORDER) lMsflags |= FCF_DLGBORDER; if (lStyle & wxSYSTEM_MENU) lMsflags |= FCF_SYSMENU; @@ -245,12 +246,10 @@ WXDWORD wxTopLevelWindowOS2::OS2GetStyle( // Invalid for frame windows under PM } - if (lStyle & wxTINY_CAPTION_VERT) - lMsflags |= FCF_TASKLIST; - if (lStyle & wxTINY_CAPTION_HORIZ) + if (lStyle & wxTINY_CAPTION) lMsflags |= FCF_TASKLIST; - if ((lStyle & wxTHICK_FRAME) == 0) + if ((lStyle & wxRESIZE_BORDER) == 0) lMsflags |= FCF_BORDER; if (lStyle & wxFRAME_TOOL_WINDOW) *pdwExflags = kFrameToolWindow; @@ -280,7 +279,7 @@ WXHWND wxTopLevelWindowOS2::OS2GetParent() const // // This flag doesn't make sense then and will be ignored // - wxFAIL_MSG( _T("wxFRAME_FLOAT_ON_PARENT but no parent?") ); + wxFAIL_MSG( wxT("wxFRAME_FLOAT_ON_PARENT but no parent?") ); } else { @@ -483,8 +482,8 @@ bool wxTopLevelWindowOS2::CreateFrame( const wxString& rsTitle, hFrame = ::WinCreateStdWindow( hParent ,ulStyleFlags // frame-window style ,(PULONG)&lFlags // window style - ,(PSZ)wxFrameClassName // class name - ,(PSZ)rsTitle.c_str() // window title + ,wxString(wxFrameClassName).c_str() // class name + ,rsTitle.c_str() // window title ,0L // default client style ,NULLHANDLE // resource in executable file ,0 // resource id @@ -494,7 +493,7 @@ bool wxTopLevelWindowOS2::CreateFrame( const wxString& rsTitle, { vError = ::WinGetLastError(vHabmain); sError = wxPMErrorToStr(vError); - wxLogError(_T("Error creating frame. Error: %s\n"), sError.c_str()); + wxLogError(wxT("Error creating frame. Error: %s\n"), sError.c_str()); return false; } @@ -518,7 +517,7 @@ bool wxTopLevelWindowOS2::CreateFrame( const wxString& rsTitle, { vError = ::WinGetLastError(vHabmain); sError = wxPMErrorToStr(vError); - wxLogError(_T("Error creating frame. Error: %s\n"), sError.c_str()); + wxLogError(wxT("Error creating frame. Error: %s\n"), sError.c_str()); return false; } @@ -552,7 +551,7 @@ bool wxTopLevelWindowOS2::CreateFrame( const wxString& rsTitle, // if (nWidth == (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. @@ -587,7 +586,7 @@ bool wxTopLevelWindowOS2::CreateFrame( const wxString& rsTitle, { vError = ::WinGetLastError(vHabmain); sError = wxPMErrorToStr(vError); - wxLogError(_T("Error sizing frame. Error: %s\n"), sError.c_str()); + wxLogError(wxT("Error sizing frame. Error: %s\n"), sError.c_str()); return false; } lStyle = ::WinQueryWindowULong( m_hWnd @@ -639,8 +638,8 @@ bool wxTopLevelWindowOS2::Create( { // // We have different dialog templates to allow creation of dialogs - // with & without captions under OS2indows, resizeable or not (but a - // resizeable dialog always has caption - otherwise it would look too + // with & without captions under OS2indows, resizable or not (but a + // resizable dialog always has caption - otherwise it would look too // strange) // ULONG ulDlgTemplate; @@ -789,7 +788,7 @@ bool wxTopLevelWindowOS2::Show( bool bShow ) ::WinEnableWindow(m_hFrame, TRUE); vEvent.SetEventObject(this); - GetEventHandler()->ProcessEvent(vEvent); + HandleWindowEvent(vEvent); } else { @@ -871,17 +870,28 @@ void wxTopLevelWindowOS2::Restore() } // end of wxTopLevelWindowOS2::Restore // generate an artificial resize event -void wxTopLevelWindowOS2::SendSizeEvent() +void wxTopLevelWindowOS2::SendSizeEvent(int flags) { if (!m_bIconized) { RECTL vRect = wxGetWindowRect(GetHwnd()); - (void)::WinPostMsg( m_hFrame - ,WM_SIZE - ,MPFROM2SHORT(vRect.xRight - vRect.xLeft, vRect.yTop - vRect.yBottom) - ,MPFROM2SHORT(vRect.xRight - vRect.xLeft, vRect.yTop - vRect.yBottom) - ); + if ( flags & wxSEND_EVENT_POST ) + { + (void)::WinPostMsg( m_hFrame + ,WM_SIZE + ,MPFROM2SHORT(vRect.xRight - vRect.xLeft, vRect.yTop - vRect.yBottom) + ,MPFROM2SHORT(vRect.xRight - vRect.xLeft, vRect.yTop - vRect.yBottom) + ); + } + else // send it + { + (void)::WinSendMsg( m_hFrame + ,WM_SIZE + ,MPFROM2SHORT(vRect.xRight - vRect.xLeft, vRect.yTop - vRect.yBottom) + ,MPFROM2SHORT(vRect.xRight - vRect.xLeft, vRect.yTop - vRect.yBottom) + ); + } } } // end of wxTopLevelWindowOS2::SendSizeEvent @@ -964,7 +974,7 @@ bool wxTopLevelWindowOS2::ShowFullScreen( bool bShow, wxSize full( nWidth, nHeight ); wxSizeEvent vEvent( full, GetId() ); - GetEventHandler()->ProcessEvent(vEvent); + HandleWindowEvent(vEvent); return true; } else @@ -994,13 +1004,6 @@ bool wxTopLevelWindowOS2::ShowFullScreen( bool bShow, // wxTopLevelWindowOS2 misc // ---------------------------------------------------------------------------- -void wxTopLevelWindowOS2::SetIcon( - const wxIcon& rIcon -) -{ - SetIcons(wxIconBundle(rIcon)); -} // end of wxTopLevelWindowOS2::SetIcon - void wxTopLevelWindowOS2::SetIcons( const wxIconBundle& rIcons ) @@ -1010,9 +1013,9 @@ void wxTopLevelWindowOS2::SetIcons( // wxTopLevelWindowBase::SetIcons(rIcons); - const wxIcon& vIcon = rIcons.GetIcon(wxSize(32, 32)); + const wxIcon& vIcon = rIcons.GetIconOfExactSize(32); - if (vIcon.Ok() && vIcon.GetWidth() == 32 && vIcon.GetHeight() == 32) + if (vIcon.IsOk()) { ::WinSendMsg( m_hFrame ,WM_SETICON @@ -1036,7 +1039,7 @@ bool wxTopLevelWindowOS2::EnableCloseButton( bool bEnable ) if (!hMenu) { - wxLogLastError(_T("GetSystemMenu")); + wxLogLastError(wxT("GetSystemMenu")); return false; } @@ -1088,7 +1091,7 @@ void wxTLWHiddenParentModule::OnExit() { if (!::WinDestroyWindow(m_shWnd)) { - wxLogLastError(_T("DestroyWindow(hidden TLW parent)")); + wxLogLastError(wxT("DestroyWindow(hidden TLW parent)")); } m_shWnd = NULL; } @@ -1103,7 +1106,7 @@ HWND wxTLWHiddenParentModule::GetHWND() { if (!m_szClassName) { - static const wxChar* zHIDDEN_PARENT_CLASS = _T("wxTLWHiddenParent"); + static const wxChar* zHIDDEN_PARENT_CLASS = wxT("wxTLWHiddenParent"); if (!::WinRegisterClass( wxGetInstance() ,(PSZ)zHIDDEN_PARENT_CLASS @@ -1112,7 +1115,7 @@ HWND wxTLWHiddenParentModule::GetHWND() ,sizeof(ULONG) )) { - wxLogLastError(_T("RegisterClass(\"wxTLWHiddenParent\")")); + wxLogLastError(wxT("RegisterClass(\"wxTLWHiddenParent\")")); } else { @@ -1134,7 +1137,7 @@ HWND wxTLWHiddenParentModule::GetHWND() NULL ); if (!m_shWnd) { - wxLogLastError(_T("CreateWindow(hidden TLW parent)")); + wxLogLastError(wxT("CreateWindow(hidden TLW parent)")); } } return m_shWnd;