summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2012-04-09 18:53:51 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2012-04-09 18:53:51 +0000
commitbef3ea1adc83945be416f755e08cdea2ecfabf29 (patch)
tree52fbb8075de9a26dcc33a1dca786f2c9dbd3e485 /gtk2_ardour
parent0431309f89dfaf7c17ee65c23a9c694336987098 (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.cc37
-rw-r--r--gtk2_ardour/editor.h6
-rw-r--r--gtk2_ardour/editor_ops.cc44
-rw-r--r--gtk2_ardour/time_axis_view.cc10
-rw-r--r--gtk2_ardour/time_axis_view.h1
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 ();