Added gobject properties
This commit is contained in:
parent
f54d667e65
commit
1379b3d2a9
|
@ -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),
|
||||
|
|
Reference in New Issue