fix message in startup wizard re: alpha
[ardour.git] / gtk2_ardour / ardour_button.h
index 72614b2b8e98845ada97a83dbeee1a71dbc0b93f..fb0f8320a1d3be1720b293aea85eb0b597eefb7e 100644 (file)
@@ -20,6 +20,7 @@
 #ifndef __gtk2_ardour_ardour_button_h__
 #define __gtk2_ardour_ardour_button_h__
 
+#include <list>
 #include <stdint.h>
 
 #include <gtkmm/action.h>
@@ -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<void> signal_led_clicked;
+       sigc::signal<void> signal_clicked;
 
        boost::shared_ptr<PBD::Controllable> get_controllable() { return binding_proxy.get_controllable(); }
        void set_controllable (boost::shared_ptr<PBD::Controllable> 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<Gtk::Style>&);
+       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<Gdk::Pixbuf>   _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<Gtk::Action> _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__ */