Add wxRibbon panel border colour option
Add wxRIBBON_ART_PANEL_HOVER_BORDER_COLOUR and wxRIBBON_ART_PANEL_HOVER_BORDER_GRADIENT_COLOUR to allow further customization of wxRibbon panels. Closes https://github.com/wxWidgets/wxWidgets/pull/2239
This commit is contained in:
committed by
Vadim Zeitlin
parent
4705645243
commit
9b1829c300
@@ -90,6 +90,8 @@ enum wxRibbonArtSetting
|
||||
wxRIBBON_ART_TAB_BORDER_COLOUR,
|
||||
wxRIBBON_ART_PANEL_BORDER_COLOUR,
|
||||
wxRIBBON_ART_PANEL_BORDER_GRADIENT_COLOUR,
|
||||
wxRIBBON_ART_PANEL_HOVER_BORDER_COLOUR,
|
||||
wxRIBBON_ART_PANEL_HOVER_BORDER_GRADIENT_COLOUR,
|
||||
wxRIBBON_ART_PANEL_MINIMISED_BORDER_COLOUR,
|
||||
wxRIBBON_ART_PANEL_MINIMISED_BORDER_GRADIENT_COLOUR,
|
||||
wxRIBBON_ART_PANEL_LABEL_BACKGROUND_COLOUR,
|
||||
@@ -756,6 +758,8 @@ protected:
|
||||
wxPen m_page_border_pen;
|
||||
wxPen m_panel_border_pen;
|
||||
wxPen m_panel_border_gradient_pen;
|
||||
wxPen m_panel_hover_border_pen;
|
||||
wxPen m_panel_hover_border_gradient_pen;
|
||||
wxPen m_panel_minimised_border_pen;
|
||||
wxPen m_panel_minimised_border_gradient_pen;
|
||||
wxPen m_panel_hover_button_border_pen;
|
||||
|
@@ -85,6 +85,10 @@ enum wxRibbonArtSetting
|
||||
wxRIBBON_ART_TAB_BORDER_COLOUR,
|
||||
wxRIBBON_ART_PANEL_BORDER_COLOUR,
|
||||
wxRIBBON_ART_PANEL_BORDER_GRADIENT_COLOUR,
|
||||
/// @since 3.1.5
|
||||
wxRIBBON_ART_PANEL_HOVER_BORDER_COLOUR,
|
||||
/// @since 3.1.5
|
||||
wxRIBBON_ART_PANEL_HOVER_BORDER_GRADIENT_COLOUR,
|
||||
wxRIBBON_ART_PANEL_MINIMISED_BORDER_COLOUR,
|
||||
wxRIBBON_ART_PANEL_MINIMISED_BORDER_GRADIENT_COLOUR,
|
||||
wxRIBBON_ART_PANEL_LABEL_BACKGROUND_COLOUR,
|
||||
|
@@ -389,8 +389,8 @@ void wxRibbonMSWArtProvider::SetColourScheme(
|
||||
|
||||
m_panel_minimised_border_gradient_pen = LikePrimary(-6.9, -0.17, -0.09);
|
||||
m_panel_minimised_border_pen = LikePrimary(-5.3, -0.24, -0.06);
|
||||
m_panel_border_gradient_pen = LikePrimary(-5.2, -0.15, -0.06);
|
||||
m_panel_border_pen = LikePrimary(-2.8, -0.32, 0.02);
|
||||
m_panel_hover_border_gradient_pen = m_panel_border_gradient_pen = LikePrimary(-5.2, -0.15, -0.06);
|
||||
m_panel_hover_border_pen = m_panel_border_pen = LikePrimary(-2.8, -0.32, 0.02);
|
||||
m_panel_label_background_brush = LikePrimary(-1.5, 0.03, 0.05);
|
||||
m_panel_active_background_gradient_colour = LikePrimary(0.5, 0.34, 0.05);
|
||||
m_panel_hover_label_background_brush = LikePrimary(1.0, 0.30, 0.09);
|
||||
@@ -598,6 +598,8 @@ void wxRibbonMSWArtProvider::CloneTo(wxRibbonMSWArtProvider* copy) const
|
||||
copy->m_page_border_pen = m_page_border_pen;
|
||||
copy->m_panel_border_pen = m_panel_border_pen;
|
||||
copy->m_panel_border_gradient_pen = m_panel_border_gradient_pen;
|
||||
copy->m_panel_hover_border_pen = m_panel_hover_border_pen;
|
||||
copy->m_panel_hover_border_gradient_pen = m_panel_hover_border_gradient_pen;
|
||||
copy->m_panel_minimised_border_pen = m_panel_minimised_border_pen;
|
||||
copy->m_panel_minimised_border_gradient_pen = m_panel_minimised_border_gradient_pen;
|
||||
copy->m_panel_hover_button_border_pen = m_panel_hover_button_border_pen;
|
||||
@@ -879,6 +881,10 @@ wxColour wxRibbonMSWArtProvider::GetColour(int id) const
|
||||
return m_panel_border_pen.GetColour();
|
||||
case wxRIBBON_ART_PANEL_BORDER_GRADIENT_COLOUR:
|
||||
return m_panel_border_gradient_pen.GetColour();
|
||||
case wxRIBBON_ART_PANEL_HOVER_BORDER_COLOUR:
|
||||
return m_panel_hover_border_pen.GetColour();
|
||||
case wxRIBBON_ART_PANEL_HOVER_BORDER_GRADIENT_COLOUR:
|
||||
return m_panel_hover_border_gradient_pen.GetColour();
|
||||
case wxRIBBON_ART_PANEL_MINIMISED_BORDER_COLOUR:
|
||||
return m_panel_minimised_border_pen.GetColour();
|
||||
case wxRIBBON_ART_PANEL_MINIMISED_BORDER_GRADIENT_COLOUR:
|
||||
@@ -1167,6 +1173,12 @@ void wxRibbonMSWArtProvider::SetColour(int id, const wxColor& colour)
|
||||
case wxRIBBON_ART_PANEL_BORDER_GRADIENT_COLOUR:
|
||||
m_panel_border_gradient_pen.SetColour(colour);
|
||||
break;
|
||||
case wxRIBBON_ART_PANEL_HOVER_BORDER_COLOUR:
|
||||
m_panel_hover_border_pen.SetColour(colour);
|
||||
break;
|
||||
case wxRIBBON_ART_PANEL_HOVER_BORDER_GRADIENT_COLOUR:
|
||||
m_panel_hover_border_gradient_pen.SetColour(colour);
|
||||
break;
|
||||
case wxRIBBON_ART_PANEL_MINIMISED_BORDER_COLOUR:
|
||||
m_panel_minimised_border_pen.SetColour(colour);
|
||||
break;
|
||||
@@ -1971,7 +1983,10 @@ void wxRibbonMSWArtProvider::DrawPanelBackground(
|
||||
DrawPartialPageBackground(dc, wnd, client_rect, true);
|
||||
}
|
||||
|
||||
DrawPanelBorder(dc, true_rect, m_panel_border_pen, m_panel_border_gradient_pen);
|
||||
if(!wnd->IsHovered())
|
||||
DrawPanelBorder(dc, true_rect, m_panel_border_pen, m_panel_border_gradient_pen);
|
||||
else
|
||||
DrawPanelBorder(dc, true_rect, m_panel_hover_border_pen, m_panel_hover_border_gradient_pen);
|
||||
}
|
||||
|
||||
wxRect wxRibbonMSWArtProvider::GetPanelExtButtonArea(wxDC& WXUNUSED(dc),
|
||||
@@ -2315,7 +2330,10 @@ void wxRibbonMSWArtProvider::DrawMinimisedPanel(
|
||||
preview.y + (preview.height - 7 - bitmap.GetScaledHeight()) / 2, true);
|
||||
}
|
||||
|
||||
DrawPanelBorder(dc, preview, m_panel_border_pen, m_panel_border_gradient_pen);
|
||||
if (!wnd->IsHovered())
|
||||
DrawPanelBorder(dc, preview, m_panel_border_pen, m_panel_border_gradient_pen);
|
||||
else
|
||||
DrawPanelBorder(dc, preview, m_panel_hover_border_pen, m_panel_hover_border_gradient_pen);
|
||||
|
||||
DrawPanelBorder(dc, true_rect, m_panel_minimised_border_pen,
|
||||
m_panel_minimised_border_gradient_pen);
|
||||
|
Reference in New Issue
Block a user