summaryrefslogtreecommitdiff
path: root/liblightdm-gobject
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2011-09-20 10:25:04 +1000
committerRobert Ancell <robert.ancell@canonical.com>2011-09-20 10:25:04 +1000
commitb34ddd2b987636d41f6a6490f4d9bb66ee2f5a46 (patch)
tree054577ef473cc18b57ee97d2a433925d6d12d274 /liblightdm-gobject
parenta6116ba970407377c3e25775da8dffe938c01367 (diff)
downloadlightdm-git-b34ddd2b987636d41f6a6490f4d9bb66ee2f5a46.tar.gz
Add ability to set the language of a user from the greeter
Diffstat (limited to 'liblightdm-gobject')
-rw-r--r--liblightdm-gobject/greeter.c28
-rw-r--r--liblightdm-gobject/lightdm/greeter.h2
2 files changed, 29 insertions, 1 deletions
diff --git a/liblightdm-gobject/greeter.c b/liblightdm-gobject/greeter.c
index 0b2b6302..d0819c8c 100644
--- a/liblightdm-gobject/greeter.c
+++ b/liblightdm-gobject/greeter.c
@@ -74,7 +74,8 @@ typedef enum
GREETER_MESSAGE_AUTHENTICATE_AS_GUEST,
GREETER_MESSAGE_CONTINUE_AUTHENTICATION,
GREETER_MESSAGE_START_SESSION,
- GREETER_MESSAGE_CANCEL_AUTHENTICATION
+ GREETER_MESSAGE_CANCEL_AUTHENTICATION,
+ GREETER_MESSAGE_SET_LANGUAGE
} GreeterMessage;
/* Messages from the server to the greeter */
@@ -856,6 +857,31 @@ lightdm_greeter_get_authentication_user (LightDMGreeter *greeter)
}
/**
+ * lightdm_greeter_set_language:
+ * @greeter: A #LightDMGreeter
+ * @language: The language to use for this user.
+ *
+ * Set the language for the currently authenticated user.
+ **/
+void
+lightdm_greeter_set_language (LightDMGreeter *greeter, const gchar *language)
+{
+ LightDMGreeterPrivate *priv;
+ guint8 message[MAX_MESSAGE_LENGTH];
+ gsize offset = 0;
+
+ g_return_if_fail (LIGHTDM_IS_GREETER (greeter));
+
+ priv = GET_PRIVATE (greeter);
+
+ g_return_if_fail (priv->connected);
+
+ write_header (message, MAX_MESSAGE_LENGTH, GREETER_MESSAGE_SET_LANGUAGE, 0, &offset);
+ write_string (message, MAX_MESSAGE_LENGTH, language, &offset);
+ write_message (greeter, message, offset);
+}
+
+/**
* lightdm_greeter_start_session_sync:
* @greeter: A #LightDMGreeter
* @session: (allow-none): The session to log into or #NULL to use the default.
diff --git a/liblightdm-gobject/lightdm/greeter.h b/liblightdm-gobject/lightdm/greeter.h
index 52b43311..c1b281d5 100644
--- a/liblightdm-gobject/lightdm/greeter.h
+++ b/liblightdm-gobject/lightdm/greeter.h
@@ -108,6 +108,8 @@ gboolean lightdm_greeter_get_is_authenticated (LightDMGreeter *greeter);
const gchar *lightdm_greeter_get_authentication_user (LightDMGreeter *greeter);
+void lightdm_greeter_set_language (LightDMGreeter *greeter, const gchar *language);
+
gboolean lightdm_greeter_start_session_sync (LightDMGreeter *greeter, const gchar *session, GError **error);
G_END_DECLS