From 53c9403298e6bcfc13743afeb98caa8196fb7b90 Mon Sep 17 00:00:00 2001 From: Jesse van den Kieboom Date: Thu, 23 Mar 2006 20:31:26 +0000 Subject: [PATCH] Added gobject properties --- gnoemoe/gm-world.c | 57 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 55 insertions(+), 2 deletions(-) diff --git a/gnoemoe/gm-world.c b/gnoemoe/gm-world.c index 50d3097..5bd0953 100644 --- a/gnoemoe/gm-world.c +++ b/gnoemoe/gm-world.c @@ -61,8 +61,13 @@ enum { PROP_0, PROP_NAME, + PROP_PATH, PROP_ACTIVE, - PROP_ACTIVITY + PROP_ACTIVITY, + PROP_OPTIONS, + PROP_STATE, + PROP_CURRENT_HOST, + PROP_CURRENT_PORT }; /* Signals */ @@ -128,32 +133,80 @@ gm_world_get_property(GObject *object, guint prop_id, GValue *value, case PROP_NAME: g_value_set_string(value, gm_world_name(world)); break; + case PROP_PATH: + g_value_set_string(value, world->priv->path); + break; case PROP_ACTIVE: g_value_set_boolean(value, world->priv->active); break; case PROP_ACTIVITY: g_value_set_int(value, world->priv->activity); break; + case PROP_OPTIONS: + g_value_set_object(value, world->priv->options); + break; + case PROP_STATE: + g_value_set_int(value, gm_world_state(world)); + break; + case PROP_CURRENT_HOST: + g_value_set_string(value, gm_world_current_host(world)); + break; + case PROP_CURRENT_PORT: + g_value_set_string(value, gm_world_current_port(world)); + break; } } +static void +gm_world_set_property(GObject *object, guint prop_id, GValue const *value, + GParamSpec *pspec) { + GmWorld *world = GM_WORLD(object); + + switch (prop_id) { + case PROP_ACTIVE: + gm_world_set_active(world, g_value_get_boolean(value)); + break; + case PROP_ACTIVITY: + gm_world_set_activity(world, g_value_get_int(value)); + break; + } +} static void gm_world_class_init(GmWorldClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); object_class->finalize = gm_world_finalize; object_class->get_property = gm_world_get_property; + object_class->set_property = gm_world_set_property; g_object_class_install_property(object_class, PROP_NAME, g_param_spec_string("name", "NAME", "The worlds name", NULL, G_PARAM_READABLE)); + g_object_class_install_property(object_class, PROP_PATH, + g_param_spec_string("path", "PATH", "The worlds path", NULL, + G_PARAM_READABLE)); g_object_class_install_property(object_class, PROP_ACTIVE, g_param_spec_boolean("active", "ACTIVE", "If world is active", - FALSE, G_PARAM_READABLE)); + FALSE, G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property(object_class, PROP_ACTIVITY, g_param_spec_boolean("activity", "ACTIVITY", "Lines of activity", + 0, G_PARAM_READABLE | G_PARAM_WRITABLE)); + g_object_class_install_property(object_class, PROP_OPTIONS, + g_param_spec_object("options", "OPTIONS", "Options object", + GM_TYPE_OPTIONS, G_PARAM_READABLE)); + + g_object_class_install_property(object_class, PROP_STATE, + g_param_spec_int("state", "STATE", "World state", + 0, GM_NET_STATE_END, 0, G_PARAM_READABLE)); + + g_object_class_install_property(object_class, PROP_CURRENT_HOST, + g_param_spec_string("current_host", "CURRENT_HOST", "Current host", 0, G_PARAM_READABLE)); + g_object_class_install_property(object_class, PROP_CURRENT_PORT, + g_param_spec_string("current_port", "CURRENT_PORT", "Current port", + 0, G_PARAM_READABLE)); + world_signals[ACTIVATE_REQUEST] = g_signal_new("activate_request", G_OBJECT_CLASS_TYPE(object_class),