X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Feditor.h;h=68ba1101234b985522252bf44a7b63ce0affc96c;hb=38e94875647782fa6c28e25be471f0cff6c97d2a;hp=d34a40cda86cb134dd2cc5eaa319f52198e4ddf8;hpb=645402bc42879364a16c0d6c230e9125bd0aeb1f;p=ardour.git diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index d34a40cda8..68ba110123 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -35,11 +35,7 @@ #include #include "gtkmm2ext/bindings.h" -#include "gtkmm2ext/click_box.h" #include "gtkmm2ext/dndtreeview.h" -#include "gtkmm2ext/pane.h" -#include "gtkmm2ext/selector.h" -#include "gtkmm2ext/stateful_button.h" #include "pbd/stateful.h" #include "pbd/signals.h" @@ -52,9 +48,11 @@ #include "canvas/fwd.h" #include "canvas/ruler.h" -#include "ardour_button.h" +#include "widgets/ardour_button.h" +#include "widgets/ardour_dropdown.h" +#include "widgets/pane.h" + #include "ardour_dialog.h" -#include "ardour_dropdown.h" #include "public_editor.h" #include "editing.h" #include "enums.h" @@ -102,7 +100,6 @@ class AutomationLine; class AutomationSelection; class AutomationTimeAxisView; class BundleManager; -class ButtonJoiner; class ControlPoint; class CursorContext; class DragManager; @@ -115,7 +112,6 @@ class EditorRoutes; class EditorRouteGroups; class EditorSnapshots; class EditorSummary; -class GroupedButtons; class GUIObjectState; class ArdourMarker; class MidiRegionView; @@ -140,14 +136,13 @@ class TimeSelection; class RegionLayeringOrderEditor; class VerboseCursor; -class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARDOUR::SessionHandlePtr +class Editor : public PublicEditor, public PBD::ScopedConnectionList { - public: +public: Editor (); ~Editor (); void set_session (ARDOUR::Session *); - ARDOUR::Session* session() const { return _session; } Gtk::Window* use_own_window (bool and_fill_it); @@ -197,7 +192,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void foreach_time_axis_view (sigc::slot); void add_to_idle_resize (TimeAxisView*, int32_t); - RouteTimeAxisView* get_route_view_by_route_id (const PBD::ID& id) const; + StripableTimeAxisView* get_stripable_time_axis_by_id (const PBD::ID& id) const; void consider_auditioning (boost::shared_ptr); void hide_a_region (boost::shared_ptr); @@ -243,8 +238,8 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD return pixel * samples_per_pixel; } - double sample_to_pixel (framepos_t sample) const { - return round (sample / (double) samples_per_pixel); + double sample_to_pixel (framepos_t sample) const { + return round (sample / (double) samples_per_pixel); } double sample_to_pixel_unrounded (framepos_t sample) const { @@ -256,15 +251,16 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD Selection& get_selection() const { return *selection; } bool get_selection_extents (framepos_t &start, framepos_t &end) const; // the time extents of the current selection, whether Range, Region(s), Control Points, or Notes Selection& get_cut_buffer() const { return *cut_buffer; } - void track_mixer_selection (); + + void set_selection (std::list, Selection::Operation); bool extend_selection_to_track (TimeAxisView&); void play_selection (); - framepos_t get_preroll (); void maybe_locate_with_edit_preroll (framepos_t); void play_with_preroll (); void rec_with_preroll (); + void rec_with_count_in (); void select_all_in_track (Selection::Operation op); void select_all_objects (Selection::Operation op); void invert_selection_in_track (); @@ -330,6 +326,8 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void set_selected_mixer_strip (TimeAxisView&); void mixer_strip_width_changed (); void hide_track_in_display (TimeAxisView* tv, bool apply_to_selection = false); + void show_track_in_display (TimeAxisView* tv, bool move_into_view = false); + void tempo_curve_selected (ARDOUR::TempoSection* ts, bool yn); /* nudge is initiated by transport controls owned by ARDOUR_UI */ @@ -366,10 +364,13 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void set_group_tabs (); void toggle_measure_visibility (); + /* returns the left-most and right-most time that the gui should allow the user to scroll to */ + std::pair session_gui_extents( bool use_extra = true ) const; + /* fades */ - void toggle_region_fades (int dir); - void update_region_fade_visibility (); + void toggle_region_fades (int dir); + void update_region_fade_visibility (); /* redirect shared ops menu. caller must free returned menu */ @@ -391,6 +392,8 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void scroll_left_half_page (); void scroll_right_half_page (); + void select_topmost_track (); + void prepare_for_cleanup (); void finish_cleanup (); @@ -422,7 +425,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void start_resize_line_ops (); void end_resize_line_ops (); - TrackViewList const & get_track_views () { + TrackViewList const & get_track_views () const { return track_views; } @@ -454,20 +457,20 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD TrackViewList axis_views_from_routes (boost::shared_ptr) const; - void snap_to (framepos_t& first, - ARDOUR::RoundMode direction = ARDOUR::RoundNearest, - bool for_mark = false, - bool ensure_snap = false); + void snap_to (ARDOUR::MusicFrame& first, + ARDOUR::RoundMode direction = ARDOUR::RoundNearest, + bool for_mark = false, + bool ensure_snap = false); - void snap_to_with_modifier (framepos_t& first, - GdkEvent const * ev, - ARDOUR::RoundMode direction = ARDOUR::RoundNearest, - bool for_mark = false); + void snap_to_with_modifier (ARDOUR::MusicFrame& first, + GdkEvent const * ev, + ARDOUR::RoundMode direction = ARDOUR::RoundNearest, + bool for_mark = false); - void snap_to (framepos_t& first, - framepos_t& last, - ARDOUR::RoundMode direction = ARDOUR::RoundNearest, - bool for_mark = false); + void snap_to (ARDOUR::MusicFrame& first, + ARDOUR::MusicFrame& last, + ARDOUR::RoundMode direction = ARDOUR::RoundNearest, + bool for_mark = false); void begin_selection_op_history (); void begin_reversible_selection_op (std::string cmd_name); @@ -544,7 +547,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD /* editing operations that need to be public */ void mouse_add_new_marker (framepos_t where, bool is_cd=false); - void split_regions_at (framepos_t, RegionSelection&, const int32_t sub_num, bool snap = true); + void split_regions_at (ARDOUR::MusicFrame, RegionSelection&, bool snap = true); void split_region_at_points (boost::shared_ptr, ARDOUR::AnalysisFeatureList&, bool can_ferret, bool select_new = false); RegionSelection get_regions_from_selection_and_mouse (framepos_t); @@ -553,16 +556,17 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void edit_tempo_section (ARDOUR::TempoSection*); void edit_meter_section (ARDOUR::MeterSection*); - protected: +protected: void map_transport_state (); void map_position_change (framepos_t); + void transport_looped (); void on_realize(); void suspend_route_redisplay (); void resume_route_redisplay (); - private: +private: void color_handler (); @@ -578,13 +582,13 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD typedef std::pair TAVState; struct VisualState { - VisualState (bool with_tracks); - ~VisualState (); - double y_position; - framecnt_t samples_per_pixel; - framepos_t leftmost_frame; - Editing::ZoomFocus zoom_focus; - GUIObjectState* gui_state; + VisualState (bool with_tracks); + ~VisualState (); + double y_position; + framecnt_t samples_per_pixel; + framepos_t leftmost_frame; + Editing::ZoomFocus zoom_focus; + GUIObjectState* gui_state; }; std::list undo_visual_stack; @@ -605,6 +609,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD Editing::ZoomFocus zoom_focus; void set_samples_per_pixel (framecnt_t); + void on_samples_per_pixel_changed (); Editing::MouseMode mouse_mode; Editing::SnapType pre_internal_snap_type; @@ -633,8 +638,8 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void add_notebook_page (std::string const &, Gtk::Widget &); bool notebook_tab_clicked (GdkEventButton *, Gtk::Widget *); - Gtkmm2ext::HPane edit_pane; - Gtkmm2ext::VPane editor_summary_pane; + ArdourWidgets::HPane edit_pane; + ArdourWidgets::VPane editor_summary_pane; Gtk::EventBox meter_base; Gtk::HBox meter_box; @@ -733,6 +738,9 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void get_equivalent_regions (RegionView* rv, std::vector &, PBD::PropertyID) const; RegionSelection get_equivalent_regions (RegionSelection &, PBD::PropertyID) const; + RegionView* regionview_from_region (boost::shared_ptr) const; + RouteTimeAxisView* rtav_from_route (boost::shared_ptr) const; + void mapover_tracks (sigc::slot sl, TimeAxisView*, PBD::PropertyID) const; void mapover_tracks_with_unique_playlists (sigc::slot sl, TimeAxisView*, PBD::PropertyID) const; @@ -1109,7 +1117,8 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void control_scroll (float); void control_select (boost::shared_ptr, Selection::Operation); void control_unselect (); - void access_action (std::string,std::string); + void access_action (const std::string&, const std::string&); + void set_toggleaction (const std::string&, const std::string&, bool); bool deferred_control_scroll (framepos_t); sigc::connection control_scroll_connection; @@ -1121,7 +1130,8 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD enum Type { TimeOrigin = 0x1, ZoomLevel = 0x2, - YOrigin = 0x4 + YOrigin = 0x4, + VideoTimeline = 0x8 }; Type pending; @@ -1140,6 +1150,9 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD }; VisualChange pending_visual_change; + bool visual_change_queued; + + void pre_render (); static int _idle_visual_changer (void *arg); int idle_visual_changer (); @@ -1149,16 +1162,24 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD /* track views */ TrackViewList track_views; std::pair trackview_by_y_position (double, bool trackview_relative_offset = true) const; - TimeAxisView* axis_view_from_stripable (boost::shared_ptr) const; + + AxisView* axis_view_by_stripable (boost::shared_ptr) const; + AxisView* axis_view_by_control (boost::shared_ptr) const; + + TimeAxisView* time_axis_view_from_stripable (boost::shared_ptr s) const { + return dynamic_cast (axis_view_by_stripable (s)); + } TrackViewList get_tracks_for_range_action () const; sigc::connection super_rapid_screen_update_connection; - framepos_t last_update_frame; void center_screen_internal (framepos_t, float); void super_rapid_screen_update (); + int64_t _last_update_time; + double _err_screen_engine; + void session_going_away (); framepos_t cut_buffer_start; @@ -1261,6 +1282,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void normalize_region (); void reset_region_scale_amplitude (); void adjust_region_gain (bool up); + void reset_region_gain (); void quantize_region (); void quantize_regions (const RegionSelection& rs); void legatize_region (bool shrink_only); @@ -1320,6 +1342,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void calc_extra_zoom_edges(framepos_t &start, framepos_t &end); void temporal_zoom_selection (Editing::ZoomAxis); void temporal_zoom_session (); + void temporal_zoom_extents (); void temporal_zoom (framecnt_t samples_per_pixel); void temporal_zoom_by_frame (framepos_t start, framepos_t end); void temporal_zoom_to_frame (bool coarser, framepos_t frame); @@ -1607,10 +1630,14 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void queue_visual_videotimeline_update (); void embed_audio_from_video (std::string, framepos_t n = 0, bool lock_position_to_video = true); + bool track_selection_change_without_scroll () const { + return _track_selection_change_without_scroll; + } + PBD::Signal0 EditorFreeze; PBD::Signal0 EditorThaw; - private: +private: friend class DragManager; friend class EditorRouteGroups; friend class EditorRegions; @@ -1637,8 +1664,6 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void initialize_canvas (); - void set_script_action_name (int i, const std::string&); - /* display control */ bool _show_measures; @@ -1679,7 +1704,9 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void marker_menu_rename (); void rename_marker (ArdourMarker *marker); void toggle_marker_lock_style (); + void toggle_tempo_clamped (); void toggle_tempo_type (); + void ramp_to_next_tempo (); void toggle_marker_menu_lock (); void toggle_marker_menu_glue (); void marker_menu_hide (); @@ -1730,7 +1757,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void compute_current_bbt_points (std::vector& grid, framepos_t left, framepos_t right); void tempo_map_changed (const PBD::PropertyChange&); - void marker_position_changed (); + void tempometric_position_changed (const PBD::PropertyChange&); void redisplay_tempo (bool immediate_redraw); uint32_t bbt_beat_subdivision; @@ -1742,14 +1769,14 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void editor_mixer_button_toggled (); void editor_list_button_toggled (); - ArdourButton zoom_in_button; - ArdourButton zoom_out_button; - ArdourButton zoom_out_full_button; + ArdourWidgets::ArdourButton zoom_in_button; + ArdourWidgets::ArdourButton zoom_out_button; + ArdourWidgets::ArdourButton zoom_out_full_button; - ArdourButton tav_expand_button; - ArdourButton tav_shrink_button; - ArdourDropdown visible_tracks_selector; - ArdourDropdown zoom_preset_selector; + ArdourWidgets::ArdourButton tav_expand_button; + ArdourWidgets::ArdourButton tav_shrink_button; + ArdourWidgets::ArdourDropdown visible_tracks_selector; + ArdourWidgets::ArdourDropdown zoom_preset_selector; int32_t _visible_track_count; void build_track_count_menu (); @@ -1762,15 +1789,15 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD Gtk::Table toolbar_selection_clock_table; Gtk::Label toolbar_selection_cursor_label; - ArdourButton mouse_select_button; - ArdourButton mouse_draw_button; - ArdourButton mouse_move_button; - ArdourButton mouse_timefx_button; - ArdourButton mouse_content_button; - ArdourButton mouse_audition_button; - ArdourButton mouse_cut_button; + ArdourWidgets::ArdourButton mouse_select_button; + ArdourWidgets::ArdourButton mouse_draw_button; + ArdourWidgets::ArdourButton mouse_move_button; + ArdourWidgets::ArdourButton mouse_timefx_button; + ArdourWidgets::ArdourButton mouse_content_button; + ArdourWidgets::ArdourButton mouse_audition_button; + ArdourWidgets::ArdourButton mouse_cut_button; - ArdourButton smart_mode_button; + ArdourWidgets::ArdourButton smart_mode_button; Glib::RefPtr smart_mode_action; void mouse_mode_toggled (Editing::MouseMode m); @@ -1783,20 +1810,20 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD Gtk::Button automation_mode_button; //edit mode menu stuff - ArdourDropdown edit_mode_selector; - void edit_mode_selection_done ( ARDOUR::EditMode m ); + ArdourWidgets::ArdourDropdown edit_mode_selector; + void edit_mode_selection_done (ARDOUR::EditMode); void build_edit_mode_menu (); - Gtk::VBox edit_mode_box; + Gtk::VBox edit_mode_box; void set_edit_mode (ARDOUR::EditMode); void cycle_edit_mode (); - ArdourDropdown snap_type_selector; + ArdourWidgets::ArdourDropdown snap_type_selector; void build_snap_type_menu (); - ArdourDropdown snap_mode_selector; + ArdourWidgets::ArdourDropdown snap_mode_selector; void build_snap_mode_menu (); - Gtk::HBox snap_box; + Gtk::HBox snap_box; std::vector snap_type_strings; std::vector snap_mode_strings; @@ -1810,8 +1837,8 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD Glib::RefPtr snap_mode_action (Editing::SnapMode); //zoom focus meu stuff - ArdourDropdown zoom_focus_selector; - void zoom_focus_selection_done ( Editing::ZoomFocus f ); + ArdourWidgets::ArdourDropdown zoom_focus_selector; + void zoom_focus_selection_done (Editing::ZoomFocus); void build_zoom_focus_menu (); std::vector zoom_focus_strings; @@ -1819,16 +1846,16 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD Glib::RefPtr zoom_focus_action (Editing::ZoomFocus); - Gtk::HBox _track_box; + Gtk::HBox _track_box; - Gtk::HBox _zoom_box; - void zoom_adjustment_changed(); + Gtk::HBox _zoom_box; + void zoom_adjustment_changed(); void setup_toolbar (); void setup_tooltips (); - Gtk::HBox toolbar_hbox; + Gtk::HBox toolbar_hbox; void setup_midi_toolbar (); @@ -1840,11 +1867,11 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void time_selection_changed (); void update_time_selection_display (); - void track_selection_changed (); + void presentation_info_changed (PBD::PropertyChange const &); void region_selection_changed (); sigc::connection editor_regions_selection_changed_connection; void sensitize_all_region_actions (bool); - void sensitize_the_right_region_actions (); + void sensitize_the_right_region_actions (bool because_canvas_crossing); bool _all_region_actions_sensitized; /** Flag to block region action handlers from doing what they normally do; * I tried Gtk::Action::block_activate() but this doesn't work (ie it doesn't @@ -1855,6 +1882,8 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void point_selection_changed (); void marker_selection_changed (); + bool _track_selection_change_without_scroll; + void cancel_selection (); void cancel_time_selection (); @@ -1864,35 +1893,35 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD /* transport range select process */ - ArdourCanvas::Rectangle* cd_marker_bar_drag_rect; - ArdourCanvas::Rectangle* range_bar_drag_rect; - ArdourCanvas::Rectangle* transport_bar_drag_rect; - ArdourCanvas::Rectangle *transport_bar_range_rect; - ArdourCanvas::Rectangle *transport_bar_preroll_rect; - ArdourCanvas::Rectangle *transport_bar_postroll_rect; - ArdourCanvas::Rectangle *transport_loop_range_rect; - ArdourCanvas::Rectangle *transport_punch_range_rect; - ArdourCanvas::Line *transport_punchin_line; - ArdourCanvas::Line *transport_punchout_line; - ArdourCanvas::Rectangle *transport_preroll_rect; - ArdourCanvas::Rectangle *transport_postroll_rect; + ArdourCanvas::Rectangle* cd_marker_bar_drag_rect; + ArdourCanvas::Rectangle* range_bar_drag_rect; + ArdourCanvas::Rectangle* transport_bar_drag_rect; + ArdourCanvas::Rectangle* transport_bar_range_rect; + ArdourCanvas::Rectangle* transport_bar_preroll_rect; + ArdourCanvas::Rectangle* transport_bar_postroll_rect; + ArdourCanvas::Rectangle* transport_loop_range_rect; + ArdourCanvas::Rectangle* transport_punch_range_rect; + ArdourCanvas::Line* transport_punchin_line; + ArdourCanvas::Line* transport_punchout_line; + ArdourCanvas::Rectangle* transport_preroll_rect; + ArdourCanvas::Rectangle* transport_postroll_rect; - ARDOUR::Location* transport_loop_location(); - ARDOUR::Location* transport_punch_location(); + ARDOUR::Location* transport_loop_location(); + ARDOUR::Location* transport_punch_location(); - ARDOUR::Location *temp_location; + ARDOUR::Location* temp_location; /* object rubberband select process */ void select_all_within (framepos_t, framepos_t, double, double, TrackViewList const &, Selection::Operation, bool); - ArdourCanvas::Rectangle *rubberband_rect; + ArdourCanvas::Rectangle* rubberband_rect; EditorRouteGroups* _route_groups; - EditorRoutes* _routes; - EditorRegions* _regions; - EditorSnapshots* _snapshots; - EditorLocations* _locations; + EditorRoutes* _routes; + EditorRegions* _regions; + EditorSnapshots* _snapshots; + EditorLocations* _locations; /* diskstream/route display management */ Glib::RefPtr rec_enabled_icon; @@ -1902,7 +1931,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD bool sync_track_view_list_and_routes (); - Gtk::VBox list_vpacker; + Gtk::VBox list_vpacker; /* autoscrolling */ @@ -2060,8 +2089,8 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD /* nudge */ - ArdourButton nudge_forward_button; - ArdourButton nudge_backward_button; + ArdourWidgets::ArdourButton nudge_forward_button; + ArdourWidgets::ArdourButton nudge_backward_button; Gtk::HBox nudge_hbox; Gtk::VBox nudge_vbox; AudioClock* nudge_clock; @@ -2123,7 +2152,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD Editing::EditPoint _edit_point; - ArdourDropdown edit_point_selector; + ArdourWidgets::ArdourDropdown edit_point_selector; void build_edit_point_menu(); void set_edit_point_preference (Editing::EditPoint ep, bool force = false); @@ -2142,24 +2171,26 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void get_regions_at (RegionSelection&, framepos_t where, const TrackViewList& ts) const; void get_regions_after (RegionSelection&, framepos_t where, const TrackViewList& ts) const; - RegionSelection get_regions_from_selection_and_edit_point (); + RegionSelection get_regions_from_selection_and_edit_point (Editing::EditIgnoreOption = Editing::EDIT_IGNORE_NONE, + bool use_context_click = false, + bool from_outside_canvas = false); RegionSelection get_regions_from_selection_and_entered () const; void start_updating_meters (); void stop_updating_meters (); bool meters_running; - void select_next_route (); - void select_prev_route (); + void select_next_stripable (bool routes_only = true); + void select_prev_stripable (bool routes_only = true); - void snap_to_internal (framepos_t& first, - ARDOUR::RoundMode direction = ARDOUR::RoundNearest, - bool for_mark = false, - bool ensure_snap = false); + void snap_to_internal (ARDOUR::MusicFrame& first, + ARDOUR::RoundMode direction = ARDOUR::RoundNearest, + bool for_mark = false, + bool ensure_snap = false); - void timecode_snap_to_internal (framepos_t& first, - ARDOUR::RoundMode direction = ARDOUR::RoundNearest, - bool for_mark = false); + void timecode_snap_to_internal (ARDOUR::MusicFrame& first, + ARDOUR::RoundMode direction = ARDOUR::RoundNearest, + bool for_mark = false); RhythmFerret* rhythm_ferret; @@ -2222,8 +2253,6 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD bool _region_selection_change_updates_region_list; void setup_fade_images (); - std::map _fade_in_images; - std::map _fade_out_images; std::map _xfade_in_images; std::map _xfade_out_images; @@ -2261,7 +2290,10 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD QuantizeDialog* quantize_dialog; MainMenuDisabler* _main_menu_disabler; - /* private helper functions to help with registering axis */ + /* private helper functions to help with registering region actions */ + + Glib::RefPtr register_region_action (Glib::RefPtr group, Editing::RegionActionTarget, char const * name, char const * label, sigc::slot slot); + void register_toggle_region_action (Glib::RefPtr group, Editing::RegionActionTarget, char const * name, char const * label, sigc::slot slot); Glib::RefPtr reg_sens (Glib::RefPtr group, char const * name, char const * label, sigc::slot slot); void toggle_reg_sens (Glib::RefPtr group, char const * name, char const * label, sigc::slot slot); @@ -2287,7 +2319,6 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD friend class ControlPointDrag; friend class LineDrag; friend class RubberbandSelectDrag; - friend class RulerZoomDrag; friend class EditorRubberbandSelectDrag; friend class TimeFXDrag; friend class ScrubDrag;