diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2011-07-19 09:54:34 +1000 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2011-07-19 09:54:34 +1000 |
commit | 7d8abb8c241ad20de1cb9583acf63288a6f5c863 (patch) | |
tree | 7d177ed986bd9825ddf12f58471fe46a823486e4 /doc | |
parent | e0a1013096bd42183f15c94ba5e81981938a647d (diff) | |
download | lightdm-7d8abb8c241ad20de1cb9583acf63288a6f5c863.tar.gz |
Improve liblightdm-gobject documentation
Diffstat (limited to 'doc')
-rw-r--r-- | doc/lightdm-gobject-0-sections.txt | 2 | ||||
-rw-r--r-- | doc/tmpl/greeter.sgml | 75 |
2 files changed, 52 insertions, 25 deletions
diff --git a/doc/lightdm-gobject-0-sections.txt b/doc/lightdm-gobject-0-sections.txt index 7e6145d2..2c5814be 100644 --- a/doc/lightdm-gobject-0-sections.txt +++ b/doc/lightdm-gobject-0-sections.txt @@ -88,6 +88,8 @@ ldm_session_new <SECTION> <FILE>greeter</FILE> <TITLE>LdmGreeter</TITLE> +LdmMessageType +LdmPromptType ldm_greeter_new ldm_greeter_connect_to_server ldm_greeter_get_hostname diff --git a/doc/tmpl/greeter.sgml b/doc/tmpl/greeter.sgml index baf237a0..33d9172e 100644 --- a/doc/tmpl/greeter.sgml +++ b/doc/tmpl/greeter.sgml @@ -9,45 +9,58 @@ Manages connection to LightDM server and provides greeter functionality #LdmGreeter is an object that manages the connection to the LightDM server and provides common greeter functionality. </para> <para> -To connect to the display manager instanciate a #LdmGreeter object from inside the greeter process: <example> -<title>Connecting to the display manager</title> +<title>Example Greeter</title> <programlisting><![CDATA[ -LdmGreeter *greeter = ldm_greeter_new (); -if (!ldm_greeter_connect (LDM_GREETER (greeter))) { - // Log an error - exit (0); +int main () +{ + LdmGreeter *greeter = ldm_greeter_new (); + + g_object_connect (greeter, "connected", G_CALLBACK (connected_cb), NULL); + g_object_connect (greeter, "show-prompt", G_CALLBACK (show_prompt_cb), NULL); + g_object_connect (greeter, "authentication-complete", G_CALLBACK (authentication_complete_cb), NULL); + g_object_connect (greeter, "session-failed", G_CALLBACK (session_failed_cb), NULL); + g_object_connect (greeter, "quit", G_CALLBACK (quit_cb), NULL); + + if (!ldm_greeter_connect_to_server (LDM_GREETER (greeter))) { + // Log an error + return 0; + } } -]]></programlisting> -</example> -Information on how to connect to the display manager is passed using environment variables. -</para> -<para> -Once connected, start an authentication conversation like this: -<example> -<title>Example Authorization Conversation</title> -<programlisting><![CDATA[ -static void show_prompt_cb (LdmGreeter *greeter, const char *text) + +static void connected_cb (LdmGreeter *greeter) +{ + // Start authentication + ldm_greeter_login_with_user_prompt (greeter); +} + +static void show_prompt_cb (LdmGreeter *greeter, const char *text, LdmPromptType type) { // Show the user the message and prompt for some response - gchar *secret = prompt_user (text); + gchar *secret = prompt_user (text, type); // Give the result to the user - ldm_greeter_respond (greeter, secret); + ldm_greeter_respond (greeter, response); } static void authentication_complete_cb (LdmGreeter *greeter) { if (ldm_greeter_get_is_authenticated (greeter)) { - // Log in to this session. - ldm_greeter_login (greeter, ldm_greeter_get_authentication_user (greeter), ldm_greeter_get_default_session (greeter)); + // Start the user session + ldm_greeter_start_default_session (greeter); } else { // Display a warning and reset the greeter - reset_login_screen (); + reset_login_screen (``Incorrect password, please try again''); } } +static void session_failed_cb (LdmGreeter *greeter) +{ + // Display a warning and reset the greeter + reset_login_screen (``Failed to login''); +} + static void quit_cb (LdmGreeter *greeter) { // Clean up @@ -55,10 +68,6 @@ static void quit_cb (LdmGreeter *greeter) exit (0); } - -g_object_connect (G_OBJECT (greeter), "show-prompt", G_CALLBACK (show_prompt_cb), NULL); -g_object_connect (G_OBJECT (greeter), "authentication-complete", G_CALLBACK (authentication_complete_cb), NULL); -g_object_connect (G_OBJECT (greeter), "quit", G_CALLBACK (quit_cb), NULL); ]]></programlisting> </example> </para> @@ -74,6 +83,22 @@ g_object_connect (G_OBJECT (greeter), "quit", G_CALLBACK (quit_cb), NULL); <!-- ##### SECTION Image ##### --> +<!-- ##### ENUM LdmMessageType ##### --> +<para> + +</para> + +@LDM_MESSAGE_TYPE_INFO: +@LDM_MESSAGE_TYPE_ERROR: + +<!-- ##### ENUM LdmPromptType ##### --> +<para> + +</para> + +@LDM_PROMPT_TYPE_QUESTION: +@LDM_PROMPT_TYPE_SECRET: + <!-- ##### FUNCTION ldm_greeter_new ##### --> <para> |