use ActionManager namespace, rather than ActionMap objects, and remove all per-contex...
[ardour.git] / gtk2_ardour / mono_panner.h
index b79038bab726c02a188e49e225c89b8cc26e47d0..5022e9b52d83573bd0f9200662dfb6b5c6703af0 100644 (file)
@@ -24,7 +24,7 @@
 
 #include <boost/shared_ptr.hpp>
 
-#include "gtkmm2ext/binding_proxy.h"
+#include "widgets/binding_proxy.h"
 
 #include "panner_interface.h"
 
@@ -33,62 +33,69 @@ namespace ARDOUR {
 }
 
 namespace PBD {
-        class Controllable;
+       class Controllable;
 }
 
 class MonoPanner : public PannerInterface
 {
-  public:
+public:
        MonoPanner (boost::shared_ptr<ARDOUR::PannerShell>);
        ~MonoPanner ();
 
-        boost::shared_ptr<PBD::Controllable> get_controllable() const { return position_control; }
+       boost::shared_ptr<PBD::Controllable> get_controllable() const { return position_control; }
 
        sigc::signal<void> StartGesture;
        sigc::signal<void> StopGesture;
 
-  protected:
+protected:
        bool on_expose_event (GdkEventExpose*);
        bool on_button_press_event (GdkEventButton*);
        bool on_button_release_event (GdkEventButton*);
        bool on_motion_notify_event (GdkEventMotion*);
-        bool on_scroll_event (GdkEventScroll*);
-        bool on_key_press_event (GdkEventKey*);
+       bool on_scroll_event (GdkEventScroll*);
+       bool on_key_press_event (GdkEventKey*);
 
-  private:
+       boost::weak_ptr<PBD::Controllable> proxy_controllable () const
+       {
+               return boost::weak_ptr<PBD::Controllable> (position_binder.get_controllable());
+       }
+
+private:
        PannerEditor* editor ();
        boost::shared_ptr<ARDOUR::PannerShell> _panner_shell;
-       
-        boost::shared_ptr<PBD::Controllable> position_control;
-        PBD::ScopedConnectionList connections;
-        int drag_start_x;
-        int last_drag_x;
-        double accumulated_delta;
-        bool detented;
-
-        BindingProxy position_binder;
-
-        void set_tooltip ();
-
-        struct ColorScheme {
-            uint32_t outline;
-            uint32_t fill;
-            uint32_t text;
-            uint32_t background;
-            uint32_t pos_outline;
-            uint32_t pos_fill;
-        };
+
+       boost::shared_ptr<PBD::Controllable> position_control;
+       PBD::ScopedConnectionList panvalue_connections;
+       PBD::ScopedConnectionList panshell_connections;
+       int drag_start_x;
+       int last_drag_x;
+       double accumulated_delta;
+       bool detented;
+
+       ArdourWidgets::BindingProxy position_binder;
+
+       void set_tooltip ();
+
+       struct ColorScheme {
+               uint32_t outline;
+               uint32_t fill;
+               uint32_t text;
+               uint32_t background;
+               uint32_t pos_outline;
+               uint32_t pos_fill;
+       };
 
        bool _dragging;
 
        static Pango::AttrList panner_font_attributes;
        static bool have_font;
 
-        static ColorScheme colors;
-        static void set_colors ();
-        static bool have_colors;
+       static ColorScheme colors;
+       static void set_colors ();
+       static bool have_colors;
        void color_handler ();
        void bypass_handler ();
+       void pannable_handler ();
 };
 
 #endif /* __gtk_ardour_mono_panner_h__ */