#include <sigc++/signal.h>
#include "evoral/types.hpp"
-#include "ardour/route_group.h"
#include "pbd/statefuldestructible.h"
class TearOff;
}
-class Editor;
-class TimeAxisViewItem;
-class TimeAxisView;
-class PluginUIWindow;
-class PluginSelector;
-class PlaylistSelector;
-class XMLNode;
-class Selection;
+class AudioRegionView;
class AutomationLine;
+class AutomationTimeAxisView;
class ControlPoint;
-class SelectionRect;
-class CrossfadeView;
-class RouteTimeAxisView;
-class RegionView;
-class AudioRegionView;
-class TempoMarker;
-class MeterMarker;
+class DragManager;
+class Editor;
+class ImageFrameTimeAxis;
+class ImageFrameView;
class Marker;
-class AutomationTimeAxisView;
class MarkerTimeAxis;
-class ImageFrameView;
-class ImageFrameTimeAxis;
class MarkerView;
-class DragManager;
+class MeterMarker;
class MouseCursors;
+class PlaylistSelector;
+class PluginSelector;
+class PluginUIWindow;
+class RegionView;
+class RouteTimeAxisView;
+class Selection;
+class TempoMarker;
+class TimeAxisView;
+class TimeAxisViewItem;
class VerboseCursor;
+class XMLNode;
+struct SelectionRect;
using ARDOUR::framepos_t;
using ARDOUR::framecnt_t;
virtual void set_internal_edit (bool yn) = 0;
+ /** Driven by a double-click, switch in or out of a mode in which
+ editing is primarily focused on "within" regions, rather than
+ regions as black-box objects. For Ardour3, this is aimed at editing
+ MIDI regions but may expand in the future to other types of
+ regions.
+ */
+
+ virtual bool toggle_internal_editing_from_double_click (GdkEvent*) = 0;
+
/** @return Whether editing is currently in "internal" mode or not
*/
virtual framepos_t unit_to_frame (double unit) const = 0;
virtual double frame_to_unit (framepos_t frame) const = 0;
virtual double frame_to_unit (double frame) const = 0;
+ virtual double frame_to_unit_unrounded (framepos_t frame) const = 0;
virtual framepos_t pixel_to_frame (double pixel) const = 0;
virtual gulong frame_to_pixel (framepos_t frame) const = 0;
virtual Selection& get_selection () const = 0;
virtual void remove_last_capture () = 0;
virtual void maximise_editing_space () = 0;
virtual void restore_editing_space () = 0;
+ virtual void update_tearoff_visibility () = 0;
virtual framepos_t get_preferred_edit_position (bool ignore_playhead = false, bool from_context_menu = false) = 0;
virtual void toggle_meter_updating() = 0;
virtual void split_region_at_points (boost::shared_ptr<ARDOUR::Region>, ARDOUR::AnalysisFeatureList&, bool can_ferret, bool select_new = false) = 0;
static sigc::signal<void> DropDownKeys;
Glib::RefPtr<Gtk::ActionGroup> editor_actions;
+ Glib::RefPtr<Gtk::ActionGroup> editor_menu_actions;
Glib::RefPtr<Gtk::ActionGroup> _region_actions;
virtual void reset_focus () = 0;
virtual bool canvas_selection_rect_event (GdkEvent* event, ArdourCanvas::Item*, SelectionRect*) = 0;
virtual bool canvas_selection_start_trim_event (GdkEvent* event, ArdourCanvas::Item*, SelectionRect*) = 0;
virtual bool canvas_selection_end_trim_event (GdkEvent* event, ArdourCanvas::Item*, SelectionRect*) = 0;
- virtual bool canvas_crossfade_view_event (GdkEvent* event, ArdourCanvas::Item*, CrossfadeView*) = 0;
+ virtual bool canvas_start_xfade_event (GdkEvent* event, ArdourCanvas::Item*, AudioRegionView*) = 0;
+ virtual bool canvas_end_xfade_event (GdkEvent* event, ArdourCanvas::Item*, AudioRegionView*) = 0;
virtual bool canvas_fade_in_event (GdkEvent* event, ArdourCanvas::Item*, AudioRegionView*) = 0;
virtual bool canvas_fade_in_handle_event (GdkEvent* event, ArdourCanvas::Item*, AudioRegionView*) = 0;
virtual bool canvas_fade_out_event (GdkEvent* event, ArdourCanvas::Item*, AudioRegionView*) = 0;
virtual Gtkmm2ext::TearOff* tools_tearoff () const = 0;
virtual DragManager* drags () const = 0;
- virtual void maybe_autoscroll (bool, bool) = 0;
+ virtual void maybe_autoscroll (bool, bool, bool, bool) = 0;
virtual void stop_canvas_autoscroll () = 0;
virtual MouseCursors const * cursors () const = 0;
virtual void snap_to_with_modifier (framepos_t &, GdkEvent const *, int32_t direction = 0, bool for_mark = false) = 0;
+ virtual void get_regions_at (RegionSelection &, framepos_t where, TrackViewList const &) const = 0;
+
/// Singleton instance, set up by Editor::Editor()
static PublicEditor* _instance;