summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2011-07-19 09:54:34 +1000
committerRobert Ancell <robert.ancell@canonical.com>2011-07-19 09:54:34 +1000
commit7d8abb8c241ad20de1cb9583acf63288a6f5c863 (patch)
tree7d177ed986bd9825ddf12f58471fe46a823486e4 /doc
parente0a1013096bd42183f15c94ba5e81981938a647d (diff)
downloadlightdm-7d8abb8c241ad20de1cb9583acf63288a6f5c863.tar.gz
Improve liblightdm-gobject documentation
Diffstat (limited to 'doc')
-rw-r--r--doc/lightdm-gobject-0-sections.txt2
-rw-r--r--doc/tmpl/greeter.sgml75
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>