summaryrefslogtreecommitdiff
path: root/libs/widgets
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2019-09-12 23:30:48 +0200
committerRobin Gareus <robin@gareus.org>2019-09-12 23:36:25 +0200
commit9c752c249d4b87a24d71f8c745027efac8ea95e2 (patch)
tree237b4de94a791de6084df1a7b8be0972a61b2bc1 /libs/widgets
parent7e5552d00beb7703a56b149db227956aa6b107f5 (diff)
Add new icons: hide, prev/next
Diffstat (limited to 'libs/widgets')
-rw-r--r--libs/widgets/ardour_icon.cc70
-rw-r--r--libs/widgets/widgets/ardour_icon.h3
2 files changed, 72 insertions, 1 deletions
diff --git a/libs/widgets/ardour_icon.cc b/libs/widgets/ardour_icon.cc
index 70fe36d0ba..6307c3eaef 100644
--- a/libs/widgets/ardour_icon.cc
+++ b/libs/widgets/ardour_icon.cc
@@ -879,7 +879,7 @@ static void icon_close_cross (cairo_t *cr, const int width, const int height, co
const double y = height * .5;
const double o = .5 + std::min (x, y) * .4;
Gtkmm2ext::set_source_rgba (cr, fg_color);
- cairo_set_line_width (cr, ceil (.07 * std::min (x, y)));
+ cairo_set_line_width (cr, DEFAULT_LINE_WIDTH);
cairo_move_to (cr, x-o, y-o);
cairo_line_to (cr, x+o, y+o);
cairo_move_to (cr, x+o, y-o);
@@ -887,6 +887,65 @@ static void icon_close_cross (cairo_t *cr, const int width, const int height, co
cairo_stroke (cr);
}
+/** "hide" strike through eye */
+static void icon_hide_eye (cairo_t *cr, const int width, const int height, const uint32_t fg_color)
+{
+ const double x = width * .5;
+ const double y = height * .5;
+ const double wh = std::min (x, y);
+
+ const double r = .2 * wh;
+ const double o = .60 * wh;
+ const double dx = .75 * wh;
+ const double dy = .65 * wh;
+
+ cairo_move_to (cr, x - dx, y);
+ cairo_curve_to (cr, x, y + dy, x, y + dy, x + dx, y);
+ cairo_curve_to (cr, x, y - dy, x, y - dy, x - dx, y);
+ VECTORICONSTROKE (DEFAULT_LINE_WIDTH, fg_color);
+
+ cairo_arc (cr, x, y, r, 0, 2 * M_PI);
+ //cairo_fill (cr);
+ VECTORICONSTROKE (DEFAULT_LINE_WIDTH, fg_color);
+
+ cairo_move_to (cr, x - o, y + o);
+ cairo_line_to (cr, x + o, y - o);
+ VECTORICONSTROKEOUTLINE (DEFAULT_LINE_WIDTH, fg_color);
+}
+
+/** slim "<" */
+static void icon_scroll_left (cairo_t *cr, const int width, const int height, const uint32_t fg_color)
+{
+ const double x = width * .5;
+ const double y = height * .5;
+ const double wh = std::min (x, y);
+
+ const double tri1 = .2 * wh;
+ const double tri2 = .4 * wh;
+
+ cairo_move_to (cr, x + tri1, y - tri2);
+ cairo_line_to (cr, x - tri2, y);
+ cairo_line_to (cr, x + tri1, y + tri2);
+ VECTORICONSTROKE (DEFAULT_LINE_WIDTH, fg_color);
+}
+
+/** slim ">" */
+static void icon_scroll_right (cairo_t *cr, const int width, const int height, const uint32_t fg_color)
+{
+
+ const double x = width * .5;
+ const double y = height * .5;
+ const double wh = std::min (x, y);
+
+ const double tri1 = .2 * wh;
+ const double tri2 = .4 * wh;
+
+ cairo_move_to (cr, x - tri1, y - tri2);
+ cairo_line_to (cr, x + tri2, y);
+ cairo_line_to (cr, x - tri1, y + tri2);
+ VECTORICONSTROKE (DEFAULT_LINE_WIDTH, fg_color);
+}
+
/** "<" */
static void icon_nudge_left (cairo_t *cr, const int width, const int height, const uint32_t fg_color)
{
@@ -1271,12 +1330,21 @@ ArdourWidgets::ArdourIcon::render (cairo_t *cr,
case CloseCross:
icon_close_cross (cr, width, height, fg_color);
break;
+ case HideEye:
+ icon_hide_eye (cr, width, height, fg_color);
+ break;
case StripWidth:
icon_strip_width (cr, width, height, fg_color);
break;
case DinMidi:
icon_din_midi (cr, width, height, fg_color);
break;
+ case ScrollLeft:
+ icon_scroll_left (cr, width, height, fg_color);
+ break;
+ case ScrollRight:
+ icon_scroll_right (cr, width, height, fg_color);
+ break;
case NudgeLeft:
icon_nudge_left (cr, width, height, fg_color);
break;
diff --git a/libs/widgets/widgets/ardour_icon.h b/libs/widgets/widgets/ardour_icon.h
index a3bd1cc675..0144feade8 100644
--- a/libs/widgets/widgets/ardour_icon.h
+++ b/libs/widgets/widgets/ardour_icon.h
@@ -30,6 +30,7 @@ namespace ArdourWidgets { namespace ArdourIcon {
RecButton,
RecTapeMode,
CloseCross,
+ HideEye,
StripWidth,
DinMidi,
TransportStop,
@@ -40,6 +41,8 @@ namespace ArdourWidgets { namespace ArdourIcon {
TransportEnd,
TransportPanic,
TransportMetronom,
+ ScrollLeft,
+ ScrollRight,
NudgeLeft,
NudgeRight,
ZoomIn,