From 0311bffed8814b9c8992db8bbd7b81266b14daee Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sun, 28 Jan 2024 15:26:38 -0700 Subject: [PATCH] progrss with rubber band selection and event handling in MIDI cue editor --- gtk2_ardour/cue_editor.cc | 2 +- gtk2_ardour/midi_cue_editor.cc | 6 ++++++ gtk2_ardour/midi_cue_editor.h | 4 ++-- gtk2_ardour/midi_view.cc | 8 -------- gtk2_ardour/midi_view.h | 2 +- 5 files changed, 10 insertions(+), 12 deletions(-) diff --git a/gtk2_ardour/cue_editor.cc b/gtk2_ardour/cue_editor.cc index 8567370333..a9c43f4b98 100644 --- a/gtk2_ardour/cue_editor.cc +++ b/gtk2_ardour/cue_editor.cc @@ -79,7 +79,7 @@ CueEditor::stop_canvas_autoscroll () bool CueEditor::autoscroll_active() const { - return true; + return false; } void diff --git a/gtk2_ardour/midi_cue_editor.cc b/gtk2_ardour/midi_cue_editor.cc index abef10873d..e2f098ca2c 100644 --- a/gtk2_ardour/midi_cue_editor.cc +++ b/gtk2_ardour/midi_cue_editor.cc @@ -105,6 +105,9 @@ MidiCueEditor::build_canvas () // used as rubberband rect rubberband_rect = new ArdourCanvas::Rectangle (hv_scroll_group, ArdourCanvas::Rect (0.0, 0.0, 0.0, 0.0)); rubberband_rect->hide(); + rubberband_rect->set_outline_color (UIConfiguration::instance().color ("rubber band rect")); + rubberband_rect->set_fill_color (UIConfiguration::instance().color_mod ("rubber band rect", "selection rect")); + CANVAS_DEBUG_NAME (rubberband_rect, X_("midi cue rubberband rect")); bg = new CueMidiBackground (hv_scroll_group); _canvas_viewport->signal_size_allocate().connect (sigc::mem_fun(*this, &MidiCueEditor::canvas_allocate)); @@ -114,6 +117,9 @@ void MidiCueEditor::canvas_allocate (Gtk::Allocation alloc) { bg->set_size (alloc.get_width(), alloc.get_height()); + if (view) { + view->set_size (alloc.get_width(), alloc.get_height()); + } } timepos_t diff --git a/gtk2_ardour/midi_cue_editor.h b/gtk2_ardour/midi_cue_editor.h index a10f828f99..864702d01e 100644 --- a/gtk2_ardour/midi_cue_editor.h +++ b/gtk2_ardour/midi_cue_editor.h @@ -34,7 +34,7 @@ namespace ArdourCanvas { class ScrollGroup; } -class MidiView; +class MidiCueView; class CueMidiBackground; class MidiCueEditor : public CueEditor @@ -109,7 +109,7 @@ class MidiCueEditor : public CueEditor ArdourCanvas::Rectangle* transport_loop_range_rect; CueMidiBackground* bg; - MidiView* view; + MidiCueView* view; void build_canvas (); void canvas_allocate (Gtk::Allocation); diff --git a/gtk2_ardour/midi_view.cc b/gtk2_ardour/midi_view.cc index 265859ac5b..d2174fecc2 100644 --- a/gtk2_ardour/midi_view.cc +++ b/gtk2_ardour/midi_view.cc @@ -238,8 +238,6 @@ MidiView::canvas_group_event (GdkEvent* ev) //For now, move the snapped cursor aside so it doesn't bother you during internal editing //_editing_context.set_snapped_cursor_position(_midi_region->position()); - std::cerr << "MV @ " << this << " CGE " << Gtkmm2ext::event_type_string (ev->type) << std::endl; - bool r; switch (ev->type) { @@ -4651,12 +4649,6 @@ MidiView::add_split_notes () } } -ArdourCanvas::Item* -MidiView::drag_group () const -{ - return _note_group->parent(); -} - double MidiView::height() const { diff --git a/gtk2_ardour/midi_view.h b/gtk2_ardour/midi_view.h index 88446338cc..0b47e48c43 100644 --- a/gtk2_ardour/midi_view.h +++ b/gtk2_ardour/midi_view.h @@ -97,7 +97,7 @@ class MidiView : public virtual sigc::trackable virtual bool display_is_enabled() const { return true; } - virtual ArdourCanvas::Item* drag_group() const; + virtual ArdourCanvas::Item* drag_group() const = 0; void step_add_note (uint8_t channel, uint8_t number, uint8_t velocity, Temporal::Beats pos, Temporal::Beats len);