diff options
author | Robin Gareus <robin@gareus.org> | 2015-05-24 20:22:50 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2015-05-24 20:22:50 +0200 |
commit | c5d7685741371b7c6e0f56dbd95080a14c8b1dcd (patch) | |
tree | 979993dad964386bd6d0f587fc3bd449875622df /gtk2_ardour/ardour_button.cc | |
parent | ff5b1b0c999b261d04e6e11c479e33c1178d1a10 (diff) |
add vector rendition of nudge icons.
Diffstat (limited to 'gtk2_ardour/ardour_button.cc')
-rw-r--r-- | gtk2_ardour/ardour_button.cc | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/gtk2_ardour/ardour_button.cc b/gtk2_ardour/ardour_button.cc index 8d4e9dca3e..d5eadac124 100644 --- a/gtk2_ardour/ardour_button.cc +++ b/gtk2_ardour/ardour_button.cc @@ -218,6 +218,15 @@ render_vector_icon (cairo_t *cr, cairo_set_source_rgba (cr, 1, 1, 1, (fillalpha)); \ cairo_fill(cr); +#define VECTORICONSTROKEOUTLINE() \ + cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND); \ + cairo_set_line_width(cr, 3.0); \ + cairo_set_source_rgba (cr, 0, 0, 0, 1.0); \ + cairo_stroke_preserve(cr); \ + ArdourCanvas::set_source_rgba (cr, fg_color); \ + cairo_set_line_width(cr, 1.5); \ + cairo_stroke(cr); + /* TODO separate these into dedicated class * it may also be efficient to render them only once for every size (image-surface) */ @@ -544,6 +553,38 @@ render_vector_icon (cairo_t *cr, cairo_fill(cr); } break; + case ArdourButton::NudgeLeft: + { + const double x = width * .5; + const double y = height * .5; + const double wh = std::min (x, y); + + const double tri_x = .3 * wh; + const double tri_y = .6 * wh; + + cairo_move_to (cr, x + tri_x, y - tri_y); + cairo_line_to (cr, x - tri_x, y); + cairo_line_to (cr, x + tri_x, y + tri_y); + VECTORICONSTROKEOUTLINE(); + } + break; + case ArdourButton::NudgeRight: + { + + const double x = width * .5; + const double y = height * .5; + const double wh = std::min (x, y); + + const double tri_x = .3 * wh; + const double tri_y = .6 * wh; + + cairo_move_to (cr, x - tri_x, y - tri_y); + cairo_line_to (cr, x + tri_x, y); + cairo_line_to (cr, x - tri_x, y + tri_y); + VECTORICONSTROKEOUTLINE(); + + } + break; default: // missing icon assert(0); |