X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fgtkmm2ext%2Fgtkmm2ext%2Fbarcontroller.h;h=76dc8f2d49fd0208dd1cd4d21982fc1bc71bbb25;hb=11619a37bff79c050e39e434bc9899b516cbe4a1;hp=0b074a0f90166ae172c7b0fbb8d484213665873f;hpb=64524c0ba40b9f69f06a395f8763615700244fda;p=ardour.git diff --git a/libs/gtkmm2ext/gtkmm2ext/barcontroller.h b/libs/gtkmm2ext/gtkmm2ext/barcontroller.h index 0b074a0f90..76dc8f2d49 100644 --- a/libs/gtkmm2ext/gtkmm2ext/barcontroller.h +++ b/libs/gtkmm2ext/gtkmm2ext/barcontroller.h @@ -22,10 +22,8 @@ #include #include #include +#include -namespace ARDOUR { - class Controllable; -} namespace Gtkmm2ext { @@ -34,23 +32,26 @@ class BarController : public Gtk::Frame public: BarController (Gtk::Adjustment& adj, boost::shared_ptr); - virtual ~BarController () {} + virtual ~BarController (); - enum Style { + enum barStyle { LeftToRight, RightToLeft, Line, + Blob, CenterOut, TopToBottom, BottomToTop }; - Style style() const { return _style; } - void set_style (Style); + barStyle style() const { return _style; } + void set_style (barStyle); void set_use_parent (bool yn); void set_sensitive (bool yn); + + void set_logarithmic (bool yn) { logarithmic = yn; } sigc::signal StartGesture; sigc::signal StopGesture; @@ -62,12 +63,17 @@ class BarController : public Gtk::Frame boost::shared_ptr get_controllable() { return binding_proxy.get_controllable(); } void set_controllable(boost::shared_ptr c) { binding_proxy.set_controllable(c); } + /** Emitted when the adjustment spinner is activated or deactivated; + * the parameter is true on activation, false on deactivation. + */ + sigc::signal SpinnerActive; + protected: Gtk::Adjustment& adjustment; BindingProxy binding_proxy; Gtk::DrawingArea darea; Glib::RefPtr layout; - Style _style; + barStyle _style; bool grabbed; bool switching; bool switch_on_release; @@ -76,19 +82,24 @@ class BarController : public Gtk::Frame GdkWindow* grab_window; Gtk::SpinButton spinner; bool use_parent; + bool logarithmic; + sigc::slot _label_slot; + bool _use_slot; - virtual std::string get_label (int& x) { + virtual std::string get_label (double& /*x*/) { return ""; } + void create_patterns(); + Cairo::RefPtr pattern; + Cairo::RefPtr shine_pattern; + virtual bool button_press (GdkEventButton *); virtual bool button_release (GdkEventButton *); virtual bool motion (GdkEventMotion *); virtual bool expose (GdkEventExpose *); virtual bool scroll (GdkEventScroll *); virtual bool entry_focus_out (GdkEventFocus*); - virtual bool entry_input (double *); - virtual bool entry_output (); gint mouse_control (double x, GdkWindow* w, double scaling); @@ -97,6 +108,9 @@ class BarController : public Gtk::Frame void entry_activated (); void drop_grab (); + + int entry_input (double* new_value); + bool entry_output (); };