X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7d1214cd7298f63d03b8f3686524c5f227fcd242..43f4e852a1b2ac37c3db6a2b87315192ac549191:/src/ribbon/art_msw.cpp diff --git a/src/ribbon/art_msw.cpp b/src/ribbon/art_msw.cpp index ca4b457e23..ff4471d007 100644 --- a/src/ribbon/art_msw.cpp +++ b/src/ribbon/art_msw.cpp @@ -435,6 +435,8 @@ void wxRibbonMSWArtProvider::SetColourScheme( m_gallery_button_active_background_top_brush = LikeSecondary(-9.0, 0.15, -0.08); m_button_bar_label_colour = m_tab_label_colour; + m_button_bar_label_disabled_colour = m_tab_label_colour; + m_button_bar_hover_border_pen = LikeSecondary(-6.2, -0.47, -0.14); m_button_bar_hover_background_gradient_colour = LikeSecondary(-0.6, 0.16, 0.04); m_button_bar_hover_background_colour = LikeSecondary(-0.2, 0.16, -0.10); @@ -502,6 +504,7 @@ void wxRibbonMSWArtProvider::CloneTo(wxRibbonMSWArtProvider* copy) const copy->m_page_toggle_hover_face_colour = m_page_toggle_hover_face_colour; copy->m_button_bar_label_colour = m_button_bar_label_colour; + copy->m_button_bar_label_disabled_colour = m_button_bar_label_disabled_colour; copy->m_tab_label_colour = m_tab_label_colour; copy->m_tab_separator_colour = m_tab_separator_colour; copy->m_tab_separator_gradient_colour = m_tab_separator_gradient_colour; @@ -754,6 +757,8 @@ wxColour wxRibbonMSWArtProvider::GetColour(int id) const { case wxRIBBON_ART_BUTTON_BAR_LABEL_COLOUR: return m_button_bar_label_colour; + case wxRIBBON_ART_BUTTON_BAR_LABEL_DISABLED_COLOUR: + return m_button_bar_label_disabled_colour; case wxRIBBON_ART_BUTTON_BAR_HOVER_BORDER_COLOUR: return m_button_bar_hover_border_pen.GetColour(); case wxRIBBON_ART_BUTTON_BAR_HOVER_BACKGROUND_TOP_COLOUR: @@ -912,6 +917,9 @@ void wxRibbonMSWArtProvider::SetColour(int id, const wxColor& colour) case wxRIBBON_ART_BUTTON_BAR_LABEL_COLOUR: m_button_bar_label_colour = colour; break; + case wxRIBBON_ART_BUTTON_BAR_LABEL_DISABLED_COLOUR: + m_button_bar_label_disabled_colour = colour; + break; case wxRIBBON_ART_BUTTON_BAR_HOVER_BORDER_COLOUR: m_button_bar_hover_border_pen.SetColour(colour); break; @@ -1449,7 +1457,7 @@ void wxRibbonMSWArtProvider::DrawPartialPageBackground(wxDC& dc, page->AdjustRectToIncludeScrollButtons(&background); background.height -= 2; } - // Page background isn't dependant upon the width of the page + // Page background isn't dependent upon the width of the page // (at least not the part of it intended to be painted by this // function). Set to wider than the page itself for when externally // expanded panels need a background - the expanded panel can be wider @@ -2444,7 +2452,9 @@ void wxRibbonMSWArtProvider::DrawButtonBarButton( } dc.SetFont(m_button_bar_label_font); - dc.SetTextForeground(m_button_bar_label_colour); + dc.SetTextForeground(state & wxRIBBON_BUTTONBAR_BUTTON_DISABLED + ? m_button_bar_label_disabled_colour + : m_button_bar_label_colour); DrawButtonBarButtonForeground(dc, rect, kind, state, label, bitmap_large, bitmap_small); } @@ -2458,6 +2468,11 @@ void wxRibbonMSWArtProvider::DrawButtonBarButtonForeground( const wxBitmap& bitmap_large, const wxBitmap& bitmap_small) { + const wxColour + arrowColour(state & wxRIBBON_BUTTONBAR_BUTTON_DISABLED + ? m_button_bar_label_disabled_colour + : m_button_bar_label_colour); + switch(state & wxRIBBON_BUTTONBAR_BUTTON_SIZE_MASK) { case wxRIBBON_BUTTONBAR_BUTTON_LARGE: @@ -2477,7 +2492,7 @@ void wxRibbonMSWArtProvider::DrawButtonBarButtonForeground( { DrawDropdownArrow(dc, rect.x + rect.width / 2, ypos + (label_h * 3) / 2, - m_button_bar_label_colour); + arrowColour); } } else @@ -2505,7 +2520,7 @@ void wxRibbonMSWArtProvider::DrawButtonBarButtonForeground( DrawDropdownArrow(dc, iX + 2 +label_w - arrow_width, ypos + label_h / 2 + 1, - m_button_bar_label_colour); + arrowColour); } break; } @@ -2527,8 +2542,7 @@ void wxRibbonMSWArtProvider::DrawButtonBarButtonForeground( x_cursor += label_w + 3; if(kind != wxRIBBON_BUTTON_NORMAL) { - DrawDropdownArrow(dc, x_cursor, rect.y + rect.height / 2, - m_button_bar_label_colour); + DrawDropdownArrow(dc, x_cursor, rect.y + rect.height / 2, arrowColour); } break; }