From 755e5e94e6f06ff688497fe876e243836480a2c0 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Thu, 13 Dec 2007 10:59:21 -0500 Subject: [PATCH] Add session chooser and greeter-login-window This change adds the session chooser to the login window. It changes the mechanism by the choosers are specified in the glade file to use custom widgets. --- gui/simple-greeter/Makefile.am | 2 + gui/simple-greeter/gdm-greeter-login-window.c | 148 ++- gui/simple-greeter/gdm-greeter-login-window.glade | 1279 +++++++++++++-------- 3 files changed, 929 insertions(+), 500 deletions(-) diff --git a/gui/simple-greeter/Makefile.am b/gui/simple-greeter/Makefile.am index 836c620..e64f9fb 100644 --- a/gui/simple-greeter/Makefile.am +++ b/gui/simple-greeter/Makefile.am @@ -47,6 +47,8 @@ test_greeter_login_window_SOURCES = \ gdm-greeter-login-window.c \ gdm-chooser-widget.h \ gdm-chooser-widget.c \ + gdm-session-chooser-widget.h \ + gdm-session-chooser-widget.c \ gdm-user-chooser-widget.h \ gdm-user-chooser-widget.c \ gdm-user-chooser-dialog.h \ diff --git a/gui/simple-greeter/gdm-greeter-login-window.c b/gui/simple-greeter/gdm-greeter-login-window.c index efc341e..ca14b38 100644 --- a/gui/simple-greeter/gdm-greeter-login-window.c +++ b/gui/simple-greeter/gdm-greeter-login-window.c @@ -36,12 +36,16 @@ #include #include #include + +#include + #include #include #include "gdm-greeter-login-window.h" #include "gdm-user-chooser-widget.h" +#include "gdm-session-chooser-widget.h" #if HAVE_PAM #include @@ -62,6 +66,7 @@ enum { struct GdmGreeterLoginWindowPrivate { GladeXML *xml; + GtkWidget *session_chooser; GtkWidget *user_chooser; gboolean display_is_local; char *timeformat; @@ -177,7 +182,7 @@ switch_mode (GdmGreeterLoginWindow *login_window, int number) { const char *default_name; - GtkWidget *user_list; + GtkWidget *user_chooser; GtkWidget *box; /* FIXME: do animation */ @@ -191,6 +196,7 @@ switch_mode (GdmGreeterLoginWindow *login_window, show_widget (login_window, "suspend-button", login_window->priv->display_is_local); show_widget (login_window, "disconnect-button", ! login_window->priv->display_is_local); show_widget (login_window, "auth-input-box", FALSE); + show_widget (login_window, "session-chooser", FALSE); default_name = NULL; break; case MODE_AUTHENTICATION: @@ -201,6 +207,7 @@ switch_mode (GdmGreeterLoginWindow *login_window, show_widget (login_window, "suspend-button", FALSE); show_widget (login_window, "disconnect-button", FALSE); show_widget (login_window, "auth-input-box", TRUE); + show_widget (login_window, "session-chooser", TRUE); default_name = "log-in-button"; break; default: @@ -211,14 +218,21 @@ switch_mode (GdmGreeterLoginWindow *login_window, gtk_button_box_set_layout (GTK_BUTTON_BOX (box), (number == MODE_SELECTION) ? GTK_BUTTONBOX_SPREAD : GTK_BUTTONBOX_END ); - box = glade_xml_get_widget (login_window->priv->xml, "selection-box"); - user_list = glade_xml_get_widget (login_window->priv->xml, "userlist-box"); - gtk_box_set_child_packing (GTK_BOX (box), - user_list, - number == MODE_SELECTION, - number == MODE_SELECTION, - 10, - GTK_PACK_START); + user_chooser = glade_xml_get_widget (login_window->priv->xml, "user-chooser"); + box = gtk_widget_get_parent (user_chooser); + if (GTK_IS_BOX (box)) { + guint padding; + GtkPackType pack_type; + + gtk_box_query_child_packing (GTK_BOX (box), user_chooser, + NULL, NULL, &padding, &pack_type); + gtk_box_set_child_packing (GTK_BOX (box), + user_chooser, + number == MODE_SELECTION, + number == MODE_SELECTION, + padding, pack_type); + } + if (default_name != NULL) { GtkWidget *widget; @@ -230,7 +244,10 @@ switch_mode (GdmGreeterLoginWindow *login_window, static void do_cancel (GdmGreeterLoginWindow *login_window) { + gdm_user_chooser_widget_set_chosen_user_name (GDM_USER_CHOOSER_WIDGET (login_window->priv->user_chooser), NULL); + gdm_session_chooser_widget_set_current_session_name (GDM_SESSION_CHOOSER_WIDGET (login_window->priv->session_chooser), + GDM_SESSION_CHOOSER_SESSION_PREVIOUS); switch_mode (login_window, MODE_SELECTION); set_busy (login_window); @@ -259,6 +276,8 @@ reset_dialog (GdmGreeterLoginWindow *login_window) set_message (login_window, ""); gdm_user_chooser_widget_set_chosen_user_name (GDM_USER_CHOOSER_WIDGET (login_window->priv->user_chooser), NULL); + gdm_session_chooser_widget_set_current_session_name (GDM_SESSION_CHOOSER_WIDGET (login_window->priv->session_chooser), + GDM_SESSION_CHOOSER_SESSION_PREVIOUS); switch_mode (login_window, MODE_SELECTION); @@ -458,6 +477,29 @@ on_user_chosen (GdmUserChooserWidget *user_chooser, } static void +on_user_unchosen (GdmUserChooserWidget *user_chooser, + GdmGreeterLoginWindow *login_window) +{ + do_cancel (login_window); +} + +static void +on_session_activated (GdmSessionChooserWidget *session_chooser, + GdmGreeterLoginWindow *login_window) +{ + char *session; + + session = gdm_session_chooser_widget_get_current_session_name (GDM_SESSION_CHOOSER_WIDGET (login_window->priv->session_chooser)); + if (session == NULL) { + return; + } + + g_signal_emit (login_window, signals[SESSION_SELECTED], 0, session); + + g_free (session); +} + +static void update_clock (GtkLabel *label, const char *format) { @@ -706,6 +748,37 @@ create_computer_info (GdmGreeterLoginWindow *login_window) #define INVISIBLE_CHAR_BULLET 0x2022 #define INVISIBLE_CHAR_NONE 0 +static GtkWidget * +custom_widget_constructor (GladeXML *xml, + char *func_name, + char *name, + char *string1, + char *string2, + int int1, + int int2, + GdmGreeterLoginWindow *login_window) +{ + GtkWidget *widget; + + g_assert (GLADE_IS_XML (xml)); + g_assert (name != NULL); + g_assert (GDM_IS_GREETER_LOGIN_WINDOW (login_window)); + + widget = NULL; + + if (strcmp (name, "user-chooser") == 0) { + widget = gdm_user_chooser_widget_new (); + } else if (strcmp (name, "session-chooser") == 0) { + widget = gdm_session_chooser_widget_new (); + } + + if (widget != NULL) { + gtk_widget_show (widget); + } + + return widget; +} + static void load_theme (GdmGreeterLoginWindow *login_window) { @@ -713,6 +786,8 @@ load_theme (GdmGreeterLoginWindow *login_window) GtkWidget *button; GtkWidget *box; + glade_set_custom_handler ((GladeXMLCustomWidgetHandler) custom_widget_constructor, + login_window); login_window->priv->xml = glade_xml_new (GLADEDIR "/" GLADE_XML_FILE, "window-box", PACKAGE); @@ -722,11 +797,45 @@ load_theme (GdmGreeterLoginWindow *login_window) box = glade_xml_get_widget (login_window->priv->xml, "window-box"); gtk_container_add (GTK_CONTAINER (login_window), box); - box = glade_xml_get_widget (login_window->priv->xml, "userlist-box"); - if (box == NULL) { + login_window->priv->user_chooser = + glade_xml_get_widget (login_window->priv->xml, "user-chooser"); + + if (login_window->priv->user_chooser == NULL) { g_critical ("Userlist box not found"); } - gtk_container_add (GTK_CONTAINER (box), login_window->priv->user_chooser); + + gdm_user_chooser_widget_set_show_only_chosen (GDM_USER_CHOOSER_WIDGET (login_window->priv->user_chooser), TRUE); + + /* FIXME: set from gconf */ + gdm_user_chooser_widget_set_show_other_user (GDM_USER_CHOOSER_WIDGET (login_window->priv->user_chooser), TRUE); + gdm_user_chooser_widget_set_show_guest_user (GDM_USER_CHOOSER_WIDGET (login_window->priv->user_chooser), TRUE); + + g_signal_connect (login_window->priv->user_chooser, + "activated", + G_CALLBACK (on_user_chosen), + login_window); + g_signal_connect (login_window->priv->user_chooser, + "deactivated", + G_CALLBACK (on_user_unchosen), + login_window); + + login_window->priv->session_chooser = + glade_xml_get_widget (login_window->priv->xml, "session-chooser"); + + if (login_window->priv->session_chooser == NULL) { + g_critical ("Session chooser not found in greeter theme"); + } + + gdm_session_chooser_widget_set_show_only_chosen (GDM_SESSION_CHOOSER_WIDGET (login_window->priv->session_chooser), TRUE); + + g_signal_connect (login_window->priv->session_chooser, + "activated", + G_CALLBACK (on_session_activated), + login_window); + + gdm_session_chooser_widget_set_current_session_name (GDM_SESSION_CHOOSER_WIDGET (login_window->priv->session_chooser), + GDM_SESSION_CHOOSER_SESSION_PREVIOUS); + button = glade_xml_get_widget (login_window->priv->xml, "log-in-button"); gtk_widget_grab_default (button); @@ -910,21 +1019,6 @@ gdm_greeter_login_window_init (GdmGreeterLoginWindow *login_window) login_window->priv->clock_show_seconds = TRUE; - login_window->priv->user_chooser = gdm_user_chooser_widget_new (); - gdm_user_chooser_widget_set_show_only_chosen (GDM_USER_CHOOSER_WIDGET (login_window->priv->user_chooser), TRUE); - - /* FIXME: set from gconf */ - gdm_user_chooser_widget_set_show_other_user (GDM_USER_CHOOSER_WIDGET (login_window->priv->user_chooser), TRUE); - gdm_user_chooser_widget_set_show_guest_user (GDM_USER_CHOOSER_WIDGET (login_window->priv->user_chooser), TRUE); - - g_signal_connect (login_window->priv->user_chooser, - "user-chosen", - G_CALLBACK (on_user_chosen), - login_window); - - gtk_widget_show_all (login_window->priv->user_chooser); - - gtk_window_set_keep_above (GTK_WINDOW (login_window), TRUE); gtk_window_set_opacity (GTK_WINDOW (login_window), 0.85); gtk_window_set_position (GTK_WINDOW (login_window), GTK_WIN_POS_CENTER_ALWAYS); gtk_window_set_deletable (GTK_WINDOW (login_window), FALSE); diff --git a/gui/simple-greeter/gdm-greeter-login-window.glade b/gui/simple-greeter/gdm-greeter-login-window.glade index 2d1d61a..d30000e 100644 --- a/gui/simple-greeter/gdm-greeter-login-window.glade +++ b/gui/simple-greeter/gdm-greeter-login-window.glade @@ -1,475 +1,808 @@ - - - + + + - - 400 - True - 12 - Authentication Dialog - GDK_WINDOW_TYPE_HINT_DIALOG - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 10 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 64 - computer - - - - - False - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - False - False - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Computer Name - - - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - page 1 - - - tab - False - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Version - - - 1 - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - page 2 - - - tab - 1 - False - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - IP Address - - - 2 - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - page 3 - - - tab - 2 - False - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Network status - - - 3 - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - page 4 - - - tab - 3 - False - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Tue Oct 23 21:16:50 EDT 2007 - - - 4 - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - page 5 - - - tab - 4 - False - False - - - - - - - False - False - 1 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 10 - 10 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 10 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 6 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Prompt: - - - False - False - - - - - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - True - - - 1 - - - - - - - - False - False - 1 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - - - False - False - 2 - - - - - - - 2 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 6 - True - GTK_BUTTONBOX_END - - - True - True - True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 16 - window-close - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Disconnect - - - 1 - - - - - - - - - True - True - True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 16 - media-playback-pause - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Suspend - - - 1 - - - - - - - 1 - - - - - True - True - True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 16 - view-refresh - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Restart - - - 1 - - - - - - - 2 - - - - - True - True - True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 16 - gnome-shutdown - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Shut Down - - - 1 - - - - - - - 3 - - - - - True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-cancel - True - 0 - - - 4 - - - - - True - True - True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 16 - go-home - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Log In - - - 1 - - - - - - - 5 - - - - - False - False - GTK_PACK_END - 3 - - - - - + + + 12 + 400 + True + Authentication Dialog + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_NONE + False + True + False + True + False + False + GDK_WINDOW_TYPE_HINT_DIALOG + GDK_GRAVITY_NORTH_WEST + True + False + + + + True + False + 10 + + + + True + 0.5 + 0.5 + 1 + 1 + 0 + 0 + 0 + 0 + + + + True + computer + 64 + 0.5 + 0.5 + 0 + 0 + + + + + 0 + False + False + + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + True + False + + + + True + False + False + GTK_POS_TOP + False + False + + + + True + Computer Name + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + False + True + + + + + + True + page 1 + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + True + Version + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + False + True + + + + + + True + page 2 + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + True + IP Address + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + False + True + + + + + + True + page 3 + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + True + Network status + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + False + True + + + + + + True + page 4 + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + True + Tue Oct 23 21:16:50 EDT 2007 + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + False + True + + + + + + True + page 5 + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + + 0 + False + False + + + + + + True + 0.5 + 0.5 + 1 + 1 + 0 + 0 + 10 + 10 + + + + True + False + 10 + + + + True + 0 + 0 + Tue, 04 Dec 2007 23:50:30 GMT + + + 0 + True + True + + + + + + True + False + 6 + + + + True + Prompt: + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + True + True + 0 + + True + + True + + + 0 + True + True + + + + + + + + + 0 + False + False + + + + + + True + False + 0 + + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + True + True + + + + + 0 + False + False + + + + + + 0 + 0 + Tue, 04 Dec 2007 23:26:50 GMT + + + 0 + True + True + + + + + + + 0 + True + True + + + + + + True + GTK_BUTTONBOX_END + 6 + + + + True + True + True + True + GTK_RELIEF_NORMAL + True + + + + True + False + 0 + + + + True + window-close + 16 + 0.5 + 0.5 + 0 + 0 + + + 0 + True + True + + + + + + True + Disconnect + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + True + True + + + + + + + + + + True + True + True + True + GTK_RELIEF_NORMAL + True + + + + True + False + 0 + + + + True + media-playback-pause + 16 + 0.5 + 0.5 + 0 + 0 + + + 0 + True + True + + + + + + True + Suspend + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + True + True + + + + + + + + + + True + True + True + True + GTK_RELIEF_NORMAL + True + + + + True + False + 0 + + + + True + view-refresh + 16 + 0.5 + 0.5 + 0 + 0 + + + 0 + True + True + + + + + + True + Restart + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + True + True + + + + + + + + + + True + True + True + True + GTK_RELIEF_NORMAL + True + + + + True + False + 0 + + + + True + gnome-shutdown + 16 + 0.5 + 0.5 + 0 + 0 + + + 0 + True + True + + + + + + True + Shut Down + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + True + True + + + + + + + + + + True + True + gtk-cancel + True + GTK_RELIEF_NORMAL + True + + + + + + True + True + True + True + GTK_RELIEF_NORMAL + True + + + + True + False + 0 + + + + True + go-home + 16 + 0.5 + 0.5 + 0 + 0 + + + 0 + True + True + + + + + + True + Log In + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + True + True + + + + + + + + + 0 + False + False + GTK_PACK_END + + + + + + -- 1.5.3.6