X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/77f4f0a700031e1c1fa4ece26df44f3af49b7545..f5766910b6731eb03e82371416e9778203396ce7:/src/os2/frame.cpp diff --git a/src/os2/frame.cpp b/src/os2/frame.cpp index 85f39c89ca..38c03e700b 100644 --- a/src/os2/frame.cpp +++ b/src/os2/frame.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: frame.cpp +// Name: src/os2/frame.cpp // Purpose: wxFrame // Author: David Webster // Modified by: @@ -13,7 +13,6 @@ #include "wx/wxprec.h" #ifndef WX_PRECOMP - #include "wx/defs.h" #include "wx/object.h" #include "wx/dynarray.h" #include "wx/list.h" @@ -22,7 +21,6 @@ #include "wx/intl.h" #include "wx/log.h" #include "wx/event.h" - #include "wx/setup.h" #include "wx/frame.h" #include "wx/menu.h" #include "wx/app.h" @@ -31,36 +29,21 @@ #include "wx/settings.h" #include "wx/dcclient.h" #include "wx/mdi.h" + #include "wx/toolbar.h" + #include "wx/statusbr.h" + #include "wx/menuitem.h" #endif // WX_PRECOMP #include "wx/os2/private.h" -#if wxUSE_STATUSBAR - #include "wx/statusbr.h" - #include "wx/generic/statusbr.h" -#endif // wxUSE_STATUSBAR - -#if wxUSE_TOOLBAR - #include "wx/toolbar.h" -#endif // wxUSE_TOOLBAR - -#include "wx/menuitem.h" -#include "wx/log.h" - // ---------------------------------------------------------------------------- // globals // ---------------------------------------------------------------------------- -extern wxList WXDLLEXPORT wxPendingDelete; - #if wxUSE_MENUS_NATIVE extern wxMenu *wxCurrentPopupMenu; #endif -extern void wxAssociateWinWithHandle( HWND hWnd - ,wxWindowOS2* pWin - ); - // ---------------------------------------------------------------------------- // event tables // ---------------------------------------------------------------------------- @@ -242,13 +225,8 @@ wxStatusBar* wxFrame::OnCreateStatusBar( ,nHeight ); - ::WinSetParent( pStatusBar->GetHWND() - ,m_hFrame - ,FALSE - ); - ::WinSetOwner( pStatusBar->GetHWND() - ,m_hFrame - ); + ::WinSetParent( pStatusBar->GetHWND(), m_hFrame, FALSE ); + ::WinSetOwner( pStatusBar->GetHWND(), m_hFrame); // // to show statusbar // @@ -302,7 +280,7 @@ void wxFrame::PositionStatusBar() { vError = ::WinGetLastError(vHabmain); sError = wxPMErrorToStr(vError); - wxLogError(_T("Error setting parent for StautsBar. Error: %s\n"), sError.c_str()); + wxLogError(_T("Error setting parent for StatusBar. Error: %s\n"), sError.c_str()); return; } } @@ -310,24 +288,15 @@ void wxFrame::PositionStatusBar() #endif // wxUSE_STATUSBAR #if wxUSE_TOOLBAR -wxToolBar* wxFrame::OnCreateToolBar( - long lStyle -, wxWindowID vId -, const wxString& rsName -) +wxToolBar* wxFrame::OnCreateToolBar( long lStyle, wxWindowID vId, const wxString& rsName ) { wxToolBar* pToolBar = wxFrameBase::OnCreateToolBar( lStyle ,vId ,rsName ); - ::WinSetParent( pToolBar->GetHWND() - ,m_hFrame - ,FALSE - ); - ::WinSetOwner( pToolBar->GetHWND() - ,m_hFrame - ); + ::WinSetParent( pToolBar->GetHWND(), m_hFrame, FALSE); + ::WinSetOwner( pToolBar->GetHWND(), m_hFrame); return pToolBar; } // end of WinGuiBase_CFrame::OnCreateToolBar #endif @@ -580,7 +549,7 @@ bool wxFrame::ShowFullScreen( bool bShow, long lStyle ) ::WinQueryWindowRect(HWND_DESKTOP, &vRect); nWidth = vRect.xRight - vRect.xLeft; // - // Rmember OS/2 is backwards! + // Remember OS/2 is backwards! // nHeight = vRect.yTop - vRect.yBottom; @@ -735,6 +704,22 @@ void wxFrame::PositionToolBar() ,vTHeight ); } + else if (pToolBar->GetWindowStyleFlag() & wxTB_BOTTOM) + { + wxCoord vSwidth = 0; + wxCoord vSheight = 0; + + if (m_frameStatusBar) + m_frameStatusBar->GetSize( &vSwidth + ,&vSheight + ); + vWidth = (wxCoord)(vRect.xRight - vRect.xLeft); + pToolBar->SetSize( vRect.xLeft - vFRect.xLeft + ,vFRect.yTop - vRect.yBottom - vTHeight - vSheight + ,vWidth + ,vTHeight + ); + } else { wxCoord vSwidth = 0; @@ -875,17 +860,12 @@ bool wxFrame::HandlePaint() ::WinQueryWindowRect(GetHwnd(), &vRect3); -#if !(defined(__WATCOMC__) && __WATCOMC__ < 1240 ) -// Open Watcom 1.3 had incomplete headers -// that's reported and should be fixed for OW 1.4 - static const int nIconWidth = 32; static const int nIconHeight = 32; int nIconX = (int)((vRect3.xRight - nIconWidth)/2); int nIconY = (int)((vRect3.yBottom + nIconHeight)/2); ::WinDrawPointer(hPs, nIconX, nIconY, hIcon, DP_NORMAL); -#endif } ::WinEndPaint(hPs); } @@ -1135,6 +1115,13 @@ MRESULT EXPENTRY wxFrameMainWndProc( HWND hWnd, pSWP[i].cx = vRectl.xRight - vRectl.xLeft; pSWP[i].cy = vRectl.yTop - vRectl.yBottom - (nHeight + nHeight2); } + else if (pWnd->m_frameToolBar && pWnd->m_frameToolBar->GetWindowStyleFlag() & wxTB_BOTTOM) + { + pSWP[i].x = vRectl.xLeft; + pSWP[i].y = vRectl.yBottom + nHeight + nHeight2; + pSWP[i].cx = vRectl.xRight - vRectl.xLeft; + pSWP[i].cy = vRectl.yTop - vRectl.yBottom - (nHeight + nHeight2); + } else { pSWP[i].x = vRectl.xLeft + nWidth;