+ void controllable_changed ();
+ PBD::ScopedConnection watch_connection;
+
+ protected:
+ Glib::RefPtr<Pango::Layout> _layout;
+ Glib::RefPtr<Gdk::Pixbuf> _pixbuf;
+ std::string _text;
+ Element _elements;
+ Gtkmm2ext::ArdourIcon::Icon _icon;
+ Tweaks _tweaks;
+ BindingProxy binding_proxy;
+
+ void recalc_char_pixel_geometry ();
+ unsigned int _char_pixel_width;
+ unsigned int _char_pixel_height;
+ float _char_avg_pixel_width;
+
+ int _text_width;
+ int _text_height;
+ float _diameter;
+ float _corner_radius;
+ int _corner_mask;
+
+ double _angle;
+ float _xalign, _yalign;
+
+ uint32_t fill_inactive_color;
+ uint32_t fill_active_color;
+
+ uint32_t text_active_color;
+ uint32_t text_inactive_color;
+
+ 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;
+ cairo_pattern_t* led_inset_pattern;
+ cairo_rectangle_t* _led_rect;
+
+ bool _act_on_release;
+ bool _led_left;
+ bool _distinct_led_click;
+ bool _hovering;
+ bool _focused;
+ bool _fixed_colors_set;
+ bool _fallthrough_to_parent;
+ int _layout_ellipsize_width;
+ Pango::EllipsizeMode _ellipsis;
+ bool _update_colors;
+ int _pattern_height;
+
+ void setup_led_rect ();
+ void set_colors ();