Added gobject properties

This commit is contained in:
Jesse van den Kieboom 2006-03-23 20:31:26 +00:00
parent 1ca00999e7
commit 53c9403298
1 changed files with 55 additions and 2 deletions

View File

@ -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),