+ void handle_position_change ();
+ void label_signals ();
+
+ PBD::ScopedConnectionList panshell_connections;
+ PBD::ScopedConnectionList panner_connections;
+
+ /* cartesian coordinates in GTK units ; adjust to same but on a circle of radius 1.0
+ and centered in the middle of our area
+ */
+ void clamp_to_circle (double& x, double& y);
+ void sphere_project (double& x, double& y, double& z);
+};
+
+class Panner2dWindow : public ArdourWindow
+{
+ public:
+ Panner2dWindow (boost::shared_ptr<ARDOUR::PannerShell>, int32_t height, uint32_t inputs);
+
+ void reset (uint32_t n_inputs);
+
+ private:
+ Panner2d widget;
+
+ Gtk::HBox hpacker;
+ Gtk::VBox button_box;
+ Gtk::ToggleButton bypass_button;
+ Gtk::VBox spinner_box;
+ Gtk::VBox left_side;
+
+ Gtk::Adjustment width_adjustment;
+ Gtk::SpinButton width_spinner;
+
+ PBD::ScopedConnectionList panshell_connections;
+ PBD::ScopedConnectionList panvalue_connections;
+ void set_bypassed();
+ void set_width();
+
+ void pannable_handler ();
+ void bypass_toggled ();
+ void width_changed ();
+ bool on_key_press_event (GdkEventKey*);
+ bool on_key_release_event (GdkEventKey*);