X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2d28c41cbd1ca343d1865bf63dc4cec56721782d..8d36b2167df7e86ecfc58d148eaf6abe0a5b7971:/src/os2/toplevel.cpp diff --git a/src/os2/toplevel.cpp b/src/os2/toplevel.cpp index c3bea8a366..1687a5b7ab 100644 --- a/src/os2/toplevel.cpp +++ b/src/os2/toplevel.cpp @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: msw/toplevel.cpp -// Purpose: implements wxTopLevelWindow for MSW +// Name: os2/toplevel.cpp +// Purpose: implements wxTopLevelWindow for OS/2 // Author: Vadim Zeitlin // Modified by: // Created: 30.12.01 @@ -31,6 +31,7 @@ #ifndef WX_PRECOMP #include "wx/app.h" #include "wx/toplevel.h" + #include "wx/dialog.h" #include "wx/string.h" #include "wx/log.h" #include "wx/intl.h" @@ -51,10 +52,7 @@ // globals // ---------------------------------------------------------------------------- -// list of all frames and modeless dialogs -wxWindowList wxModelessWindows; - -// the name of the default wxWindows class +// the name of the default wxWidgets class extern void wxAssociateWinWithHandle( HWND hWnd ,wxWindowOS2* pWin ); @@ -76,8 +74,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) @@ -167,7 +165,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; @@ -206,7 +204,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); @@ -223,48 +221,47 @@ WXDWORD wxTopLevelWindowOS2::OS2GetStyle( ,pdwExflags ); - if (lStyle == wxDEFAULT_FRAME_STYLE) + if ((lStyle & wxDEFAULT_FRAME_STYLE) == wxDEFAULT_FRAME_STYLE) lMsflags |= FCF_SIZEBORDER | FCF_TITLEBAR | FCF_SYSMENU | FCF_MINMAX | FCF_TASKLIST; + + if ((lStyle & wxCAPTION) == wxCAPTION) + lMsflags |= FCF_TASKLIST; else + lMsflags |= FCF_NOMOVEWITHOWNER; + + if ((lStyle & wxVSCROLL) == wxVSCROLL) + lMsflags |= FCF_VERTSCROLL; + if ((lStyle & wxHSCROLL) == wxHSCROLL) + lMsflags |= FCF_HORZSCROLL; + if (lStyle & wxMINIMIZE_BOX) + lMsflags |= FCF_MINBUTTON; + if (lStyle & wxMAXIMIZE_BOX) + lMsflags |= FCF_MAXBUTTON; + if (lStyle & wxTHICK_FRAME) + lMsflags |= FCF_DLGBORDER; + if (lStyle & wxSYSTEM_MENU) + lMsflags |= FCF_SYSMENU; + if (lStyle & wxCAPTION) + lMsflags |= FCF_TASKLIST; + if (lStyle & wxCLIP_CHILDREN) { - if ((lStyle & wxCAPTION) == wxCAPTION) - lMsflags |= FCF_TASKLIST; - else - lMsflags |= FCF_NOMOVEWITHOWNER; - - if ((lStyle & wxVSCROLL) == wxVSCROLL) - lMsflags |= FCF_VERTSCROLL; - if ((lStyle & wxHSCROLL) == wxHSCROLL) - lMsflags |= FCF_HORZSCROLL; - if (lStyle & wxMINIMIZE_BOX) - lMsflags |= FCF_MINBUTTON; - if (lStyle & wxMAXIMIZE_BOX) - lMsflags |= FCF_MAXBUTTON; - if (lStyle & wxTHICK_FRAME) - lMsflags |= FCF_DLGBORDER; - if (lStyle & wxSYSTEM_MENU) - lMsflags |= FCF_SYSMENU; - if (lStyle & wxCAPTION) - lMsflags |= FCF_TASKLIST; - if (lStyle & wxCLIP_CHILDREN) - { - // Invalid for frame windows under PM - } + // Invalid for frame windows under PM + } - if (lStyle & wxTINY_CAPTION_VERT) - lMsflags |= FCF_TASKLIST; - if (lStyle & wxTINY_CAPTION_HORIZ) - lMsflags |= FCF_TASKLIST; + if (lStyle & wxTINY_CAPTION_VERT) + lMsflags |= FCF_TASKLIST; + if (lStyle & wxTINY_CAPTION_HORIZ) + lMsflags |= FCF_TASKLIST; - if ((lStyle & wxTHICK_FRAME) == 0) - lMsflags |= FCF_BORDER; - if (lStyle & wxFRAME_TOOL_WINDOW) - *pdwExflags = kFrameToolWindow; + if ((lStyle & wxTHICK_FRAME) == 0) + lMsflags |= FCF_BORDER; + if (lStyle & wxFRAME_TOOL_WINDOW) + *pdwExflags = kFrameToolWindow; + + if (lStyle & wxSTAY_ON_TOP) + lMsflags |= FCF_SYSMODAL; - if (lStyle & wxSTAY_ON_TOP) - lMsflags |= FCF_SYSMODAL; - } return lMsflags; } // end of wxTopLevelWindowOS2::OS2GetCreateWindowFlags @@ -366,7 +363,7 @@ bool wxTopLevelWindowOS2::CreateDialog( { wxFAIL_MSG(wxT("Did you forget to include wx/os2/wx.rc in your resources?")); - wxLogSysError(wxT("Can't create dialog using template '%ul'"), ulDlgTemplate); + wxLogSysError(wxT("Can't create dialog using template '%ld'"), ulDlgTemplate); return FALSE; } @@ -643,9 +640,6 @@ bool wxTopLevelWindowOS2::Create( wxTopLevelWindowOS2::~wxTopLevelWindowOS2() { - if (wxModelessWindows.Find(this)) - wxModelessWindows.DeleteObject(this); - // // After destroying an owned window, Windows activates the next top level // window in Z order but it may be different from our owner (to reproduce @@ -730,7 +724,6 @@ bool wxTopLevelWindowOS2::Show( { int nShowCmd; SWP vSwp; - RECTL vRect; if (bShow != IsShown() ) { @@ -820,7 +813,6 @@ void wxTopLevelWindowOS2::Maximize( bool wxTopLevelWindowOS2::IsMaximized() const { - bool bIconic; ::WinQueryWindowPos(m_hFrame, (PSWP)&m_vSwp); return (m_vSwp.fl & SWP_MAXIMIZE);