summaryrefslogtreecommitdiffstats
path: root/src/canvas-base.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2011-12-14 02:28:37 +0000
committerDavid Robillard <d@drobilla.net>2011-12-14 02:28:37 +0000
commit6bebc2472db2c426f7285ebceb8563c79ac439f2 (patch)
tree22b6f5876188d83ecdd2c7d4384e6e4c4acf28e7 /src/canvas-base.c
parent4b806a473d03faa24f00fad5e29721622236ed43 (diff)
downloadganv-6bebc2472db2c426f7285ebceb8563c79ac439f2.tar.gz
ganv-6bebc2472db2c426f7285ebceb8563c79ac439f2.tar.bz2
ganv-6bebc2472db2c426f7285ebceb8563c79ac439f2.zip
Make node no longer a subclass of group.
git-svn-id: http://svn.drobilla.net/lad/trunk/ganv@3873 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/canvas-base.c')
-rw-r--r--src/canvas-base.c44
1 files changed, 35 insertions, 9 deletions
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),