X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5b2acc3a4f02058e76cdcbfad5d57a0988bbb138..fcb29b233888f7012ca6cf486c8287f5463787e0:/src/msw/tbar95.cpp diff --git a/src/msw/tbar95.cpp b/src/msw/tbar95.cpp index 9b9436d81f..64a3802e26 100644 --- a/src/msw/tbar95.cpp +++ b/src/msw/tbar95.cpp @@ -234,6 +234,8 @@ bool wxToolBar::Create(wxWindow *parent, if ( !CreateControl(parent, id, pos, size, style, wxDefaultValidator, name) ) return false; + FixupStyle(); + // MSW-specific initialisation if ( !MSWCreateToolbar(pos, size) ) return false; @@ -347,7 +349,7 @@ wxSize wxToolBar::DoGetBestSize() const sizeBest.x *= GetToolsCount(); // reverse horz and vertical components if necessary - if ( HasFlag(wxTB_VERTICAL) ) + if ( IsVertical() ) { int t = sizeBest.x; sizeBest.x = sizeBest.y; @@ -405,6 +407,9 @@ WXDWORD wxToolBar::MSWGetStyle(long style, WXDWORD *exstyle) const if( style & wxTB_BOTTOM ) msStyle |= CCS_BOTTOM; + if ( style & wxTB_RIGHT ) + msStyle |= CCS_RIGHT; + return msStyle; } @@ -541,8 +546,6 @@ bool wxToolBar::Realize() // nothing to do return true; - const bool isVertical = HasFlag(wxTB_VERTICAL); - #ifdef wxREMAP_BUTTON_COLOURS // don't change the values of these constants, they can be set from the // user code via wxSystemOptions @@ -781,17 +784,21 @@ bool wxToolBar::Realize() } } - if ( m_disabledImgList ) + // disable image lists are only supported in comctl32.dll 4.70+ + if ( wxApp::GetComCtl32Version() >= 470 ) { + HIMAGELIST hil = m_disabledImgList + ? GetHimagelistOf(m_disabledImgList) + : 0; + + // notice that we set the image list even if don't have one right + // now as we could have it before and need to reset it in this case HIMAGELIST oldImageList = (HIMAGELIST) - ::SendMessage(GetHwnd(), - TB_SETDISABLEDIMAGELIST, - 0, - (LPARAM)GetHimagelistOf(m_disabledImgList)); + ::SendMessage(GetHwnd(), TB_SETDISABLEDIMAGELIST, 0, (LPARAM)hil); // delete previous image list if any if ( oldImageList ) - ::DeleteObject( oldImageList ); + ::DeleteObject(oldImageList); } } @@ -819,7 +826,7 @@ bool wxToolBar::Realize() // don't add separators to the vertical toolbar with old comctl32.dll // versions as they didn't handle this properly - if ( isVertical && tool->IsSeparator() && + if ( IsVertical() && tool->IsSeparator() && wxApp::GetComCtl32Version() <= 472 ) { continue; @@ -943,7 +950,7 @@ bool wxToolBar::Realize() // get the items size for all items but for the horizontal ones we // don't need to deal with the non controls bool isControl = tool->IsControl(); - if ( !isControl && !isVertical ) + if ( !isControl && !IsVertical() ) continue; // note that we use TB_GETITEMRECT and not TB_GETRECT because the @@ -1034,7 +1041,7 @@ bool wxToolBar::Realize() } int top; - if ( isVertical ) + if ( IsVertical() ) { left = 0; top = y; @@ -1056,7 +1063,7 @@ bool wxToolBar::Realize() // separators which we added just for aligning the controls m_nButtons = index; - if ( !isVertical ) + if ( !IsVertical() ) { if ( m_maxRows == 0 ) // if not set yet, only one row @@ -1428,7 +1435,7 @@ bool wxToolBar::HandleSize(WXWPARAM WXUNUSED(wParam), WXLPARAM lParam) { int w, h; - if ( GetWindowStyle() & wxTB_VERTICAL ) + if ( IsVertical() ) { w = r.right - r.left; if ( m_maxRows )