X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/53758b0fc16d5aa5b2e1e3346a113cc1db677a83..f51723055aa4334a355a19e87bb2b478b4204d15:/src/os2/toplevel.cpp diff --git a/src/os2/toplevel.cpp b/src/os2/toplevel.cpp index 0bd4b9e388..38d204d14b 100644 --- a/src/os2/toplevel.cpp +++ b/src/os2/toplevel.cpp @@ -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( @@ -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; @@ -250,7 +251,7 @@ WXDWORD wxTopLevelWindowOS2::OS2GetStyle( if (lStyle & wxTINY_CAPTION_HORIZ) lMsflags |= FCF_TASKLIST; - if ((lStyle & wxTHICK_FRAME) == 0) + if ((lStyle & wxRESIZE_BORDER) == 0) lMsflags |= FCF_BORDER; if (lStyle & wxFRAME_TOOL_WINDOW) *pdwExflags = kFrameToolWindow; @@ -483,8 +484,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 @@ -552,7 +553,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. @@ -789,7 +790,7 @@ bool wxTopLevelWindowOS2::Show( bool bShow ) ::WinEnableWindow(m_hFrame, TRUE); vEvent.SetEventObject(this); - GetEventHandler()->ProcessEvent(vEvent); + HandleWindowEvent(vEvent); } else { @@ -871,17 +872,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 +976,7 @@ bool wxTopLevelWindowOS2::ShowFullScreen( bool bShow, wxSize full( nWidth, nHeight ); wxSizeEvent vEvent( full, GetId() ); - GetEventHandler()->ProcessEvent(vEvent); + HandleWindowEvent(vEvent); return true; } else @@ -994,13 +1006,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 +1015,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.Ok()) { ::WinSendMsg( m_hFrame ,WM_SETICON