From 7d5f575d61672bffb032ffbbe6bca3059858f4f1 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 17 Nov 2023 10:52:13 -0700 Subject: [PATCH] finish inheritance work between EditingContext & Editor this completes the initial phase of defining what an EditingContext must offer, though the may expand or shrink as we being work on editing outside the Editor --- gtk2_ardour/editing_context.cc | 19 +++++++------------ gtk2_ardour/editing_context.h | 13 ++++++++++++- gtk2_ardour/editor.cc | 1 - gtk2_ardour/editor.h | 2 -- 4 files changed, 19 insertions(+), 16 deletions(-) diff --git a/gtk2_ardour/editing_context.cc b/gtk2_ardour/editing_context.cc index 3caf31a6d5..c249ded393 100644 --- a/gtk2_ardour/editing_context.cc +++ b/gtk2_ardour/editing_context.cc @@ -63,7 +63,8 @@ static const gchar *_grid_type_strings[] = { }; EditingContext::EditingContext () - : pre_internal_grid_type (GridTypeBeat) + : rubberband_rect (0) + , pre_internal_grid_type (GridTypeBeat) , pre_internal_snap_mode (SnapOff) , internal_grid_type (GridTypeBeat) , internal_snap_mode (SnapOff) @@ -73,7 +74,7 @@ EditingContext::EditingContext () , _draw_velocity (DRAW_VEL_AUTO) , _draw_channel (DRAW_CHAN_AUTO) , _drags (new DragManager (this)) - , rubberband_rect (0) + , _leftmost_sample (0) { grid_type_strings = I18N (_grid_type_strings); } @@ -770,8 +771,7 @@ EditingContext::set_grid_to (GridType gt) } if (grid_type_changed && UIConfiguration::instance().get_show_grids_ruler()) { -#warning paul heirarchy warning - // show_rulers_for_grid (); + show_rulers_for_grid (); } instant_save (); @@ -779,9 +779,8 @@ EditingContext::set_grid_to (GridType gt) const bool grid_is_musical = grid_musical (); if (grid_is_musical) { -#warning paul fix location of this in heirarchy - // compute_bbt_ruler_scale (_leftmost_sample, _leftmost_sample + current_page_samples()); - // update_tempo_based_rulers (); + compute_bbt_ruler_scale (_leftmost_sample, _leftmost_sample + current_page_samples()); + update_tempo_based_rulers (); } else if (current_mouse_mode () == Editing::MouseGrid) { Glib::RefPtr ract = ActionManager::get_radio_action (X_("MouseMode"), X_("set-mouse-mode-object")); ract->set_active (true); @@ -789,8 +788,7 @@ EditingContext::set_grid_to (GridType gt) ActionManager::get_action (X_("MouseMode"), X_("set-mouse-mode-grid"))->set_sensitive (grid_is_musical); -#warning paul heirarchy warning - // mark_region_boundary_cache_dirty (); + mark_region_boundary_cache_dirty (); redisplay_grid (false); @@ -808,14 +806,11 @@ EditingContext::set_snap_mode (SnapMode mode) _snap_mode = mode; -#warning paul heirarchy warning -#if 0 if (_snap_mode == SnapOff) { snap_mode_button.set_active_state (Gtkmm2ext::Off); } else { snap_mode_button.set_active_state (Gtkmm2ext::ExplicitActive); } -#endif instant_save (); } diff --git a/gtk2_ardour/editing_context.h b/gtk2_ardour/editing_context.h index e9d6ac6329..5ff0af8fd2 100644 --- a/gtk2_ardour/editing_context.h +++ b/gtk2_ardour/editing_context.h @@ -233,6 +233,9 @@ public: void register_midi_actions (Gtkmm2ext::Bindings*); + ArdourCanvas::Rectangle* rubberband_rect; + + protected: Glib::RefPtr _midi_actions; /* Cursor stuff. Do not use directly, use via CursorContext. */ @@ -288,7 +291,15 @@ public: DragManager* _drags; - ArdourCanvas::Rectangle* rubberband_rect; + ArdourWidgets::ArdourButton snap_mode_button; + + virtual void mark_region_boundary_cache_dirty () {} + virtual void compute_bbt_ruler_scale (samplepos_t, samplepos_t) {} + virtual void update_tempo_based_rulers () {}; + virtual void show_rulers_for_grid () {}; + virtual samplecnt_t current_page_samples() const = 0; + + samplepos_t _leftmost_sample; }; #endif /* __ardour_midi_editing_context_h__ */ diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index aa6002e6a7..d51e42c7aa 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -234,7 +234,6 @@ Editor::Editor () , constructed (false) , _properties_box (0) , no_save_visual (false) - , _leftmost_sample (0) , samples_per_pixel (2048) , zoom_focus (ZoomFocusPlayhead) , mouse_mode (MouseObject) diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index 183dbac71c..91cae77407 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -639,7 +639,6 @@ private: void start_visual_state_op (uint32_t n); void cancel_visual_state_op (uint32_t n); - samplepos_t _leftmost_sample; samplecnt_t samples_per_pixel; Editing::ZoomFocus zoom_focus; @@ -1984,7 +1983,6 @@ private: return stretch_marker_cb.get_active (); } - ArdourWidgets::ArdourButton snap_mode_button; bool snap_mode_button_clicked (GdkEventButton*); Gtk::HBox snap_box;