13
0

Add new icons: hide, prev/next

This commit is contained in:
Robin Gareus 2019-09-12 23:30:48 +02:00
parent 7e5552d00b
commit 9c752c249d
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
2 changed files with 72 additions and 1 deletions

View 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;

View 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,