N_("Slide"),
N_("Splice"),
N_("Ripple"),
- N_("Constrained"),
+ N_("Lock"),
0
};
/* nudge stuff */
nudge_forward_button.set_name ("nudge button");
- nudge_forward_button.set_image(::get_icon("nudge_right"));
+ nudge_forward_button.set_icon(ArdourIcon::NudgeRight);
nudge_backward_button.set_name ("nudge button");
- nudge_backward_button.set_image(::get_icon("nudge_left"));
+ nudge_backward_button.set_icon(ArdourIcon::NudgeLeft);
fade_context_menu.set_name ("ArdourContextMenu");
return;
}
- if (Keyboard::modifier_state_contains (event->button.state, Keyboard::snap_modifier())) {
+ if (ArdourKeyboard::indicates_snap (event->button.state)) {
if (_snap_mode == SnapOff) {
snap_to_internal (start, direction, for_mark);
}
} else {
if (_snap_mode != SnapOff) {
snap_to_internal (start, direction, for_mark);
+ } else if (ArdourKeyboard::indicates_snap_delta (event->button.state)) {
+ /* SnapOff, but we pressed the snap_delta modifier */
+ snap_to_internal (start, direction, for_mark);
}
}
}
void
-Editor::snap_to (framepos_t& start, RoundMode direction, bool for_mark)
-{
- if (!_session || _snap_mode == SnapOff) {
- return;
- }
-
- snap_to_internal (start, direction, for_mark);
-}
-
-void
-Editor::snap_to_no_magnets (framepos_t& start, RoundMode direction, bool for_mark)
+Editor::snap_to (framepos_t& start, RoundMode direction, bool for_mark, bool ensure_snap)
{
- if (!_session || _snap_mode == SnapOff) {
+ if (!_session || (_snap_mode == SnapOff && !ensure_snap)) {
return;
}
- snap_to_internal (start, direction, for_mark, true);
+ snap_to_internal (start, direction, for_mark, ensure_snap);
}
void
}
void
-Editor::snap_to_internal (framepos_t& start, RoundMode direction, bool for_mark, bool no_magnets)
+Editor::snap_to_internal (framepos_t& start, RoundMode direction, bool for_mark, bool ensure_snap)
{
const framepos_t one_second = _session->frame_rate();
const framepos_t one_minute = _session->frame_rate() * 60;
case SnapMagnetic:
- if (no_magnets) {
+ if (ensure_snap) {
return;
}
zoom_preset_selector.set_size_request (42, -1);
zoom_in_button.set_name ("zoom button");
- zoom_in_button.set_image(::get_icon ("zoom_in"));
+ zoom_in_button.set_icon (ArdourIcon::ZoomIn);
act = ActionManager::get_action (X_("Editor"), X_("temporal-zoom-in"));
zoom_in_button.set_related_action (act);
zoom_out_button.set_name ("zoom button");
- zoom_out_button.set_image(::get_icon ("zoom_out"));
+ zoom_out_button.set_icon (ArdourIcon::ZoomOut);
act = ActionManager::get_action (X_("Editor"), X_("temporal-zoom-out"));
zoom_out_button.set_related_action (act);
zoom_out_full_button.set_name ("zoom button");
- zoom_out_full_button.set_image(::get_icon ("zoom_full"));
+ zoom_out_full_button.set_icon (ArdourIcon::ZoomFull);
act = ActionManager::get_action (X_("Editor"), X_("zoom-to-session"));
zoom_out_full_button.set_related_action (act);
}
tav_expand_button.set_name ("zoom button");
- tav_expand_button.set_image(::get_icon ("tav_exp"));
+ tav_expand_button.set_icon (ArdourIcon::TimeAxisExpand);
act = ActionManager::get_action (X_("Editor"), X_("expand-tracks"));
tav_expand_button.set_related_action (act);
tav_shrink_button.set_name ("zoom button");
- tav_shrink_button.set_image(::get_icon ("tav_shrink"));
+ tav_shrink_button.set_icon (ArdourIcon::TimeAxisShrink);
act = ActionManager::get_action (X_("Editor"), X_("shrink-tracks"));
tav_shrink_button.set_related_action (act);
if (!ARDOUR::Profile->get_trx()) {
hbox->pack_start (snap_box, false, false);
- if ( !Profile->get_small_screen() || Profile->get_mixbus() ) {
- hbox->pack_start (*nudge_box, false, false);
- } else {
- ARDOUR_UI::instance()->editor_transport_box().pack_start (*nudge_box, false, false);
- }
+ hbox->pack_start (*nudge_box, false, false);
}
hbox->pack_start (panic_box, false, false);
edit_mode_selector.AddMenuElem (MenuElem ( edit_mode_strings[(int)Slide], sigc::bind (sigc::mem_fun(*this, &Editor::edit_mode_selection_done), (EditMode) Slide)));
// edit_mode_selector.AddMenuElem (MenuElem ( edit_mode_strings[(int)Splice], sigc::bind (sigc::mem_fun(*this, &Editor::edit_mode_selection_done), (EditMode) Splice)));
edit_mode_selector.AddMenuElem (MenuElem ( edit_mode_strings[(int)Ripple], sigc::bind (sigc::mem_fun(*this, &Editor::edit_mode_selection_done), (EditMode) Ripple)));
- edit_mode_selector.AddMenuElem (MenuElem ( edit_mode_strings[(int)Constrained], sigc::bind (sigc::mem_fun(*this, &Editor::edit_mode_selection_done), (EditMode) Constrained)));
+ edit_mode_selector.AddMenuElem (MenuElem ( edit_mode_strings[(int)Lock], sigc::bind (sigc::mem_fun(*this, &Editor::edit_mode_selection_done), (EditMode) Lock)));
set_size_request_to_display_given_text (edit_mode_selector, edit_mode_strings, COMBO_TRIANGLE_WIDTH, 2);
}
ARDOUR_UI::instance()->set_tip (mouse_draw_button, _("Draw Mode (draw and edit gain/notes/automation)"));
ARDOUR_UI::instance()->set_tip (mouse_timefx_button, _("Stretch Mode (time-stretch audio and midi regions, preserving pitch)"));
ARDOUR_UI::instance()->set_tip (mouse_audition_button, _("Audition Mode (listen to regions)"));
- ARDOUR_UI::instance()->set_tip (mouse_content_button, _("Internal Edit Mode (edit notes and gain curves inside regions)"));
+ ARDOUR_UI::instance()->set_tip (mouse_content_button, _("Internal Edit Mode (edit notes and automation points)"));
ARDOUR_UI::instance()->set_tip (*_group_tabs, _("Groups: click to (de)activate\nContext-click for other operations"));
ARDOUR_UI::instance()->set_tip (nudge_forward_button, _("Nudge Region/Selection Later"));
ARDOUR_UI::instance()->set_tip (nudge_backward_button, _("Nudge Region/Selection Earlier"));
switch (Config->get_edit_mode()) {
case Slide:
if (Profile->get_sae()) {
- Config->set_edit_mode (Constrained);
+ Config->set_edit_mode (Lock);
} else {
Config->set_edit_mode (Ripple);
}
break;
case Splice:
case Ripple:
- Config->set_edit_mode (Constrained);
+ Config->set_edit_mode (Lock);
break;
- case Constrained:
+ case Lock:
Config->set_edit_mode (Slide);
break;
}
} else {
- /* don't do continuous scroll till the new position is in the rightmost quarter of the
- editor canvas
- */
-#if 0
- // FIXME DO SOMETHING THAT WORKS HERE - this is 2.X code
- double target = ((double)frame - (double)current_page_samples()/2.0) / samples_per_pixel;
- if (target <= 0.0) {
- target = 0.0;
- }
- if (fabs(target - current) < current_page_samples() / samples_per_pixel) {
- target = (target * 0.15) + (current * 0.85);
- } else {
- /* relax */
+ if (!_dragging_playhead && _follow_playhead && _session->requested_return_frame() < 0 && !pending_visual_change.being_handled) {
+ framepos_t const frame = playhead_cursor->current_frame ();
+ double target = ((double)frame - (double)current_page_samples()/3.0);
+ if (target <= 0.0) {
+ target = 0.0;
+ }
+ reset_x_origin (target);
}
- current = target;
- set_horizontal_position (current);
-#endif
}
}