Add new icons: hide, prev/next
authorRobin Gareus <robin@gareus.org>
Thu, 12 Sep 2019 21:30:48 +0000 (23:30 +0200)
committerRobin Gareus <robin@gareus.org>
Thu, 12 Sep 2019 21:36:25 +0000 (23:36 +0200)
libs/widgets/ardour_icon.cc
libs/widgets/widgets/ardour_icon.h

index 70fe36d0ba9fa93ced462aebf290cfbf45c26b38..6307c3eaef9ab067c2c44ec2ffa8fe49f6700122 100644 (file)
@@ -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;
index a3bd1cc67572a149b0e5f9301699fda26adc1118..0144feade8029c37fb68aecacc29f5aeed3bd5aa 100644 (file)
@@ -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,