From 94f39d818134ff854dcc799d492b16d29416d03a Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Thu, 4 Oct 2012 23:23:41 +0000 Subject: [PATCH] Add a setting for the disabled text colour to wxRibbon art. Allow specifying the text for the labels of the disabled items separately. Closes #14721. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72619 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/ribbon/art.h | 4 +++- interface/wx/ribbon/art.h | 2 ++ samples/ribbon/ribbondemo.cpp | 5 +++++ src/ribbon/art_aui.cpp | 5 ++++- src/ribbon/art_msw.cpp | 12 +++++++++++- 5 files changed, 25 insertions(+), 3 deletions(-) diff --git a/include/wx/ribbon/art.h b/include/wx/ribbon/art.h index 5042f39d48..86229f6698 100644 --- a/include/wx/ribbon/art.h +++ b/include/wx/ribbon/art.h @@ -131,7 +131,8 @@ enum wxRibbonArtSetting wxRIBBON_ART_TOOL_ACTIVE_BACKGROUND_TOP_COLOUR, wxRIBBON_ART_TOOL_ACTIVE_BACKGROUND_TOP_GRADIENT_COLOUR, wxRIBBON_ART_TOOL_ACTIVE_BACKGROUND_COLOUR, - wxRIBBON_ART_TOOL_ACTIVE_BACKGROUND_GRADIENT_COLOUR + wxRIBBON_ART_TOOL_ACTIVE_BACKGROUND_GRADIENT_COLOUR, + wxRIBBON_ART_BUTTON_BAR_LABEL_DISABLED_COLOUR }; enum wxRibbonScrollButtonStyle @@ -650,6 +651,7 @@ protected: wxColour m_tertiary_scheme_colour; wxColour m_button_bar_label_colour; + wxColour m_button_bar_label_disabled_colour; wxColour m_tab_label_colour; wxColour m_tab_separator_colour; wxColour m_tab_separator_gradient_colour; diff --git a/interface/wx/ribbon/art.h b/interface/wx/ribbon/art.h index a5fd62f1cd..cab03f0ea1 100644 --- a/interface/wx/ribbon/art.h +++ b/interface/wx/ribbon/art.h @@ -35,6 +35,8 @@ enum wxRibbonArtSetting wxRIBBON_ART_BUTTON_BAR_LABEL_FONT, wxRIBBON_ART_TAB_LABEL_FONT, wxRIBBON_ART_BUTTON_BAR_LABEL_COLOUR, + /// @since 2.9.5 + wxRIBBON_ART_BUTTON_BAR_LABEL_DISABLED_COLOUR, wxRIBBON_ART_BUTTON_BAR_HOVER_BORDER_COLOUR, wxRIBBON_ART_BUTTON_BAR_HOVER_BACKGROUND_TOP_COLOUR, wxRIBBON_ART_BUTTON_BAR_HOVER_BACKGROUND_TOP_GRADIENT_COLOUR, diff --git a/samples/ribbon/ribbondemo.cpp b/samples/ribbon/ribbondemo.cpp index a3933a0b3d..e30b1db9a2 100644 --- a/samples/ribbon/ribbondemo.cpp +++ b/samples/ribbon/ribbondemo.cpp @@ -405,6 +405,11 @@ MyFrame::MyFrame() bar->AddButton(ID_CHANGE_TEXT1, wxT("One"), ribbon_xpm); bar->AddButton(ID_CHANGE_TEXT2, wxT("Two"), ribbon_xpm); bar->AddButton(ID_UI_CHANGE_TEXT_UPDATED, wxT("Zero"), ribbon_xpm); + + //Also set the general disabled text colour: + wxRibbonArtProvider* artProvider = m_ribbon->GetArtProvider(); + wxColour tColour = artProvider->GetColor(wxRIBBON_ART_BUTTON_BAR_LABEL_COLOUR); + artProvider->SetColor(wxRIBBON_ART_BUTTON_BAR_LABEL_DISABLED_COLOUR, tColour.MakeDisabled()); } new wxRibbonPage(m_ribbon, wxID_ANY, wxT("Empty Page"), empty_xpm); { diff --git a/src/ribbon/art_aui.cpp b/src/ribbon/art_aui.cpp index 7249af03ee..b284e24786 100644 --- a/src/ribbon/art_aui.cpp +++ b/src/ribbon/art_aui.cpp @@ -244,6 +244,7 @@ void wxRibbonAUIArtProvider::SetColourScheme( m_button_bar_hover_background_brush = LikeSecondary(1.7); m_button_bar_active_background_brush = LikeSecondary(1.4); m_button_bar_label_colour = m_tab_label_colour; + m_button_bar_label_disabled_colour = m_tab_label_colour; m_gallery_border_pen = m_tab_border_pen; m_gallery_item_border_pen = m_button_bar_hover_border_pen; m_gallery_hover_background_brush = LikePrimary(1.2); @@ -1082,7 +1083,9 @@ void wxRibbonAUIArtProvider::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); } diff --git a/src/ribbon/art_msw.cpp b/src/ribbon/art_msw.cpp index ca4b457e23..65b7870d5a 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; @@ -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); } -- 2.45.2