AButton: allow to set custom LED color (for > 2 states)

This commit is contained in:
Robin Gareus 2015-03-16 19:03:41 +01:00
parent d57546dea2
commit 28e4708825
2 changed files with 12 additions and 0 deletions

View File

@ -77,6 +77,8 @@ ArdourButton::ArdourButton (Element e)
, text_inactive_color(0)
, led_active_color(0)
, led_inactive_color(0)
, led_custom_color (0)
, use_custom_led_color (false)
, convex_pattern (0)
, concave_pattern (0)
, led_inset_pattern (0)
@ -113,6 +115,8 @@ ArdourButton::ArdourButton (const std::string& str, Element e)
, text_inactive_color(0)
, led_active_color(0)
, led_inactive_color(0)
, led_custom_color (0)
, use_custom_led_color (false)
, convex_pattern (0)
, concave_pattern (0)
, led_inset_pattern (0)
@ -209,6 +213,10 @@ ArdourButton::render (cairo_t* cr, cairo_rectangle_t *)
led_color = led_inactive_color;
}
if (use_custom_led_color) {
led_color = led_custom_color;
}
void (*rounded_function)(cairo_t*, double, double, double, double, double);
switch (_corner_mask) {

View File

@ -65,6 +65,8 @@ class ArdourButton : public CairoWidget , public Gtkmm2ext::Activatable
void set_active_state (Gtkmm2ext::ActiveState);
void set_visual_state (Gtkmm2ext::VisualState);
void set_custom_led_color (uint32_t c, bool useit = true) { led_custom_color = c; use_custom_led_color = useit; }
void set_act_on_release (bool onRelease) { _act_on_release = onRelease; }
Element elements() const { return _elements; }
@ -154,6 +156,8 @@ class ArdourButton : public CairoWidget , public Gtkmm2ext::Activatable
uint32_t led_active_color;
uint32_t led_inactive_color;
uint32_t led_custom_color;
bool use_custom_led_color;
cairo_pattern_t* convex_pattern;
cairo_pattern_t* concave_pattern;