diff options
author | George Lebl <jirka@5z.com> | 2002-05-03 23:33:59 +0000 |
---|---|---|
committer | George Lebl <jirka@src.gnome.org> | 2002-05-03 23:33:59 +0000 |
commit | 27200b26ef7a8e9dfe27d6260da35d09fffd81da (patch) | |
tree | 33cce67379a86c2a2adb957d7886b1a4379977ae | |
parent | 8c2a8e32e10bb147f1d350fdf1e1b669d85327b9 (diff) | |
download | gdm-27200b26ef7a8e9dfe27d6260da35d09fffd81da.tar.gz |
add notifies for sysmenu and config available
Fri May 03 16:42:42 2002 George Lebl <jirka@5z.com>
* daemon/gdm.[ch], daemon/slave.c: add notifies for sysmenu and
config available
* gui/gdmsetup.glade, gui/gdmsetup.c: glade design pages for both
greeters and connect a few of the items to actual config. Also
add security sysmenu and config_available items
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | daemon/gdm.c | 18 | ||||
-rw-r--r-- | daemon/gdm.h | 4 | ||||
-rw-r--r-- | daemon/slave.c | 6 | ||||
-rw-r--r-- | gui/gdmsetup-strings.c | 28 | ||||
-rw-r--r-- | gui/gdmsetup.c | 259 | ||||
-rw-r--r-- | gui/gdmsetup.glade | 739 |
7 files changed, 996 insertions, 67 deletions
@@ -1,3 +1,12 @@ +Fri May 03 16:42:42 2002 George Lebl <jirka@5z.com> + + * daemon/gdm.[ch], daemon/slave.c: add notifies for sysmenu and + config available + + * gui/gdmsetup.glade, gui/gdmsetup.c: glade design pages for both + greeters and connect a few of the items to actual config. Also + add security sysmenu and config_available items + 2002-05-03 jacob berkman <jacob@ximian.com> * Makefile.am (SUBDIRS): diff --git a/daemon/gdm.c b/daemon/gdm.c index e579216d..4bb42c50 100644 --- a/daemon/gdm.c +++ b/daemon/gdm.c @@ -2222,6 +2222,24 @@ update_config (const char *key) notify_displays_int (GDM_NOTIFY_ALLOWREMOTEAUTOLOGIN, val); goto update_config_ok; + } else if (is_key (key, GDM_KEY_SYSMENU)) { + gboolean val = gnome_config_get_bool (GDM_KEY_SYSMENU); + if (ve_bool_equal (val, GdmSystemMenu)) + goto update_config_ok; + GdmSystemMenu = val; + + notify_displays_int (GDM_NOTIFY_SYSMENU, val); + + goto update_config_ok; + } else if (is_key (key, GDM_KEY_CONFIG_AVAILABLE)) { + gboolean val = gnome_config_get_bool (GDM_KEY_CONFIG_AVAILABLE); + if (ve_bool_equal (val, GdmConfigAvailable)) + goto update_config_ok; + GdmConfigAvailable = val; + + notify_displays_int (GDM_NOTIFY_CONFIG_AVAILABLE, val); + + goto update_config_ok; } else if (is_key (key, GDM_KEY_RETRYDELAY)) { int val = gnome_config_get_int (GDM_KEY_RETRYDELAY); if (val == GdmRetryDelay) diff --git a/daemon/gdm.h b/daemon/gdm.h index dd916434..df63f82c 100644 --- a/daemon/gdm.h +++ b/daemon/gdm.h @@ -423,6 +423,8 @@ GdmXServer * gdm_find_x_server (const char *id); #define GDM_NOTIFY_ALLOWREMOTEROOT "AllowRemoteRoot" /* <true/false as int> */ #define GDM_NOTIFY_ALLOWROOT "AllowRoot" /* <true/false as int> */ #define GDM_NOTIFY_ALLOWREMOTEAUTOLOGIN "AllowRemoteAutoLogin" /* <true/false as int> */ +#define GDM_NOTIFY_SYSMENU "SystemMenu" /* <true/false as int> */ +#define GDM_NOTIFY_CONFIG_AVAILABLE "ConfigAvailable" /* <true/false as int> */ #define GDM_NOTIFY_RETRYDELAY "RetryDelay" /* <seconds> */ #define GDM_NOTIFY_GREETER "Greeter" /* <greeter binary> */ #define GDM_NOTIFY_REMOTEGREETER "RemoteGreeter" /* <greeter binary> */ @@ -553,6 +555,8 @@ GdmXServer * gdm_find_x_server (const char *id); * xdmcp/TimedLogin (2.3.90.3) * xdmcp/TimedLoginEnable (2.3.90.3) * xdmcp/TimedLoginDelay (2.3.90.3) + * greeter/SystemMenu (2.3.90.3) + * greeter/ConfigAvailable (2.3.90.3) * Supported since: 2.3.90.2 * Arguments: <key> * <key> is just the base part of the key such as "security/AllowRemoteRoot" diff --git a/daemon/slave.c b/daemon/slave.c index a7288c90..efaedb29 100644 --- a/daemon/slave.c +++ b/daemon/slave.c @@ -3028,6 +3028,12 @@ gdm_slave_handle_notify (GdmConnection *conn, const char *msg, gpointer data) GdmAllowRemoteRoot = val; } else if (sscanf (msg, GDM_NOTIFY_ALLOWREMOTEAUTOLOGIN " %d", &val) == 1) { GdmAllowRemoteAutoLogin = val; + } else if (sscanf (msg, GDM_NOTIFY_SYSMENU " %d", &val) == 1) { + GdmSystemMenu = val; + kill (display->greetpid, SIGHUP); + } else if (sscanf (msg, GDM_NOTIFY_CONFIG_AVAILABLE " %d", &val) == 1) { + GdmConfigAvailable = val; + kill (display->greetpid, SIGHUP); } else if (sscanf (msg, GDM_NOTIFY_RETRYDELAY " %d", &val) == 1) { GdmRetryDelay = val; } else if (strncmp (msg, GDM_NOTIFY_GREETER " ", diff --git a/gui/gdmsetup-strings.c b/gui/gdmsetup-strings.c index 96431803..dde7b794 100644 --- a/gui/gdmsetup-strings.c +++ b/gui/gdmsetup-strings.c @@ -22,11 +22,33 @@ gchar *s = N_("Seconds before login:"); gchar *s = N_("*"); gchar *s = N_("Timed login"); gchar *s = N_("General"); +gchar *s = N_("*"); +gchar *s = N_("Welcome string: "); +gchar *s = N_("*"); +gchar *s = N_("Logo"); +gchar *s = N_("Always use _24 hour clock format"); +gchar *s = N_("Show choosable user images (face browser)"); +gchar *s = N_("Miscellaneous"); +gchar *s = N_("_No background"); +gchar *s = N_("_Image"); +gchar *s = N_("_Color"); +gchar *s = N_("_Scale background image to fit"); +gchar *s = N_("*"); +gchar *s = N_("_Only color on remote displays"); +gchar *s = N_("Background color: "); +gchar *s = N_("Pick a color"); +gchar *s = N_("Background"); gchar *s = N_("Standard greeter"); +gchar *s = N_("<b>Preview:</b>"); +gchar *s = N_("No preview available"); +gchar *s = N_("_Install new theme"); +gchar *s = N_("Theme"); gchar *s = N_("Graphical greeter"); -gchar *s = N_("Allow root to login with GDM"); -gchar *s = N_("Allow root to login remotely with GDM"); -gchar *s = N_("Allow remote timed logins"); +gchar *s = N_("Allow _root to login with GDM"); +gchar *s = N_("Allow root to login r_emotely with GDM"); +gchar *s = N_("Allow remote _timed logins"); +gchar *s = N_("Show _system menu"); +gchar *s = N_("Allow _configuration from the login screen"); gchar *s = N_("Retry delay (seconds) :"); gchar *s = N_("Options"); gchar *s = N_("Security"); diff --git a/gui/gdmsetup.c b/gui/gdmsetup.c index 8d88a97b..ce8375e0 100644 --- a/gui/gdmsetup.c +++ b/gui/gdmsetup.c @@ -49,6 +49,43 @@ static gboolean gdm_running = FALSE; static GladeXML *xml; static void +update_greeters (void) +{ + char *p, *ret; + long pid; + + if ( ! gdm_running) + return; + + ret = gdmcomm_call_gdm (GDM_SUP_GREETERPIDS, + NULL /* auth_cookie */, + "2.3.90.2", + 5); + if (ret == NULL) + return; + p = strchr (ret, ' '); + if (p == NULL) { + g_free (ret); + return; + } + p++; + + for (;;) { + if (sscanf (p, "%ld", &pid) != 1) { + g_free (ret); + return; + } + kill (pid, SIGHUP); + p = strchr (p, ';'); + if (p == NULL) { + g_free (ret); + return; + } + p++; + } +} + +static void run_timeout (GtkWidget *widget, guint tm, gboolean (*func) (GtkWidget *)) { guint id = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (widget), @@ -326,6 +363,102 @@ setup_intspin (const char *name, G_CALLBACK (timeout_remove), NULL); } +static gboolean +greeter_toggle_timeout (GtkWidget *toggle) +{ + const char *key = g_object_get_data (G_OBJECT (toggle), "key"); + + gnome_config_push_prefix ("=" GDM_CONFIG_FILE "=/"); + gnome_config_set_bool (key, GTK_TOGGLE_BUTTON (toggle)->active); + gnome_config_pop_prefix (); + + gnome_config_sync (); + + update_greeters (); + + return FALSE; +} + +static void +greeter_toggle_toggled (GtkWidget *toggle) +{ + run_timeout (toggle, 500, greeter_toggle_timeout); +} + +static void +setup_greeter_toggle (const char *name, + const char *key) +{ + GtkWidget *toggle = glade_helper_get (xml, name, + GTK_TYPE_TOGGLE_BUTTON); + gboolean val; + + gnome_config_push_prefix ("=" GDM_CONFIG_FILE "=/"); + val = gnome_config_get_bool (key); + gnome_config_pop_prefix (); + + g_object_set_data_full (G_OBJECT (toggle), + "key", g_strdup (key), + (GDestroyNotify) g_free); + + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle), val); + + g_signal_connect (G_OBJECT (toggle), "toggled", + G_CALLBACK (greeter_toggle_toggled), NULL); + g_signal_connect (G_OBJECT (toggle), "destroy", + G_CALLBACK (timeout_remove), NULL); +} + +static gboolean +greeter_entry_timeout (GtkWidget *entry) +{ + const char *key = g_object_get_data (G_OBJECT (entry), "key"); + const char *text; + + text = gtk_entry_get_text (GTK_ENTRY (entry)); + + gnome_config_push_prefix ("=" GDM_CONFIG_FILE "=/"); + gnome_config_set_string (key, ve_sure_string (text)); + gnome_config_pop_prefix (); + + gnome_config_sync (); + + update_greeters (); + + return FALSE; +} + +static void +greeter_entry_changed (GtkWidget *toggle) +{ + run_timeout (toggle, 500, greeter_entry_timeout); +} + +static void +setup_greeter_entry (const char *name, + const char *key) +{ + GtkWidget *entry = glade_helper_get (xml, name, GTK_TYPE_ENTRY); + char *val; + + gnome_config_push_prefix ("=" GDM_CONFIG_FILE "=/"); + val = gnome_config_get_string (key); + gnome_config_pop_prefix (); + + g_object_set_data_full (G_OBJECT (entry), + "key", g_strdup (key), + (GDestroyNotify) g_free); + + gtk_entry_set_text (GTK_ENTRY (entry), ve_sure_string (val)); + + g_signal_connect (G_OBJECT (entry), "changed", + G_CALLBACK (greeter_entry_changed), NULL); + g_signal_connect (G_OBJECT (entry), "destroy", + G_CALLBACK (timeout_remove), NULL); + + g_free (val); +} + static void add_menuitem (GtkWidget *menu, const char *str, const char *label, const char *select, GtkWidget **selected) @@ -356,6 +489,12 @@ setup_greeter_option (const char *name, val = gnome_config_get_string (key); gnome_config_pop_prefix (); + if (val != NULL && + strcmp (val, EXPANDED_BINDIR "/gdmlogin --disable-sound --disable-crash-dialog") == 0) { + g_free (val); + val = g_strdup (EXPANDED_BINDIR "/gdmlogin"); + } + menu = gtk_menu_new (); add_menuitem (menu, EXPANDED_BINDIR "/gdmlogin", @@ -415,6 +554,68 @@ setup_xdmcp_support (void) } static void +background_toggled (void) +{ + GtkWidget *no_bg = glade_helper_get (xml, "sg_no_bg_rb", GTK_TYPE_TOGGLE_BUTTON); + GtkWidget *image_bg = glade_helper_get (xml, "sg_image_bg_rb", GTK_TYPE_TOGGLE_BUTTON); + /*GtkWidget *color_bg = glade_helper_get (xml, "sg_color_bg_rb", GTK_TYPE_TOGGLE_BUTTON);*/ + GtkWidget *scale = glade_helper_get (xml, "sg_scale_background", GTK_TYPE_WIDGET); + GtkWidget *image = glade_helper_get (xml, "sg_backimage", GTK_TYPE_WIDGET); + GtkWidget *onlycolor = glade_helper_get (xml, "sg_remote_color_only", GTK_TYPE_TOGGLE_BUTTON); + GtkWidget *color_label = glade_helper_get (xml, "sg_backcolor_label", GTK_TYPE_WIDGET); + GtkWidget *color = glade_helper_get (xml, "sg_backcolor", GTK_TYPE_WIDGET); + + if (GTK_TOGGLE_BUTTON (no_bg)->active) { + gtk_widget_set_sensitive (scale, FALSE); + gtk_widget_set_sensitive (image, FALSE); + gtk_widget_set_sensitive (onlycolor, FALSE); + gtk_widget_set_sensitive (color_label, FALSE); + gtk_widget_set_sensitive (color, FALSE); + } else if (GTK_TOGGLE_BUTTON (image_bg)->active) { + gtk_widget_set_sensitive (scale, TRUE); + gtk_widget_set_sensitive (image, TRUE); + gtk_widget_set_sensitive (onlycolor, TRUE); + if (GTK_TOGGLE_BUTTON (onlycolor)->active) { + gtk_widget_set_sensitive (color_label, TRUE); + gtk_widget_set_sensitive (color, TRUE); + } else { + gtk_widget_set_sensitive (color_label, FALSE); + gtk_widget_set_sensitive (color, FALSE); + } + } else /* if (GTK_TOGGLE_BUTTON (color_bg)->active) */ { + gtk_widget_set_sensitive (scale, FALSE); + gtk_widget_set_sensitive (image, FALSE); + gtk_widget_set_sensitive (onlycolor, FALSE); + gtk_widget_set_sensitive (color_label, TRUE); + gtk_widget_set_sensitive (color, TRUE); + } +} + +static void +setup_background_support (void) +{ + GtkWidget *no_bg = glade_helper_get (xml, "sg_no_bg_rb", GTK_TYPE_TOGGLE_BUTTON); + GtkWidget *image_bg = glade_helper_get (xml, "sg_image_bg_rb", GTK_TYPE_TOGGLE_BUTTON); + GtkWidget *color_bg = glade_helper_get (xml, "sg_color_bg_rb", GTK_TYPE_TOGGLE_BUTTON); + GtkWidget *onlycolor = glade_helper_get (xml, "sg_remote_color_only", GTK_TYPE_TOGGLE_BUTTON); + + g_signal_connect (G_OBJECT (no_bg), "toggled", + G_CALLBACK (background_toggled), + NULL); + g_signal_connect (G_OBJECT (image_bg), "toggled", + G_CALLBACK (background_toggled), + NULL); + g_signal_connect (G_OBJECT (color_bg), "toggled", + G_CALLBACK (background_toggled), + NULL); + g_signal_connect (G_OBJECT (onlycolor), "toggled", + G_CALLBACK (background_toggled), + NULL); + + background_toggled (); +} + +static void dialog_response (GtkWidget *dlg, int response, gpointer data) { if (response == GTK_RESPONSE_CLOSE) { @@ -440,6 +641,7 @@ setup_gui (void) G_CALLBACK (dialog_response), NULL); setup_xdmcp_support (); + setup_background_support (); setup_user_combo ("autologin_combo", GDM_KEY_AUTOMATICLOGIN); @@ -462,6 +664,12 @@ setup_gui (void) setup_notify_toggle ("allowremoteauto", GDM_KEY_ALLOWREMOTEAUTOLOGIN, GDM_KEY_ALLOWREMOTEAUTOLOGIN /* notify_key */); + setup_notify_toggle ("sysmenu", + GDM_KEY_SYSMENU, + GDM_KEY_SYSMENU /* notify_key */); + setup_notify_toggle ("config_available", + GDM_KEY_CONFIG_AVAILABLE, + GDM_KEY_CONFIG_AVAILABLE /* notify_key */); setup_notify_toggle ("enable_xdmcp", GDM_KEY_XDMCP, @@ -505,6 +713,20 @@ setup_gui (void) setup_greeter_option ("local_greeter", GDM_KEY_GREETER); setup_greeter_option ("remote_greeter", GDM_KEY_REMOTEGREETER); + + /* Greeter configurations */ + + setup_greeter_toggle ("sg_use_24_clock", + GDM_KEY_USE_24_CLOCK); + setup_greeter_toggle ("sg_browser", + GDM_KEY_BROWSER); + setup_greeter_toggle ("sg_scale_background", + GDM_KEY_BACKGROUNDSCALETOFIT); + setup_greeter_toggle ("sg_remote_color_only", + GDM_KEY_BACKGROUNDREMOTEONLYCOLOR); + + setup_greeter_entry ("sg_welcome", + GDM_KEY_WELCOME); } static gboolean @@ -528,43 +750,6 @@ gdm_event (GSignalInvocationHint *ihint, return TRUE; } -static void -update_greeters (void) -{ - char *p, *ret; - long pid; - - if ( ! gdm_running) - return; - - ret = gdmcomm_call_gdm (GDM_SUP_GREETERPIDS, - NULL /* auth_cookie */, - "2.3.90.2", - 5); - if (ret == NULL) - return; - p = strchr (ret, ' '); - if (p == NULL) { - g_free (ret); - return; - } - p++; - - for (;;) { - if (sscanf (p, "%ld", &pid) != 1) { - g_free (ret); - return; - } - kill (pid, SIGHUP); - p = strchr (p, ';'); - if (p == NULL) { - g_free (ret); - return; - } - p++; - } -} - int main (int argc, char *argv[]) { diff --git a/gui/gdmsetup.glade b/gui/gdmsetup.glade index 84e58a7b..db9a295c 100644 --- a/gui/gdmsetup.glade +++ b/gui/gdmsetup.glade @@ -2,6 +2,7 @@ <!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd"> <glade-interface> +<requires lib="gnome"/> <widget class="GtkDialog" id="setup_dialog"> <property name="visible">True</property> @@ -345,6 +346,7 @@ <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> + <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> @@ -469,27 +471,6 @@ </child> <child> - <widget class="GtkSpinButton" id="timedlogin_seconds"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="climb_rate">1</property> - <property name="digits">0</property> - <property name="numeric">False</property> - <property name="update_policy">GTK_UPDATE_ALWAYS</property> - <property name="snap_to_ticks">False</property> - <property name="wrap">False</property> - <property name="adjustment">1 0 100 1 10 10</property> - </widget> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> - <property name="y_options"></property> - </packing> - </child> - - <child> <widget class="GtkCombo" id="timedlogin_combo"> <property name="visible">True</property> <property name="value_in_list">False</property> @@ -527,6 +508,29 @@ <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkSpinButton" id="timedlogin_seconds"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="climb_rate">1</property> + <property name="digits">0</property> + <property name="numeric">False</property> + <property name="update_policy">GTK_UPDATE_ALWAYS</property> + <property name="snap_to_ticks">False</property> + <property name="wrap">False</property> + <property name="adjustment">1 0 100 1 10 10</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> @@ -587,7 +591,463 @@ </child> <child> - <placeholder/> + <widget class="GtkTable" id="table6"> + <property name="visible">True</property> + <property name="n_rows">2</property> + <property name="n_columns">2</property> + <property name="homogeneous">False</property> + <property name="row_spacing">3</property> + <property name="column_spacing">3</property> + + <child> + <widget class="GtkFrame" id="frame7"> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="label_yalign">0.5</property> + <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property> + + <child> + <widget class="GtkVBox" id="vbox3"> + <property name="border_width">3</property> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">3</property> + + <child> + <widget class="GnomePixmapEntry" id="sg_logo"> + <property name="visible">True</property> + <property name="history_id">logo</property> + <property name="max_saved">10</property> + <property name="modal">False</property> + <property name="do_preview">True</property> + + <child internal-child="entry"> + <widget class="GtkEntry" id="combo-entry1"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkHBox" id="hbox2"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkLabel" id="sg_welcome_label"> + <property name="visible">True</property> + <property name="label" translatable="yes">Welcome string: </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <accessibility> + <atkrelation target="sg_welcome" type="label-for"/> + </accessibility> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="sg_welcome"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + <accessibility> + <atkrelation target="sg_welcome_label" type="labelled-by"/> + </accessibility> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + </child> + + <child> + <widget class="GtkLabel" id="label24"> + <property name="visible">True</property> + <property name="label" translatable="yes">Logo</property> + <property name="use_underline">False</property> + <property name="use_markup">True</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="type">label_item</property> + </packing> + </child> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + </packing> + </child> + + <child> + <widget class="GtkFrame" id="frame9"> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="label_yalign">0.5</property> + <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property> + + <child> + <widget class="GtkVBox" id="vbox5"> + <property name="border_width">3</property> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">3</property> + + <child> + <widget class="GtkCheckButton" id="sg_use_24_clock"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Always use _24 hour clock format</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="active">False</property> + <property name="inconsistent">False</property> + <property name="draw_indicator">True</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkCheckButton" id="sg_browser"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Show choosable user images (face browser)</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="active">False</property> + <property name="inconsistent">False</property> + <property name="draw_indicator">True</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + </child> + + <child> + <widget class="GtkLabel" id="label28"> + <property name="visible">True</property> + <property name="label" translatable="yes">Miscellaneous</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="type">label_item</property> + </packing> + </child> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options">fill</property> + </packing> + </child> + + <child> + <widget class="GtkFrame" id="frame8"> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="label_yalign">0.5</property> + <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property> + + <child> + <widget class="GtkVBox" id="vbox4"> + <property name="border_width">3</property> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">3</property> + + <child> + <widget class="GtkHBox" id="hbox3"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkRadioButton" id="sg_no_bg_rb"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">_No background</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="active">False</property> + <property name="inconsistent">False</property> + <property name="draw_indicator">True</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkRadioButton" id="sg_image_bg_rb"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">_Image</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="active">False</property> + <property name="inconsistent">False</property> + <property name="draw_indicator">True</property> + <property name="group">sg_no_bg_rb</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkRadioButton" id="sg_color_bg_rb"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">_Color</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="active">False</property> + <property name="inconsistent">False</property> + <property name="draw_indicator">True</property> + <property name="group">sg_no_bg_rb</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkCheckButton" id="sg_scale_background"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">_Scale background image to fit</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="active">False</property> + <property name="inconsistent">False</property> + <property name="draw_indicator">True</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GnomePixmapEntry" id="sg_backimage"> + <property name="visible">True</property> + <property name="history_id">background</property> + <property name="max_saved">10</property> + <property name="modal">False</property> + <property name="do_preview">True</property> + + <child internal-child="entry"> + <widget class="GtkEntry" id="combo-entry2"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkCheckButton" id="sg_remote_color_only"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">_Only color on remote displays</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="active">False</property> + <property name="inconsistent">False</property> + <property name="draw_indicator">True</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkHBox" id="hbox4"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkLabel" id="sg_backcolor_label"> + <property name="visible">True</property> + <property name="label" translatable="yes">Background color: </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <accessibility> + <atkrelation target="sg_backcolor" type="label-for"/> + </accessibility> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GnomeColorPicker" id="sg_backcolor"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="dither">True</property> + <property name="use_alpha">False</property> + <property name="title" translatable="yes">Pick a color</property> + <accessibility> + <atkrelation target="sg_backcolor_label" type="controlled-by"/> + </accessibility> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + </child> + + <child> + <widget class="GtkLabel" id="label26"> + <property name="visible">True</property> + <property name="label" translatable="yes">Background</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="type">label_item</property> + </packing> + </child> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">0</property> + <property name="bottom_attach">2</property> + <property name="y_options">fill</property> + </packing> + </child> + </widget> + <packing> + <property name="tab_expand">False</property> + <property name="tab_fill">True</property> + </packing> </child> <child> @@ -610,7 +1070,187 @@ </child> <child> - <placeholder/> + <widget class="GtkFrame" id="frame10"> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="label_yalign">0.5</property> + <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property> + + <child> + <widget class="GtkHBox" id="hbox5"> + <property name="border_width">3</property> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">3</property> + + <child> + <widget class="GtkScrolledWindow" id="scrolledwindow1"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> + <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> + <property name="shadow_type">GTK_SHADOW_IN</property> + <property name="window_placement">GTK_CORNER_TOP_LEFT</property> + + <child> + <widget class="GtkTreeView" id="gg_theme_list"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="headers_visible">False</property> + <property name="rules_hint">False</property> + <property name="reorderable">False</property> + <property name="enable_search">False</property> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkVBox" id="vbox6"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkLabel" id="label30"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Preview:</b></property> + <property name="use_underline">False</property> + <property name="use_markup">True</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkFrame" id="frame11"> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="label_yalign">0.5</property> + <property name="shadow_type">GTK_SHADOW_IN</property> + + <child> + <widget class="GtkVBox" id="vbox7"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkImage" id="gg_theme_preview"> + <property name="visible">True</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="gg_theme_no_preview"> + <property name="label" translatable="yes">No preview available</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkHButtonBox" id="hbuttonbox1"> + <property name="visible">True</property> + <property name="layout_style">GTK_BUTTONBOX_END</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkButton" id="button1"> + <property name="visible">True</property> + <property name="can_default">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">_Install new theme</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <signal name="clicked" handler="install_new_theme" last_modification_time="Fri, 03 May 2002 22:48:54 GMT"/> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </widget> + </child> + + <child> + <widget class="GtkLabel" id="label29"> + <property name="visible">True</property> + <property name="label" translatable="yes">Theme</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="type">label_item</property> + </packing> + </child> + </widget> + <packing> + <property name="tab_expand">False</property> + <property name="tab_fill">True</property> + </packing> </child> <child> @@ -650,7 +1290,7 @@ <widget class="GtkCheckButton" id="allowroot"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="label" translatable="yes">Allow root to login with GDM</property> + <property name="label" translatable="yes">Allow _root to login with GDM</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="active">False</property> @@ -668,7 +1308,7 @@ <widget class="GtkCheckButton" id="allowremoteroot"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="label" translatable="yes">Allow root to login remotely with GDM</property> + <property name="label" translatable="yes">Allow root to login r_emotely with GDM</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="active">False</property> @@ -686,7 +1326,43 @@ <widget class="GtkCheckButton" id="allowremoteauto"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="label" translatable="yes">Allow remote timed logins</property> + <property name="label" translatable="yes">Allow remote _timed logins</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="active">False</property> + <property name="inconsistent">False</property> + <property name="draw_indicator">True</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkCheckButton" id="sysmenu"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Show _system menu</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="active">False</property> + <property name="inconsistent">False</property> + <property name="draw_indicator">True</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkCheckButton" id="config_available"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Allow _configuration from the login screen</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="active">False</property> @@ -1077,6 +1753,7 @@ <child> <widget class="GtkSpinButton" id="udpport"> + <property name="width_request">58</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="climb_rate">1</property> @@ -1092,6 +1769,7 @@ <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> + <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> @@ -1106,13 +1784,14 @@ <property name="update_policy">GTK_UPDATE_ALWAYS</property> <property name="snap_to_ticks">False</property> <property name="wrap">False</property> - <property name="adjustment">1 0 100 1 10 10</property> + <property name="adjustment">2 0 100 1 10 10</property> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> + <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> @@ -1134,6 +1813,7 @@ <property name="right_attach">2</property> <property name="top_attach">3</property> <property name="bottom_attach">4</property> + <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> @@ -1155,6 +1835,7 @@ <property name="right_attach">2</property> <property name="top_attach">4</property> <property name="bottom_attach">5</property> + <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> @@ -1176,6 +1857,7 @@ <property name="right_attach">2</property> <property name="top_attach">5</property> <property name="bottom_attach">6</property> + <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> @@ -1197,6 +1879,7 @@ <property name="right_attach">2</property> <property name="top_attach">6</property> <property name="bottom_attach">7</property> + <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> @@ -1218,6 +1901,7 @@ <property name="right_attach">2</property> <property name="top_attach">7</property> <property name="bottom_attach">8</property> + <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> @@ -1239,6 +1923,7 @@ <property name="right_attach">2</property> <property name="top_attach">8</property> <property name="bottom_attach">9</property> + <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> |