#include <gtkmm/action.h>
#include "pbd/signals.h"
+#include "ardour/automatable.h"
+
#include "gtkmm2ext/binding_proxy.h"
#include "gtkmm2ext/activatable.h"
#include "gtkmm2ext/cairo_widget.h"
unused5 = 0x20,
};
- ArdourKnob (Element e = default_elements, bool arc_to_zero = false);
+ enum Flags {
+ NoFlags = 0,
+ Detent = 0x1,
+ ArcToZero = 0x2,
+ };
+
+ ArdourKnob (Element e = default_elements, Flags flags = NoFlags);
virtual ~ArdourKnob ();
void set_active_state (Gtkmm2ext::ActiveState);
void add_elements (Element);
static Element default_elements;
- void set_tooltip_prefix (std::string pfx) { _tooltip_prefix = pfx; }
+ void set_tooltip_prefix (std::string pfx) { _tooltip_prefix = pfx; controllable_changed (true); }
boost::shared_ptr<PBD::Controllable> get_controllable() { return binding_proxy.get_controllable(); }
void set_controllable (boost::shared_ptr<PBD::Controllable> c);
bool on_scroll_event (GdkEventScroll* ev);
bool on_motion_notify_event (GdkEventMotion *ev) ;
+ void set_printer (boost::shared_ptr<ARDOUR::Automatable> p) { _printer = p; controllable_changed (true); }
+
void color_handler ();
protected:
bool on_focus_in_event (GdkEventFocus*);
bool on_focus_out_event (GdkEventFocus*);
- void controllable_changed ();
+ void controllable_changed (bool force_update = false);
PBD::ScopedConnection watch_connection;
private:
- Element _elements;
-
- BindingProxy binding_proxy;
+ Element _elements;
+ BindingProxy binding_proxy;
+ boost::shared_ptr<ARDOUR::Automatable> _printer;
bool _hovering;
float _grabbed_x;
float _grabbed_y;
float _val; // current value [0..1]
- float _zero; // default value, arc
- bool _arc_to_zero; // if false, arc starts left-edge
+ float _normal; // default value, arc
+ float _dead_zone_delta;
+
+ Flags _flags;
void action_sensitivity_changed ();
void action_visibility_changed ();