diff options
author | Carl Hetherington <carl@carlh.net> | 2010-04-17 22:51:22 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2010-04-17 22:51:22 +0000 |
commit | aed349f45b98158e2fca25051c56252afbf1b407 (patch) | |
tree | 8f769faea7fd625d32e98ed68e524536fa2184a7 /gtk2_ardour/panner_ui.cc | |
parent | 0ec83834288ed4a8b6568a2cf566e335c8890ba2 (diff) |
Rename panner member to twod_panner to avoid having _panner and panner member variables in the same class. Be sure to reconnect everything dropped at the top of set_panner() (fixes #3066)
git-svn-id: svn://localhost/ardour2/branches/3.0@6925 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/panner_ui.cc')
-rw-r--r-- | gtk2_ardour/panner_ui.cc | 52 |
1 files changed, 30 insertions, 22 deletions
diff --git a/gtk2_ardour/panner_ui.cc b/gtk2_ardour/panner_ui.cc index bab543a675..8532c2094d 100644 --- a/gtk2_ardour/panner_ui.cc +++ b/gtk2_ardour/panner_ui.cc @@ -125,7 +125,7 @@ PannerUI::PannerUI (Session* s) pack_start (pan_vbox, true, true); - panner = 0; + twod_panner = 0; big_window = 0; set_width(Narrow); @@ -144,8 +144,8 @@ PannerUI::set_panner (boost::shared_ptr<Panner> p) _panner = p; - delete panner; - panner = 0; + delete twod_panner; + twod_panner = 0; if (!_panner) { return; @@ -155,6 +155,10 @@ PannerUI::set_panner (boost::shared_ptr<Panner> p) _panner->LinkStateChanged.connect (connections, invalidator (*this), boost::bind (&PannerUI::update_pan_linkage, this), gui_context()); _panner->StateChanged.connect (connections, invalidator (*this), boost::bind (&PannerUI::update_pan_state, this), gui_context()); + for (uint32_t i = 0; i < _panner->npanners(); ++i) { + connect_to_pan_control (i); + } + setup_pan (); pan_changed (0); @@ -309,7 +313,7 @@ PannerUI::~PannerUI () delete (*i); } - delete panner; + delete twod_panner; delete big_window; delete pan_menu; delete pan_astyle_menu; @@ -358,8 +362,8 @@ PannerUI::setup_pan () pan_adjustments.pop_back (); } - delete panner; - panner = 0; + delete twod_panner; + twod_panner = 0; /* stick something into the panning viewport so that it redraws */ @@ -379,8 +383,8 @@ PannerUI::setup_pan () pan_adjustments.pop_back (); } - delete panner; - panner = 0; + delete twod_panner; + twod_panner = 0; while ((asz = pan_adjustments.size()) < npans) { @@ -409,8 +413,7 @@ PannerUI::setup_pan () /* now set adjustment with current value of panner, then connect the signals */ pan_adjustments.back()->set_value(rx); pan_adjustments.back()->signal_value_changed().connect (sigc::bind (sigc::mem_fun(*this, &PannerUI::pan_adjustment_changed), (uint32_t) asz)); - - _panner->pan_control( asz )->Changed.connect (connections, invalidator (*this), boost::bind (&PannerUI::pan_value_changed, this, (uint32_t) asz), gui_context()); + connect_to_pan_control (asz); bc->set_name ("PanSlider"); bc->set_shadow_type (Gtk::SHADOW_NONE); @@ -448,26 +451,26 @@ PannerUI::setup_pan () } else { - if (!panner) { - panner = new Panner2d (_panner, 61); - panner->set_name ("MixerPanZone"); - panner->show (); + if (!twod_panner) { + twod_panner = new Panner2d (_panner, 61); + twod_panner->set_name ("MixerPanZone"); + twod_panner->show (); - panner->signal_button_press_event().connect + twod_panner->signal_button_press_event().connect (sigc::bind (sigc::mem_fun(*this, &PannerUI::pan_button_event), (uint32_t) 0), false); } update_pan_sensitive (); - panner->reset (npans); + twod_panner->reset (npans); if (big_window) { big_window->reset (npans); } - panner->set_size_request (-1, 61); + twod_panner->set_size_request (-1, 61); /* and finally, add it to the panner frame */ panning_viewport.remove (); - panning_viewport.add (*panner); + panning_viewport.add (*twod_panner); panning_viewport.show_all (); } } @@ -477,7 +480,7 @@ PannerUI::pan_button_event (GdkEventButton* ev, uint32_t which) { switch (ev->button) { case 1: - if (panner && ev->type == GDK_2BUTTON_PRESS) { + if (twod_panner && ev->type == GDK_2BUTTON_PRESS) { if (!big_window) { big_window = new Panner2dWindow (_panner, 400, _panner->npanners()); } @@ -722,8 +725,8 @@ PannerUI::update_pan_sensitive () } break; default: - if (panner) { - panner->set_sensitive (sensitive); + if (twod_panner) { + twod_panner->set_sensitive (sensitive); } if (big_window) { big_window->set_sensitive (sensitive); @@ -900,4 +903,9 @@ PannerUI::set_mono (bool yn) update_pan_sensitive (); } - + +void +PannerUI::connect_to_pan_control (uint32_t i) +{ + _panner->pan_control(i)->Changed.connect (connections, invalidator (*this), boost::bind (&PannerUI::pan_value_changed, this, i), gui_context ()); +} |