/** "Drag" to cut a region (action only on button release) */
class RegionCutDrag : public Drag
{
- public:
+public:
RegionCutDrag (Editor*, ArdourCanvas::Item*, framepos_t);
~RegionCutDrag ();
void finished (GdkEvent*, bool);
void aborted (bool);
- private:
+private:
EditorCursor* line;
};
/** Drags to move MIDI notes */
class NoteDrag : public Drag
{
- public:
+public:
NoteDrag (Editor*, ArdourCanvas::Item*);
void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
void aborted (bool);
void setup_pointer_frame_offset ();
- private:
+private:
double total_dx (GdkEvent * event) const; // total movement in quarter notes
int8_t total_dy () const;
double _grab_qn;
ARDOUR::TempoSection* _tempo;
XMLNode* _before_state;
+ bool _drag_valid;
};
/** tempo curve twist drag */
double _grab_qn;
ARDOUR::TempoSection* _tempo;
XMLNode* _before_state;
+ bool _drag_valid;
};
/** Drag of the playhead cursor */
EditorCursor& _cursor;
bool _stop; ///< true to stop the transport on starting the drag, otherwise false
double _grab_zoom; ///< editor frames per unit when our grab started
+
+ //used for zooming
+ int _last_mx;
+ int _last_my;
+ int _last_dx;
+ int _last_y_delta;
};
/** Region fade-in drag */
*/
class CrossfadeEdgeDrag : public Drag
{
- public:
+public:
CrossfadeEdgeDrag (Editor*, AudioRegionView*, ArdourCanvas::Item*, bool start);
void start_grab (GdkEvent*, Gdk::Cursor* c = 0);
return std::make_pair (4, 4);
}
- private:
+private:
AudioRegionView* arv;
bool start;
};
-class RulerZoomDrag : public Drag
-{
-public:
- RulerZoomDrag (Editor*, ArdourCanvas::Item*);
-
- void start_grab (GdkEvent*, Gdk::Cursor* c = 0);
- void motion (GdkEvent *, bool);
- void finished (GdkEvent*, bool);
- void aborted (bool);
-
- virtual bool allow_vertical_autoscroll () const {
- return false;
- }
-
-};
-
#endif /* __gtk2_ardour_editor_drag_h_ */