Add the tool for Grid, and accompanying buttons and event-handling

This commit is contained in:
Ben Loftis 2023-09-05 11:36:17 -05:00 committed by Robin Gareus
parent 268d1d33c7
commit 784d2ecce4
No known key found for this signature in database
GPG key ID: A090BCE02CF57F04
6 changed files with 103 additions and 49 deletions

View file

@ -924,6 +924,7 @@ Editor::~Editor()
delete _snapshots;
delete _sections;
delete _locations;
delete _canvas_grid_zone;
delete _properties_box;
delete selection;
delete cut_buffer;
@ -3259,6 +3260,7 @@ Editor::setup_toolbar ()
mouse_mode_size_group->add_widget (mouse_cut_button);
mouse_mode_size_group->add_widget (mouse_select_button);
mouse_mode_size_group->add_widget (mouse_timefx_button);
mouse_mode_size_group->add_widget (mouse_grid_button);
if (!Profile->get_mixbus()) {
mouse_mode_size_group->add_widget (mouse_audition_button);
}
@ -3277,6 +3279,8 @@ Editor::setup_toolbar ()
mouse_mode_size_group->add_widget (visible_tracks_selector);
}
mouse_mode_size_group->add_widget (stretch_midi_cb);
mouse_mode_size_group->add_widget (grid_type_selector);
mouse_mode_size_group->add_widget (draw_length_selector);
mouse_mode_size_group->add_widget (draw_velocity_selector);
@ -3304,6 +3308,7 @@ Editor::setup_toolbar ()
}
mouse_mode_hbox->pack_start (mouse_timefx_button, false, false);
mouse_mode_hbox->pack_start (mouse_grid_button, false, false);
mouse_mode_hbox->pack_start (mouse_draw_button, false, false);
mouse_mode_hbox->pack_start (mouse_content_button, false, false);
@ -3393,6 +3398,8 @@ Editor::setup_toolbar ()
snap_box.set_spacing (2);
snap_box.set_border_width (2);
stretch_midi_cb.set_name ("mouse mode button");
grid_type_selector.set_name ("mouse mode button");
draw_length_selector.set_name ("mouse mode button");
draw_velocity_selector.set_name ("mouse mode button");
@ -3424,6 +3431,13 @@ Editor::setup_toolbar ()
nudge_box->pack_start (nudge_forward_button, false, false);
nudge_box->pack_start (*nudge_clock, false, false);
stretch_midi_cb.set_label(_("Stretch MIDI"));
/* Grid - these tools are only visible when in Grid mode */
grid_box.set_spacing (2);
grid_box.set_border_width (2);
grid_box.pack_start (stretch_midi_cb, false, false, 4);
/* Draw - these MIDI tools are only visible when in Draw mode */
draw_box.set_spacing (2);
draw_box.set_border_width (2);
@ -3462,6 +3476,8 @@ Editor::setup_toolbar ()
toolbar_hbox.pack_start (snap_box, false, false);
toolbar_hbox.pack_start (*(manage (new ArdourVSpacer ())), false, false, 3);
toolbar_hbox.pack_start (*nudge_box, false, false);
toolbar_hbox.pack_start (_grid_box_spacer, false, false, 3);
toolbar_hbox.pack_start (grid_box, false, false);
toolbar_hbox.pack_start (_draw_box_spacer, false, false, 3);
toolbar_hbox.pack_start (draw_box, false, false);
toolbar_hbox.pack_end (_zoom_box, false, false, 2);
@ -3621,6 +3637,7 @@ Editor::setup_tooltips ()
set_tooltip (mouse_move_button, _("Grab Mode (select/move objects)"));
set_tooltip (mouse_cut_button, _("Cut Mode (split regions)"));
set_tooltip (mouse_select_button, _("Range Mode (select time ranges)"));
set_tooltip (mouse_grid_button, _("Grid Mode (edit tempo-map, drag/drop music-time grid)"));
set_tooltip (mouse_draw_button, _("Draw Mode (draw and edit gain/notes/automation)"));
set_tooltip (mouse_timefx_button, _("Stretch Mode (time-stretch audio and midi regions, preserving pitch)"));
set_tooltip (mouse_audition_button, _("Audition Mode (listen to regions)"));
@ -3636,6 +3653,7 @@ Editor::setup_tooltips ()
set_tooltip (tav_expand_button, _("Expand Tracks"));
set_tooltip (tav_shrink_button, _("Shrink Tracks"));
set_tooltip (visible_tracks_selector, _("Number of visible tracks"));
set_tooltip (stretch_midi_cb, _("Enable to move MIDI events when stretching the Grid"));
set_tooltip (draw_length_selector, _("Note Length to Draw (AUTO uses the current Grid setting)"));
set_tooltip (draw_velocity_selector, _("Note Velocity to Draw (AUTO uses the nearest note's velocity)"));
set_tooltip (draw_channel_selector, _("Note Channel to Draw (AUTO uses the nearest note's channel)"));