diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 97635935ea..c18d70868b 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -2915,11 +2915,31 @@ Editor::setup_toolbar () zoom_box.pack_start (zoom_out_button, false, false); zoom_box.pack_start (zoom_in_button, false, false); zoom_box.pack_start (zoom_out_full_button, false, false); + + /* Track zoom buttons */ + tav_expand_button.set_name ("TrackHeightButton"); + tav_expand_button.set_size_request(-1,20); + tav_expand_button.add (*(manage (new Image (::get_icon("tav_exp"))))); + tav_expand_button.signal_clicked().connect (bind (mem_fun(*this, &Editor::tav_zoom_step), true)); + ARDOUR_UI::instance()->tooltips().set_tip (tav_expand_button, _("Expand Tracks")); + + tav_shrink_button.set_name ("TrackHeightButton"); + tav_shrink_button.set_size_request(-1,20); + tav_shrink_button.add (*(manage (new Image (::get_icon("tav_shrink"))))); + tav_shrink_button.signal_clicked().connect (bind (mem_fun(*this, &Editor::tav_zoom_step), false)); + ARDOUR_UI::instance()->tooltips().set_tip (tav_shrink_button, _("Shrink Tracks")); + track_zoom_box.set_spacing (1); + track_zoom_box.set_border_width (0); + + track_zoom_box.pack_start (tav_shrink_button, false, false); + track_zoom_box.pack_start (tav_expand_button, false, false); + HBox* zbc = manage (new HBox); zbc->pack_start (zoom_focus_selector, PACK_SHRINK); zoom_vbox.pack_start (*zbc, PACK_SHRINK); zoom_vbox.pack_start (zoom_box, PACK_SHRINK); + zoom_vbox.pack_start (track_zoom_box, PACK_SHRINK); snap_box.set_spacing (1); snap_box.set_border_width (2); diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index 729211ed9d..5f5147a677 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -308,6 +308,7 @@ class Editor : public PublicEditor double get_current_zoom () const { return frames_per_unit; } void temporal_zoom_step (bool coarser); + void tav_zoom_step (bool coarser); /* stuff that AudioTimeAxisView and related classes use */ @@ -1510,6 +1511,9 @@ public: Gtk::Button zoom_out_full_button; Gtk::Button zoom_onetoone_button; + Gtk::Button tav_expand_button; + Gtk::Button tav_shrink_button; + Gtk::VBox toolbar_clock_vbox; Gtk::VBox toolbar_selection_clock_vbox; Gtk::Table toolbar_selection_clock_table; @@ -1569,6 +1573,7 @@ public: Glib::RefPtr zoom_focus_action (Editing::ZoomFocus); Gtk::HBox zoom_box; + Gtk::HBox track_zoom_box; Gtk::VBox zoom_vbox; void zoom_adjustment_changed(); diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index 8d68a32305..d9491a21b0 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -1515,6 +1515,21 @@ Editor::scroll_tracks_up_line () /* ZOOM */ +void +Editor::tav_zoom_step (bool coarser) +{ + ENSURE_GUI_THREAD (bind (mem_fun (*this, &Editor::temporal_zoom_step), coarser)); + + _routes->suspend_redisplay (); + + for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) { + TimeAxisView *tv = (static_cast(*i)); + tv->step_height (coarser); + } + + _routes->resume_redisplay (); +} + void Editor::temporal_zoom_step (bool coarser) { diff --git a/gtk2_ardour/icons/tav_exp.png b/gtk2_ardour/icons/tav_exp.png new file mode 100755 index 0000000000..7f8d48729a Binary files /dev/null and b/gtk2_ardour/icons/tav_exp.png differ diff --git a/gtk2_ardour/icons/tav_shrink.png b/gtk2_ardour/icons/tav_shrink.png new file mode 100755 index 0000000000..47b375172f Binary files /dev/null and b/gtk2_ardour/icons/tav_shrink.png differ diff --git a/gtk2_ardour/time_axis_view.cc b/gtk2_ardour/time_axis_view.cc index b0618fdb02..921d0424d6 100644 --- a/gtk2_ardour/time_axis_view.cc +++ b/gtk2_ardour/time_axis_view.cc @@ -133,6 +133,7 @@ TimeAxisView::TimeAxisView (ARDOUR::Session& sess, PublicEditor& ed, TimeAxisVie name_hbox.show (); + controls_table.set_size_request (200); controls_table.set_border_width (2); controls_table.set_row_spacings (0); controls_table.set_col_spacings (0);