From 6bebc2472db2c426f7285ebceb8563c79ac439f2 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Wed, 14 Dec 2011 02:28:37 +0000 Subject: Make node no longer a subclass of group. git-svn-id: http://svn.drobilla.net/lad/trunk/ganv@3873 a436a847-0d15-0410-975c-d299462d15a1 --- src/canvas-base.c | 44 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 9 deletions(-) (limited to 'src/canvas-base.c') diff --git a/src/canvas-base.c b/src/canvas-base.c index 04cdf55..ee284dd 100644 --- a/src/canvas-base.c +++ b/src/canvas-base.c @@ -45,7 +45,9 @@ static void add_idle(GanvCanvasBase* canvas); enum { ITEM_PROP_0, - ITEM_PROP_PARENT + ITEM_PROP_PARENT, + ITEM_PROP_X, + ITEM_PROP_Y }; enum { @@ -120,7 +122,7 @@ item_post_create_setup(GanvItem* item) item->x2 + 1, item->y2 + 1); item->canvas->need_repick = TRUE; } else { - g_error("item added to non-parent item\n"); + g_warning("item added to non-parent item\n"); } } @@ -129,11 +131,9 @@ static void ganv_item_set_property(GObject* gobject, guint param_id, const GValue* value, GParamSpec* pspec) { - GanvItem* item; - g_return_if_fail(GANV_IS_ITEM(gobject)); - item = GANV_ITEM(gobject); + GanvItem* item = GANV_ITEM(gobject); switch (param_id) { case ITEM_PROP_PARENT: @@ -146,6 +146,14 @@ ganv_item_set_property(GObject* gobject, guint param_id, item_post_create_setup(item); } break; + case ITEM_PROP_X: + item->x = g_value_get_double(value); + ganv_item_request_update(item); + break; + case ITEM_PROP_Y: + item->y = g_value_get_double(value); + ganv_item_request_update(item); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(gobject, param_id, pspec); break; @@ -157,17 +165,20 @@ static void ganv_item_get_property(GObject* gobject, guint param_id, GValue* value, GParamSpec* pspec) { - GanvItem* item; - g_return_if_fail(GANV_IS_ITEM(gobject)); - item = GANV_ITEM(gobject); + GanvItem* item = GANV_ITEM(gobject); switch (param_id) { case ITEM_PROP_PARENT: g_value_set_object(value, item->parent); break; - + case ITEM_PROP_X: + g_value_set_double(value, item->x); + break; + case ITEM_PROP_Y: + g_value_set_double(value, item->y); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(gobject, param_id, pspec); break; @@ -2652,6 +2663,21 @@ ganv_item_class_init(GanvItemClass* class) GANV_TYPE_ITEM, (G_PARAM_READABLE | G_PARAM_WRITABLE))); + g_object_class_install_property + (gobject_class, ITEM_PROP_X, + g_param_spec_double("x", + _("X"), + _("X"), + -G_MAXDOUBLE, G_MAXDOUBLE, 0.0, + (G_PARAM_READABLE | G_PARAM_WRITABLE))); + g_object_class_install_property + (gobject_class, ITEM_PROP_Y, + g_param_spec_double("y", + _("Y"), + _("Y"), + -G_MAXDOUBLE, G_MAXDOUBLE, 0.0, + (G_PARAM_READABLE | G_PARAM_WRITABLE))); + item_signals[ITEM_EVENT] = g_signal_new("event", G_TYPE_FROM_CLASS(class), -- cgit v1.2.1