void metric_get_samples (std::vector<ArdourCanvas::Ruler::Mark>&, gdouble, gdouble, gint);
void metric_get_minsec (std::vector<ArdourCanvas::Ruler::Mark>&, gdouble, gdouble, gint);
+ /* editing operations that need to be public */
+ void mouse_add_new_marker (framepos_t where, bool is_cd=false, bool is_xrun=false);
+ void split_region ();
+ void split_region_at_points (boost::shared_ptr<ARDOUR::Region>, ARDOUR::AnalysisFeatureList&, bool can_ferret, bool select_new = false);
+
protected:
void map_transport_state ();
void map_position_change (framepos_t);
void hide_marker (ArdourCanvas::Item*, GdkEvent*);
void clear_marker_display ();
- void mouse_add_new_marker (framepos_t where, bool is_cd=false, bool is_xrun=false);
void mouse_add_new_range (framepos_t);
bool choose_new_marker_name(std::string &name);
void update_cd_marker_display ();
void lower_region_to_bottom ();
void split_regions_at (framepos_t, RegionSelection&);
void split_region_at_transients ();
- void split_region_at_points (boost::shared_ptr<ARDOUR::Region>, ARDOUR::AnalysisFeatureList&, bool can_ferret, bool select_new = false);
void crop_region_to_selection ();
void crop_region_to (framepos_t start, framepos_t end);
void set_sync_point (framepos_t, const RegionSelection&);
void reset_focus ();
- void split_region ();
-
void delete_ ();
void cut ();
void copy ();
}
}
+RegionCutDrag::RegionCutDrag (Editor* e, ArdourCanvas::Item* item)
+ : Drag (e, item, true)
+{
+
+}
+
+void
+RegionCutDrag::motion (GdkEvent*, bool)
+{
+}
+
+void
+RegionCutDrag::finished (GdkEvent*, bool)
+{
+ _editor->split_region ();
+}
+
+void
+RegionCutDrag::aborted (bool)
+{
+}
};
+/** "Drag" to cut a region (action only on button release) */
+class RegionCutDrag : public Drag
+{
+ public:
+ RegionCutDrag (Editor*, ArdourCanvas::Item*);
+ void motion (GdkEvent*, bool);
+ void finished (GdkEvent*, bool);
+ void aborted (bool);
+};
+
/** Drags to create regions */
class RegionCreateDrag : public Drag
{
using namespace Editing;
void
-Editor::keyboard_selection_finish (bool add)
+Editor::keyboard_selection_finish (bool /*add*/)
{
if (_session) {
break;
case MouseCut:
- act = ActionManager::get_action (X_("MouseCut"), X_("set-mouse-mode-cut"));
+ act = ActionManager::get_action (X_("MouseMode"), X_("set-mouse-mode-cut"));
break;
case MouseObject:
}
break;
+ case MouseCut:
+ switch (item_type) {
+ case RegionItem:
+ case FadeInHandleItem:
+ case FadeOutHandleItem:
+ case LeftFrameHandle:
+ case RightFrameHandle:
+ case FeatureLineItem:
+ case RegionViewNameHighlight:
+ case RegionViewName:
+ _drags->set (new RegionCutDrag (this, item), event, current_canvas_cursor);
+ break;
+ default:
+ break;
+ }
+ break;
+
case MouseObject:
switch (item_type) {
case NoteItem:
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 () = 0;
virtual void split_region_at_points (boost::shared_ptr<ARDOUR::Region>, ARDOUR::AnalysisFeatureList&, bool can_ferret, bool select_new = false) = 0;
virtual void mouse_add_new_marker (framepos_t where, bool is_cd=false, bool is_xrun=false) = 0;
virtual void foreach_time_axis_view (sigc::slot<void,TimeAxisView&>) = 0;