- bool update_pending : 1;
- bool no_draw : 1;
- bool points_visible : 1;
-
- GtkCanvasItem* _parent_group;
- GtkCanvasItem* group;
- GtkCanvasItem* line; /* line */
- GtkCanvasPoints* point_coords; /* coordinates for canvas line */
- vector<ControlPoint*> control_points; /* visible control points */
-
- gint (*point_callback)(GtkCanvasItem*, GdkEvent*, gpointer);
-
- void determine_visible_control_points (GtkCanvasPoints*);
- void sync_model_from (ControlPoint&);
- void sync_model_with_view_point (ControlPoint&);
- void sync_model_with_view_line (uint32_t, uint32_t);
- void modify_view (ControlPoint&, double, double, bool with_push);
-
+ bool update_pending : 1;
+ bool no_draw : 1;
+ bool _is_boolean : 1;
+ bool points_visible : 1;
+ bool did_push;
+
+ ArdourCanvas::Group& _parent_group;
+ ArdourCanvas::Group* group;
+ ArdourCanvas::Line* line; /* line */
+ ArdourCanvas::Points line_points; /* coordinates for canvas line */
+ std::vector<ControlPoint*> control_points; /* visible control points */
+
+ struct ALPoint {
+ double x;
+ double y;
+ ALPoint (double xx, double yy) : x(xx), y(yy) {}
+ };
+
+ typedef std::vector<ALPoint> ALPoints;
+
+ static void invalidate_point (ALPoints&, uint32_t index);
+ static bool invalid_point (ALPoints&, uint32_t index);
+
+ void determine_visible_control_points (ALPoints &, int);
+ void sync_model_with_view_point (ControlPoint&, bool, int64_t);
+ void sync_model_with_view_points (std::list<ControlPoint*>, bool, int64_t);
+ void start_drag_common (double, float);
+