X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fshuttle_control.h;h=31be53c976c9f40c8ac886aa037e37ccae9cdf4f;hb=3c1bc99df936a2ea1ea11ef6c884b9eecaef5c09;hp=0b289c51801086058fdf5adaec0361e1b932821f;hpb=ab44e41dfd8b8247ed5f57a8f3fcbbf4f8457827;p=ardour.git diff --git a/gtk2_ardour/shuttle_control.h b/gtk2_ardour/shuttle_control.h index 0b289c5180..31be53c976 100644 --- a/gtk2_ardour/shuttle_control.h +++ b/gtk2_ardour/shuttle_control.h @@ -22,6 +22,7 @@ #include #include "gtkmm2ext/binding_proxy.h" +#include "gtkmm2ext/cairo_widget.h" #include "pbd/controllable.h" #include "ardour/session_handle.h" @@ -39,14 +40,13 @@ class ShuttleControl : public CairoWidget, public ARDOUR::SessionHandlePtr ~ShuttleControl (); void map_transport_state (); - void update_speed_display (); - void set_shuttle_fract (double, bool zero_ok = false); + void set_shuttle_fract (double, bool zero_ok = false); double get_shuttle_fract () const { return shuttle_fract; } void set_session (ARDOUR::Session*); struct ShuttleControllable : public PBD::Controllable { ShuttleControllable (ShuttleControl&); - void set_value (double); + void set_value (double, PBD::Controllable::GroupControlDisposition group_override); double get_value (void) const; double lower() const { return -1.0; } @@ -56,6 +56,7 @@ class ShuttleControl : public CairoWidget, public ARDOUR::SessionHandlePtr }; boost::shared_ptr controllable() const { return _controllable; } + void set_colors (); protected: bool _hovering; @@ -73,12 +74,17 @@ class ShuttleControl : public CairoWidget, public ARDOUR::SessionHandlePtr Gtk::Menu* shuttle_style_menu; Gtk::Menu* shuttle_context_menu; BindingProxy binding_proxy; - + Glib::RefPtr left_text; + Glib::RefPtr right_text; + Pango::AttrList text_attributes; + Pango::AttrColor* text_color; + float bg_r, bg_g, bg_b; void build_shuttle_context_menu (); void show_shuttle_context_menu (); void shuttle_style_changed(); void shuttle_unit_clicked (); void set_shuttle_max_speed (float); + void reset_speed (); bool on_enter_notify_event (GdkEventCrossing*); bool on_leave_notify_event (GdkEventCrossing*);