sort export formats & presets in alphabetical name order
[ardour.git] / gtk2_ardour / time_axis_view.cc
index 7c47d5a5e0babeb6e62041ff88ecc7949a6782b6..380b4b4c5691216642f00916a45f8fb7825c4b9d 100644 (file)
@@ -301,7 +301,7 @@ TimeAxisView::controls_ebox_scroll (GdkEventScroll* ev)
        switch (ev->direction) {
        case GDK_SCROLL_UP:
                if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) {
-                       step_height (true);
+                       step_height (false);
                        return true;
                } else if (Keyboard::no_modifiers_active (ev->state)) {
                        _editor.scroll_tracks_up_line();
@@ -311,7 +311,7 @@ TimeAxisView::controls_ebox_scroll (GdkEventScroll* ev)
 
        case GDK_SCROLL_DOWN:
                if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) {
-                       step_height (false);
+                       step_height (true);
                        return true;
                } else if (Keyboard::no_modifiers_active (ev->state)) {
                        _editor.scroll_tracks_down_line();
@@ -382,21 +382,16 @@ TimeAxisView::hide ()
        Hiding ();
 }
 
+/** Steps through the defined heights for this TrackView.
+ *  @param coarser true if stepping should decrease in size, otherwise false.
+ */
 void
-TimeAxisView::step_height (bool bigger)
+TimeAxisView::step_height (bool coarser)
 {
        static const uint32_t step = 25;
 
-       if (bigger) {
-               if (height == preset_height(HeightSmall)) {
-                       set_height_enum (HeightSmaller);
-               } else if (height == preset_height(HeightSmaller)) {
-                       set_height_enum (HeightNormal);
-               } else {
-                       set_height (height + step);
-               }
-
-       } else {
+       if (coarser) {
+               
                if (height == preset_height (HeightSmall)) {
                        return;
                }
@@ -407,7 +402,18 @@ TimeAxisView::step_height (bool bigger)
                        set_height_enum (HeightSmaller);
                } else {
                        set_height (height - step);
-               } 
+               }
+               
+       } else {
+               
+               if (height == preset_height(HeightSmall)) {
+                       set_height_enum (HeightSmaller);
+               } else if (height == preset_height(HeightSmaller)) {
+                       set_height_enum (HeightNormal);
+               } else {
+                       set_height (height + step);
+               }
+               
        }
 }
 
@@ -422,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
@@ -607,11 +617,9 @@ TimeAxisView::conditionally_add_to_selection ()
 void
 TimeAxisView::popup_display_menu (guint32 when)
 {
-       if (display_menu == 0) {
-               build_display_menu ();
-       }
-
        conditionally_add_to_selection ();
+
+       build_display_menu ();
        display_menu->popup (1, when);
 }
 
@@ -1135,7 +1143,7 @@ TimeAxisView::hide_name_entry ()
 void
 TimeAxisView::color_handler ()
 {
-       for (list<GhostRegion*>::iterator i=ghosts.begin(); i != ghosts.end(); i++ ) {
+       for (list<GhostRegion*>::iterator i = ghosts.begin(); i != ghosts.end(); i++) {
                (*i)->set_colors();
        }
 
@@ -1346,9 +1354,11 @@ TimeAxisView::get_child_list ()
 void
 TimeAxisView::build_size_menu ()
 {
-       if (_size_menu) {
+       if (_size_menu && _size_menu->gobj ()) {
                return;
        }
+
+       delete _size_menu;
        
        using namespace Menu_Helpers;
 
@@ -1356,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)));
 }