diff --git a/include/wx/ribbon/art.h b/include/wx/ribbon/art.h index ad3b3c6532..1001054d2c 100644 --- a/include/wx/ribbon/art.h +++ b/include/wx/ribbon/art.h @@ -73,6 +73,8 @@ enum wxRibbonArtSetting wxRIBBON_ART_GALLERY_BUTTON_DISABLED_FACE_COLOUR, wxRIBBON_ART_GALLERY_ITEM_BORDER_COLOUR, wxRIBBON_ART_TAB_LABEL_COLOUR, + wxRIBBON_ART_TAB_ACTIVE_LABEL_COLOUR, + wxRIBBON_ART_TAB_HOVER_LABEL_COLOUR, wxRIBBON_ART_TAB_SEPARATOR_COLOUR, wxRIBBON_ART_TAB_SEPARATOR_GRADIENT_COLOUR, wxRIBBON_ART_TAB_CTRL_BACKGROUND_COLOUR, @@ -668,6 +670,8 @@ protected: wxColour m_button_bar_label_colour; wxColour m_button_bar_label_disabled_colour; wxColour m_tab_label_colour; + wxColour m_tab_active_label_colour; + wxColour m_tab_hover_label_colour; wxColour m_tab_separator_colour; wxColour m_tab_separator_gradient_colour; wxColour m_tab_active_background_colour; diff --git a/interface/wx/ribbon/art.h b/interface/wx/ribbon/art.h index 7cdb0b9156..167f440c3a 100644 --- a/interface/wx/ribbon/art.h +++ b/interface/wx/ribbon/art.h @@ -66,6 +66,10 @@ enum wxRibbonArtSetting wxRIBBON_ART_GALLERY_BUTTON_DISABLED_FACE_COLOUR, wxRIBBON_ART_GALLERY_ITEM_BORDER_COLOUR, wxRIBBON_ART_TAB_LABEL_COLOUR, + /// @since 3.1.3 + wxRIBBON_ART_TAB_ACTIVE_LABEL_COLOUR, + /// @since 3.1.3 + wxRIBBON_ART_TAB_HOVER_LABEL_COLOUR, wxRIBBON_ART_TAB_SEPARATOR_COLOUR, wxRIBBON_ART_TAB_SEPARATOR_GRADIENT_COLOUR, wxRIBBON_ART_TAB_CTRL_BACKGROUND_COLOUR, diff --git a/src/ribbon/art_aui.cpp b/src/ribbon/art_aui.cpp index ab8993ae51..f24655fd50 100644 --- a/src/ribbon/art_aui.cpp +++ b/src/ribbon/art_aui.cpp @@ -255,6 +255,8 @@ void wxRibbonAUIArtProvider::SetColourScheme( #else m_tab_label_colour = LikePrimary(0.1); #endif + m_tab_active_label_colour = m_tab_label_colour; + m_tab_hover_label_colour = m_tab_label_colour; m_tab_hover_background_top_colour = primary_hsl.ToRGB(); #ifdef __WXMAC__ if ( wxPlatformInfo::Get().CheckOSVersion(10, 10 ) ) diff --git a/src/ribbon/art_msw.cpp b/src/ribbon/art_msw.cpp index c36ae87fff..b64ee75f77 100644 --- a/src/ribbon/art_msw.cpp +++ b/src/ribbon/art_msw.cpp @@ -386,6 +386,8 @@ void wxRibbonMSWArtProvider::SetColourScheme( m_tab_separator_gradient_colour = LikePrimary(1.7, -0.15, -0.18); m_tab_hover_background_top_gradient_colour = LikePrimary(1.8, 0.34, 0.13); m_tab_label_colour = LikePrimary(4.3, 0.13, -0.49); + m_tab_active_label_colour = m_tab_label_colour; + m_tab_hover_label_colour = m_tab_label_colour; m_tab_hover_background_gradient_colour = LikeSecondary(-1.5, -0.34, 0.01); m_panel_minimised_border_gradient_pen = LikePrimary(-6.9, -0.17, -0.09); @@ -528,6 +530,8 @@ void wxRibbonMSWArtProvider::CloneTo(wxRibbonMSWArtProvider* copy) const 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_active_label_colour = m_tab_active_label_colour; + copy->m_tab_hover_label_colour = m_tab_hover_label_colour; copy->m_tab_separator_colour = m_tab_separator_colour; copy->m_tab_separator_gradient_colour = m_tab_separator_gradient_colour; copy->m_tab_active_background_colour = m_tab_hover_background_colour; @@ -849,6 +853,10 @@ wxColour wxRibbonMSWArtProvider::GetColour(int id) const return m_tab_ctrl_background_brush.GetColour(); case wxRIBBON_ART_TAB_LABEL_COLOUR: return m_tab_label_colour; + case wxRIBBON_ART_TAB_ACTIVE_LABEL_COLOUR: + return m_tab_active_label_colour; + case wxRIBBON_ART_TAB_HOVER_LABEL_COLOUR: + return m_tab_hover_label_colour; case wxRIBBON_ART_TAB_SEPARATOR_COLOUR: return m_tab_separator_colour; case wxRIBBON_ART_TAB_SEPARATOR_GRADIENT_COLOUR: @@ -1094,6 +1102,12 @@ void wxRibbonMSWArtProvider::SetColour(int id, const wxColor& colour) case wxRIBBON_ART_TAB_LABEL_COLOUR: m_tab_label_colour = colour; break; + case wxRIBBON_ART_TAB_ACTIVE_LABEL_COLOUR: + m_tab_active_label_colour = colour; + break; + case wxRIBBON_ART_TAB_HOVER_LABEL_COLOUR: + m_tab_hover_label_colour = colour; + break; case wxRIBBON_ART_TAB_SEPARATOR_COLOUR: m_tab_separator_colour = colour; m_cached_tab_separator_visibility = -1.0; @@ -1372,7 +1386,20 @@ void wxRibbonMSWArtProvider::DrawTab( if(!label.IsEmpty()) { dc.SetFont(m_tab_label_font); - dc.SetTextForeground(m_tab_label_colour); + + if (tab.active) + { + dc.SetTextForeground(m_tab_active_label_colour); + } + else if (tab.hovered) + { + dc.SetTextForeground(m_tab_hover_label_colour); + } + else + { + dc.SetTextForeground(m_tab_label_colour); + } + dc.SetBackgroundMode(wxBRUSHSTYLE_TRANSPARENT); int text_height;