summaryrefslogtreecommitdiff
path: root/gtk2_ardour/ardour_button.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-05-24 20:22:50 +0200
committerRobin Gareus <robin@gareus.org>2015-05-24 20:22:50 +0200
commitc5d7685741371b7c6e0f56dbd95080a14c8b1dcd (patch)
tree979993dad964386bd6d0f587fc3bd449875622df /gtk2_ardour/ardour_button.cc
parentff5b1b0c999b261d04e6e11c479e33c1178d1a10 (diff)
add vector rendition of nudge icons.
Diffstat (limited to 'gtk2_ardour/ardour_button.cc')
-rw-r--r--gtk2_ardour/ardour_button.cc41
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);