update rec-en circle drawing, add tape-mode
This commit is contained in:
parent
1cd366b606
commit
d7ff2b87fb
@ -290,15 +290,66 @@ ArdourButton::render (cairo_t* cr, cairo_rectangle_t *)
|
||||
}
|
||||
}
|
||||
else // rec-en is exclusive to pixbuf (tape machine mode, rec-en)
|
||||
if ((_elements & RecButton)) {
|
||||
if ((_elements & (RecButton|RecTapeMode)) == (RecButton|RecTapeMode)) {
|
||||
const double h = get_height();
|
||||
const double x = get_width() * .5;
|
||||
const double y = get_height() * .5;
|
||||
cairo_arc (cr, x, y, get_height () *.2 , 0, 2 * M_PI);
|
||||
const double slit = .11 * M_PI;
|
||||
cairo_save(cr);
|
||||
cairo_translate(cr, x, y);
|
||||
|
||||
cairo_arc (cr, 0, 0, y *.6, 0, 2 * M_PI);
|
||||
cairo_set_source_rgba (cr, .95, .44, .44, 1.); // #f46f6f
|
||||
cairo_fill_preserve(cr);
|
||||
cairo_set_source_rgba (cr, .0, .0, .0, 1.);
|
||||
cairo_set_source_rgba (cr, .0, .0, .0, .5);
|
||||
cairo_set_line_width(cr, 1);
|
||||
cairo_stroke (cr);
|
||||
cairo_stroke(cr);
|
||||
|
||||
cairo_save(cr);
|
||||
cairo_set_source_rgba (cr, .15, .07, .07, 1.0);
|
||||
|
||||
cairo_rotate (cr, -.5 * M_PI);
|
||||
cairo_move_to(cr, 0, 0);
|
||||
cairo_arc (cr, 0, 0, h *.25, -slit, slit);
|
||||
cairo_line_to(cr, 0, 0);
|
||||
cairo_close_path(cr);
|
||||
|
||||
cairo_fill(cr);
|
||||
cairo_rotate (cr, 2. * M_PI / 3.);
|
||||
|
||||
cairo_move_to(cr, 0, 0);
|
||||
cairo_arc (cr, 0, 0, h *.25, -slit, slit);
|
||||
cairo_line_to(cr, 0, 0);
|
||||
cairo_close_path(cr);
|
||||
cairo_fill(cr);
|
||||
|
||||
cairo_rotate (cr, 2. * M_PI / 3.);
|
||||
cairo_move_to(cr, 0, 0);
|
||||
cairo_arc (cr, 0, 0, h *.25, -slit, slit);
|
||||
cairo_line_to(cr, 0, 0);
|
||||
cairo_close_path(cr);
|
||||
cairo_fill(cr);
|
||||
|
||||
cairo_restore(cr);
|
||||
|
||||
cairo_arc (cr, 0, 0, h * .09, 0, 2 * M_PI);
|
||||
cairo_set_source_rgba (cr, .95, .44, .44, 1.); // #f46f6f
|
||||
cairo_fill(cr);
|
||||
cairo_set_source_rgba (cr, .0, .0, .0, 1.0);
|
||||
cairo_arc (cr, 0, 0, h *.05, 0, 2 * M_PI); // hole in the middle
|
||||
cairo_fill(cr);
|
||||
|
||||
cairo_restore(cr);
|
||||
}
|
||||
else if (_elements & RecButton) {
|
||||
const double x = get_width() * .5;
|
||||
const double y = get_height() * .5;
|
||||
cairo_arc (cr, x, y, y *.55, 0, 2 * M_PI);
|
||||
cairo_set_source_rgba (cr, .95, .44, .44, 1.); // #f46f6f
|
||||
cairo_fill_preserve(cr);
|
||||
cairo_set_source_rgba (cr, .0, .0, .0, .5);
|
||||
cairo_set_line_width(cr, 1);
|
||||
cairo_stroke(cr);
|
||||
}
|
||||
|
||||
int text_margin;
|
||||
|
@ -41,6 +41,7 @@ class ArdourButton : public CairoWidget , public Gtkmm2ext::Activatable
|
||||
Menu = 0x20,
|
||||
Inactive = 0x40, // no _action is defined AND state is not used
|
||||
RecButton = 0x80, // tenative, see commit message
|
||||
RecTapeMode = 0x100, // tenative
|
||||
};
|
||||
|
||||
static Element default_elements;
|
||||
|
Loading…
Reference in New Issue
Block a user