diff --git a/SharedGraphics/StylePainter.cpp b/SharedGraphics/StylePainter.cpp index b87837ee99..5e5741d78b 100644 --- a/SharedGraphics/StylePainter.cpp +++ b/SharedGraphics/StylePainter.cpp @@ -53,7 +53,7 @@ static void paint_button_new(Painter& painter, const Rect& rect, bool pressed, b } } -void StylePainter::paint_button(Painter& painter, const Rect& rect, ButtonStyle button_style, bool pressed, bool hovered, bool checked) +void StylePainter::paint_button(Painter& painter, const Rect& rect, ButtonStyle button_style, bool pressed, bool hovered, bool checked, bool enabled) { if (button_style == ButtonStyle::Normal) return paint_button_new(painter, rect, pressed, checked, hovered); @@ -65,6 +65,9 @@ void StylePainter::paint_button(Painter& painter, const Rect& rect, ButtonStyle if (button_style == ButtonStyle::OldNormal) painter.draw_rect(rect, Color::Black); + if (button_style == ButtonStyle::CoolBar && !enabled) + return; + PainterStateSaver saver(painter); painter.translate(rect.location()); diff --git a/SharedGraphics/StylePainter.h b/SharedGraphics/StylePainter.h index 023191b077..0f22c65b8f 100644 --- a/SharedGraphics/StylePainter.h +++ b/SharedGraphics/StylePainter.h @@ -9,7 +9,7 @@ enum class FrameShape { NoFrame, Box, Container, Panel, VerticalLine, Horizontal class StylePainter { public: - static void paint_button(Painter&, const Rect&, ButtonStyle, bool pressed, bool hovered = false, bool checked = false); + static void paint_button(Painter&, const Rect&, ButtonStyle, bool pressed, bool hovered = false, bool checked = false, bool enabled = true); static void paint_surface(Painter&, const Rect&, bool paint_vertical_lines = true); static void paint_frame(Painter&, const Rect&, FrameShape, FrameShadow, int thickness, bool skip_vertical_lines = false); };