From: Robert Ancell Date: Fri, 30 Sep 2016 03:35:21 +0000 (+1300) Subject: Revert r2392 - it seems to have broken ABI in liblightdm-gobject X-Git-Url: http://rtime.felk.cvut.cz/gitweb/sojka/lightdm.git/commitdiff_plain/acd0eb6be742bc652c5e28ea51e94206775d80f3 Revert r2392 - it seems to have broken ABI in liblightdm-gobject --- diff --git a/liblightdm-gobject/greeter.c b/liblightdm-gobject/greeter.c index 6e3c93ed..07aa2371 100644 --- a/liblightdm-gobject/greeter.c +++ b/liblightdm-gobject/greeter.c @@ -95,7 +95,9 @@ typedef struct gboolean cancelling_authentication; } LightDMGreeterPrivate; -G_DEFINE_TYPE_WITH_PRIVATE (LightDMGreeter, lightdm_greeter, G_TYPE_OBJECT); +G_DEFINE_TYPE (LightDMGreeter, lightdm_greeter, G_TYPE_OBJECT); + +#define GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE ((obj), LIGHTDM_TYPE_GREETER, LightDMGreeterPrivate) #define HEADER_SIZE 8 #define MAX_MESSAGE_LENGTH 1024 @@ -233,7 +235,7 @@ lightdm_greeter_set_resettable (LightDMGreeter *greeter, gboolean resettable) g_return_if_fail (LIGHTDM_IS_GREETER (greeter)); - priv = lightdm_greeter_get_instance_private (greeter); + priv = GET_PRIVATE (greeter); g_return_if_fail (!priv->connected); priv->resettable = resettable; @@ -282,7 +284,7 @@ static gboolean timed_login_cb (gpointer data) { LightDMGreeter *greeter = data; - LightDMGreeterPrivate *priv = lightdm_greeter_get_instance_private (greeter); + LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); priv->autologin_timeout = 0; g_signal_emit (G_OBJECT (greeter), signals[AUTOLOGIN_TIMER_EXPIRED], 0); @@ -402,7 +404,7 @@ get_message_length (guint8 *message, gsize message_length) static gboolean connect_to_daemon (LightDMGreeter *greeter, GError **error) { - LightDMGreeterPrivate *priv = lightdm_greeter_get_instance_private (greeter); + LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); const gchar *to_server_fd, *from_server_fd, *pipe_path; if (priv->to_server_channel || priv->from_server_channel) @@ -454,7 +456,7 @@ connect_to_daemon (LightDMGreeter *greeter, GError **error) static gboolean send_message (LightDMGreeter *greeter, guint8 *message, gsize message_length, GError **error) { - LightDMGreeterPrivate *priv = lightdm_greeter_get_instance_private (greeter); + LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); gchar *data; gsize data_length; guint32 stated_length; @@ -515,7 +517,7 @@ send_message (LightDMGreeter *greeter, guint8 *message, gsize message_length, GE static void handle_connected (LightDMGreeter *greeter, guint8 *message, gsize message_length, gsize *offset) { - LightDMGreeterPrivate *priv = lightdm_greeter_get_instance_private (greeter); + LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); gchar *version; GString *hint_string; int timeout; @@ -560,7 +562,7 @@ handle_connected (LightDMGreeter *greeter, guint8 *message, gsize message_length static void handle_prompt_authentication (LightDMGreeter *greeter, guint8 *message, gsize message_length, gsize *offset) { - LightDMGreeterPrivate *priv = lightdm_greeter_get_instance_private (greeter); + LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); guint32 sequence_number, n_messages, i; gchar *username; @@ -628,7 +630,7 @@ handle_prompt_authentication (LightDMGreeter *greeter, guint8 *message, gsize me static void handle_end_authentication (LightDMGreeter *greeter, guint8 *message, gsize message_length, gsize *offset) { - LightDMGreeterPrivate *priv = lightdm_greeter_get_instance_private (greeter); + LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); guint32 sequence_number, return_code; gchar *username; @@ -670,7 +672,7 @@ handle_idle (LightDMGreeter *greeter, guint8 *message, gsize message_length, gsi static void handle_reset (LightDMGreeter *greeter, guint8 *message, gsize message_length, gsize *offset) { - LightDMGreeterPrivate *priv = lightdm_greeter_get_instance_private (greeter); + LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); GString *hint_string; g_hash_table_remove_all (priv->hints); @@ -695,7 +697,7 @@ handle_reset (LightDMGreeter *greeter, guint8 *message, gsize message_length, gs static void handle_session_result (LightDMGreeter *greeter, guint8 *message, gsize message_length, gsize *offset) { - LightDMGreeterPrivate *priv = lightdm_greeter_get_instance_private (greeter); + LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); Request *request; /* Notify asynchronous caller */ @@ -719,7 +721,7 @@ handle_session_result (LightDMGreeter *greeter, guint8 *message, gsize message_l static void handle_shared_dir_result (LightDMGreeter *greeter, guint8 *message, gsize message_length, gsize *offset) { - LightDMGreeterPrivate *priv = lightdm_greeter_get_instance_private (greeter); + LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); Request *request; /* Notify asynchronous caller */ @@ -781,7 +783,7 @@ handle_message (LightDMGreeter *greeter, guint8 *message, gsize message_length) static gboolean recv_message (LightDMGreeter *greeter, gboolean block, guint8 **message, gsize *length, GError **error) { - LightDMGreeterPrivate *priv = lightdm_greeter_get_instance_private (greeter); + LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); gsize n_to_read, n_read; if (!connect_to_daemon (greeter, error)) @@ -945,7 +947,7 @@ lightdm_greeter_connect_to_daemon (LightDMGreeter *greeter, GCancellable *cancel g_return_if_fail (LIGHTDM_IS_GREETER (greeter)); - priv = lightdm_greeter_get_instance_private (greeter); + priv = GET_PRIVATE (greeter); request = request_new (greeter, cancellable, callback, user_data); if (send_connect (greeter, priv->resettable, &error)) @@ -997,7 +999,7 @@ lightdm_greeter_connect_to_daemon_sync (LightDMGreeter *greeter, GError **error) g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); - priv = lightdm_greeter_get_instance_private (greeter); + priv = GET_PRIVATE (greeter); /* Read until we are connected */ if (!send_connect (greeter, priv->resettable, error)) @@ -1047,13 +1049,8 @@ lightdm_greeter_connect_sync (LightDMGreeter *greeter, GError **error) const gchar * lightdm_greeter_get_hint (LightDMGreeter *greeter, const gchar *name) { - LightDMGreeterPrivate *priv; - g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), NULL); - - priv = lightdm_greeter_get_instance_private (greeter); - - return g_hash_table_lookup (priv->hints, name); + return g_hash_table_lookup (GET_PRIVATE (greeter)->hints, name); } /** @@ -1281,7 +1278,7 @@ lightdm_greeter_cancel_autologin (LightDMGreeter *greeter) g_return_if_fail (LIGHTDM_IS_GREETER (greeter)); - priv = lightdm_greeter_get_instance_private (greeter); + priv = GET_PRIVATE (greeter); if (priv->autologin_timeout) g_source_remove (priv->autologin_timeout); @@ -1307,7 +1304,7 @@ lightdm_greeter_authenticate (LightDMGreeter *greeter, const gchar *username, GE g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); - priv = lightdm_greeter_get_instance_private (greeter); + priv = GET_PRIVATE (greeter); g_return_val_if_fail (priv->connected, FALSE); @@ -1346,7 +1343,7 @@ lightdm_greeter_authenticate_as_guest (LightDMGreeter *greeter, GError **error) g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); - priv = lightdm_greeter_get_instance_private (greeter); + priv = GET_PRIVATE (greeter); g_return_val_if_fail (priv->connected, FALSE); @@ -1410,7 +1407,7 @@ lightdm_greeter_authenticate_remote (LightDMGreeter *greeter, const gchar *sessi g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); - priv = lightdm_greeter_get_instance_private (greeter); + priv = GET_PRIVATE (greeter); g_return_val_if_fail (priv->connected, FALSE); @@ -1453,7 +1450,7 @@ lightdm_greeter_respond (LightDMGreeter *greeter, const gchar *response, GError g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); g_return_val_if_fail (response != NULL, FALSE); - priv = lightdm_greeter_get_instance_private (greeter); + priv = GET_PRIVATE (greeter); g_return_val_if_fail (priv->connected, FALSE); g_return_val_if_fail (priv->n_responses_waiting > 0, FALSE); @@ -1508,7 +1505,7 @@ lightdm_greeter_cancel_authentication (LightDMGreeter *greeter, GError **error) g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); - priv = lightdm_greeter_get_instance_private (greeter); + priv = GET_PRIVATE (greeter); g_return_val_if_fail (priv->connected, FALSE); @@ -1528,13 +1525,8 @@ lightdm_greeter_cancel_authentication (LightDMGreeter *greeter, GError **error) gboolean lightdm_greeter_get_in_authentication (LightDMGreeter *greeter) { - LightDMGreeterPrivate *priv; - g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); - - priv = lightdm_greeter_get_instance_private (greeter); - - return priv->in_authentication; + return GET_PRIVATE (greeter)->in_authentication; } /** @@ -1548,13 +1540,8 @@ lightdm_greeter_get_in_authentication (LightDMGreeter *greeter) gboolean lightdm_greeter_get_is_authenticated (LightDMGreeter *greeter) { - LightDMGreeterPrivate *priv; - g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); - - priv = lightdm_greeter_get_instance_private (greeter); - - return priv->is_authenticated; + return GET_PRIVATE (greeter)->is_authenticated; } /** @@ -1568,13 +1555,8 @@ lightdm_greeter_get_is_authenticated (LightDMGreeter *greeter) const gchar * lightdm_greeter_get_authentication_user (LightDMGreeter *greeter) { - LightDMGreeterPrivate *priv; - g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), NULL); - - priv = lightdm_greeter_get_instance_private (greeter); - - return priv->authentication_user; + return GET_PRIVATE (greeter)->authentication_user; } /** @@ -1596,7 +1578,7 @@ lightdm_greeter_set_language (LightDMGreeter *greeter, const gchar *language, GE g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); - priv = lightdm_greeter_get_instance_private (greeter); + priv = GET_PRIVATE (greeter); g_return_val_if_fail (priv->connected, FALSE); @@ -1628,7 +1610,7 @@ lightdm_greeter_start_session (LightDMGreeter *greeter, const gchar *session, GC g_return_if_fail (LIGHTDM_IS_GREETER (greeter)); - priv = lightdm_greeter_get_instance_private (greeter); + priv = GET_PRIVATE (greeter); request = request_new (greeter, cancellable, callback, user_data); priv->start_session_requests = g_list_append (priv->start_session_requests, request); @@ -1679,7 +1661,7 @@ lightdm_greeter_start_session_sync (LightDMGreeter *greeter, const gchar *sessio g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); - priv = lightdm_greeter_get_instance_private (greeter); + priv = GET_PRIVATE (greeter); g_return_val_if_fail (priv->connected, FALSE); g_return_val_if_fail (priv->is_authenticated, FALSE); @@ -1731,7 +1713,7 @@ lightdm_greeter_ensure_shared_data_dir (LightDMGreeter *greeter, const gchar *us g_return_if_fail (LIGHTDM_IS_GREETER (greeter)); - priv = lightdm_greeter_get_instance_private (greeter); + priv = GET_PRIVATE (greeter); request = request_new (greeter, cancellable, callback, user_data); priv->ensure_shared_data_dir_requests = g_list_append (priv->ensure_shared_data_dir_requests, request); @@ -1791,7 +1773,7 @@ lightdm_greeter_ensure_shared_data_dir_sync (LightDMGreeter *greeter, const gcha g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), NULL); - priv = lightdm_greeter_get_instance_private (greeter); + priv = GET_PRIVATE (greeter); g_return_val_if_fail (priv->connected, NULL); @@ -1817,7 +1799,7 @@ lightdm_greeter_ensure_shared_data_dir_sync (LightDMGreeter *greeter, const gcha static void lightdm_greeter_init (LightDMGreeter *greeter) { - LightDMGreeterPrivate *priv = lightdm_greeter_get_instance_private (greeter); + LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); priv->read_buffer = g_malloc (HEADER_SIZE); priv->hints = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); @@ -1895,7 +1877,7 @@ static void lightdm_greeter_finalize (GObject *object) { LightDMGreeter *self = LIGHTDM_GREETER (object); - LightDMGreeterPrivate *priv = lightdm_greeter_get_instance_private (self); + LightDMGreeterPrivate *priv = GET_PRIVATE (self); g_clear_object (&priv->socket); if (priv->to_server_channel) @@ -1926,6 +1908,8 @@ lightdm_greeter_class_init (LightDMGreeterClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); + g_type_class_add_private (klass, sizeof (LightDMGreeterPrivate)); + object_class->set_property = lightdm_greeter_set_property; object_class->get_property = lightdm_greeter_get_property; object_class->finalize = lightdm_greeter_finalize; diff --git a/liblightdm-gobject/language.c b/liblightdm-gobject/language.c index 8234f098..ac17645c 100644 --- a/liblightdm-gobject/language.c +++ b/liblightdm-gobject/language.c @@ -22,17 +22,17 @@ enum { PROP_TERRITORY }; -struct _LightDMLanguage +typedef struct { - GObject parent_instance; - gchar *code; gchar *name; gchar *territory; -}; +} LightDMLanguagePrivate; G_DEFINE_TYPE (LightDMLanguage, lightdm_language, G_TYPE_OBJECT); +#define GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE ((obj), LIGHTDM_TYPE_LANGUAGE, LightDMLanguagePrivate) + static gboolean have_languages = FALSE; static GList *languages = NULL; @@ -201,7 +201,7 @@ const gchar * lightdm_language_get_code (LightDMLanguage *language) { g_return_val_if_fail (LIGHTDM_IS_LANGUAGE (language), NULL); - return language->code; + return GET_PRIVATE (language)->code; } /** @@ -215,11 +215,15 @@ lightdm_language_get_code (LightDMLanguage *language) const gchar * lightdm_language_get_name (LightDMLanguage *language) { + LightDMLanguagePrivate *priv; + g_return_val_if_fail (LIGHTDM_IS_LANGUAGE (language), NULL); - if (!language->name) + priv = GET_PRIVATE (language); + + if (!priv->name) { - gchar *locale = get_locale_name (language->code); + gchar *locale = get_locale_name (priv->code); if (locale) { gchar *current = setlocale (LC_ALL, NULL); @@ -228,19 +232,19 @@ lightdm_language_get_name (LightDMLanguage *language) gchar *language_en = nl_langinfo (_NL_IDENTIFICATION_LANGUAGE); if (language_en && strlen (language_en) > 0) - language->name = g_strdup (dgettext ("iso_639_3", language_en)); + priv->name = g_strdup (dgettext ("iso_639_3", language_en)); setlocale (LC_ALL, current); } - if (!language->name) + if (!priv->name) { - gchar **tokens = g_strsplit_set (language->code, "_.@", 2); - language->name = g_strdup (tokens[0]); + gchar **tokens = g_strsplit_set (priv->code, "_.@", 2); + priv->name = g_strdup (tokens[0]); g_strfreev (tokens); } } - return language->name; + return priv->name; } /** @@ -254,11 +258,15 @@ lightdm_language_get_name (LightDMLanguage *language) const gchar * lightdm_language_get_territory (LightDMLanguage *language) { + LightDMLanguagePrivate *priv; + g_return_val_if_fail (LIGHTDM_IS_LANGUAGE (language), NULL); - if (!language->territory && strchr (language->code, '_')) + priv = GET_PRIVATE (language); + + if (!priv->territory && strchr (priv->code, '_')) { - gchar *locale = get_locale_name (language->code); + gchar *locale = get_locale_name (priv->code); if (locale) { gchar *current = setlocale (LC_ALL, NULL); @@ -267,19 +275,19 @@ lightdm_language_get_territory (LightDMLanguage *language) gchar *country_en = nl_langinfo (_NL_IDENTIFICATION_TERRITORY); if (country_en && strlen (country_en) > 0 && g_strcmp0 (country_en, "ISO") != 0) - language->territory = g_strdup (dgettext ("iso_3166", country_en)); + priv->territory = g_strdup (dgettext ("iso_3166", country_en)); setlocale (LC_ALL, current); } - if (!language->territory) + if (!priv->territory) { - gchar **tokens = g_strsplit_set (language->code, "_.@", 3); - language->territory = g_strdup (tokens[1]); + gchar **tokens = g_strsplit_set (priv->code, "_.@", 3); + priv->territory = g_strdup (tokens[1]); g_strfreev (tokens); } } - return language->territory; + return priv->territory; } /** @@ -294,19 +302,23 @@ lightdm_language_get_territory (LightDMLanguage *language) gboolean lightdm_language_matches (LightDMLanguage *language, const gchar *code) { + LightDMLanguagePrivate *priv; + g_return_val_if_fail (LIGHTDM_IS_LANGUAGE (language), FALSE); g_return_val_if_fail (code != NULL, FALSE); + priv = GET_PRIVATE (language); + /* Handle the fact the UTF-8 is specified both as '.utf8' and '.UTF-8' */ - if (is_utf8 (language->code) && is_utf8 (code)) + if (is_utf8 (priv->code) && is_utf8 (code)) { /* Match the characters before the '.' */ int i; - for (i = 0; language->code[i] && code[i] && language->code[i] == code[i] && code[i] != '.' ; i++); - return language->code[i] == '.' && code[i] == '.'; + for (i = 0; priv->code[i] && code[i] && priv->code[i] == code[i] && code[i] != '.' ; i++); + return priv->code[i] == '.' && code[i] == '.'; } - return g_str_equal (language->code, code); + return g_str_equal (priv->code, code); } static void @@ -321,11 +333,12 @@ lightdm_language_set_property (GObject *object, GParamSpec *pspec) { LightDMLanguage *self = LIGHTDM_LANGUAGE (object); + LightDMLanguagePrivate *priv = GET_PRIVATE (self); switch (prop_id) { case PROP_CODE: - g_free (self->name); - self->code = g_strdup (g_value_get_string (value)); + g_free (priv->name); + priv->code = g_strdup (g_value_get_string (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -364,6 +377,8 @@ lightdm_language_class_init (LightDMLanguageClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); + g_type_class_add_private (klass, sizeof (LightDMLanguagePrivate)); + object_class->set_property = lightdm_language_set_property; object_class->get_property = lightdm_language_get_property; 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; diff --git a/liblightdm-gobject/lightdm/greeter.h b/liblightdm-gobject/lightdm/greeter.h index 11f5e4bb..047708ed 100644 --- a/liblightdm-gobject/lightdm/greeter.h +++ b/liblightdm-gobject/lightdm/greeter.h @@ -16,9 +16,12 @@ G_BEGIN_DECLS -#define LIGHTDM_TYPE_GREETER (lightdm_greeter_get_type()) - -G_DECLARE_DERIVABLE_TYPE (LightDMGreeter, lightdm_greeter, LIGHTDM, GREETER, GObject) +#define LIGHTDM_TYPE_GREETER (lightdm_greeter_get_type()) +#define LIGHTDM_GREETER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIGHTDM_TYPE_GREETER, LightDMGreeter)) +#define LIGHTDM_GREETER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIGHTDM_TYPE_GREETER, LightDMGreeterClass)) +#define LIGHTDM_IS_GREETER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIGHTDM_TYPE_GREETER)) +#define LIGHTDM_IS_GREETER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIGHTDM_TYPE_GREETER)) +#define LIGHTDM_GREETER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIGHTDM_TYPE_GREETER, LightDMGreeterClass)) #define LIGHTDM_GREETER_ERROR lightdm_greeter_error_quark () @@ -55,7 +58,12 @@ typedef enum GType lightdm_message_type_get_type (void); -struct _LightDMGreeterClass +typedef struct +{ + GObject parent_instance; +} LightDMGreeter; + +typedef struct { GObjectClass parent_class; @@ -71,7 +79,15 @@ struct _LightDMGreeterClass void (*reserved2) (void); void (*reserved3) (void); void (*reserved4) (void); -}; +} LightDMGreeterClass; + +#ifdef GLIB_VERSION_2_44 +typedef LightDMGreeter *LightDMGreeter_autoptr; +static inline void glib_autoptr_cleanup_LightDMGreeter (LightDMGreeter **_ptr) +{ + glib_autoptr_cleanup_GObject ((GObject **) _ptr); +} +#endif /** * LightDMGreeterError: @@ -96,6 +112,8 @@ GQuark lightdm_greeter_error_quark (void); GType lightdm_greeter_error_get_type (void); +GType lightdm_greeter_get_type (void); + LightDMGreeter *lightdm_greeter_new (void); void lightdm_greeter_set_resettable (LightDMGreeter *greeter, gboolean resettable); diff --git a/liblightdm-gobject/lightdm/language.h b/liblightdm-gobject/lightdm/language.h index 7f33c43c..6c3f83bc 100644 --- a/liblightdm-gobject/lightdm/language.h +++ b/liblightdm-gobject/lightdm/language.h @@ -15,15 +15,40 @@ G_BEGIN_DECLS -#define LIGHTDM_TYPE_LANGUAGE (lightdm_language_get_type()) +#define LIGHTDM_TYPE_LANGUAGE (lightdm_language_get_type()) +#define LIGHTDM_LANGUAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIGHTDM_TYPE_LANGUAGE, LightDMLanguage)); +#define LIGHTDM_LANGUAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIGHTDM_TYPE_LANGUAGE, LightDMLanguageClass)) +#define LIGHTDM_IS_LANGUAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIGHTDM_TYPE_LANGUAGE)) +#define LIGHTDM_IS_LANGUAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIGHTDM_TYPE_LANGUAGE)) +#define LIGHTDM_LANGUAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIGHTDM_TYPE_LANGUAGE, LightDMLanguageClass)) -G_DECLARE_FINAL_TYPE (LightDMLanguage, lightdm_language, LIGHTDM, LANGUAGE, GObject) +typedef struct +{ + GObject parent_instance; +} LightDMLanguage; -struct _LightDMLanguageClass +typedef struct { - /*< private >*/ GObjectClass parent_class; -}; + + /* Reserved */ + void (*reserved1) (void); + void (*reserved2) (void); + void (*reserved3) (void); + void (*reserved4) (void); + void (*reserved5) (void); + void (*reserved6) (void); +} LightDMLanguageClass; + +#ifdef GLIB_VERSION_2_44 +typedef LightDMLanguage *LightDMLanguage_autoptr; +static inline void glib_autoptr_cleanup_LightDMLanguage (LightDMLanguage **_ptr) +{ + glib_autoptr_cleanup_GObject ((GObject **) _ptr); +} +#endif + +GType lightdm_language_get_type (void); GList *lightdm_get_languages (void); diff --git a/liblightdm-gobject/lightdm/layout.h b/liblightdm-gobject/lightdm/layout.h index f4369504..c971980b 100644 --- a/liblightdm-gobject/lightdm/layout.h +++ b/liblightdm-gobject/lightdm/layout.h @@ -15,15 +15,40 @@ G_BEGIN_DECLS -#define LIGHTDM_TYPE_LAYOUT (lightdm_layout_get_type()) +#define LIGHTDM_TYPE_LAYOUT (lightdm_layout_get_type()) +#define LIGHTDM_LAYOUT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIGHTDM_TYPE_LAYOUT, LightDMLayout)); +#define LIGHTDM_LAYOUT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIGHTDM_TYPE_LAYOUT, LightDMLayoutClass)) +#define LIGHTDM_IS_LAYOUT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIGHTDM_TYPE_LAYOUT)) +#define LIGHTDM_IS_LAYOUT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIGHTDM_TYPE_LAYOUT)) +#define LIGHTDM_LAYOUT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIGHTDM_TYPE_LAYOUT, LightDMLayoutClass)) -G_DECLARE_FINAL_TYPE (LightDMLayout, lightdm_layout, LIGHTDM, LAYOUT, GObject) +typedef struct +{ + GObject parent_instance; +} LightDMLayout; -struct _LightDMLayoutClass +typedef struct { - /*< private >*/ GObjectClass parent_class; -}; + + /* Reserved */ + void (*reserved1) (void); + void (*reserved2) (void); + void (*reserved3) (void); + void (*reserved4) (void); + void (*reserved5) (void); + void (*reserved6) (void); +} LightDMLayoutClass; + +#ifdef GLIB_VERSION_2_44 +typedef LightDMLayout *LightDMLayout_autoptr; +static inline void glib_autoptr_cleanup_LightDMLayout (LightDMLayout **_ptr) +{ + glib_autoptr_cleanup_GObject ((GObject **) _ptr); +} +#endif + +GType lightdm_layout_get_type (void); GList *lightdm_get_layouts (void); diff --git a/liblightdm-gobject/lightdm/session.h b/liblightdm-gobject/lightdm/session.h index f8a4a10f..9c447e1f 100644 --- a/liblightdm-gobject/lightdm/session.h +++ b/liblightdm-gobject/lightdm/session.h @@ -15,15 +15,40 @@ G_BEGIN_DECLS -struct _LightDMSessionClass +#define LIGHTDM_TYPE_SESSION (lightdm_session_get_type()) +#define LIGHTDM_SESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIGHTDM_TYPE_SESSION, LightDMSession)); +#define LIGHTDM_SESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIGHTDM_TYPE_SESSION, LightDMSessionClass)) +#define LIGHTDM_IS_SESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIGHTDM_TYPE_SESSION)) +#define LIGHTDM_IS_SESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIGHTDM_TYPE_SESSION)) +#define LIGHTDM_SESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIGHTDM_TYPE_SESSION, LightDMSessionClass)) + +typedef struct +{ + GObject parent_instance; +} LightDMSession; + +typedef struct { - /*< private >*/ GObjectClass parent_class; -}; -#define LIGHTDM_TYPE_SESSION (lightdm_session_get_type()) + /* Reserved */ + void (*reserved1) (void); + void (*reserved2) (void); + void (*reserved3) (void); + void (*reserved4) (void); + void (*reserved5) (void); + void (*reserved6) (void); +} LightDMSessionClass; + +#ifdef GLIB_VERSION_2_44 +typedef LightDMSession *LightDMSession_autoptr; +static inline void glib_autoptr_cleanup_LightDMSession (LightDMSession **_ptr) +{ + glib_autoptr_cleanup_GObject ((GObject **) _ptr); +} +#endif -G_DECLARE_FINAL_TYPE (LightDMSession, lightdm_session, LIGHTDM, SESSION, GObject) +GType lightdm_session_get_type (void); GList *lightdm_get_sessions (void); diff --git a/liblightdm-gobject/lightdm/user.h b/liblightdm-gobject/lightdm/user.h index 63b7c567..d092477a 100644 --- a/liblightdm-gobject/lightdm/user.h +++ b/liblightdm-gobject/lightdm/user.h @@ -15,31 +15,83 @@ G_BEGIN_DECLS -#define LIGHTDM_TYPE_USER (lightdm_user_get_type()) +#define LIGHTDM_TYPE_USER_LIST (lightdm_user_list_get_type()) +#define LIGHTDM_USER_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIGHTDM_TYPE_USER_LIST, LightDMUserList)); +#define LIGHTDM_USER_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIGHTDM_TYPE_USER_LIST, LightDMUserListClass)) +#define LIGHTDM_IS_USER_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIGHTDM_TYPE_USER_LIST)) +#define LIGHTDM_IS_USER_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIGHTDM_TYPE_USER_LIST)) +#define LIGHTDM_USER_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIGHTDM_TYPE_USER_LIST, LightDMUserListClass)) + +#define LIGHTDM_TYPE_USER (lightdm_user_get_type()) +#define LIGHTDM_USER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIGHTDM_TYPE_USER, LightDMUser)); +#define LIGHTDM_USER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIGHTDM_TYPE_USER, LightDMUserClass)) +#define LIGHTDM_IS_USER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIGHTDM_TYPE_USER)) +#define LIGHTDM_IS_USER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIGHTDM_TYPE_USER)) +#define LIGHTDM_USER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIGHTDM_TYPE_USER, LightDMUserClass)) -G_DECLARE_FINAL_TYPE (LightDMUser, lightdm_user, LIGHTDM, USER, GObject) +#define LIGHTDM_USER_LIST_SIGNAL_USER_ADDED "user-added" +#define LIGHTDM_USER_LIST_SIGNAL_USER_CHANGED "user-changed" +#define LIGHTDM_USER_LIST_SIGNAL_USER_REMOVED "user-removed" #define LIGHTDM_SIGNAL_USER_CHANGED "changed" -struct _LightDMUserClass +typedef struct +{ + GObject parent_instance; +} LightDMUser; + +typedef struct { - /*< private >*/ GObjectClass parent_class; -}; + void (*changed)(LightDMUser *user); + + /* Reserved */ + void (*reserved1) (void); + void (*reserved2) (void); + void (*reserved3) (void); + void (*reserved4) (void); + void (*reserved5) (void); + void (*reserved6) (void); +} LightDMUserClass; + +typedef struct +{ + GObject parent_instance; +} LightDMUserList; -#define LIGHTDM_TYPE_USER_LIST (lightdm_user_list_get_type()) +typedef struct +{ + GObjectClass parent_class; -G_DECLARE_FINAL_TYPE (LightDMUserList, lightdm_user_list, LIGHTDM, USER_LIST, GObject) + void (*user_added)(LightDMUserList *user_list, LightDMUser *user); + void (*user_changed)(LightDMUserList *user_list, LightDMUser *user); + void (*user_removed)(LightDMUserList *user_list, LightDMUser *user); + + /* Reserved */ + void (*reserved1) (void); + void (*reserved2) (void); + void (*reserved3) (void); + void (*reserved4) (void); + void (*reserved5) (void); + void (*reserved6) (void); +} LightDMUserListClass; + +#ifdef GLIB_VERSION_2_44 +typedef LightDMUser *LightDMUser_autoptr; +static inline void glib_autoptr_cleanup_LightDMUser (LightDMUser **_ptr) +{ + glib_autoptr_cleanup_GObject ((GObject **) _ptr); +} +typedef LightDMUserList *LightDMUserList_autoptr; +static inline void glib_autoptr_cleanup_LightDMUserList (LightDMUserList **_ptr) +{ + glib_autoptr_cleanup_GObject ((GObject **) _ptr); +} +#endif -#define LIGHTDM_USER_LIST_SIGNAL_USER_ADDED "user-added" -#define LIGHTDM_USER_LIST_SIGNAL_USER_CHANGED "user-changed" -#define LIGHTDM_USER_LIST_SIGNAL_USER_REMOVED "user-removed" +GType lightdm_user_list_get_type (void); -struct _LightDMUserListClass -{ - /*< private >*/ - GObjectClass parent_class; -}; +GType lightdm_user_get_type (void); LightDMUserList *lightdm_user_list_get_instance (void); diff --git a/liblightdm-gobject/session.c b/liblightdm-gobject/session.c index fbbc5f79..7549e0bb 100644 --- a/liblightdm-gobject/session.c +++ b/liblightdm-gobject/session.c @@ -20,16 +20,18 @@ enum { PROP_COMMENT }; -struct _LightDMSession +typedef struct { gchar *key; gchar *type; gchar *name; gchar *comment; -}; +} LightDMSessionPrivate; G_DEFINE_TYPE (LightDMSession, lightdm_session, G_TYPE_OBJECT); +#define GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE ((obj), LIGHTDM_TYPE_SESSION, LightDMSessionPrivate) + static gboolean have_sessions = FALSE; static GList *local_sessions = NULL; static GList *remote_sessions = NULL; @@ -37,8 +39,9 @@ static GList *remote_sessions = NULL; static gint compare_session (gconstpointer a, gconstpointer b) { - const LightDMSession *sa = a, *sb = b; - return strcmp (sa->name, sb->name); + LightDMSessionPrivate *priv_a = GET_PRIVATE (a); + LightDMSessionPrivate *priv_b = GET_PRIVATE (b); + return strcmp (priv_a->name, priv_b->name); } static LightDMSession * @@ -46,6 +49,7 @@ load_session (GKeyFile *key_file, const gchar *key, const gchar *default_type) { gchar *domain, *name, *type; LightDMSession *session; + LightDMSessionPrivate *priv; gchar *try_exec; if (g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_NO_DISPLAY, NULL) || @@ -87,20 +91,21 @@ load_session (GKeyFile *key_file, const gchar *key, const gchar *default_type) type = strdup (default_type); session = g_object_new (LIGHTDM_TYPE_SESSION, NULL); + priv = GET_PRIVATE (session); - g_free (session->key); - session->key = g_strdup (key); + g_free (priv->key); + priv->key = g_strdup (key); - g_free (session->type); - session->type = type; + g_free (priv->type); + priv->type = type; - g_free (session->name); - session->name = name; + g_free (priv->name); + priv->name = name; - g_free (session->comment); - session->comment = g_key_file_get_locale_string (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_COMMENT, domain, NULL); - if (!session->comment) - session->comment = g_strdup (""); + g_free (priv->comment); + priv->comment = g_key_file_get_locale_string (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_COMMENT, domain, NULL); + if (!priv->comment) + priv->comment = g_strdup (""); g_free (domain); @@ -151,7 +156,7 @@ load_sessions_dir (GList *sessions, const gchar *sessions_dir, const gchar *defa session = load_session (key_file, key, default_type); if (session) { - g_debug ("Loaded session %s (%s, %s)", path, session->name, session->comment); + g_debug ("Loaded session %s (%s, %s)", path, GET_PRIVATE (session)->name, GET_PRIVATE (session)->comment); sessions = g_list_insert_sorted (sessions, session, compare_session); } else @@ -270,7 +275,7 @@ const gchar * lightdm_session_get_key (LightDMSession *session) { g_return_val_if_fail (LIGHTDM_IS_SESSION (session), NULL); - return session->key; + return GET_PRIVATE (session)->key; } /** @@ -285,7 +290,7 @@ const gchar * lightdm_session_get_session_type (LightDMSession *session) { g_return_val_if_fail (LIGHTDM_IS_SESSION (session), NULL); - return session->type; + return GET_PRIVATE (session)->type; } /** @@ -300,7 +305,7 @@ const gchar * lightdm_session_get_name (LightDMSession *session) { g_return_val_if_fail (LIGHTDM_IS_SESSION (session), NULL); - return session->name; + return GET_PRIVATE (session)->name; } /** @@ -315,7 +320,7 @@ const gchar * lightdm_session_get_comment (LightDMSession *session) { g_return_val_if_fail (LIGHTDM_IS_SESSION (session), NULL); - return session->comment; + return GET_PRIVATE (session)->comment; } static void @@ -362,11 +367,12 @@ static void lightdm_session_finalize (GObject *object) { LightDMSession *self = LIGHTDM_SESSION (object); + LightDMSessionPrivate *priv = GET_PRIVATE (self); - g_free (self->key); - g_free (self->type); - g_free (self->name); - g_free (self->comment); + g_free (priv->key); + g_free (priv->type); + g_free (priv->name); + g_free (priv->comment); } static void @@ -374,6 +380,8 @@ lightdm_session_class_init (LightDMSessionClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); + g_type_class_add_private (klass, sizeof (LightDMSessionPrivate)); + object_class->set_property = lightdm_session_set_property; object_class->get_property = lightdm_session_get_property; object_class->finalize = lightdm_session_finalize; diff --git a/liblightdm-gobject/user.c b/liblightdm-gobject/user.c index 905dc2c8..e47d563b 100644 --- a/liblightdm-gobject/user.c +++ b/liblightdm-gobject/user.c @@ -57,27 +57,25 @@ enum }; static guint user_signals[LAST_USER_SIGNAL] = { 0 }; -struct _LightDMUserList +typedef struct { - GObject parent_instance; - gboolean initialized; /* Wrapper list, kept locally to preserve transfer-none promises */ GList *lightdm_list; -}; +} LightDMUserListPrivate; -G_DEFINE_TYPE (LightDMUserList, lightdm_user_list, G_TYPE_OBJECT); - -struct _LightDMUser +typedef struct { - GObject parent_instance; - CommonUser *common_user; -}; +} LightDMUserPrivate; +G_DEFINE_TYPE (LightDMUserList, lightdm_user_list, G_TYPE_OBJECT); G_DEFINE_TYPE (LightDMUser, lightdm_user, G_TYPE_OBJECT); +#define GET_LIST_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE ((obj), LIGHTDM_TYPE_USER_LIST, LightDMUserListPrivate) +#define GET_USER_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE ((obj), LIGHTDM_TYPE_USER, LightDMUserPrivate) + static LightDMUserList *singleton = NULL; /** @@ -112,31 +110,35 @@ wrap_common_user (CommonUser *user) static void user_list_added_cb (CommonUserList *common_list, CommonUser *common_user, LightDMUserList *user_list) { + LightDMUserListPrivate *priv = GET_LIST_PRIVATE (user_list); GList *common_users = common_user_list_get_users (common_list); LightDMUser *lightdm_user = wrap_common_user (common_user); - user_list->lightdm_list = g_list_insert (user_list->lightdm_list, lightdm_user, g_list_index (common_users, common_user)); + priv->lightdm_list = g_list_insert (priv->lightdm_list, lightdm_user, g_list_index (common_users, common_user)); g_signal_emit (user_list, list_signals[USER_ADDED], 0, lightdm_user); } static void user_list_changed_cb (CommonUserList *common_list, CommonUser *common_user, LightDMUserList *user_list) { + LightDMUserListPrivate *priv = GET_LIST_PRIVATE (user_list); GList *common_users = common_user_list_get_users (common_list); - LightDMUser *lightdm_user = g_list_nth_data (user_list->lightdm_list, g_list_index (common_users, common_user)); + LightDMUser *lightdm_user = g_list_nth_data (priv->lightdm_list, g_list_index (common_users, common_user)); g_signal_emit (user_list, list_signals[USER_CHANGED], 0, lightdm_user); } static void user_list_removed_cb (CommonUserList *common_list, CommonUser *common_user, LightDMUserList *user_list) { + LightDMUserListPrivate *priv = GET_LIST_PRIVATE (user_list); GList *link; - for (link = user_list->lightdm_list; link; link = link->next) + for (link = priv->lightdm_list; link; link = link->next) { LightDMUser *lightdm_user = link->data; - if (lightdm_user->common_user == common_user) + LightDMUserPrivate *user_priv = GET_USER_PRIVATE (lightdm_user); + if (user_priv->common_user == common_user) { - user_list->lightdm_list = g_list_delete_link (user_list->lightdm_list, link); + priv->lightdm_list = g_list_delete_link (priv->lightdm_list, link); g_signal_emit (user_list, list_signals[USER_REMOVED], 0, lightdm_user); g_object_unref (lightdm_user); break; @@ -147,10 +149,11 @@ user_list_removed_cb (CommonUserList *common_list, CommonUser *common_user, Ligh static void initialize_user_list_if_needed (LightDMUserList *user_list) { + LightDMUserListPrivate *priv = GET_LIST_PRIVATE (user_list); GList *common_users; GList *link; - if (user_list->initialized) + if (priv->initialized) return; common_users = common_user_list_get_users (common_user_list_get_instance ()); @@ -158,16 +161,16 @@ initialize_user_list_if_needed (LightDMUserList *user_list) { CommonUser *user = link->data; LightDMUser *lightdm_user = wrap_common_user (user); - user_list->lightdm_list = g_list_prepend (user_list->lightdm_list, lightdm_user); + priv->lightdm_list = g_list_prepend (priv->lightdm_list, lightdm_user); } - user_list->lightdm_list = g_list_reverse (user_list->lightdm_list); + priv->lightdm_list = g_list_reverse (priv->lightdm_list); CommonUserList *common_list = common_user_list_get_instance (); g_signal_connect (common_list, USER_LIST_SIGNAL_USER_ADDED, G_CALLBACK (user_list_added_cb), user_list); g_signal_connect (common_list, USER_LIST_SIGNAL_USER_CHANGED, G_CALLBACK (user_list_changed_cb), user_list); g_signal_connect (common_list, USER_LIST_SIGNAL_USER_REMOVED, G_CALLBACK (user_list_removed_cb), user_list); - user_list->initialized = TRUE; + priv->initialized = TRUE; } /** @@ -181,7 +184,7 @@ lightdm_user_list_get_length (LightDMUserList *user_list) { g_return_val_if_fail (LIGHTDM_IS_USER_LIST (user_list), 0); initialize_user_list_if_needed (user_list); - return g_list_length (user_list->lightdm_list); + return g_list_length (GET_LIST_PRIVATE (user_list)->lightdm_list); } /** @@ -198,7 +201,7 @@ lightdm_user_list_get_users (LightDMUserList *user_list) { g_return_val_if_fail (LIGHTDM_IS_USER_LIST (user_list), NULL); initialize_user_list_if_needed (user_list); - return user_list->lightdm_list; + return GET_LIST_PRIVATE (user_list)->lightdm_list; } /** @@ -220,7 +223,7 @@ lightdm_user_list_get_user_by_name (LightDMUserList *user_list, const gchar *use initialize_user_list_if_needed (user_list); - for (link = user_list->lightdm_list; link; link = link->next) + for (link = GET_LIST_PRIVATE (user_list)->lightdm_list; link; link = link->next) { LightDMUser *user = link->data; if (g_strcmp0 (lightdm_user_get_name (user), username) == 0) @@ -270,8 +273,9 @@ static void lightdm_user_list_finalize (GObject *object) { LightDMUserList *self = LIGHTDM_USER_LIST (object); + LightDMUserListPrivate *priv = GET_LIST_PRIVATE (self); - g_list_free_full (self->lightdm_list, g_object_unref); + g_list_free_full (priv->lightdm_list, g_object_unref); G_OBJECT_CLASS (lightdm_user_list_parent_class)->finalize (object); } @@ -281,6 +285,8 @@ lightdm_user_list_class_init (LightDMUserListClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); + g_type_class_add_private (klass, sizeof (LightDMUserListPrivate)); + object_class->set_property = lightdm_user_list_set_property; object_class->get_property = lightdm_user_list_get_property; object_class->finalize = lightdm_user_list_finalize; @@ -319,7 +325,7 @@ lightdm_user_list_class_init (LightDMUserListClass *klass) g_signal_new (LIGHTDM_USER_LIST_SIGNAL_USER_ADDED, G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, - 0, + G_STRUCT_OFFSET (LightDMUserListClass, user_added), NULL, NULL, NULL, G_TYPE_NONE, 1, LIGHTDM_TYPE_USER); @@ -335,7 +341,7 @@ lightdm_user_list_class_init (LightDMUserListClass *klass) g_signal_new (LIGHTDM_USER_LIST_SIGNAL_USER_CHANGED, G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, - 0, + G_STRUCT_OFFSET (LightDMUserListClass, user_changed), NULL, NULL, NULL, G_TYPE_NONE, 1, LIGHTDM_TYPE_USER); @@ -351,7 +357,7 @@ lightdm_user_list_class_init (LightDMUserListClass *klass) g_signal_new (LIGHTDM_USER_LIST_SIGNAL_USER_REMOVED, G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, - 0, + G_STRUCT_OFFSET (LightDMUserListClass, user_removed), NULL, NULL, NULL, G_TYPE_NONE, 1, LIGHTDM_TYPE_USER); @@ -369,7 +375,7 @@ const gchar * lightdm_user_get_name (LightDMUser *user) { g_return_val_if_fail (LIGHTDM_IS_USER (user), NULL); - return common_user_get_name (user->common_user); + return common_user_get_name (GET_USER_PRIVATE (user)->common_user); } /** @@ -384,7 +390,7 @@ const gchar * lightdm_user_get_real_name (LightDMUser *user) { g_return_val_if_fail (LIGHTDM_IS_USER (user), NULL); - return common_user_get_real_name (user->common_user); + return common_user_get_real_name (GET_USER_PRIVATE (user)->common_user); } /** @@ -399,7 +405,7 @@ const gchar * lightdm_user_get_display_name (LightDMUser *user) { g_return_val_if_fail (LIGHTDM_IS_USER (user), NULL); - return common_user_get_display_name (user->common_user); + return common_user_get_display_name (GET_USER_PRIVATE (user)->common_user); } /** @@ -414,7 +420,7 @@ const gchar * lightdm_user_get_home_directory (LightDMUser *user) { g_return_val_if_fail (LIGHTDM_IS_USER (user), NULL); - return common_user_get_home_directory (user->common_user); + return common_user_get_home_directory (GET_USER_PRIVATE (user)->common_user); } /** @@ -429,7 +435,7 @@ const gchar * lightdm_user_get_image (LightDMUser *user) { g_return_val_if_fail (LIGHTDM_IS_USER (user), NULL); - return common_user_get_image (user->common_user); + return common_user_get_image (GET_USER_PRIVATE (user)->common_user); } /** @@ -444,7 +450,7 @@ const gchar * lightdm_user_get_background (LightDMUser *user) { g_return_val_if_fail (LIGHTDM_IS_USER (user), NULL); - return common_user_get_background (user->common_user); + return common_user_get_background (GET_USER_PRIVATE (user)->common_user); } /** @@ -459,7 +465,7 @@ const gchar * lightdm_user_get_language (LightDMUser *user) { g_return_val_if_fail (LIGHTDM_IS_USER (user), NULL); - return common_user_get_language (user->common_user); + return common_user_get_language (GET_USER_PRIVATE (user)->common_user); } /** @@ -474,7 +480,7 @@ const gchar * lightdm_user_get_layout (LightDMUser *user) { g_return_val_if_fail (LIGHTDM_IS_USER (user), NULL); - return common_user_get_layout (user->common_user); + return common_user_get_layout (GET_USER_PRIVATE (user)->common_user); } /** @@ -489,7 +495,7 @@ const gchar * const * lightdm_user_get_layouts (LightDMUser *user) { g_return_val_if_fail (LIGHTDM_IS_USER (user), NULL); - return common_user_get_layouts (user->common_user); + return common_user_get_layouts (GET_USER_PRIVATE (user)->common_user); } /** @@ -504,7 +510,7 @@ const gchar * lightdm_user_get_session (LightDMUser *user) { g_return_val_if_fail (LIGHTDM_IS_USER (user), NULL); - return common_user_get_session (user->common_user); + return common_user_get_session (GET_USER_PRIVATE (user)->common_user); } /** @@ -519,7 +525,7 @@ gboolean lightdm_user_get_logged_in (LightDMUser *user) { g_return_val_if_fail (LIGHTDM_IS_USER (user), FALSE); - return common_user_get_logged_in (user->common_user); + return common_user_get_logged_in (GET_USER_PRIVATE (user)->common_user); } /** @@ -534,7 +540,7 @@ gboolean lightdm_user_get_has_messages (LightDMUser *user) { g_return_val_if_fail (LIGHTDM_IS_USER (user), FALSE); - return common_user_get_has_messages (user->common_user); + return common_user_get_has_messages (GET_USER_PRIVATE (user)->common_user); } /** @@ -549,7 +555,7 @@ uid_t lightdm_user_get_uid (LightDMUser *user) { g_return_val_if_fail (LIGHTDM_IS_USER (user), (uid_t)-1); - return common_user_get_uid (user->common_user); + return common_user_get_uid (GET_USER_PRIVATE (user)->common_user); } static void @@ -564,11 +570,12 @@ lightdm_user_set_property (GObject *object, GParamSpec *pspec) { LightDMUser *self = LIGHTDM_USER (object); + LightDMUserPrivate *priv = GET_USER_PRIVATE (self); switch (prop_id) { case USER_PROP_COMMON_USER: - self->common_user = g_value_dup_object (value); + priv->common_user = g_value_dup_object (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -637,8 +644,9 @@ static void lightdm_user_finalize (GObject *object) { LightDMUser *self = LIGHTDM_USER (object); + LightDMUserPrivate *priv = GET_USER_PRIVATE (self); - g_object_unref (self->common_user); + g_object_unref (priv->common_user); G_OBJECT_CLASS (lightdm_user_parent_class)->finalize (object); } @@ -648,6 +656,8 @@ lightdm_user_class_init (LightDMUserClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); + g_type_class_add_private (klass, sizeof (LightDMUserPrivate)); + object_class->set_property = lightdm_user_set_property; object_class->get_property = lightdm_user_get_property; object_class->finalize = lightdm_user_finalize; @@ -755,13 +765,13 @@ lightdm_user_class_init (LightDMUserClass *klass) * LightDMUser::changed: * @user: A #LightDMUser * - * The ::changed signal gets emitted when this user account is modified. + * The ::changed signal gets emitted this user account is modified. **/ user_signals[CHANGED] = g_signal_new (LIGHTDM_SIGNAL_USER_CHANGED, G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, - 0, + G_STRUCT_OFFSET (LightDMUserClass, changed), NULL, NULL, NULL, G_TYPE_NONE, 0);