[dia] [substitute] Convert to Path for 'Standard - Beziergon'



commit 49dc6555330b8c99be2894c2048262446e39d160
Author: Hans Breuer <hans breuer org>
Date:   Tue Oct 2 23:09:05 2012 +0200

    [substitute] Convert to Path for 'Standard - Beziergon'

 objects/standard/beziergon.c |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)
---
diff --git a/objects/standard/beziergon.c b/objects/standard/beziergon.c
index 5533866..de39b1e 100644
--- a/objects/standard/beziergon.c
+++ b/objects/standard/beziergon.c
@@ -490,6 +490,27 @@ beziergon_set_corner_type_callback (DiaObject *obj, Point *clicked, gpointer dat
   return change;
 }
 
+/*!
+ * \brief Convert _Beziergon to _Path
+ * \memberof _Beziergon
+ */
+static ObjectChange *
+_beziergon_convert_to_path_callback (DiaObject *obj, Point *clicked, gpointer data)
+{
+  Beziergon *beziergon = (Beziergon *) obj;
+  BezierShape *bez = &beziergon->bezier;
+  DiaObject *path = NULL;
+
+  if (bez->bezier.num_points > 1)
+    path = create_standard_path (bez->bezier.num_points, bez->bezier.points);
+
+  if (path)
+    return object_substitute (obj, path);
+
+  /* just an empty change */
+  return change_list_create ();
+}
+
 static DiaMenuItem beziergon_menu_items[] = {
   { N_("Add Segment"), beziergon_add_segment_callback, NULL, 1 },
   { N_("Delete Segment"), beziergon_delete_segment_callback, NULL, 1 },
@@ -500,6 +521,7 @@ static DiaMenuItem beziergon_menu_items[] = {
     GINT_TO_POINTER(BEZ_CORNER_SMOOTH), 1 },
   { N_("Cusp control"), beziergon_set_corner_type_callback,
     GINT_TO_POINTER(BEZ_CORNER_CUSP), 1 },
+  { N_("Convert to Path"), _beziergon_convert_to_path_callback, NULL, DIAMENU_ACTIVE }
 };
 
 static DiaMenu beziergon_menu = {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]