save/restore tabbable state
[ardour.git] / gtk2_ardour / editor_drag.h
index b9310c79fb063cb50b5847aec7c99c0c70d9884d..cd1b0c2474446934222a3f5cf9b3b41623fb6276 100644 (file)
@@ -202,7 +202,7 @@ public:
        bool initially_vertical() const {
                return _initially_vertical;
        }
-       
+
        /** Set up the _pointer_frame_offset */
        virtual void setup_pointer_frame_offset () {
                _pointer_frame_offset = 0;
@@ -246,7 +246,7 @@ protected:
        /* sets snap delta from unsnapped pos */
        void setup_snap_delta (framepos_t pos);
 
-       boost::shared_ptr<ARDOUR::Region> add_midi_region (MidiTimeAxisView*);
+       boost::shared_ptr<ARDOUR::Region> add_midi_region (MidiTimeAxisView*, bool commit);
 
        void show_verbose_cursor_time (framepos_t);
        void show_verbose_cursor_duration (framepos_t, framepos_t, double xoffset = 0);
@@ -362,6 +362,7 @@ protected:
        virtual bool y_movement_allowed (int, double, int skip_invisible = 0) const;
 
        bool _brushing;
+       bool _ignore_video_lock;
        ARDOUR::framepos_t _last_frame_position; ///< last position of the thing being dragged
        double _total_x_delta;
        int _last_pointer_time_axis_view;
@@ -532,6 +533,7 @@ private:
        MidiRegionView*     region;
        bool                relative;
        bool                at_front;
+       bool                _was_selected;
        double              _snap_delta;
 };
 
@@ -555,7 +557,7 @@ class NoteDrag : public Drag
        NoteBase* _primary;
        double _cumulative_dx;
        double _cumulative_dy;
-       bool _was_selected;
+       bool   _was_selected;
        double _note_height;
 };
 
@@ -581,7 +583,7 @@ public:
 private:
        double y_to_region (double) const;
        ARDOUR::framecnt_t grid_frames (framepos_t) const;
-       
+
        MidiRegionView* _region_view;
        ArdourCanvas::Rectangle* _drag_rect;
        framepos_t _note[2];
@@ -645,6 +647,7 @@ protected:
 private:
        ARDOUR::frameoffset_t _startdrag_video_offset;
        ARDOUR::frameoffset_t _max_backwards_drag;
+       bool _stuck;
 };
 
 /** Drag to trim region(s) */
@@ -673,7 +676,7 @@ public:
 private:
 
        Operation _operation;
-       
+
        bool _preserve_fade_anchor;
        bool _jump_position_when_done;
 };
@@ -822,7 +825,7 @@ private:
        void update_item (ARDOUR::Location *);
 
        ArdourMarker* _marker; ///< marker being dragged
-
+       bool _selection_changed;
         struct CopiedLocationMarkerInfo {
            ARDOUR::Location* location;
            std::vector<ArdourMarker*> markers;
@@ -930,7 +933,7 @@ public:
         *  @param drag_in_progress true if the drag is currently happening.
         */
        virtual void select_things (int button_state, framepos_t x1, framepos_t x2, double y1, double y2, bool drag_in_progress) = 0;
-       
+
        virtual void deselect_things () = 0;
 
   protected:
@@ -1040,7 +1043,7 @@ public:
 
        RangeMarkerBarDrag (Editor *, ArdourCanvas::Item *, Operation);
        ~RangeMarkerBarDrag ();
-       
+
        void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
        void motion (GdkEvent *, bool);
        void finished (GdkEvent *, bool);
@@ -1132,7 +1135,7 @@ class CrossfadeEdgeDrag : public Drag
        void motion (GdkEvent*, bool);
        void finished (GdkEvent*, bool);
        void aborted (bool);
-       
+
        bool y_movement_matters () const {
                return false;
        }