X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fardour_button.h;h=fb0f8320a1d3be1720b293aea85eb0b597eefb7e;hb=90619f4b9869ceccb29965e916ec07fe197b86da;hp=72614b2b8e98845ada97a83dbeee1a71dbc0b93f;hpb=0cc9daed289a96a82171335660304a3cdc6f42c6;p=ardour.git diff --git a/gtk2_ardour/ardour_button.h b/gtk2_ardour/ardour_button.h index 72614b2b8e..fb0f8320a1 100644 --- a/gtk2_ardour/ardour_button.h +++ b/gtk2_ardour/ardour_button.h @@ -20,6 +20,7 @@ #ifndef __gtk2_ardour_ardour_button_h__ #define __gtk2_ardour_ardour_button_h__ +#include #include #include @@ -38,14 +39,26 @@ class ArdourButton : public CairoWidget Text = 0x4, Indicator = 0x8, }; - + static Element default_elements; static Element led_default_elements; static Element just_led_default_elements; ArdourButton (Element e = default_elements); + ArdourButton (const std::string&, Element e = default_elements); virtual ~ArdourButton (); + enum Tweaks { + ShowClick = 0x1, + NoModel = 0x4, + }; + + Tweaks tweaks() const { return _tweaks; } + void set_tweaks (Tweaks); + + void set_active_state (Gtkmm2ext::ActiveState); + void set_visual_state (Gtkmm2ext::VisualState); + void set_elements (Element); Element elements() const { return _elements; } @@ -59,6 +72,7 @@ class ArdourButton : public CairoWidget void set_distinct_led_click (bool yn); sigc::signal signal_led_clicked; + sigc::signal signal_clicked; boost::shared_ptr get_controllable() { return binding_proxy.get_controllable(); } void set_controllable (boost::shared_ptr c); @@ -76,6 +90,8 @@ class ArdourButton : public CairoWidget void on_size_request (Gtk::Requisition* req); void on_size_allocate (Gtk::Allocation&); void on_style_changed (const Glib::RefPtr&); + bool on_enter_notify_event (GdkEventCrossing*); + bool on_leave_notify_event (GdkEventCrossing*); void controllable_changed (); PBD::ScopedConnection watch_connection; @@ -85,6 +101,7 @@ class ArdourButton : public CairoWidget Glib::RefPtr _pixbuf; std::string _text; Element _elements; + Tweaks _tweaks; BindingProxy binding_proxy; bool _act_on_release; @@ -112,15 +129,19 @@ class ArdourButton : public CairoWidget bool _fixed_diameter; bool _distinct_led_click; cairo_rectangle_t* _led_rect; + bool _hovering; void setup_led_rect (); void set_colors (); void color_handler (); - void state_handler (); Glib::RefPtr _action; void action_activated (); void action_toggled (); + + void action_sensitivity_changed (); + void action_visibility_changed (); + void action_tooltip_changed (); }; #endif /* __gtk2_ardour_ardour_button_h__ */