Make track context menu height option work for all selected tracks.
authorCarl Hetherington <carl@carlh.net>
Wed, 23 Feb 2011 01:04:10 +0000 (01:04 +0000)
committerCarl Hetherington <carl@carlh.net>
Wed, 23 Feb 2011 01:04:10 +0000 (01:04 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@8935 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/time_axis_view.cc
gtk2_ardour/time_axis_view.h
gtk2_ardour/track_selection.h

index ef9403456912c6ce1dda10487ca039199a68a316..3ac5fc6c3856210784442654fed761423ba8d553 100644 (file)
@@ -428,9 +428,13 @@ TimeAxisView::set_heights (uint32_t h)
 }
 
 void
-TimeAxisView::set_height_enum (Height h)
+TimeAxisView::set_height_enum (Height h, bool apply_to_selection)
 {
-       set_height (preset_height (h));
+       if (apply_to_selection) {
+               _editor.get_selection().tracks.foreach_time_axis (boost::bind (&TimeAxisView::set_height_enum, _1, h, false));
+       } else {
+               set_height (preset_height (h));
+       }
 }
 
 void
@@ -1362,10 +1366,10 @@ TimeAxisView::build_size_menu ()
        _size_menu->set_name ("ArdourContextMenu");
        MenuList& items = _size_menu->items();
        
-       items.push_back (MenuElem (_("Largest"), sigc::bind (sigc::mem_fun (*this, &TimeAxisView::set_height_enum), HeightLargest)));
-       items.push_back (MenuElem (_("Larger"),  sigc::bind (sigc::mem_fun (*this, &TimeAxisView::set_height_enum), HeightLarger)));
-       items.push_back (MenuElem (_("Large"),   sigc::bind (sigc::mem_fun (*this, &TimeAxisView::set_height_enum), HeightLarge)));
-       items.push_back (MenuElem (_("Normal"),  sigc::bind (sigc::mem_fun (*this, &TimeAxisView::set_height_enum), HeightNormal)));
-       items.push_back (MenuElem (_("Smaller"), sigc::bind (sigc::mem_fun (*this, &TimeAxisView::set_height_enum), HeightSmaller)));
-       items.push_back (MenuElem (_("Small"),   sigc::bind (sigc::mem_fun (*this, &TimeAxisView::set_height_enum), HeightSmall)));
+       items.push_back (MenuElem (_("Largest"), sigc::bind (sigc::mem_fun (*this, &TimeAxisView::set_height_enum), HeightLargest, true)));
+       items.push_back (MenuElem (_("Larger"),  sigc::bind (sigc::mem_fun (*this, &TimeAxisView::set_height_enum), HeightLarger, true)));
+       items.push_back (MenuElem (_("Large"),   sigc::bind (sigc::mem_fun (*this, &TimeAxisView::set_height_enum), HeightLarge, true)));
+       items.push_back (MenuElem (_("Normal"),  sigc::bind (sigc::mem_fun (*this, &TimeAxisView::set_height_enum), HeightNormal, true)));
+       items.push_back (MenuElem (_("Smaller"), sigc::bind (sigc::mem_fun (*this, &TimeAxisView::set_height_enum), HeightSmaller, true)));
+       items.push_back (MenuElem (_("Small"),   sigc::bind (sigc::mem_fun (*this, &TimeAxisView::set_height_enum), HeightSmall, true)));
 }
index 16c527d2be1d1e8b83eaaab75922b9fb755f716c..9630b3f19c0b0ccdd66943720933a36b2598b3fb 100644 (file)
@@ -149,7 +149,7 @@ class TimeAxisView : public virtual AxisView, public PBD::Stateful
        virtual void exited () {}
 
        virtual void set_height (uint32_t h);
-       void set_height_enum (Height);
+       void set_height_enum (Height, bool apply_to_selection = false);
        void reset_height();
 
        std::pair<TimeAxisView*, ARDOUR::layer_t> covers_y_position (double);
index 46c04183a42ccad148186c0ee1b09614e411c104..68ec3b7bd6b0c96152fabee3eb3520e118cbee1e 100644 (file)
@@ -35,6 +35,13 @@ public:
        
        TrackViewList add (TrackViewList const &);
 
+       template <typename Function>
+       void foreach_time_axis (Function f) {
+               for (iterator i = begin(); i != end(); ++i) {
+                       f (*i);
+               }
+       }
+
        template <typename Function>
        void foreach_route_ui (Function f) {
                for (iterator i = begin(); i != end(); ++i) {