From: Stefan Neis Date: Sun, 12 Nov 2006 16:06:07 +0000 (+0000) Subject: Applied toolbar patch for wxTB_RIGHT support (patch #1595081). X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/9ffdd8cf3c7aa760bec29050688487bb01806b83 Applied toolbar patch for wxTB_RIGHT support (patch #1595081). git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43350 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/os2/frame.cpp b/src/os2/frame.cpp index 38c03e700b..f7ab688deb 100644 --- a/src/os2/frame.cpp +++ b/src/os2/frame.cpp @@ -695,7 +695,7 @@ void wxFrame::PositionToolBar() ,&vTHeight ); - if (pToolBar->GetWindowStyleFlag() & wxTB_HORIZONTAL) + if (pToolBar->GetWindowStyleFlag() & wxTB_TOP) { vWidth = (wxCoord)(vRect.xRight - vRect.xLeft); pToolBar->SetSize( vRect.xLeft - vFRect.xLeft @@ -720,6 +720,22 @@ void wxFrame::PositionToolBar() ,vTHeight ); } + else if (pToolBar->GetWindowStyleFlag() & wxTB_LEFT) + { + wxCoord vSwidth = 0; + wxCoord vSheight = 0; + + if (m_frameStatusBar) + m_frameStatusBar->GetSize( &vSwidth + ,&vSheight + ); + vHeight = (wxCoord)(vRect.yTop - vRect.yBottom); + pToolBar->SetSize( vRect.xLeft - vRect.xLeft + ,vPos.y + ,vTWidth + ,vHeight - vSheight + ); + } else { wxCoord vSwidth = 0; @@ -730,7 +746,7 @@ void wxFrame::PositionToolBar() ,&vSheight ); vHeight = (wxCoord)(vRect.yTop - vRect.yBottom); - pToolBar->SetSize( vRect.xLeft - vFRect.xLeft + pToolBar->SetSize( vRect.xRight - vFRect.xLeft - vTWidth ,vPos.y ,vTWidth ,vHeight - vSheight @@ -1108,7 +1124,7 @@ MRESULT EXPENTRY wxFrameMainWndProc( HWND hWnd, { if(pWnd->m_hWnd && pSWP[i].hwnd == pWnd->m_hWnd) { - if (pWnd->m_frameToolBar && pWnd->m_frameToolBar->GetWindowStyleFlag() & wxTB_HORIZONTAL) + if (pWnd->m_frameToolBar && pWnd->m_frameToolBar->GetWindowStyleFlag() & wxTB_TOP) { pSWP[i].x = vRectl.xLeft; pSWP[i].y = vRectl.yBottom + nHeight; @@ -1122,13 +1138,20 @@ MRESULT EXPENTRY wxFrameMainWndProc( HWND hWnd, pSWP[i].cx = vRectl.xRight - vRectl.xLeft; pSWP[i].cy = vRectl.yTop - vRectl.yBottom - (nHeight + nHeight2); } - else + else if (pWnd->m_frameToolBar && pWnd->m_frameToolBar->GetWindowStyleFlag() & wxTB_LEFT) { pSWP[i].x = vRectl.xLeft + nWidth; pSWP[i].y = vRectl.yBottom + nHeight; pSWP[i].cx = vRectl.xRight - (vRectl.xLeft + nWidth); pSWP[i].cy = vRectl.yTop - vRectl.yBottom - nHeight; } + else + { + pSWP[i].x = vRectl.xLeft; + pSWP[i].y = vRectl.yBottom + nHeight; + pSWP[i].cx = vRectl.xRight - (vRectl.xLeft + nWidth); + pSWP[i].cy = vRectl.yTop - vRectl.yBottom - nHeight; + } pSWP[i].fl = SWP_SIZE | SWP_MOVE | SWP_SHOW; pSWP[i].hwndInsertBehind = HWND_TOP; } diff --git a/src/os2/toolbar.cpp b/src/os2/toolbar.cpp index 55a5e314e3..230adb16e8 100644 --- a/src/os2/toolbar.cpp +++ b/src/os2/toolbar.cpp @@ -333,7 +333,7 @@ bool wxToolBar::Create( wxWindow* pParent, SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_MENUBAR)); SetFont(*wxSMALL_FONT); - if (GetWindowStyleFlag() & wxTB_VERTICAL) + if (GetWindowStyleFlag() & (wxTB_LEFT | wxTB_RIGHT)) { m_vLastX = 7; m_vLastY = 3; @@ -375,7 +375,7 @@ bool wxToolBar::Create( wxWindow* pParent, int nWidth = rSize.x; int nHeight = rSize.y; - if (lStyle & (wxTB_HORIZONTAL | wxTB_BOTTOM)) + if (lStyle & (wxTB_TOP | wxTB_BOTTOM)) { if (nWidth <= 0) { @@ -499,7 +499,7 @@ bool wxToolBar::Realize() if (pTool->IsSeparator()) { - if (GetWindowStyleFlag() & (wxTB_HORIZONTAL | wxTB_BOTTOM)) + if (GetWindowStyleFlag() & (wxTB_TOP | 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 | wxTB_BOTTOM)) + if (GetWindowStyleFlag() & (wxTB_TOP | wxTB_BOTTOM)) { if (m_nCurrentRowsOrColumns >= m_maxCols) { @@ -565,7 +565,7 @@ bool wxToolBar::Realize() node = node->GetNext(); } - if (GetWindowStyleFlag() & (wxTB_HORIZONTAL | wxTB_BOTTOM)) + if (GetWindowStyleFlag() & (wxTB_TOP | 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) || HasFlag(wxTB_BOTTOM)) + if (HasFlag(wxTB_TOP) || 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) || HasFlag(wxTB_BOTTOM)) + if (HasFlag(wxTB_TOP) || HasFlag(wxTB_BOTTOM)) nHeight = pTool->GetHeight() - 2; else {