X-Git-Url: https://rtime.felk.cvut.cz/gitweb/sojka/lightdm.git/blobdiff_plain/bcd902903f00ab29025e817d1b50dbb52464fe78..acd0eb6be742bc652c5e28ea51e94206775d80f3:/liblightdm-gobject/layout.c diff --git a/liblightdm-gobject/layout.c b/liblightdm-gobject/layout.c index 13c974f3..a780343a 100644 --- a/liblightdm-gobject/layout.c +++ b/liblightdm-gobject/layout.c @@ -19,17 +19,17 @@ enum { PROP_DESCRIPTION }; -struct _LightDMLayout +typedef struct { - GObject parent_instance; - gchar *name; gchar *short_description; gchar *description; -}; +} LightDMLayoutPrivate; G_DEFINE_TYPE (LightDMLayout, lightdm_layout, G_TYPE_OBJECT); +#define GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE ((obj), LIGHTDM_TYPE_LAYOUT, LightDMLayoutPrivate) + static gboolean have_layouts = FALSE; static Display *display = NULL; static XklEngine *xkl_engine = NULL; @@ -211,7 +211,7 @@ const gchar * lightdm_layout_get_name (LightDMLayout *layout) { g_return_val_if_fail (LIGHTDM_IS_LAYOUT (layout), NULL); - return layout->name; + return GET_PRIVATE (layout)->name; } /** @@ -226,7 +226,7 @@ const gchar * lightdm_layout_get_short_description (LightDMLayout *layout) { g_return_val_if_fail (LIGHTDM_IS_LAYOUT (layout), NULL); - return layout->short_description; + return GET_PRIVATE (layout)->short_description; } /** @@ -241,7 +241,7 @@ const gchar * lightdm_layout_get_description (LightDMLayout *layout) { g_return_val_if_fail (LIGHTDM_IS_LAYOUT (layout), NULL); - return layout->description; + return GET_PRIVATE (layout)->description; } static void @@ -256,19 +256,20 @@ lightdm_layout_set_property (GObject *object, GParamSpec *pspec) { LightDMLayout *self = LIGHTDM_LAYOUT (object); + LightDMLayoutPrivate *priv = GET_PRIVATE (self); switch (prop_id) { case PROP_NAME: - g_free (self->name); - self->name = g_strdup (g_value_get_string (value)); + g_free (priv->name); + priv->name = g_strdup (g_value_get_string (value)); break; case PROP_SHORT_DESCRIPTION: - g_free (self->short_description); - self->short_description = g_strdup (g_value_get_string (value)); + g_free (priv->short_description); + priv->short_description = g_strdup (g_value_get_string (value)); break; case PROP_DESCRIPTION: - g_free (self->description); - self->description = g_strdup (g_value_get_string (value)); + g_free (priv->description); + priv->description = g_strdup (g_value_get_string (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -306,10 +307,11 @@ static void lightdm_layout_finalize (GObject *object) { LightDMLayout *self = LIGHTDM_LAYOUT (object); + LightDMLayoutPrivate *priv = GET_PRIVATE (self); - g_free (self->name); - g_free (self->short_description); - g_free (self->description); + g_free (priv->name); + g_free (priv->short_description); + g_free (priv->description); } static void @@ -317,6 +319,8 @@ lightdm_layout_class_init (LightDMLayoutClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); + g_type_class_add_private (klass, sizeof (LightDMLayoutPrivate)); + object_class->set_property = lightdm_layout_set_property; object_class->get_property = lightdm_layout_get_property; object_class->finalize = lightdm_layout_finalize;