diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2012-04-09 18:53:51 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2012-04-09 18:53:51 +0000 |
commit | bef3ea1adc83945be416f755e08cdea2ecfabf29 (patch) | |
tree | 52fbb8075de9a26dcc33a1dca786f2c9dbd3e485 /gtk2_ardour | |
parent | 0431309f89dfaf7c17ee65c23a9c694336987098 (diff) |
MCP: F1-7 jump to a given view; F8 closes any currently open dialog; in zoom mode, up/down alter vertical track height of all tracks; option-up/down alters selected track heights
git-svn-id: svn://localhost/ardour2/branches/3.0@11858 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/editor.cc | 37 | ||||
-rw-r--r-- | gtk2_ardour/editor.h | 6 | ||||
-rw-r--r-- | gtk2_ardour/editor_ops.cc | 44 | ||||
-rw-r--r-- | gtk2_ardour/time_axis_view.cc | 10 | ||||
-rw-r--r-- | gtk2_ardour/time_axis_view.h | 1 |
5 files changed, 84 insertions, 14 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index d331b6aee1..eb262ffb24 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -714,6 +714,13 @@ Editor::Editor () ControlProtocol::ScrollTimeline.connect (*this, invalidator (*this), ui_bind (&Editor::control_scroll, this, _1), gui_context()); ControlProtocol::SelectByRID.connect (*this, invalidator (*this), ui_bind (&Editor::control_select, this, _1), gui_context()); ControlProtocol::UnselectTrack.connect (*this, invalidator (*this), ui_bind (&Editor::control_unselect, this), gui_context()); + ControlProtocol::GotoView.connect (*this, invalidator (*this), ui_bind (&Editor::control_view, this, _1), gui_context()); + ControlProtocol::CloseDialog.connect (*this, invalidator (*this), Keyboard::close_current_dialog, gui_context()); + ControlProtocol::VerticalZoomInAll.connect (*this, invalidator (*this), ui_bind (&Editor::control_vertical_zoom_in_all, this), gui_context()); + ControlProtocol::VerticalZoomOutAll.connect (*this, invalidator (*this), ui_bind (&Editor::control_vertical_zoom_out_all, this), gui_context()); + ControlProtocol::VerticalZoomInSelected.connect (*this, invalidator (*this), ui_bind (&Editor::control_vertical_zoom_in_selected, this), gui_context()); + ControlProtocol::VerticalZoomOutSelected.connect (*this, invalidator (*this), ui_bind (&Editor::control_vertical_zoom_out_selected, this), gui_context()); + BasicUI::AccessAction.connect (*this, invalidator (*this), ui_bind (&Editor::access_action, this, _1, _2), gui_context()); /* problematic: has to return a value and thus cannot be x-thread */ @@ -923,6 +930,36 @@ Editor::zoom_adjustment_changed () } void +Editor::control_vertical_zoom_in_all () +{ + tav_zoom_smooth (false, true); +} + +void +Editor::control_vertical_zoom_out_all () +{ + tav_zoom_smooth (true, true); +} + +void +Editor::control_vertical_zoom_in_selected () +{ + tav_zoom_smooth (false, false); +} + +void +Editor::control_vertical_zoom_out_selected () +{ + tav_zoom_smooth (true, false); +} + +void +Editor::control_view (uint32_t view) +{ + goto_visual_state (view); +} + +void Editor::control_unselect () { selection->clear_tracks (); diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index 92675edb4e..a3315b6c19 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -318,6 +318,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void temporal_zoom_step (bool coarser); void tav_zoom_step (bool coarser); + void tav_zoom_smooth (bool coarser, bool force_all); /* stuff that AudioTimeAxisView and related classes use */ @@ -987,6 +988,11 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD Gtk::VBox edit_controls_vbox; Gtk::HBox edit_controls_hbox; + void control_vertical_zoom_in_all (); + void control_vertical_zoom_out_all (); + void control_vertical_zoom_in_selected (); + void control_vertical_zoom_out_selected (); + void control_view (uint32_t); void control_scroll (float); void control_select (uint32_t rid); void control_unselect (); diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index 1dbad3ac2e..92d4ed63f5 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -1278,11 +1278,17 @@ Editor::scroll_tracks_up_line () void Editor::tav_zoom_step (bool coarser) { - ENSURE_GUI_THREAD (*this, &Editor::temporal_zoom_step, coarser) - _routes->suspend_redisplay (); - for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) { + TrackViewList* ts; + + if (selection->tracks.empty()) { + ts = &track_views; + } else { + ts = &selection->tracks; + } + + for (TrackViewList::iterator i = ts->begin(); i != ts->end(); ++i) { TimeAxisView *tv = (static_cast<TimeAxisView*>(*i)); tv->step_height (coarser); } @@ -1291,6 +1297,38 @@ Editor::tav_zoom_step (bool coarser) } void +Editor::tav_zoom_smooth (bool coarser, bool force_all) +{ + _routes->suspend_redisplay (); + + TrackViewList* ts; + + if (selection->tracks.empty() || force_all) { + ts = &track_views; + } else { + ts = &selection->tracks; + } + + for (TrackViewList::iterator i = ts->begin(); i != ts->end(); ++i) { + TimeAxisView *tv = (static_cast<TimeAxisView*>(*i)); + uint32_t h = tv->current_height (); + + if (coarser) { + if (h > 5) { + h -= 5; // pixels + if (h >= TimeAxisView::preset_height (HeightSmall)) { + tv->set_height (h); + } + } + } else { + tv->set_height (h + 5); + } + } + + _routes->resume_redisplay (); +} + +void Editor::temporal_zoom_step (bool coarser) { ENSURE_GUI_THREAD (*this, &Editor::temporal_zoom_step, coarser) diff --git a/gtk2_ardour/time_axis_view.cc b/gtk2_ardour/time_axis_view.cc index 104209d884..52013a5747 100644 --- a/gtk2_ardour/time_axis_view.cc +++ b/gtk2_ardour/time_axis_view.cc @@ -496,16 +496,6 @@ TimeAxisView::step_height (bool coarser) } void -TimeAxisView::set_heights (uint32_t h) -{ - TrackSelection& ts (_editor.get_selection().tracks); - - for (TrackSelection::iterator i = ts.begin(); i != ts.end(); ++i) { - (*i)->set_height (h); - } -} - -void TimeAxisView::set_height_enum (Height h, bool apply_to_selection) { if (apply_to_selection) { diff --git a/gtk2_ardour/time_axis_view.h b/gtk2_ardour/time_axis_view.h index 52385b17aa..03c50e7ccb 100644 --- a/gtk2_ardour/time_axis_view.h +++ b/gtk2_ardour/time_axis_view.h @@ -286,7 +286,6 @@ class TimeAxisView : public virtual AxisView bool in_destructor; NamePackingBits name_packing; - void set_heights (uint32_t h); void color_handler (); void conditionally_add_to_selection (); |