<!-- ##### SECTION Title ##### -->
Greeter Interface

<!-- ##### SECTION Short_Description ##### -->
Make a connection to the LightDM daemon and authenticate users

<!-- ##### SECTION Long_Description ##### -->
<para>
#LightDMGreeter is an object that manages the connection to the LightDM server and provides common greeter functionality.
</para>
<para>
<example>
<title>Example Greeter</title>
<programlisting><![CDATA[
int main ()
{
    GMainLoop *main_loop;
    LightDMGreeter *greeter

    main_loop = g_main_loop_new ();

    greeter = lightdm_greeter_new ();
    g_object_connect (greeter, "show-prompt", G_CALLBACK (show_prompt_cb), NULL);
    g_object_connect (greeter, "authentication-complete", G_CALLBACK (authentication_complete_cb), NULL);

    // Connect to LightDM daemon
    if (!lightdm_greeter_connect_sync (greeter, NULL))
        return EXIT_FAILURE;

    // Start authentication
    lightdm_greeter_authenticate (greeter, NULL);

    g_main_loop_run (main_loop);

    return EXIT_SUCCESS;
}

static void show_prompt_cb (LightDMGreeter *greeter, const char *text, LightDMPromptType type)
{
    // Show the user the message and prompt for some response
    gchar *secret = prompt_user (text, type);

    // Give the result to the user
    lightdm_greeter_respond (greeter, response);
}

static void authentication_complete_cb (LightDMGreeter *greeter)
{
    // Start the session
    if (!lightdm_greeter_get_is_authenticated (greeter) ||
        !lightdm_greeter_start_session_sync (greeter, NULL))
    {
        // Failed authentication, try again
        lightdm_greeter_authenticate (greeter, NULL);
    }
}
]]></programlisting>
</example>
</para>

<!-- ##### SECTION See_Also ##### -->
<para>

</para>

<!-- ##### SECTION Stability_Level ##### -->


<!-- ##### SECTION Image ##### -->


<!-- ##### USER_FUNCTION show_message ##### -->
<para>

</para>

@greeter: 
@text: 
@type: 


<!-- ##### USER_FUNCTION show_prompt ##### -->
<para>

</para>

@greeter: 
@text: 
@type: 


<!-- ##### USER_FUNCTION authentication_complete ##### -->
<para>

</para>

@greeter: 


<!-- ##### USER_FUNCTION autologin_timer_expired ##### -->
<para>

</para>

@greeter: 


<!-- ##### ENUM LightDMMessageType ##### -->
<para>

</para>

@LIGHTDM_MESSAGE_TYPE_INFO: 
@LIGHTDM_MESSAGE_TYPE_ERROR: 

<!-- ##### ENUM LightDMPromptType ##### -->
<para>

</para>

@LIGHTDM_PROMPT_TYPE_QUESTION: 
@LIGHTDM_PROMPT_TYPE_SECRET: 

<!-- ##### FUNCTION lightdm_greeter_new ##### -->
<para>

</para>

@void: 
@Returns: 


<!-- ##### FUNCTION lightdm_greeter_connect_sync ##### -->
<para>

</para>

@greeter: 
@error: 
@Returns: 


<!-- ##### FUNCTION lightdm_greeter_ensure_shared_data_dir_sync ##### -->
<para>

</para>

@greeter: 
@username: 
@Returns: 


<!-- ##### FUNCTION lightdm_greeter_get_default_session_hint ##### -->
<para>

</para>

@greeter: 
@Returns: 


<!-- ##### FUNCTION lightdm_greeter_get_hint ##### -->
<para>

</para>

@greeter: 
@name: 
@Returns: 


<!-- ##### FUNCTION lightdm_greeter_get_lock_hint ##### -->
<para>

</para>

@greeter: 
@Returns: 


<!-- ##### FUNCTION lightdm_greeter_get_has_guest_account_hint ##### -->
<para>

</para>

@greeter: 
@Returns: 


<!-- ##### FUNCTION lightdm_greeter_get_hide_users_hint ##### -->
<para>

</para>

@greeter: 
@Returns: 


<!-- ##### FUNCTION lightdm_greeter_get_show_manual_login_hint ##### -->
<para>

</para>

@greeter: 
@Returns: 


<!-- ##### FUNCTION lightdm_greeter_get_show_remote_login_hint ##### -->
<para>

</para>

@greeter: 
@Returns: 


<!-- ##### FUNCTION lightdm_greeter_get_select_user_hint ##### -->
<para>

</para>

@greeter: 
@Returns: 


<!-- ##### FUNCTION lightdm_greeter_get_select_guest_hint ##### -->
<para>

</para>

@greeter: 
@Returns: 


<!-- ##### FUNCTION lightdm_greeter_get_autologin_user_hint ##### -->
<para>

</para>

@greeter: 
@Returns: 


<!-- ##### FUNCTION lightdm_greeter_get_autologin_guest_hint ##### -->
<para>

</para>

@greeter: 
@Returns: 


<!-- ##### FUNCTION lightdm_greeter_get_autologin_timeout_hint ##### -->
<para>

</para>

@greeter: 
@Returns: 


<!-- ##### FUNCTION lightdm_greeter_set_language ##### -->
<para>

</para>

@greeter: 
@language: 


<!-- ##### FUNCTION lightdm_greeter_cancel_autologin ##### -->
<para>

</para>

@greeter: 


<!-- ##### FUNCTION lightdm_greeter_authenticate ##### -->
<para>

</para>

@greeter: 
@username: 


<!-- ##### FUNCTION lightdm_greeter_authenticate_as_guest ##### -->
<para>

</para>

@greeter: 


<!-- ##### FUNCTION lightdm_greeter_authenticate_autologin ##### -->
<para>

</para>

@greeter: 


<!-- ##### FUNCTION lightdm_greeter_authenticate_remote ##### -->
<para>

</para>

@greeter: 
@session: 
@username: 


<!-- ##### FUNCTION lightdm_greeter_respond ##### -->
<para>

</para>

@greeter: 
@response: 


<!-- ##### FUNCTION lightdm_greeter_cancel_authentication ##### -->
<para>

</para>

@greeter: 


<!-- ##### FUNCTION lightdm_greeter_get_in_authentication ##### -->
<para>

</para>

@greeter: 
@Returns: 


<!-- ##### FUNCTION lightdm_greeter_get_is_authenticated ##### -->
<para>

</para>

@greeter: 
@Returns: 


<!-- ##### FUNCTION lightdm_greeter_get_authentication_user ##### -->
<para>

</para>

@greeter: 
@Returns: 


<!-- ##### FUNCTION lightdm_greeter_start_session_sync ##### -->
<para>

</para>

@greeter: 
@session: 
@error: 
@Returns: 


