From dfa93e0b1748a57c1e7109eda0ff525e85b748e9 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 21 Aug 2019 01:25:34 +0200 Subject: Tweak Ardourbutton: support (VectorIcon | Indicator) --- libs/widgets/ardour_button.cc | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'libs/widgets') diff --git a/libs/widgets/ardour_button.cc b/libs/widgets/ardour_button.cc index 8638f67e1d..9e3555b439 100644 --- a/libs/widgets/ardour_button.cc +++ b/libs/widgets/ardour_button.cc @@ -370,18 +370,25 @@ ArdourButton::render (Cairo::RefPtr const& ctx, cairo_rectangle_ if (_elements & (VectorIcon | IconRenderCallback)) { int vw = get_width(); int vh = get_height(); + cairo_save (cr); + if (_elements & Menu) { vw -= _diameter + 4; } + if (_elements & Indicator) { + vw -= _diameter + char_pixel_width (); + if (_led_left) { + cairo_translate (cr, _diameter + char_pixel_width (), 0); + } + } if (_elements & VectorIcon) { ArdourIcon::render (cr, _icon, vw, vh, active_state(), text_color); } else { - cairo_save (cr); rounded_function (cr, 0, 0, get_width(), get_height(), corner_radius + 1.5); cairo_clip (cr); _icon_render_cb (cr, vw, vh, text_color, _icon_render_cb_data); - cairo_restore (cr); } + cairo_restore (cr); } const int text_margin = char_pixel_width(); @@ -490,7 +497,7 @@ ArdourButton::render (Cairo::RefPtr const& ctx, cairo_rectangle_ cairo_save (cr); /* move to the center of the indicator/led */ - if (_elements & Text) { + if (_elements & (Text | VectorIcon | IconRenderCallback)) { int led_xoff = ceil(char_pixel_width() + _diameter * .5); if (_led_left) { cairo_translate (cr, led_xoff, get_height() * .5); -- cgit v1.2.3