Added gobject properties

This commit is contained in:
Jesse van den Kieboom 2006-03-24 11:56:15 +00:00
parent f54d667e65
commit 1379b3d2a9
1 changed files with 57 additions and 1 deletions

View File

@ -62,6 +62,17 @@ struct _GmAppPrivate {
//tray_info tray;
};
/* Properties */
enum {
PROP_0,
PROP_WORLDS_PATH,
PROP_PATH,
PROP_OPTIONS,
PROP_WORLDS,
PROP_COLOR_TABLE
};
/* Signals */
enum {
@ -74,6 +85,30 @@ static guint app_signals[NUM_SIGNALS] = {0};
G_DEFINE_TYPE(GmApp, gm_app, G_TYPE_OBJECT)
static void
gm_app_get_property(GObject *object, guint prop_id, GValue *value,
GParamSpec *pspec) {
GmApp *app = GM_APP(object);
switch (prop_id) {
case PROP_WORLDS_PATH:
g_value_set_string(value, gm_app_worlds_path(app));
break;
case PROP_PATH:
g_value_set_string(value, gm_app_path(app));
break;
case PROP_OPTIONS:
g_value_set_object(value, gm_app_options(app));
break;
case PROP_COLOR_TABLE:
g_value_set_object(value, gm_app_color_table(app));
break;
case PROP_WORLDS:
g_value_set_pointer(value, gm_app_worlds(app));
break;
}
}
static void
gm_app_finalize(GObject *object) {
GmApp *app = GM_APP(object);
@ -105,7 +140,28 @@ gm_app_class_init(GmAppClass *klass) {
GObjectClass *object_class = G_OBJECT_CLASS(klass);
object_class->finalize = gm_app_finalize;
object_class->get_property = gm_app_get_property;
g_object_class_install_property(object_class, PROP_PATH,
g_param_spec_string("path", "PATH", "The app path", NULL,
G_PARAM_READABLE));
g_object_class_install_property(object_class, PROP_WORLDS_PATH,
g_param_spec_string("worlds_path", "WORLDS_PATH", "The worlds path", NULL,
G_PARAM_READABLE));
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_COLOR_TABLE,
g_param_spec_object("color_table", "COLOR_TABLE", "ColorTable object",
GM_TYPE_COLOR_TABLE, G_PARAM_READABLE));
g_object_class_install_property(object_class, PROP_WORLDS,
g_param_spec_pointer("worlds", "WORLDS", "Worlds list",
G_PARAM_READABLE));
app_signals[WORLD_ADDED] =
g_signal_new("world_added",
G_OBJECT_CLASS_TYPE(object_class),