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);
dc.SetFont(m_tab_label_font);
dc.SetPen(*wxTRANSPARENT_PEN);
- if(tab.active || tab.hovered)
+ if(tab.active || tab.hovered || tab.highlight)
{
if(tab.active)
{
dc.SetBrush(m_tab_active_top_background_brush);
dc.DrawRectangle(tab.rect.x, tab.rect.y + 3, tab.rect.width - 1,
grad_rect.y - tab.rect.y - 3);
- dc.GradientFillLinear(grad_rect, m_tab_active_background_colour,
- m_tab_active_background_gradient_colour, wxSOUTH);
+ if(tab.highlight)
+ {
+ wxColour top_colour((m_tab_active_background_colour.Red() + m_tab_hover_background_top_colour.Red())/2,
+ (m_tab_active_background_colour.Green() + m_tab_hover_background_top_colour.Green())/2,
+ (m_tab_active_background_colour.Blue() + m_tab_hover_background_top_colour.Blue())/2);
+
+ wxColour bottom_colour((m_tab_active_background_gradient_colour.Red() + m_tab_hover_background_top_gradient_colour.Red())/2,
+ (m_tab_active_background_gradient_colour.Green() + m_tab_hover_background_top_gradient_colour.Green())/2,
+ (m_tab_active_background_gradient_colour.Blue() + m_tab_hover_background_top_gradient_colour.Blue())/2);
+
+ dc.GradientFillLinear(grad_rect, top_colour,
+ bottom_colour, wxSOUTH);
+ }
+ else
+ {
+ dc.GradientFillLinear(grad_rect, m_tab_active_background_colour,
+ m_tab_active_background_gradient_colour, wxSOUTH);
+ }
}
else
{
return size;
}
+wxRect wxRibbonAUIArtProvider::GetPanelExtButtonArea(wxDC& dc,
+ const wxRibbonPanel* wnd,
+ wxRect rect)
+{
+ wxRect true_rect(rect);
+ RemovePanelPadding(&true_rect);
+
+ true_rect.x++;
+ true_rect.width -= 2;
+ true_rect.y++;
+
+ dc.SetFont(m_panel_label_font);
+ wxSize label_size = dc.GetTextExtent(wnd->GetLabel());
+ int label_height = label_size.GetHeight() + 5;
+ wxRect label_rect(true_rect);
+ label_rect.height = label_height - 1;
+
+ rect = wxRect(label_rect.GetRight()-13, label_rect.GetBottom()-13, 13, 13);
+ return rect;
+}
+
void wxRibbonAUIArtProvider::DrawPanelBackground(
wxDC& dc,
wxRibbonPanel* wnd,
#endif
dc.GradientFillLinear(gradient_rect, colour, gradient, wxSOUTH);
}
+
+ if(wnd->HasExtButton())
+ {
+ if(wnd->IsExtButtonHovered())
+ {
+ dc.SetPen(m_panel_hover_button_border_pen);
+ dc.SetBrush(m_panel_hover_button_background_brush);
+ dc.DrawRoundedRectangle(label_rect.GetRight() - 13, label_rect.GetBottom() - 13, 13, 13, 1.0);
+ dc.DrawBitmap(m_panel_extension_bitmap[1], label_rect.GetRight() - 10, label_rect.GetBottom() - 10, true);
+ }
+ else
+ dc.DrawBitmap(m_panel_extension_bitmap[0], label_rect.GetRight() - 10, label_rect.GetBottom() - 10, true);
+ }
}
void wxRibbonAUIArtProvider::DrawMinimisedPanel(
}
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);
}