diff options
author | Robin Gareus <robin@gareus.org> | 2014-01-14 23:08:34 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2014-01-15 02:51:52 +0100 |
commit | 6bebe1d886820c5eb18914507a2c90f3e6c2d555 (patch) | |
tree | 6bc41d606b2b1edac29c6776dd106c89388f1735 /gtk2_ardour/panner2d.cc | |
parent | c46e74012e5727bd46b7bcf813970f60f1179af4 (diff) |
update panGUI connections (panner-shell vs pannable vs panner)
Diffstat (limited to 'gtk2_ardour/panner2d.cc')
-rw-r--r-- | gtk2_ardour/panner2d.cc | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/gtk2_ardour/panner2d.cc b/gtk2_ardour/panner2d.cc index 826b86fc89..0f8b46aa56 100644 --- a/gtk2_ardour/panner2d.cc +++ b/gtk2_ardour/panner2d.cc @@ -76,9 +76,9 @@ Panner2d::Panner2d (boost::shared_ptr<PannerShell> p, int32_t h) , last_width (0) , have_elevation (false) { - panner_shell->Changed.connect (connections, invalidator (*this), boost::bind (&Panner2d::handle_state_change, this), gui_context()); + panner_shell->Changed.connect (panshell_connections, invalidator (*this), boost::bind (&Panner2d::handle_state_change, this), gui_context()); - panner_shell->panner()->SignalPositionChanged.connect (panconnect, invalidator(*this), boost::bind (&Panner2d::handle_position_change, this), gui_context()); + panner_shell->panner()->SignalPositionChanged.connect (panner_connections, invalidator(*this), boost::bind (&Panner2d::handle_position_change, this), gui_context()); drag_target = 0; set_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::POINTER_MOTION_MASK); @@ -200,12 +200,12 @@ Panner2d::add_speaker (const AngularVector& a) void Panner2d::handle_state_change () { - panconnect.drop_connections(); + panner_connections.drop_connections(); if (!panner_shell->panner()) { return; } - panner_shell->panner()->SignalPositionChanged.connect (panconnect, invalidator(*this), boost::bind (&Panner2d::handle_position_change, this), gui_context()); + panner_shell->panner()->SignalPositionChanged.connect (panner_connections, invalidator(*this), boost::bind (&Panner2d::handle_position_change, this), gui_context()); set<Evoral::Parameter> params = panner_shell->panner()->what_can_be_automated(); set<Evoral::Parameter>::iterator p = params.find(PanElevationAutomation); @@ -833,8 +833,11 @@ Panner2dWindow::Panner2dWindow (boost::shared_ptr<PannerShell> p, int32_t h, uin bypass_button.signal_toggled().connect (sigc::mem_fun (*this, &Panner2dWindow::bypass_toggled)); width_spinner.signal_changed().connect (sigc::mem_fun (*this, &Panner2dWindow::width_changed)); - p->pannable()->pan_width_control->Changed.connect (connections, invalidator(*this), boost::bind (&Panner2dWindow::set_width, this), gui_context()); - p->Changed.connect (connections, invalidator (*this), boost::bind (&Panner2dWindow::set_bypassed, this), gui_context()); + p->Changed.connect (panshell_connections, invalidator (*this), boost::bind (&Panner2dWindow::set_bypassed, this), gui_context()); + /* needed for the width-spinbox in the main window */ + p->PannableChanged.connect (panshell_connections, invalidator (*this), boost::bind (&Panner2dWindow::pannable_handler, this), gui_context()); + p->pannable()->pan_width_control->Changed.connect (panvalue_connections, invalidator(*this), boost::bind (&Panner2dWindow::set_width, this), gui_context()); + button_box.set_spacing (6); button_box.pack_start (bypass_button, false, false); @@ -897,6 +900,14 @@ Panner2dWindow::width_changed () } void +Panner2dWindow::pannable_handler () +{ + panvalue_connections.drop_connections(); + widget.get_panner_shell()->pannable()->pan_width_control->Changed.connect (panvalue_connections, invalidator(*this), boost::bind (&Panner2dWindow::set_width, this), gui_context()); + set_width(); +} + +void Panner2dWindow::set_bypassed () { bool view = bypass_button.get_active (); |