X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fardour_button.h;h=78c2f5e369ae7f5bed1ab125e78bb9d978a189cb;hb=456596bced4a3647cde4613792002142f9fea4d7;hp=7d837e70cd2b0a0f3e46f55451d7232c215fded0;hpb=00f604019d6888f41f6d37e0a8cb99c39758a4f0;p=ardour.git diff --git a/gtk2_ardour/ardour_button.h b/gtk2_ardour/ardour_button.h index 7d837e70cd..78c2f5e369 100644 --- a/gtk2_ardour/ardour_button.h +++ b/gtk2_ardour/ardour_button.h @@ -25,6 +25,7 @@ #include #include "pbd/signals.h" +#include "gtkmm2ext/ardour_icon.h" #include "gtkmm2ext/binding_proxy.h" #include "gtkmm2ext/activatable.h" #include "gtkmm2ext/cairo_widget.h" @@ -40,9 +41,7 @@ class ArdourButton : public CairoWidget , public Gtkmm2ext::Activatable unused = 0x10, Menu = 0x20, Inactive = 0x40, // no _action is defined AND state is not used - RecButton = 0x80, // tentative, see commit message - RecTapeMode = 0x100, // tentative - CloseCross = 0x200, // tentative + VectorIcon = 0x80, // tentative, see commit message }; static Element default_elements; @@ -56,7 +55,8 @@ class ArdourButton : public CairoWidget , public Gtkmm2ext::Activatable enum Tweaks { Square = 0x1, TrackHeader = 0x2, - unused3 = 0x4, + OccasionalText = 0x4, + unused4 = 0x8, }; Tweaks tweaks() const { return _tweaks; } @@ -65,12 +65,17 @@ class ArdourButton : public CairoWidget , public Gtkmm2ext::Activatable void set_active_state (Gtkmm2ext::ActiveState); void set_visual_state (Gtkmm2ext::VisualState); + void set_custom_led_color (const uint32_t c, const bool useit = true); + void set_act_on_release (bool onRelease) { _act_on_release = onRelease; } Element elements() const { return _elements; } void set_elements (Element); void add_elements (Element); + Gtkmm2ext::ArdourIcon::Icon icon() const { return _icon; } + void set_icon (Gtkmm2ext::ArdourIcon::Icon); + void set_corner_radius (float); void set_text (const std::string&); @@ -82,11 +87,11 @@ class ArdourButton : public CairoWidget , public Gtkmm2ext::Activatable void set_led_left (bool yn); void set_distinct_led_click (bool yn); - void set_layout_ellisize_width (int w); + void set_layout_ellipsize_width (int w); void set_layout_font (const Pango::FontDescription&); void set_text_ellipsize (Pango::EllipsizeMode); - - sigc::signal signal_led_clicked; + + sigc::signal signal_led_clicked; sigc::signal signal_clicked; boost::shared_ptr get_controllable() { return binding_proxy.get_controllable(); } @@ -100,7 +105,9 @@ class ArdourButton : public CairoWidget , public Gtkmm2ext::Activatable void set_image (const Glib::RefPtr&); - void set_fixed_colors (const uint32_t active_color, const uint32_t inactive_color); + void set_fixed_colors (const uint32_t active_color, const uint32_t inactive_color); + void set_active_color (const uint32_t active_color); + void set_inactive_color (const uint32_t inactive_color); void set_fallthrough_to_parent(bool fall) { _fallthrough_to_parent = fall; } @@ -129,6 +136,7 @@ class ArdourButton : public CairoWidget , public Gtkmm2ext::Activatable Glib::RefPtr _pixbuf; std::string _text; Element _elements; + Gtkmm2ext::ArdourIcon::Icon _icon; Tweaks _tweaks; BindingProxy binding_proxy; @@ -154,6 +162,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; @@ -165,7 +175,7 @@ class ArdourButton : public CairoWidget , public Gtkmm2ext::Activatable bool _distinct_led_click; bool _hovering; bool _focused; - bool _fixed_colors_set; + int _fixed_colors_set; bool _fallthrough_to_parent; int _layout_ellipsize_width; Pango::EllipsizeMode _ellipsis;