Commit 342f0d7
new image for selected control point handle
Changed files (4)
addedicons/selected_edit_point_handle.pngmodifiedlibbirdfont/EditPointHandle.valamodifiedlibbirdfont/Path.valamodifiedlibbirdfont/PenTool.vala
Diff
new file mode 100644Binary files /dev/null and b/icons/selected_edit_point_handle.png differ@@ -24,6 +24,7 @@ public class EditPointHandle { EditPoint? visual_handle = null; static EditPoint none = new EditPoint (); public bool active;+ public bool selected; public double angle; @@ -33,6 +34,7 @@ public class EditPointHandle { this.length = 10; this.type = PointType.NONE; this.active = false;+ this.selected = false; } public EditPointHandle (EditPoint parent, double angle, double length) {@@ -41,6 +43,7 @@ public class EditPointHandle { this.length = length; this.type = PointType.LINE_CUBIC; this.active = false;+ this.selected = false; } public EditPointHandle copy () {@@ -50,6 +53,7 @@ public class EditPointHandle { n.parent = parent; n.type = type; n.active = active;+ n.selected = selected; return n; } @@ -49,6 +49,7 @@ public class Path { private static ImageSurface? edit_point_handle_image = null; private static ImageSurface? active_edit_point_handle_image = null;+ private static ImageSurface? selected_edit_point_handle_image = null; private static ImageSurface? selected_edit_point_image = null; private static ImageSurface? active_selected_edit_point_image = null;@@ -83,6 +84,7 @@ public class Path { active_edit_point_image = Icons.get_icon ("active_edit_point.png"); edit_point_handle_image = Icons.get_icon ("edit_point_handle.png"); active_edit_point_handle_image = Icons.get_icon ("active_edit_point_handle.png");+ selected_edit_point_handle_image = Icons.get_icon ("selected_edit_point_handle.png"); selected_edit_point_image = Icons.get_icon ("selected_edit_point.png"); active_selected_edit_point_image = Icons.get_icon ("active_selected_edit_point.png"); cubic_edit_point_image = Icons.get_icon ("edit_point_cubic.png");@@ -328,9 +330,22 @@ public class Path { cr.stroke (); - img_right = (e.get_right_handle ().active) ? (!) active_edit_point_handle_image : (!) edit_point_handle_image;- img_left = (e.get_left_handle ().active) ? (!) active_edit_point_handle_image : (!) edit_point_handle_image;+ if (e.get_right_handle ().selected) {+ img_right = (!) selected_edit_point_handle_image;+ } else if (e.get_right_handle ().active) {+ img_right = (!) active_edit_point_handle_image;+ } else {+ img_right = (!) edit_point_handle_image;+ } + if (e.get_left_handle ().selected) {+ img_left = (!) selected_edit_point_handle_image;+ } else if (e.get_left_handle ().active) {+ img_left = (!) active_edit_point_handle_image;+ } else {+ img_left = (!) edit_point_handle_image;+ }+ if (!(is_open () && e == points.last ().data)) { draw_line (handle_right, e, cr, 0.15); draw_image (cr, img_right, e.get_right_handle ().x (), e.get_right_handle ().y ());@@ -189,6 +189,8 @@ public class PenTool : Tool { selected_points.remove_link (selected_points.first ()); } + selected_handle.selected = false;+ active_handle = new EditPointHandle.empty (); selected_handle = new EditPointHandle.empty (); @@ -1084,7 +1086,9 @@ public class PenTool : Tool { move_selected_handle = true; last_selected_is_handle = true;+ selected_handle.selected = false; selected_handle = get_closest_handle (event_x, event_y);+ selected_handle.selected = true; } public static void add_selected_point (EditPoint p) {@@ -1260,6 +1264,8 @@ public class PenTool : Tool { } else { set_type_for_moving_handle ();+ active_handle.active = false;+ active_handle = new EditPointHandle.empty (); if (keyval == Key.UP) { selected_handle.move_delta (0, -1);