[dia/zbrown/object-change: 13/16] custom: port to DiaObjectChange




commit dadb237a631cdfcce191e834e0e1ea8a35e843ea
Author: Zander Brown <zbrown gnome org>
Date:   Sat Oct 10 22:25:50 2020 +0100

    custom: port to DiaObjectChange

 objects/custom/custom_object.c | 52 ++++++++++++++++++++++++++----------------
 objects/custom/custom_object.h | 15 +++++++++---
 2 files changed, 44 insertions(+), 23 deletions(-)
---
diff --git a/objects/custom/custom_object.c b/objects/custom/custom_object.c
index 33b844681..327bac550 100644
--- a/objects/custom/custom_object.c
+++ b/objects/custom/custom_object.c
@@ -46,7 +46,6 @@
 #include "dia_image.h"
 #include "custom_object.h"
 #include "prefs.h"
-#include "dia-object-change-legacy.h"
 
 #include "pixmaps/custom.xpm"
 
@@ -1839,17 +1838,30 @@ custom_load_using_properties(ObjectNode obj_node, int version,DiaContext *ctx)
 }
 
 
-struct CustomObjectChange {
-  ObjectChange objchange;
+struct _DiaCustomObjectChange {
+  DiaObjectChange objchange;
 
   enum { CHANGE_FLIPH, CHANGE_FLIPV} type;
   gboolean old_val;
 };
 
 
+DIA_DEFINE_OBJECT_CHANGE (DiaCustomObjectChange, dia_custom_object_change)
+
+
+static void
+dia_custom_object_change_free (DiaObjectChange *self)
+{
+
+}
+
+
 static void
-custom_change_apply (struct CustomObjectChange *change, Custom *custom)
+dia_custom_object_change_apply (DiaObjectChange *self, DiaObject *obj)
 {
+  DiaCustomObjectChange *change = DIA_CUSTOM_OBJECT_CHANGE (self);
+  Custom *custom = (Custom *) obj;
+
   switch (change->type) {
     case CHANGE_FLIPH:
       custom->flip_h = !change->old_val;
@@ -1864,9 +1876,11 @@ custom_change_apply (struct CustomObjectChange *change, Custom *custom)
 
 
 static void
-custom_change_revert (struct CustomObjectChange *change,
-                      Custom                    *custom)
+dia_custom_object_change_revert (DiaObjectChange *self, DiaObject *obj)
 {
+  DiaCustomObjectChange *change = DIA_CUSTOM_OBJECT_CHANGE (self);
+  Custom *custom = (Custom *) obj;
+
   switch (change->type) {
     case CHANGE_FLIPH:
       custom->flip_h = change->old_val;
@@ -1883,38 +1897,36 @@ custom_change_revert (struct CustomObjectChange *change,
 static DiaObjectChange *
 custom_flip_h_callback (DiaObject *obj, Point *clicked, gpointer data)
 {
-  Custom *custom = (Custom *)obj;
-  struct CustomObjectChange *change = g_new0 (struct CustomObjectChange, 1);
+  Custom *custom = (Custom *) obj;
+  DiaCustomObjectChange *change;
+
+  change = dia_object_change_new (DIA_TYPE_CUSTOM_OBJECT_CHANGE);
 
-  change->objchange.apply = (ObjectChangeApplyFunc)custom_change_apply;
-  change->objchange.revert = (ObjectChangeRevertFunc)custom_change_revert;
-  change->objchange.free = NULL;
   change->type = CHANGE_FLIPH;
   change->old_val = custom->flip_h;
 
   custom->flip_h = !custom->flip_h;
-  custom_update_data(custom, ANCHOR_MIDDLE, ANCHOR_MIDDLE);
+  custom_update_data (custom, ANCHOR_MIDDLE, ANCHOR_MIDDLE);
 
-  return dia_object_change_legacy_new (&change->objchange);
+  return DIA_OBJECT_CHANGE (change);
 }
 
 
 static DiaObjectChange *
 custom_flip_v_callback (DiaObject *obj, Point *clicked, gpointer data)
 {
-  Custom *custom = (Custom *)obj;
-  struct CustomObjectChange *change = g_new0 (struct CustomObjectChange, 1);
+  Custom *custom = (Custom *) obj;
+  DiaCustomObjectChange *change;
+
+  change = dia_object_change_new (DIA_TYPE_CUSTOM_OBJECT_CHANGE);
 
-  change->objchange.apply = (ObjectChangeApplyFunc)custom_change_apply;
-  change->objchange.revert = (ObjectChangeRevertFunc)custom_change_revert;
-  change->objchange.free = NULL;
   change->type = CHANGE_FLIPV;
   change->old_val = custom->flip_v;
 
   custom->flip_v = !custom->flip_v;
-  custom_update_data(custom, ANCHOR_MIDDLE, ANCHOR_MIDDLE);
+  custom_update_data (custom, ANCHOR_MIDDLE, ANCHOR_MIDDLE);
 
-  return dia_object_change_legacy_new (&change->objchange);
+  return DIA_OBJECT_CHANGE (change);
 }
 
 
diff --git a/objects/custom/custom_object.h b/objects/custom/custom_object.h
index 24c81bed2..1b8f40c6a 100644
--- a/objects/custom/custom_object.h
+++ b/objects/custom/custom_object.h
@@ -19,8 +19,17 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-#ifndef CUSTOM_OBJECT_H
-#define CUSTOM_OBJECT_H
+#pragma once
+
+G_BEGIN_DECLS
+
+#define DIA_TYPE_CUSTOM_OBJECT_CHANGE dia_custom_object_change_get_type ()
+G_DECLARE_FINAL_TYPE (DiaCustomObjectChange,
+                      dia_custom_object_change,
+                      DIA, CUSTOM_OBJECT_CHANGE,
+                      DiaObjectChange)
+
 void custom_setup_properties (ShapeInfo *info, xmlNodePtr node);
 void custom_object_new(ShapeInfo *info, DiaObjectType **otype);
-#endif /* CUSTOM_OBJECT_H */
+
+G_END_DECLS


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