-
- bool check_possible (RouteTimeAxisView **, ARDOUR::layer_t *);
-
- TimeAxisView* _source_trackview;
- ARDOUR::layer_t _source_layer;
+ struct TimeAxisViewSummary {
+ TimeAxisViewSummary () : height_list(512) {}
+
+ std::bitset<512> tracks;
+ std::vector<int32_t> height_list;
+ int visible_y_low;
+ int visible_y_high;
+ };
+
+ void copy_regions (GdkEvent *);
+ bool y_movement_disallowed (int, int, int, TimeAxisViewSummary const &) const;
+ std::map<RegionView*, std::pair<RouteTimeAxisView*, int> > find_time_axis_views_and_layers ();
+ double compute_x_delta (GdkEvent const *, nframes64_t *);
+ bool compute_y_delta (
+ TimeAxisView const *, TimeAxisView*, int32_t, int32_t, TimeAxisViewSummary const &,
+ int32_t *, int32_t *, int32_t *
+ );
+
+ TimeAxisViewSummary get_time_axis_view_summary ();
+ virtual bool x_move_allowed () const = 0;
+