X-Git-Url: http://rtime.felk.cvut.cz/gitweb/sojka/lightdm.git/blobdiff_plain/9616e7b7c34ad657df46a4890d6aa723cc1120d2..81d8946c87a7b2235db71878787f79d215cca770:/liblightdm-gobject/lightdm/greeter.h diff --git a/liblightdm-gobject/lightdm/greeter.h b/liblightdm-gobject/lightdm/greeter.h index b8dc4a31..11f5e4bb 100644 --- a/liblightdm-gobject/lightdm/greeter.h +++ b/liblightdm-gobject/lightdm/greeter.h @@ -4,141 +4,170 @@ * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free - * Software Foundation; either version 3 of the License, or (at your option) any - * later version. See http://www.gnu.org/copyleft/lgpl.html the full text of the - * license. + * Software Foundation; either version 2 or version 3 of the License. + * See http://www.gnu.org/copyleft/lgpl.html the full text of the license. */ -#ifndef _LDM_GREETER_H_ -#define _LDM_GREETER_H_ +#ifndef LIGHTDM_GREETER_H_ +#define LIGHTDM_GREETER_H_ #include +#include G_BEGIN_DECLS -#define LDM_TYPE_GREETER (ldm_greeter_get_type()) -#define LDM_GREETER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LDM_TYPE_GREETER, LdmGreeter)); -#define LDM_GREETER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LDM_TYPE_GREETER, LdmGreeterClass)) -#define LDM_IS_GREETER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LDM_TYPE_GREETER)) -#define LDM_IS_GREETER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LDM_TYPE_GREETER)) -#define LDM_GREETER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LDM_TYPE_GREETER, LdmGreeterClass)) +#define LIGHTDM_TYPE_GREETER (lightdm_greeter_get_type()) -typedef struct _LdmGreeter LdmGreeter; -typedef struct _LdmGreeterClass LdmGreeterClass; -typedef struct _LdmGreeterPrivate LdmGreeterPrivate; +G_DECLARE_DERIVABLE_TYPE (LightDMGreeter, lightdm_greeter, LIGHTDM, GREETER, GObject) -#include "user.h" -#include "language.h" -#include "layout.h" -#include "session.h" +#define LIGHTDM_GREETER_ERROR lightdm_greeter_error_quark () +#define LIGHTDM_GREETER_SIGNAL_SHOW_PROMPT "show-prompt" +#define LIGHTDM_GREETER_SIGNAL_SHOW_MESSAGE "show-message" +#define LIGHTDM_GREETER_SIGNAL_AUTHENTICATION_COMPLETE "authentication-complete" +#define LIGHTDM_GREETER_SIGNAL_AUTOLOGIN_TIMER_EXPIRED "autologin-timer-expired" +#define LIGHTDM_GREETER_SIGNAL_IDLE "idle" +#define LIGHTDM_GREETER_SIGNAL_RESET "reset" + +/** + * LightDMPromptType: + * @LIGHTDM_PROMPT_TYPE_QUESTION: Prompt is a question. The information can be shown as it is entered. + * @LIGHTDM_PROMPT_TYPE_SECRET: Prompt is for secret information. The entered information should be obscured so it can't be publically visible. + */ typedef enum { - LDM_PROMPT_TYPE_QUESTION, - LDM_PROMPT_TYPE_SECRET -} LdmPromptType; + LIGHTDM_PROMPT_TYPE_QUESTION, + LIGHTDM_PROMPT_TYPE_SECRET +} LightDMPromptType; + +GType lightdm_prompt_type_get_type (void); +/** + * LightDMMessageType: + * @LIGHTDM_MESSAGE_TYPE_INFO: Informational message. + * @LIGHTDM_MESSAGE_TYPE_ERROR: Error message. + */ typedef enum { - LDM_MESSAGE_TYPE_INFO, - LDM_MESSAGE_TYPE_ERROR -} LdmMessageType; + LIGHTDM_MESSAGE_TYPE_INFO, + LIGHTDM_MESSAGE_TYPE_ERROR +} LightDMMessageType; -struct _LdmGreeter -{ - GObject parent_instance; - /**/ - LdmGreeterPrivate *priv; -}; +GType lightdm_message_type_get_type (void); -struct _LdmGreeterClass +struct _LightDMGreeterClass { GObjectClass parent_class; - void (*connected)(LdmGreeter *greeter); - void (*show_prompt)(LdmGreeter *greeter, const gchar *text, LdmPromptType type); - void (*show_message)(LdmGreeter *greeter, const gchar *text, LdmMessageType type); - void (*authentication_complete)(LdmGreeter *greeter); - void (*session_failed)(LdmGreeter *greeter); - void (*timed_login)(LdmGreeter *greeter, const gchar *username); - void (*user_added)(LdmGreeter *greeter, LdmUser *user); - void (*user_changed)(LdmGreeter *greeter, LdmUser *user); - void (*user_removed)(LdmGreeter *greeter, LdmUser *user); - void (*quit)(LdmGreeter *greeter); + void (*show_message)(LightDMGreeter *greeter, const gchar *text, LightDMMessageType type); + void (*show_prompt)(LightDMGreeter *greeter, const gchar *text, LightDMPromptType type); + void (*authentication_complete)(LightDMGreeter *greeter); + void (*autologin_timer_expired)(LightDMGreeter *greeter); + void (*idle)(LightDMGreeter *greeter); + void (*reset)(LightDMGreeter *greeter); + + /* Reserved */ + void (*reserved1) (void); + void (*reserved2) (void); + void (*reserved3) (void); + void (*reserved4) (void); }; -GType ldm_greeter_get_type (void); +/** + * LightDMGreeterError: + * @LIGHTDM_GREETER_ERROR_COMMUNICATION_ERROR: error communicating with daemon. + * @LIGHTDM_GREETER_ERROR_CONNECTION_FAILED: failed to connect to the daemon. + * @LIGHTDM_GREETER_ERROR_SESSION_FAILED: requested session failed to start. + * @LIGHTDM_GREETER_ERROR_NO_AUTOLOGIN: autologin not configured. + * @LIGHTDM_GREETER_ERROR_INVALID_USER: autologin not configured. + * + * Error codes returned by greeter operations. + */ +typedef enum +{ + LIGHTDM_GREETER_ERROR_COMMUNICATION_ERROR, + LIGHTDM_GREETER_ERROR_CONNECTION_FAILED, + LIGHTDM_GREETER_ERROR_SESSION_FAILED, + LIGHTDM_GREETER_ERROR_NO_AUTOLOGIN, + LIGHTDM_GREETER_ERROR_INVALID_USER +} LightDMGreeterError; + +GQuark lightdm_greeter_error_quark (void); + +GType lightdm_greeter_error_get_type (void); -LdmGreeter *ldm_greeter_new (void); +LightDMGreeter *lightdm_greeter_new (void); -gboolean ldm_greeter_connect_to_server (LdmGreeter *greeter); +void lightdm_greeter_set_resettable (LightDMGreeter *greeter, gboolean resettable); -const gchar *ldm_greeter_get_hostname (LdmGreeter *greeter); +void lightdm_greeter_connect_to_daemon (LightDMGreeter *greeter, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); -gint ldm_greeter_get_num_users (LdmGreeter *greeter); +gboolean lightdm_greeter_connect_to_daemon_finish (LightDMGreeter *greeter, GAsyncResult *result, GError **error); -GList *ldm_greeter_get_users (LdmGreeter *greeter); +gboolean lightdm_greeter_connect_to_daemon_sync (LightDMGreeter *greeter, GError **error); -LdmUser *ldm_greeter_get_user_by_name (LdmGreeter *greeter, const gchar *username); +const gchar *lightdm_greeter_get_hint (LightDMGreeter *greeter, const gchar *name); -const gchar *ldm_greeter_get_default_language (LdmGreeter *greeter); +const gchar *lightdm_greeter_get_default_session_hint (LightDMGreeter *greeter); -GList *ldm_greeter_get_languages (LdmGreeter *greeter); +gboolean lightdm_greeter_get_hide_users_hint (LightDMGreeter *greeter); -GList *ldm_greeter_get_layouts (LdmGreeter *greeter); +gboolean lightdm_greeter_get_show_manual_login_hint (LightDMGreeter *greeter); -void ldm_greeter_set_layout (LdmGreeter *greeter, const gchar *layout); +gboolean lightdm_greeter_get_show_remote_login_hint (LightDMGreeter *greeter); -const gchar *ldm_greeter_get_layout (LdmGreeter *greeter); +gboolean lightdm_greeter_get_lock_hint (LightDMGreeter *greeter); -GList *ldm_greeter_get_sessions (LdmGreeter *greeter); +gboolean lightdm_greeter_get_has_guest_account_hint (LightDMGreeter *greeter); -const gchar *ldm_greeter_get_default_session (LdmGreeter *greeter); +const gchar *lightdm_greeter_get_select_user_hint (LightDMGreeter *greeter); -gboolean ldm_greeter_get_has_guest_session (LdmGreeter *greeter); +gboolean lightdm_greeter_get_select_guest_hint (LightDMGreeter *greeter); -const gchar *ldm_greeter_get_timed_login_user (LdmGreeter *greeter); +const gchar *lightdm_greeter_get_autologin_user_hint (LightDMGreeter *greeter); -gint ldm_greeter_get_timed_login_delay (LdmGreeter *greeter); +gboolean lightdm_greeter_get_autologin_guest_hint (LightDMGreeter *greeter); -void ldm_greeter_cancel_timed_login (LdmGreeter *greeter); +gint lightdm_greeter_get_autologin_timeout_hint (LightDMGreeter *greeter); -void ldm_greeter_login (LdmGreeter *greeter, const char *username); +void lightdm_greeter_cancel_autologin (LightDMGreeter *greeter); -void ldm_greeter_login_with_user_prompt (LdmGreeter *greeter); +gboolean lightdm_greeter_authenticate (LightDMGreeter *greeter, const gchar *username, GError **error); -void ldm_greeter_login_as_guest (LdmGreeter *greeter); +gboolean lightdm_greeter_authenticate_as_guest (LightDMGreeter *greeter, GError **error); -void ldm_greeter_respond (LdmGreeter *greeter, const gchar *response); +gboolean lightdm_greeter_authenticate_autologin (LightDMGreeter *greeter, GError **error); -void ldm_greeter_cancel_authentication (LdmGreeter *greeter); +gboolean lightdm_greeter_authenticate_remote (LightDMGreeter *greeter, const gchar *session, const gchar *username, GError **error); -gboolean ldm_greeter_get_in_authentication (LdmGreeter *greeter); +gboolean lightdm_greeter_respond (LightDMGreeter *greeter, const gchar *response, GError **error); -gboolean ldm_greeter_get_is_authenticated (LdmGreeter *greeter); +gboolean lightdm_greeter_cancel_authentication (LightDMGreeter *greeter, GError **error); -const gchar *ldm_greeter_get_authentication_user (LdmGreeter *greeter); +gboolean lightdm_greeter_get_in_authentication (LightDMGreeter *greeter); -void ldm_greeter_start_session (LdmGreeter *greeter, const gchar *session); +gboolean lightdm_greeter_get_is_authenticated (LightDMGreeter *greeter); -void ldm_greeter_start_default_session (LdmGreeter *greeter); +const gchar *lightdm_greeter_get_authentication_user (LightDMGreeter *greeter); -gboolean ldm_greeter_get_can_suspend (LdmGreeter *greeter); +gboolean lightdm_greeter_set_language (LightDMGreeter *greeter, const gchar *language, GError **error); -void ldm_greeter_suspend (LdmGreeter *greeter); +void lightdm_greeter_start_session (LightDMGreeter *greeter, const gchar *session, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); -gboolean ldm_greeter_get_can_hibernate (LdmGreeter *greeter); +gboolean lightdm_greeter_start_session_finish (LightDMGreeter *greeter, GAsyncResult *result, GError **error); -void ldm_greeter_hibernate (LdmGreeter *greeter); +gboolean lightdm_greeter_start_session_sync (LightDMGreeter *greeter, const gchar *session, GError **error); -gboolean ldm_greeter_get_can_restart (LdmGreeter *greeter); +void lightdm_greeter_ensure_shared_data_dir (LightDMGreeter *greeter, const gchar *username, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); -void ldm_greeter_restart (LdmGreeter *greeter); +gchar *lightdm_greeter_ensure_shared_data_dir_finish (LightDMGreeter *greeter, GAsyncResult *result, GError **error); -gboolean ldm_greeter_get_can_shutdown (LdmGreeter *greeter); +gchar *lightdm_greeter_ensure_shared_data_dir_sync (LightDMGreeter *greeter, const gchar *username, GError **error); -void ldm_greeter_shutdown (LdmGreeter *greeter); +#ifndef LIGHTDM_DISABLE_DEPRECATED +gboolean lightdm_greeter_connect_sync (LightDMGreeter *greeter, GError **error); +#endif G_END_DECLS -#endif /* _LDM_GREETER_H_ */ +#endif /* LIGHTDM_GREETER_H_ */