From 90a6ac27c744bed385cdd32f12dfca4c39847f03 Mon Sep 17 00:00:00 2001 From: Stefan Neis Date: Sun, 22 Oct 2006 13:52:20 +0000 Subject: [PATCH 1/1] Applied patch #1582212 (completed/fixed toolbar's wxTB_BOTTOM implementation). git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42240 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/os2/frame.cpp | 20 +++++++++++++++++--- src/os2/toolbar.cpp | 12 ++++++------ 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/os2/frame.cpp b/src/os2/frame.cpp index b885819f93..38c03e700b 100644 --- a/src/os2/frame.cpp +++ b/src/os2/frame.cpp @@ -704,13 +704,20 @@ void wxFrame::PositionToolBar() ,vTHeight ); } - else if (pToolBar->GetWindowStyleFlag() & wxTB_BOTTOM ) + 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 - ,vRect.yBottom - vTHeight // assuming the vRect contains the client coordinates + ,vFRect.yTop - vRect.yBottom - vTHeight - vSheight ,vWidth - ,vHeight + ,vTHeight ); } else @@ -1108,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; diff --git a/src/os2/toolbar.cpp b/src/os2/toolbar.cpp index 482109880e..55a5e314e3 100644 --- a/src/os2/toolbar.cpp +++ b/src/os2/toolbar.cpp @@ -375,7 +375,7 @@ bool wxToolBar::Create( wxWindow* pParent, int nWidth = rSize.x; int nHeight = rSize.y; - if (lStyle & wxTB_HORIZONTAL) + if (lStyle & (wxTB_HORIZONTAL | wxTB_BOTTOM)) { if (nWidth <= 0) { @@ -499,7 +499,7 @@ bool wxToolBar::Realize() if (pTool->IsSeparator()) { - if (GetWindowStyleFlag() & wxTB_HORIZONTAL) + if (GetWindowStyleFlag() & (wxTB_HORIZONTAL | wxTB_BOTTOM)) { pTool->m_vX = m_vLastX + nSeparatorSize; pTool->m_vHeight = m_defaultHeight + m_vTextY; @@ -520,7 +520,7 @@ bool wxToolBar::Realize() } else if (pTool->IsButton()) { - if (GetWindowStyleFlag() & wxTB_HORIZONTAL) + if (GetWindowStyleFlag() & (wxTB_HORIZONTAL | wxTB_BOTTOM)) { if (m_nCurrentRowsOrColumns >= m_maxCols) { @@ -565,7 +565,7 @@ bool wxToolBar::Realize() node = node->GetNext(); } - if ( GetWindowStyleFlag() & wxTB_HORIZONTAL ) + if (GetWindowStyleFlag() & (wxTB_HORIZONTAL | wxTB_BOTTOM)) m_maxWidth += nMaxToolWidth; else m_maxHeight += nMaxToolHeight; @@ -618,7 +618,7 @@ void wxToolBar::OnPaint ( vDc.SetPen(vDarkGreyPen); if (HasFlag(wxTB_TEXT)) { - if (HasFlag(wxTB_HORIZONTAL)) + if (HasFlag(wxTB_HORIZONTAL) || HasFlag(wxTB_BOTTOM)) { nX = pTool->m_vX; nY = pTool->m_vY - (m_vTextY - 6); @@ -635,7 +635,7 @@ void wxToolBar::OnPaint ( { nX = pTool->m_vX; nY = pTool->m_vY; - if (HasFlag(wxTB_HORIZONTAL)) + if (HasFlag(wxTB_HORIZONTAL) || HasFlag(wxTB_BOTTOM)) nHeight = pTool->GetHeight() - 2; else { -- 2.47.2