diff options
author | William Jon McCann <jmccann@redhat.com> | 2008-02-20 18:41:49 +0000 |
---|---|---|
committer | William Jon McCann <mccann@src.gnome.org> | 2008-02-20 18:41:49 +0000 |
commit | 9400160560215c509759efca6fb365f12e4a8bc5 (patch) | |
tree | 3653a68ebba12afe5864ddc8737fd1f491bda275 /gui/simple-greeter/gdm-user-chooser-widget.c | |
parent | 7ded9b2049a472b9fb5f6f2f70e270e14fcee656 (diff) | |
download | gdm-9400160560215c509759efca6fb365f12e4a8bc5.tar.gz |
Add initial support for timed login.
2008-02-20 William Jon McCann <jmccann@redhat.com>
* common/gdm-settings-client.c: (gdm_settings_client_get_string):
* common/gdm-settings-keys.h:
* daemon/gdm-factory-slave.c: (on_greeter_begin_verification),
(on_greeter_begin_verification_for_user):
* daemon/gdm-greeter-server.c: (handle_begin_timed_login),
(greeter_handle_child_message), (do_introspect),
(gdm_greeter_server_class_init):
* daemon/gdm-greeter-server.h:
* daemon/gdm-product-slave.c: (on_relay_setup),
(on_relay_setup_for_user):
* daemon/gdm-session-direct.c: (gdm_session_direct_init),
(send_setup), (send_setup_for_user), (gdm_session_direct_setup),
(gdm_session_direct_setup_for_user),
(gdm_session_direct_set_property),
(gdm_session_direct_get_property), (gdm_session_direct_dispose),
(gdm_session_direct_class_init):
* daemon/gdm-session-relay.c: (send_dbus_string_string_signal),
(gdm_session_relay_setup), (gdm_session_relay_setup_for_user),
(do_introspect):
* daemon/gdm-session.c: (gdm_session_setup),
(gdm_session_setup_for_user):
* daemon/gdm-session.h:
* daemon/gdm-simple-slave.c: (on_greeter_begin_verification),
(on_greeter_begin_timed_login),
(on_greeter_begin_verification_for_user), (run_greeter):
* daemon/simple-slave-main.c: (main):
* daemon/test-session.c: (on_open):
* gui/simple-greeter/gdm-greeter-client.c:
(emit_string_signal_for_message),
(gdm_greeter_client_call_begin_timed_login):
* gui/simple-greeter/gdm-greeter-client.h:
* gui/simple-greeter/gdm-greeter-login-window.c:
(remove_timed_login_timeout), (timed_login_timer),
(restart_timed_login_timeout),
(on_login_button_clicked_answer_query),
(on_login_button_clicked_timed_login), (set_log_in_button_mode),
(switch_mode), (do_cancel), (reset_dialog),
(gdm_greeter_login_window_info_query),
(gdm_greeter_login_window_secret_info_query), (on_user_chosen),
(load_theme), (read_configuration),
(gdm_greeter_login_window_constructor),
(gdm_greeter_login_window_class_init),
(gdm_greeter_login_window_init):
* gui/simple-greeter/gdm-greeter-login-window.h:
* gui/simple-greeter/gdm-greeter-session.c: (on_begin_timed_login),
(toggle_login_window):
* gui/simple-greeter/gdm-user-chooser-dialog.c:
(gdm_user_chooser_dialog_set_show_other_user),
(gdm_user_chooser_dialog_set_show_guest_user),
(gdm_user_chooser_dialog_set_show_auto_user),
(gdm_user_chooser_dialog_init):
* gui/simple-greeter/gdm-user-chooser-dialog.h:
* gui/simple-greeter/gdm-user-chooser-widget.c: (add_user_other),
(add_user_guest), (add_user_auto), (remove_user_other),
(remove_user_guest), (remove_user_auto),
(gdm_user_chooser_widget_set_show_other_user),
(gdm_user_chooser_widget_set_show_guest_user),
(gdm_user_chooser_widget_set_show_auto_user),
(gdm_user_chooser_widget_constructor),
(gdm_user_chooser_widget_init):
* gui/simple-greeter/gdm-user-chooser-widget.h:
* gui/simple-greeter/greeter-main.c: (main):
* gui/simple-greeter/test-greeter-login-window.c: (main):
* gui/simple-greeter/test-user-chooser.c: (main):
Add initial support for timed login.
svn path=/trunk/; revision=5820
Diffstat (limited to 'gui/simple-greeter/gdm-user-chooser-widget.c')
-rw-r--r-- | gui/simple-greeter/gdm-user-chooser-widget.c | 118 |
1 files changed, 92 insertions, 26 deletions
diff --git a/gui/simple-greeter/gdm-user-chooser-widget.c b/gui/simple-greeter/gdm-user-chooser-widget.c index c9c31591..46884118 100644 --- a/gui/simple-greeter/gdm-user-chooser-widget.c +++ b/gui/simple-greeter/gdm-user-chooser-widget.c @@ -58,6 +58,7 @@ struct GdmUserChooserWidgetPrivate guint show_other_user : 1; guint show_guest_user : 1; + guint show_auto_user : 1; }; enum { @@ -70,6 +71,66 @@ static void gdm_user_chooser_widget_finalize (GObject * G_DEFINE_TYPE (GdmUserChooserWidget, gdm_user_chooser_widget, GDM_TYPE_CHOOSER_WIDGET) +static void +add_user_other (GdmUserChooserWidget *widget) +{ + gdm_chooser_widget_add_item (GDM_CHOOSER_WIDGET (widget), + GDM_USER_CHOOSER_USER_OTHER, + widget->priv->stock_person_pixbuf, + _("Other..."), + _("Choose a different account"), + 0, + FALSE, + TRUE); +} + +static void +add_user_guest (GdmUserChooserWidget *widget) +{ + gdm_chooser_widget_add_item (GDM_CHOOSER_WIDGET (widget), + GDM_USER_CHOOSER_USER_GUEST, + widget->priv->stock_person_pixbuf, + _("Guest"), + _("Login as a temporary guest"), + 0, + FALSE, + TRUE); +} + +static void +add_user_auto (GdmUserChooserWidget *widget) +{ + gdm_chooser_widget_add_item (GDM_CHOOSER_WIDGET (widget), + GDM_USER_CHOOSER_USER_AUTO, + widget->priv->stock_person_pixbuf, + _("Automatic Login"), + _("Automatically login to the system after selecting options"), + 0, + FALSE, + TRUE); +} + +static void +remove_user_other (GdmUserChooserWidget *widget) +{ + gdm_chooser_widget_remove_item (GDM_CHOOSER_WIDGET (widget), + GDM_USER_CHOOSER_USER_OTHER); +} + +static void +remove_user_guest (GdmUserChooserWidget *widget) +{ + gdm_chooser_widget_remove_item (GDM_CHOOSER_WIDGET (widget), + GDM_USER_CHOOSER_USER_GUEST); +} + +static void +remove_user_auto (GdmUserChooserWidget *widget) +{ + gdm_chooser_widget_remove_item (GDM_CHOOSER_WIDGET (widget), + GDM_USER_CHOOSER_USER_AUTO); +} + void gdm_user_chooser_widget_set_show_other_user (GdmUserChooserWidget *widget, gboolean show_user) @@ -78,6 +139,11 @@ gdm_user_chooser_widget_set_show_other_user (GdmUserChooserWidget *widget, if (widget->priv->show_other_user != show_user) { widget->priv->show_other_user = show_user; + if (show_user) { + add_user_other (widget); + } else { + remove_user_other (widget); + } } } @@ -89,6 +155,27 @@ gdm_user_chooser_widget_set_show_guest_user (GdmUserChooserWidget *widget, if (widget->priv->show_guest_user != show_user) { widget->priv->show_guest_user = show_user; + if (show_user) { + add_user_guest (widget); + } else { + remove_user_guest (widget); + } + } +} + +void +gdm_user_chooser_widget_set_show_auto_user (GdmUserChooserWidget *widget, + gboolean show_user) +{ + g_return_if_fail (GDM_IS_USER_CHOOSER_WIDGET (widget)); + + if (widget->priv->show_auto_user != show_user) { + widget->priv->show_auto_user = show_user; + if (show_user) { + add_user_auto (widget); + } else { + remove_user_auto (widget); + } } } @@ -155,6 +242,11 @@ gdm_user_chooser_widget_constructor (GType type, n_construct_properties, construct_properties)); + /* FIXME: make these construct properties */ + gdm_user_chooser_widget_set_show_guest_user (user_chooser_widget, FALSE); + gdm_user_chooser_widget_set_show_auto_user (user_chooser_widget, FALSE); + gdm_user_chooser_widget_set_show_other_user (user_chooser_widget, TRUE); + return G_OBJECT (user_chooser_widget); } @@ -294,31 +386,6 @@ setup_icons (GdmUserChooserWidget *widget) load_icons (widget); } -static gboolean -add_special_users (GdmUserChooserWidget *widget) -{ - - gdm_chooser_widget_add_item (GDM_CHOOSER_WIDGET (widget), - GDM_USER_CHOOSER_USER_OTHER, - widget->priv->stock_person_pixbuf, - _("Other..."), - _("Choose a different account"), - 0, - FALSE, - TRUE); -#if 0 - gdm_chooser_widget_add_item (GDM_CHOOSER_WIDGET (widget), - GDM_USER_CHOOSER_USER_GUEST, - widget->priv->stock_person_pixbuf, - _("Guest"), - _("Login as a temporary guest"), - 0, - FALSE, - TRUE); -#endif - return FALSE; -} - static void on_user_added (GdmUserManager *manager, GdmUser *user, @@ -438,7 +505,6 @@ gdm_user_chooser_widget_init (GdmUserChooserWidget *widget) widget); setup_icons (widget); - add_special_users (widget); } static void |