From 2da5129e139be0a4894d2455fd8909d945d1aefb Mon Sep 17 00:00:00 2001 From: Gary Allen Date: Tue, 9 Feb 2021 10:35:43 +0200 Subject: [PATCH] Allow customizing all tool colours in wxRibbonMSWArtProvider A number wxRIBBON_ART_TOOOL_XXX constants were not taken into account by GetColour() and SetColour() for some reason, even though the class did have the corresponding member colour variables. Fix this by simply adding cases for them to the existing switch. Closes https://github.com/wxWidgets/wxWidgets/pull/2225 --- src/ribbon/art_msw.cpp | 60 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/src/ribbon/art_msw.cpp b/src/ribbon/art_msw.cpp index 6daf52d901..fe752094c6 100644 --- a/src/ribbon/art_msw.cpp +++ b/src/ribbon/art_msw.cpp @@ -942,6 +942,30 @@ wxColour wxRibbonMSWArtProvider::GetColour(int id) const return m_tab_highlight_colour; case wxRIBBON_ART_BUTTON_BAR_LABEL_HIGHLIGHT_GRADIENT_COLOUR: return m_tab_highlight_gradient_colour; + case wxRIBBON_ART_TOOL_BACKGROUND_TOP_COLOUR: + return m_tool_background_top_colour; + case wxRIBBON_ART_TOOL_BACKGROUND_TOP_GRADIENT_COLOUR: + return m_tool_background_top_gradient_colour; + case wxRIBBON_ART_TOOL_BACKGROUND_COLOUR: + return m_tool_background_colour; + case wxRIBBON_ART_TOOL_BACKGROUND_GRADIENT_COLOUR: + return m_tool_background_gradient_colour; + case wxRIBBON_ART_TOOL_HOVER_BACKGROUND_TOP_COLOUR: + return m_tool_hover_background_top_colour; + case wxRIBBON_ART_TOOL_HOVER_BACKGROUND_TOP_GRADIENT_COLOUR: + return m_tool_hover_background_top_gradient_colour; + case wxRIBBON_ART_TOOL_HOVER_BACKGROUND_COLOUR: + return m_tool_hover_background_colour; + case wxRIBBON_ART_TOOL_HOVER_BACKGROUND_GRADIENT_COLOUR: + return m_tool_hover_background_gradient_colour; + case wxRIBBON_ART_TOOL_ACTIVE_BACKGROUND_TOP_COLOUR: + return m_tool_active_background_top_colour; + case wxRIBBON_ART_TOOL_ACTIVE_BACKGROUND_TOP_GRADIENT_COLOUR: + return m_tool_active_background_top_gradient_colour; + case wxRIBBON_ART_TOOL_ACTIVE_BACKGROUND_COLOUR: + return m_tool_active_background_colour; + case wxRIBBON_ART_TOOL_ACTIVE_BACKGROUND_GRADIENT_COLOUR: + return m_tool_active_background_gradient_colour; default: wxFAIL_MSG(wxT("Invalid Metric Ordinal")); break; @@ -1247,6 +1271,42 @@ void wxRibbonMSWArtProvider::SetColour(int id, const wxColor& colour) case wxRIBBON_ART_BUTTON_BAR_LABEL_HIGHLIGHT_GRADIENT_COLOUR: m_tab_highlight_gradient_colour = colour; break; + case wxRIBBON_ART_TOOL_BACKGROUND_TOP_COLOUR: + m_tool_background_top_colour = colour; + break; + case wxRIBBON_ART_TOOL_BACKGROUND_TOP_GRADIENT_COLOUR: + m_tool_background_top_gradient_colour = colour; + break; + case wxRIBBON_ART_TOOL_BACKGROUND_COLOUR: + m_tool_background_colour = colour; + break; + case wxRIBBON_ART_TOOL_BACKGROUND_GRADIENT_COLOUR: + m_tool_background_gradient_colour = colour; + break; + case wxRIBBON_ART_TOOL_HOVER_BACKGROUND_TOP_COLOUR: + m_tool_hover_background_top_colour = colour; + break; + case wxRIBBON_ART_TOOL_HOVER_BACKGROUND_TOP_GRADIENT_COLOUR: + m_tool_hover_background_top_gradient_colour = colour; + break; + case wxRIBBON_ART_TOOL_HOVER_BACKGROUND_COLOUR: + m_tool_hover_background_colour = colour; + break; + case wxRIBBON_ART_TOOL_HOVER_BACKGROUND_GRADIENT_COLOUR: + m_tool_hover_background_gradient_colour = colour; + break; + case wxRIBBON_ART_TOOL_ACTIVE_BACKGROUND_TOP_COLOUR: + m_tool_active_background_top_colour = colour; + break; + case wxRIBBON_ART_TOOL_ACTIVE_BACKGROUND_TOP_GRADIENT_COLOUR: + m_tool_active_background_top_gradient_colour = colour; + break; + case wxRIBBON_ART_TOOL_ACTIVE_BACKGROUND_COLOUR: + m_tool_active_background_colour = colour; + break; + case wxRIBBON_ART_TOOL_ACTIVE_BACKGROUND_GRADIENT_COLOUR: + m_tool_active_background_gradient_colour = colour; + break; default: wxFAIL_MSG(wxT("Invalid Metric Ordinal")); break;