new class/widget for linking two buttons (widgets, really) together
[ardour.git] / gtk2_ardour / button_joiner.h
1 #ifndef __gtk2_ardour_button_joiner_h__
2 #define __gtk2_ardour_button_joiner_h__
3
4 #include <gtkmm/box.h>
5 #include <gtkmm/alignment.h>
6 #include <gtkmm/action.h>
7
8 #include "gtkmm2ext/activatable.h"
9 #include "gtkmm2ext/cairo_widget.h"
10
11 class ButtonJoiner : public CairoWidget, public Gtkmm2ext::Activatable {
12   public:
13         ButtonJoiner (Gtk::Widget&, Gtk::Widget&);
14         void set_related_action (Glib::RefPtr<Gtk::Action>);    
15         void set_active_state (Gtkmm2ext::ActiveState);
16
17   protected:
18         void render (cairo_t*);
19         bool on_button_release_event (GdkEventButton*);
20         void on_size_request (Gtk::Requisition*);
21
22         void action_sensitivity_changed ();
23         void action_visibility_changed ();
24         void action_tooltip_changed ();
25         void action_toggled ();
26
27   private:
28         Gtk::Widget& left;
29         Gtk::Widget& right;
30         Gtk::HBox    packer;
31         Gtk::Alignment align;
32
33         void set_colors ();
34 };
35
36 #endif /* __gtk2_ardour_button_joiner_h__ */