summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog31
-rw-r--r--docs/es/gdm.xml12
-rw-r--r--docs/uk/gdm.xml12
-rw-r--r--gui/gdmlogin.c59
-rw-r--r--gui/gdmsession.c160
-rw-r--r--gui/gdmsession.h18
-rw-r--r--gui/gdmsetup.c1595
-rw-r--r--gui/gdmsetup.glade8155
-rw-r--r--gui/gdmuser.c28
-rw-r--r--gui/gdmuser.h6
-rw-r--r--gui/greeter/greeter.c60
11 files changed, 7131 insertions, 3005 deletions
diff --git a/ChangeLog b/ChangeLog
index 43ff4488..091fd6bb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,34 @@
+2006-12-07 Lukasz Zalewski <lukas@dcs.qmul.ac.uk>
+
+ Fixes bug/feature request #334186.
+ Fixes bug #343206
+ Fixes bug #347101
+ * gui/gdmsession. [ch] (_gdm_session_list_init): Replaces functionality
+ of gdm_session_list_init
+ * gui/gdmsession. [ch] (gdm_session_list_init): Becomes a wrapper for
+ _gdm_session_list_init, such that the old functionality within the
+ code is still preserved but session data can be available through
+ _gdm_session_list_init
+ * gui/gdmsession.c : Removed gdmwm.h include
+ * gui/gdmsession. [ch] (gdm_session_lookup): Removed all the
+ gdm_wm_query_dialog calls making the function accessible without need
+ for gdmwm libraries
+ * gui/gdmsession. [ch] (gdm_set_save_session): Sets save session
+ variable
+ * gui/gdmsession. [ch] (gdm_get_default_session): Returns default
+ session
+ * gui/gdmlogin.c (process_operation): Added gdm_wm_query_dialog calls
+ for processing lookup session results
+ * gui/greeter/greeter.c (process_operation): Added
+ gdm_wm_query_dialog calls for processing lookup session results
+ * gui/gdmuser. [ch] (gdm_user_uid): Returns uid of a user, or -1 if
+ user does not exist
+ * gui/gdmuser. [ch] (get_root_user): Moved from gdmsetup.c
+ * gui/gdmsetup.glade: New widgets and tooltips added
+ * gui/gdmsetup.c: Numerous functions added/modifed to make way for new
+ functionality
+ * gui/gdmsetup.c (combobox_changed): Additional fix for bug #358114
+
2006-12-05 Brian Cameron <brian.cameron@sun.com>
* vicious-extensions/ve-miscui.c: Same fix for
diff --git a/docs/es/gdm.xml b/docs/es/gdm.xml
index 2aac74fb..da8a88dd 100644
--- a/docs/es/gdm.xml
+++ b/docs/es/gdm.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
<!ENTITY legal SYSTEM "legal.xml">
-<!ENTITY version "2.17.2">
-<!ENTITY date "05/12/2006">
+<!ENTITY version "2.17.3">
+<!ENTITY date "12/04/2006">
]>
<article id="index" lang="es">
<articleinfo>
@@ -72,8 +72,8 @@
<releaseinfo>
- This manual describes version 2.17.2 of the GNOME Display Manager.
- It was last updated on 05/12/2006.
+ This manual describes version 2.17.3 of the GNOME Display Manager.
+ It was last updated on 12/04/2006.
</releaseinfo>
</articleinfo>
@@ -81,8 +81,8 @@
<title>Términos y convenciones usados en este manual</title>
<para>
- This manual describes version 2.17.2 of the GNOME Display Manager.
- It was last updated on 05/12/2006.
+ This manual describes version 2.17.3 of the GNOME Display Manager.
+ It was last updated on 12/04/2006.
</para>
<para>Selector: Un programa que se usa para seleccionar un equipo remoto para gestionar una pantalla remotamente en la pantalla local (<command>gdmchooser</command>).</para>
diff --git a/docs/uk/gdm.xml b/docs/uk/gdm.xml
index cc8742a0..b0fb2caa 100644
--- a/docs/uk/gdm.xml
+++ b/docs/uk/gdm.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
<!ENTITY legal SYSTEM "legal.xml">
-<!ENTITY version "2.17.2">
-<!ENTITY date "05/12/2006">
+<!ENTITY version "2.17.3">
+<!ENTITY date "12/04/2006">
]>
<article id="index" lang="uk">
<articleinfo>
@@ -72,8 +72,8 @@
<releaseinfo>
- This manual describes version 2.17.2 of the GNOME Display Manager.
- It was last updated on 05/12/2006.
+ This manual describes version 2.17.3 of the GNOME Display Manager.
+ It was last updated on 12/04/2006.
</releaseinfo>
</articleinfo>
@@ -81,8 +81,8 @@
<title>Терміни та домовленості використані у цьому посібнику</title>
<para>
- This manual describes version 2.17.2 of the GNOME Display Manager.
- It was last updated on 05/12/2006.
+ This manual describes version 2.17.3 of the GNOME Display Manager.
+ It was last updated on 12/04/2006.
</para>
<para>Селектор - програма, що використовується для керування дисплеєм віддаленого вузла з локального дисплея (<command>gdmchooser</command>).</para>
diff --git a/gui/gdmlogin.c b/gui/gdmlogin.c
index b980ae0f..698c5e28 100644
--- a/gui/gdmlogin.c
+++ b/gui/gdmlogin.c
@@ -1532,7 +1532,11 @@ process_operation (guchar op_code,
static gboolean replace_msg = TRUE;
static gboolean messages_to_give = FALSE;
gboolean greeter_probably_login_prompt = FALSE;
-
+ gint lookup_status = SESSION_LOOKUP_SUCCESS;
+ gchar *firstmsg = NULL;
+ gchar *secondmsg = NULL;
+ gint save_session = GTK_RESPONSE_NO;
+
/* Parse opcode */
switch (op_code) {
case GDM_SETLOGIN:
@@ -1698,7 +1702,58 @@ process_operation (guchar op_code,
case GDM_SESS:
tmp = ve_locale_to_utf8 (args);
- session = gdm_session_lookup (tmp);
+ session = gdm_session_lookup (tmp, &lookup_status);
+ if (lookup_status != SESSION_LOOKUP_SUCCESS) {
+ switch (lookup_status) {
+ case SESSION_LOOKUP_PREFERRED_MISSING:
+ firstmsg = g_strdup_printf (_("Do you wish to make %s the default for "
+ "future sessions?"),
+ gdm_session_name (tmp));
+ secondmsg = g_strdup_printf (_("Your preferred session type %s is not "
+ "installed on this computer."),
+ gdm_session_name (gdm_get_default_session ()));
+ save_session = gdm_wm_query_dialog (firstmsg, secondmsg,
+ _("Make _Default"), _("Just _Log In"), TRUE);
+ g_free (firstmsg);
+ g_free (secondmsg);
+ gdm_set_save_session (save_session);
+ break;
+
+ case SESSION_LOOKUP_DEFAULT_MISMATCH:
+ firstmsg = g_strdup_printf (_("Do you wish to make %s the default for "
+ "future sessions?"),
+ gdm_session_name (session));
+ secondmsg = g_strdup_printf (_("You have chosen %s for this "
+ "session, but your default "
+ "setting is %s."),
+ gdm_session_name (session),
+ gdm_session_name (tmp));
+ save_session = gdm_wm_query_dialog (firstmsg, secondmsg,
+ _("Make _Default"), _("Just For _This Session"), TRUE);
+
+ g_free (firstmsg);
+ g_free (secondmsg);
+ gdm_set_save_session (save_session);
+ break;
+ case SESSION_LOOKUP_USE_SWITCHDESK:
+ firstmsg = g_strdup_printf (_("You have chosen %s for this "
+ "session"),
+ gdm_session_name (session));
+ secondmsg = g_strdup_printf (_("If you wish to make %s "
+ "the default for future sessions, "
+ "run the 'switchdesk' utility "
+ "(System->Desktop Switching Tool from "
+ "the panel menu)."),
+ gdm_session_name (session));
+ gdm_wm_message_dialog (firstmsg, secondmsg);
+ g_free (firstmsg);
+ g_free (secondmsg);
+ break;
+
+ default:
+ break;
+ }
+ }
g_free (tmp);
if (gdm_get_save_session () == GTK_RESPONSE_CANCEL) {
printf ("%c%s\n", STX, GDM_RESPONSE_CANCEL);
diff --git a/gui/gdmsession.c b/gui/gdmsession.c
index 92a50d18..f67a0a4d 100644
--- a/gui/gdmsession.c
+++ b/gui/gdmsession.c
@@ -32,7 +32,6 @@
#include "gdmsession.h"
#include "gdmcommon.h"
#include "gdmconfig.h"
-#include "gdmwm.h"
GHashTable *sessnames = NULL;
gchar *default_session = NULL;
@@ -107,9 +106,21 @@ gdm_session_list_from_hash_table_func (const char *key, const char *value,
*sessions = g_list_prepend (*sessions, g_strdup (key));
}
+/* Just a wrapper to ensure compatibility with the
+ existing code */
void
gdm_session_list_init ()
{
+ _gdm_session_list_init (&sessnames, &sessions,
+ &default_session, &current_session);
+}
+
+/* The real gdm_session_list_init */
+void
+_gdm_session_list_init (GHashTable **sessnames, GList **sessions,
+ gchar **default_session, const gchar **current_session)
+{
+
GdmSession *session = NULL;
gboolean some_dir_exists = FALSE;
gboolean searching_for_default = TRUE;
@@ -119,7 +130,7 @@ gdm_session_list_init ()
DIR *sessdir;
int i;
- sessnames = g_hash_table_new (g_str_hash, g_str_equal);
+ *sessnames = g_hash_table_new (g_str_hash, g_str_equal);
if (gdm_config_get_bool (GDM_KEY_SHOW_GNOME_FAILSAFE)) {
session = g_new0 (GdmSession, 1);
@@ -130,7 +141,7 @@ gdm_session_list_init ()
"and it is only to be used when you can't log "
"in otherwise. GNOME will use the 'Default' "
"session."));
- g_hash_table_insert (sessnames, g_strdup (GDM_SESSION_FAILSAFE_GNOME), session);
+ g_hash_table_insert (*sessnames, g_strdup (GDM_SESSION_FAILSAFE_GNOME), session);
}
if (gdm_config_get_bool (GDM_KEY_SHOW_XTERM_FAILSAFE)) {
@@ -143,7 +154,7 @@ gdm_session_list_init ()
"and it is only to be used when you can't log "
"in otherwise. To exit the terminal, "
"type 'exit'."));
- g_hash_table_insert (sessnames, g_strdup (GDM_SESSION_FAILSAFE_XTERM),
+ g_hash_table_insert (*sessnames, g_strdup (GDM_SESSION_FAILSAFE_XTERM),
session);
}
@@ -183,7 +194,7 @@ gdm_session_list_init ()
}
/* already found this session, ignore */
- if (g_hash_table_lookup (sessnames, dent->d_name) != NULL) {
+ if (g_hash_table_lookup (*sessnames, dent->d_name) != NULL) {
dent = readdir (sessdir);
continue;
}
@@ -196,7 +207,7 @@ gdm_session_list_init ()
session = g_new0 (GdmSession, 1);
session->name = g_strdup (dent->d_name);
session->clearname = NULL;
- g_hash_table_insert (sessnames, g_strdup (dent->d_name), session);
+ g_hash_table_insert (*sessnames, g_strdup (dent->d_name), session);
ve_config_destroy (cfg);
dent = readdir (sessdir);
continue;
@@ -215,7 +226,7 @@ gdm_session_list_init ()
session = g_new0 (GdmSession, 1);
session->name = g_strdup (dent->d_name);
session->clearname = NULL;
- g_hash_table_insert (sessnames, g_strdup (dent->d_name),
+ g_hash_table_insert (*sessnames, g_strdup (dent->d_name),
session);
g_free (tryexec);
ve_config_destroy (cfg);
@@ -237,7 +248,7 @@ gdm_session_list_init ()
session = g_new0 (GdmSession, 1);
session->name = g_strdup (dent->d_name);
session->clearname = NULL;
- g_hash_table_insert (sessnames, g_strdup (dent->d_name), session);
+ g_hash_table_insert (*sessnames, g_strdup (dent->d_name), session);
g_free (exec);
g_free (name);
g_free (comment);
@@ -246,34 +257,36 @@ gdm_session_list_init ()
}
/* if we found the default session */
- if ( ! ve_string_empty (gdm_config_get_string (GDM_KEY_DEFAULT_SESSION)) &&
- strcmp (dent->d_name, gdm_config_get_string (GDM_KEY_DEFAULT_SESSION)) == 0) {
- g_free (default_session);
- default_session = g_strdup (dent->d_name);
- searching_for_default = FALSE;
- }
-
- /* if there is a session called Default */
- if (searching_for_default &&
- g_ascii_strcasecmp (dent->d_name, "default.desktop") == 0) {
- g_free (default_session);
- default_session = g_strdup (dent->d_name);
- }
+ if (default_session != NULL) {
+ if ( ! ve_string_empty (gdm_config_get_string (GDM_KEY_DEFAULT_SESSION)) &&
+ strcmp (dent->d_name, gdm_config_get_string (GDM_KEY_DEFAULT_SESSION)) == 0) {
+ g_free (*default_session);
+ *default_session = g_strdup (dent->d_name);
+ searching_for_default = FALSE;
+ }
+
+ /* if there is a session called Default */
+ if (searching_for_default &&
+ g_ascii_strcasecmp (dent->d_name, "default.desktop") == 0) {
+ g_free (*default_session);
+ *default_session = g_strdup (dent->d_name);
+ }
- if (searching_for_default &&
- g_ascii_strcasecmp (dent->d_name, "gnome.desktop") == 0) {
- /* Just in case there is no default session and
- * no default link, make gnome the default */
- if (default_session == NULL)
- default_session = g_strdup (dent->d_name);
+ if (searching_for_default &&
+ g_ascii_strcasecmp (dent->d_name, "gnome.desktop") == 0) {
+ /* Just in case there is no default session and
+ * no default link, make gnome the default */
+ if (*default_session == NULL)
+ *default_session = g_strdup (dent->d_name);
+ }
}
session = g_new0 (GdmSession, 1);
session->name = g_strdup (name);
session->clearname = NULL;
session->comment = g_strdup (comment);
- g_hash_table_insert (sessnames, g_strdup (dent->d_name), session);
+ g_hash_table_insert (*sessnames, g_strdup (dent->d_name), session);
g_free (exec);
g_free (comment);
dent = readdir (sessdir);
@@ -293,12 +306,13 @@ gdm_session_list_init ()
session_dir_whacked_out = TRUE;
}
- if G_UNLIKELY (g_hash_table_size (sessnames) == 0) {
+ if G_UNLIKELY (g_hash_table_size (*sessnames) == 0) {
gdm_common_warning ("Error, no sessions found in the session directory <%s>.",
ve_sure_string (gdm_config_get_string (GDM_KEY_SESSION_DESKTOP_DIR)));
session_dir_whacked_out = TRUE;
- default_session = g_strdup (GDM_SESSION_FAILSAFE_GNOME);
+ if (default_session != NULL)
+ *default_session = g_strdup (GDM_SESSION_FAILSAFE_GNOME);
}
@@ -311,7 +325,7 @@ gdm_session_list_init ()
"and it is only to be used when you can't log "
"in otherwise. GNOME will use the 'Default' "
"session."));
- g_hash_table_insert (sessnames,
+ g_hash_table_insert (*sessnames,
g_strdup (GDM_SESSION_FAILSAFE_GNOME), session);
}
@@ -324,24 +338,28 @@ gdm_session_list_init ()
"and it is only to be used when you can't log "
"in otherwise. To exit the terminal, "
"type 'exit'."));
- g_hash_table_insert (sessnames,
+ g_hash_table_insert (*sessnames,
g_strdup (GDM_SESSION_FAILSAFE_XTERM), session);
}
/* Convert to list (which is unsorted) */
- g_hash_table_foreach (sessnames,
- (GHFunc) gdm_session_list_from_hash_table_func, &sessions);
+ g_hash_table_foreach (*sessnames,
+ (GHFunc) gdm_session_list_from_hash_table_func, sessions);
/* Prioritize and sort the list */
- sessions = g_list_sort (sessions, (GCompareFunc) gdm_session_sort_func);
+ sessions = g_list_sort (*sessions, (GCompareFunc) gdm_session_sort_func);
- if G_UNLIKELY (default_session == NULL) {
- default_session = g_strdup (GDM_SESSION_FAILSAFE_GNOME);
- gdm_common_warning ("No default session link found. Using Failsafe GNOME.");
- }
+ if (default_session != NULL)
+ if G_UNLIKELY (*default_session == NULL) {
+ *default_session = g_strdup (GDM_SESSION_FAILSAFE_GNOME);
+ gdm_common_warning ("No default session link found. Using Failsafe GNOME.");
+ }
- if (current_session == NULL)
- current_session = default_session;
+ if (current_session != NULL &&
+ default_session != NULL) {
+ if (*current_session == NULL)
+ *current_session = *default_session;
+ }
}
static gboolean
@@ -371,10 +389,13 @@ gdm_login_list_lookup (GList *l, const gchar *data)
}
char *
-gdm_session_lookup (const char *saved_session)
+gdm_session_lookup (const char *saved_session, gint *lookup_status)
{
gchar *session = NULL;
+ /* Assume that the lookup will go well */
+ *lookup_status = SESSION_LOOKUP_SUCCESS;
+
/* Don't save session unless told otherwise */
save_session = GTK_RESPONSE_NO;
@@ -402,21 +423,10 @@ gdm_session_lookup (const char *saved_session)
/* Check if user's saved session exists on this box */
if (!gdm_login_list_lookup (sessions, session))
{
- gchar *firstmsg;
- gchar *secondmsg;
-
+
g_free (session);
session = g_strdup (default_session);
- firstmsg = g_strdup_printf (_("Do you wish to make %s the default for "
- "future sessions?"),
- gdm_session_name (saved_session));
- secondmsg = g_strdup_printf (_("Your preferred session type %s is not "
- "installed on this computer."),
- gdm_session_name (default_session));
- save_session = gdm_wm_query_dialog (firstmsg, secondmsg,
- _("Make _Default"), _("Just _Log In"), TRUE);
- g_free (firstmsg);
- g_free (secondmsg);
+ *lookup_status = SESSION_LOOKUP_PREFERRED_MISSING;
}
}
else /* One of the other available session types is selected */
@@ -437,22 +447,10 @@ gdm_session_lookup (const char *saved_session)
save_session = GTK_RESPONSE_NO;
}
else if (strcmp (saved_session, session) != 0)
- {
- gchar *firstmsg = NULL;
- gchar *secondmsg = NULL;
-
+ {
if (gdm_config_get_bool (GDM_KEY_SHOW_LAST_SESSION))
{
- firstmsg = g_strdup_printf (_("Do you wish to make %s the default for "
- "future sessions?"),
- gdm_session_name (session));
- secondmsg = g_strdup_printf (_("You have chosen %s for this "
- "session, but your default "
- "setting is %s."),
- gdm_session_name (session),
- gdm_session_name (saved_session));
- save_session = gdm_wm_query_dialog (firstmsg, secondmsg,
- _("Make _Default"), _("Just For _This Session"), TRUE);
+ *lookup_status = SESSION_LOOKUP_DEFAULT_MISMATCH;
}
else if (strcmp (session, default_session) != 0 &&
strcmp (session, saved_session) != 0 &&
@@ -465,21 +463,10 @@ gdm_session_lookup (const char *saved_session)
*/
if (g_access ("/usr/bin/switchdesk", F_OK) == 0)
{
- firstmsg = g_strdup_printf (_("You have chosen %s for this "
- "session"),
- gdm_session_name (session));
- secondmsg = g_strdup_printf (_("If you wish to make %s "
- "the default for future sessions, "
- "run the 'switchdesk' utility "
- "(System->Desktop Switching Tool from "
- "the panel menu)."),
- gdm_session_name (session));
- gdm_wm_message_dialog (firstmsg, secondmsg);
+ *lookup_status = SESSION_LOOKUP_USE_SWITCHDESK;
}
save_session = GTK_RESPONSE_NO;
}
- g_free (firstmsg);
- g_free (secondmsg);
}
}
@@ -492,3 +479,14 @@ gdm_get_save_session (void)
return save_session;
}
+gint
+gdm_set_save_session (const gint session)
+{
+ save_session = session;
+}
+
+const char*
+gdm_get_default_session (void)
+{
+ return default_session;
+}
diff --git a/gui/gdmsession.h b/gui/gdmsession.h
index 737692d7..c6c67044 100644
--- a/gui/gdmsession.h
+++ b/gui/gdmsession.h
@@ -33,7 +33,18 @@ typedef struct {
char *comment;
} GdmSession;
+enum {
+ SESSION_LOOKUP_SUCCESS,
+ SESSION_LOOKUP_PREFERRED_MISSING,
+ SESSION_LOOKUP_DEFAULT_MISMATCH,
+ SESSION_LOOKUP_USE_SWITCHDESK
+};
+
void gdm_session_list_init (void);
+void _gdm_session_list_init (GHashTable **sessnames,
+ GList **sessions,
+ gchar **default_session,
+ const gchar **current_session);
gint gdm_session_sort_func (const char *a, const char *b);
const char * gdm_session_name (const char *name);
void gdm_session_list_from_hash_table_func (const char *key,
@@ -41,7 +52,12 @@ void gdm_session_list_from_hash_table_func (const char *key,
GList **sessions);
gint gdm_session_sort_func (const char *a,
const char *b);
-char * gdm_session_lookup (const char *saved_session);
+char * gdm_session_lookup (const char *saved_session, gint *lookup_status);
+
gint gdm_get_save_session (void);
+gint gdm_set_save_session (const gint session);
+
+const char * gdm_get_default_session (void);
+
#endif /* GDM_SESSION_H */
diff --git a/gui/gdmsetup.c b/gui/gdmsetup.c
index 47d25df5..04f288b8 100644
--- a/gui/gdmsetup.c
+++ b/gui/gdmsetup.c
@@ -47,19 +47,18 @@
#include "misc.h"
#include "gdmcomm.h"
#include "gdmuser.h"
+#include "gdmsession.h"
#include "gdmconfig.h"
static char *GdmSoundProgram = NULL;
static gchar *GdmExclude = NULL;
static gchar *GdmInclude = NULL;
-static gint GdmMinimalUID = 100;
static gint GdmIconMaxHeight;
static gint GdmIconMaxWidth;
static gboolean GdmIncludeAll;
-static gboolean GdmAllowRoot;
-static gboolean GdmAllowRemoteRoot;
static gboolean GdmUserChangesUnsaved;
static gboolean GdmRandomFromSelectedChangesWarn;
+static gint last_selected_command;
/* set the DOING_GDM_DEVELOPMENT env variable if you want to
* search for the glade file in the current dir and not the system
@@ -84,6 +83,13 @@ static gchar *config_file;
static gchar *custom_config_file;
static GSList *xservers;
+/* This is used to store changes made to all
+ possible fields of custom/normal commands */
+static GHashTable *GdmCommandChangesUnsaved = NULL;
+
+/* Used to store all available sessions */
+static GList *sessions = NULL;
+
enum {
XSERVER_COLUMN_VT,
XSERVER_COLUMN_SERVER,
@@ -116,6 +122,7 @@ enum {
};
enum {
+ GENERAL_TAB,
LOCAL_TAB,
REMOTE_TAB,
ACCESSIBILITY_TAB,
@@ -124,6 +131,19 @@ enum {
};
enum {
+ CLOCK_AUTO,
+ CLOCK_YES,
+ CLOCK_NO
+};
+
+enum {
+ HALT_CMD,
+ REBOOT_CMD,
+ SUSPEND_CMD,
+ CUSTOM_CMD
+};
+
+enum {
LOCAL_PLAIN,
LOCAL_PLAIN_WITH_FACE,
LOCAL_THEMED
@@ -388,14 +408,189 @@ gdm_setup_config_set_string (const char *key, gchar *val)
}
static gboolean
+radiogroup_timeout (GtkWidget *toggle)
+{
+ const char *key = g_object_get_data (G_OBJECT (toggle), "key");
+ GList *radio_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (toggle));
+
+ if (strcmp (ve_sure_string (key), GDM_KEY_RELAX_PERM) == 0) {
+ GList *tmp;
+ gint val;
+ gint selected;
+ gint i = 0;
+ gint list_size;
+
+ val = gdm_config_get_int ((gchar *)key);
+ list_size = g_slist_length (radio_group) - 1;
+
+ for (tmp = radio_group; tmp != NULL; tmp = tmp->next, i++) {
+ GtkWidget *radio_button;
+ radio_button = (GtkWidget *) tmp->data;
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (radio_button)))
+ selected = list_size - i;
+ }
+
+ if (val != selected)
+ gdm_setup_config_set_int (key, selected);
+
+ }
+ return FALSE;
+}
+
+static gboolean
toggle_timeout (GtkWidget *toggle)
{
const char *key = g_object_get_data (G_OBJECT (toggle), "key");
gboolean val = gdm_config_get_bool ((gchar *)key);
- if ( ! ve_bool_equal (val, GTK_TOGGLE_BUTTON (toggle)->active)) {
- gdm_setup_config_set_bool (key, GTK_TOGGLE_BUTTON (toggle)->active);
+ if (strcmp (ve_sure_string (key), GDM_KEY_ENTRY_INVISIBLE) == 0) {
+ /* This is a lil bit back to front
+ true is false and false is true in this case */
+ if ( ve_bool_equal (val, GTK_TOGGLE_BUTTON (toggle)->active)) {
+ gdm_setup_config_set_bool (key, !GTK_TOGGLE_BUTTON (toggle)->active);
+ }
}
+ else if (strcmp (ve_sure_string (key), GDM_KEY_GLOBAL_FACE_DIR) == 0) {
+ /* Once enabled write the curently selected item
+ in the filechooser widget, otherwise disable
+ the config entry, i.e. write an empty string */
+ if (GTK_TOGGLE_BUTTON (toggle)->active == TRUE) {
+ gchar *filename;
+ GtkWidget *file_chooser;
+
+ file_chooser = glade_helper_get (xml, "global_face_dir_filechooser",
+ GTK_TYPE_FILE_CHOOSER_BUTTON);
+ filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_chooser));
+
+ if (strcmp (ve_sure_string (gdm_config_get_string ((char*)key)),
+ ve_sure_string (filename)) != 0)
+ gdm_setup_config_set_string (key, ve_sure_string (filename));
+
+ g_free (filename);
+ }
+ else
+ gdm_setup_config_set_string (key, "");
+ }
+ else if (strcmp (ve_sure_string (key), GDM_KEY_DEFAULT_FACE) == 0) {
+ /* Once enabled write the curently selected item
+ in the filechooser widget, otherwise disable
+ the config entry, i.e. write an empty string */
+ if (GTK_TOGGLE_BUTTON (toggle)->active == TRUE) {
+ gchar *filename;
+ GtkWidget *file_chooser;
+
+ file_chooser = glade_helper_get (xml, "default_face_filechooser",
+ GTK_TYPE_FILE_CHOOSER_BUTTON);
+ filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_chooser));
+
+ if (strcmp (ve_sure_string (gdm_config_get_string ((char*)key)),
+ ve_sure_string (filename)) != 0)
+ gdm_setup_config_set_string (key, ve_sure_string (filename));
+
+ g_free (filename);
+ }
+ else
+ gdm_setup_config_set_string (key, "");
+ }
+ else if (strcmp (ve_sure_string (key), GDM_KEY_GTKRC) == 0) {
+ /* Once enabled write the curently selected item
+ in the filechooser widget, otherwise disable
+ the config entry, i.e. write an empty string */
+ if (GTK_TOGGLE_BUTTON (toggle)->active == TRUE) {
+ gchar *filename;
+ GtkWidget *file_chooser;
+
+ file_chooser = glade_helper_get (xml, "gtkrc_chooserbutton",
+ GTK_TYPE_FILE_CHOOSER_BUTTON);
+ filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_chooser));
+
+ if (strcmp (ve_sure_string (gdm_config_get_string ((char*)key)),
+ ve_sure_string (filename)) != 0)
+ gdm_setup_config_set_string (key, ve_sure_string (filename));
+
+ g_free (filename);
+ }
+ else
+ gdm_setup_config_set_string (key, "");
+ }
+ else if (strcmp (ve_sure_string (key), GDM_KEY_DEFAULT_SESSION) == 0) {
+ /* Once enabled write the curently selected item
+ in the combobox widget, otherwise disable
+ the config entry, i.e. write an empty string */
+
+ if (GTK_TOGGLE_BUTTON (toggle)->active == TRUE) {
+ gint selected;
+ gchar *value;
+ gchar *new_val = NULL;
+ GtkWidget *default_session_combobox;
+
+ default_session_combobox = glade_helper_get (xml, "default_session_combobox",
+ GTK_TYPE_COMBO_BOX);
+
+ selected = gtk_combo_box_get_active (GTK_COMBO_BOX (default_session_combobox));
+
+ value = gdm_config_get_string ((gchar *)key);
+
+ new_val = g_strdup ((gchar*) g_slist_nth_data (sessions, selected));
+
+ if (strcmp (ve_sure_string (value), ve_sure_string (new_val)) != 0)
+ gdm_setup_config_set_string (key, ve_sure_string (new_val));
+
+ g_free (value);
+ g_free (new_val);
+ }
+ else
+ gdm_setup_config_set_string (key, "");
+ }
+ else if (strcmp (ve_sure_string (key), GDM_KEY_CUSTOM_CMD_IS_PERSISTENT_TEMPLATE) == 0 ||
+ strcmp (ve_sure_string (key), GDM_KEY_CUSTOM_CMD_NO_RESTART_TEMPLATE) == 0) {
+ /* This only applies to custom commands
+ First find which command has been ticked on/off then put the new value
+ together with the corresponding key into the command changed hash.
+ Enable apply command changes button. If command is equal to the existing
+ config value remove it from the hash and disable the apply command changes
+ button (if applicable) */
+
+ gchar *key_string;
+ gboolean old_val = FALSE;
+ GtkWidget *apply_cmd_changes;
+ GtkWidget *command_combobox;
+ gint selected, i;
+
+ val = GTK_TOGGLE_BUTTON (toggle)->active;
+ apply_cmd_changes = glade_helper_get (xml, "command_apply_button", GTK_TYPE_BUTTON);
+ command_combobox = glade_helper_get (xml,
+ "cmd_type_combobox",
+ GTK_TYPE_COMBO_BOX);
+
+ selected = gtk_combo_box_get_active (GTK_COMBO_BOX (command_combobox));
+
+ i = selected - CUSTOM_CMD;
+ key_string = g_strdup_printf(_("%s%d="), ve_sure_string (key), i);
+ old_val = gdm_config_get_bool (key_string);
+
+ if (val != old_val) {
+ gboolean *p_val = g_new0 (gboolean, 1);
+ *p_val = val;
+ g_hash_table_insert (GdmCommandChangesUnsaved, g_strdup (key_string), p_val);
+ }
+ else if (g_hash_table_lookup (GdmCommandChangesUnsaved, key_string) != NULL) {
+ g_hash_table_remove (GdmCommandChangesUnsaved, key_string);
+ }
+
+ g_free (key_string);
+
+ if (g_hash_table_size (GdmCommandChangesUnsaved) == 0)
+ gtk_widget_set_sensitive (apply_cmd_changes, FALSE);
+ else
+ gtk_widget_set_sensitive (apply_cmd_changes, TRUE);
+ }
+ else {
+ /* All other cases */
+ if ( ! ve_bool_equal (val, GTK_TOGGLE_BUTTON (toggle)->active)) {
+ gdm_setup_config_set_bool (key, GTK_TOGGLE_BUTTON (toggle)->active);
+ }
+ }
return FALSE;
}
@@ -464,18 +659,131 @@ logo_toggle_toggled (GtkWidget *toggle, gpointer data)
run_timeout (toggle, 200, logo_toggle_timeout);
}
+/* Forward declarations */
+static void
+setup_user_combobox_list (const char *name, const char *key);
+static char *
+strings_list_add (char *strings_list, const char *string, const char *sep);
+static char *
+strings_list_remove (char *strings_list, const char *string, const char *sep);
+
static gboolean
intspin_timeout (GtkWidget *spin)
{
const char *key = g_object_get_data (G_OBJECT (spin), "key");
int new_val = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (spin));
int val;
+ gboolean greeters_need_update = FALSE;
val = gdm_config_get_int ((gchar *)key);
+ if (strcmp (ve_sure_string (key), GDM_KEY_MINIMAL_UID) == 0){
+ /* We have changed MinimalUID, so we need to go through
+ the list of existing users in the Include list and remove
+ the entries that do not match the criteria anymore. If there
+ are any user is informed about the changes. Auto login and
+ timed login comboboxes are adjusted and greeters restarted */
+ char **list;
+ char *removed = NULL;
+
+ list = g_strsplit (GdmInclude, ",", 0);
+ int i;
+ for (i=0; list != NULL && list[i] != NULL; i++) {
+ if (gdm_user_uid (list[i]) >= new_val)
+ continue;
+
+ GdmInclude = strings_list_remove (GdmInclude, list[i], ",");
+ removed = strings_list_add(removed, list[i], ",");
+
+ }
+ g_strfreev (list);
+
+ //Now if there were items to remove then
+ if (removed != NULL) {
+ gboolean valid;
+ gchar *text;
+ GtkWidget *include_treeview;
+ GtkTreeModel *include_model;
+ GtkWidget *dlg;
+ GtkTreeIter iter;
+
+ //Inform user about the change and its implications
+ dlg = ve_hig_dialog_new (NULL,
+ GTK_DIALOG_MODAL,
+ GTK_MESSAGE_WARNING,
+ GTK_BUTTONS_OK,
+ _("Users include list modification"),
+ _("Some of the users in the Include list "
+ "(Users tab) now have uid lower than "
+ "MinumalUID and will be removed."));
+ gtk_dialog_run (GTK_DIALOG (dlg));
+ gtk_widget_destroy (dlg);
+
+ include_treeview = glade_helper_get (xml, "fb_include_treeview",
+ GTK_TYPE_TREE_VIEW);
+ include_model = gtk_tree_view_get_model (GTK_TREE_VIEW (include_treeview));
+
+ valid = gtk_tree_model_get_iter_first (include_model, &iter);
+ while (valid) {
+ gtk_tree_model_get (include_model, &iter, USERLIST_NAME,
+ &text, -1);
+
+ if (strstr (removed, text) != NULL) {
+ valid = gtk_list_store_remove (GTK_LIST_STORE (include_model), &iter);
+ }
+ else {
+ valid = gtk_tree_model_iter_next (include_model, &iter);
+ }
+ }
+ g_free (text);
+ /* Now we need to save updated list, toggle the
+ automatic and timed loggon comboboxes and update greeters */
+ gdm_setup_config_set_string (GDM_KEY_INCLUDE, GdmInclude);
+
+ greeters_need_update = TRUE;
+
+ }
+
+ g_free (removed);
+
+ /* We also need to check if user (if any) in the
+ autologon/timed logon still match the criteria */
+ gchar *autologon_user;
+ gchar *timedlogon_user;
+
+ autologon_user = gdm_config_get_string (GDM_KEY_AUTOMATIC_LOGIN);
+ timedlogon_user = gdm_config_get_string (GDM_KEY_TIMED_LOGIN);
+
+ if(!ve_string_empty (autologon_user)) {
+ if (gdm_is_user_valid (autologon_user) && gdm_user_uid (autologon_user) < new_val) {
+ gdm_setup_config_set_string (GDM_KEY_AUTOMATIC_LOGIN, "");
+ greeters_need_update = TRUE;
+ }
+ }
+
+ if(!ve_string_empty (timedlogon_user)) {
+ if (gdm_is_user_valid (timedlogon_user) && gdm_user_uid (timedlogon_user) < new_val) {
+ gdm_setup_config_set_string (GDM_KEY_TIMED_LOGIN, "");
+ greeters_need_update = TRUE;
+ }
+ }
+
+ g_free (autologon_user);
+ g_free (timedlogon_user);
+
+ }
+
if (val != new_val)
gdm_setup_config_set_int (key, new_val);
+ if (greeters_need_update) {
+ setup_user_combobox_list ("autologin_combo",
+ GDM_KEY_AUTOMATIC_LOGIN);
+ setup_user_combobox_list ("timedlogin_combo",
+ GDM_KEY_TIMED_LOGIN);
+ update_greeters ();
+ }
+
return FALSE;
}
@@ -667,6 +975,7 @@ void init_servers_combobox (int index)
GtkWidget *style_combobox;
GtkWidget *handled_checkbutton;
GtkWidget *flexible_checkbutton;
+ GtkWidget *priority_spinbutton;
GtkListStore *store;
GdmXserver *xserver;
@@ -682,6 +991,8 @@ void init_servers_combobox (int index)
GTK_TYPE_CHECK_BUTTON);
flexible_checkbutton = glade_helper_get (xml_xservers, "xserver_flexible_checkbutton",
GTK_TYPE_CHECK_BUTTON);
+ priority_spinbutton = glade_helper_get(xml_xservers, "xserv_priority_spinbutton",
+ GTK_TYPE_SPIN_BUTTON);
/* Get list of servers that are set to start */
store = gtk_list_store_new (XSERVER_NUM_COLUMNS,
@@ -703,6 +1014,8 @@ void init_servers_combobox (int index)
gtk_combo_box_set_active (GTK_COMBO_BOX (style_combobox), XSERVER_LAUNCH_CHOOSER);
}
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (priority_spinbutton),
+ xserver->priority);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (handled_checkbutton),
xserver->handled);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (flexible_checkbutton),
@@ -1004,6 +1317,46 @@ combobox_timeout (GtkWidget *combo_box)
GTK_COMBO_BOX (combo_box)), &iter,
0, &new_val, -1);
}
+ else {
+ /* The selection was typed so there are two possibilities
+ 1. The typed value is a user
+ 2. The typed value is a script, garbage, ete (anything but an
+ existing user)
+ If its case 1. then we check if the user matches the MinimalUID
+ criteria or is not root. If its case 2. we do not do any checking */
+
+ new_val = gtk_combo_box_get_active_text (GTK_COMBO_BOX (combo_box));
+ if (gdm_is_user_valid (ve_sure_string (new_val))) {
+ gint user_uid = gdm_user_uid (new_val);
+ gint GdmMinimalUID = gdm_config_get_int (GDM_KEY_MINIMAL_UID);
+
+ if (user_uid == 0 || user_uid < GdmMinimalUID) {
+ /* we can't accept users that have uid lower
+ than minimal uid, or uid = 0 (root) */
+ gchar *str;
+ GtkWidget *dialog;
+
+ if (gdm_user_uid (new_val) == 0)
+ str = g_strdup (_("Autologin or timed login to the root account is forbidden."));
+ else
+ str = g_strdup_printf (_("The \"%s\" user UID is lower than allowed MinimalUID."), new_val);
+
+ dialog = ve_hig_dialog_new (NULL,
+ GTK_DIALOG_MODAL,
+ GTK_MESSAGE_ERROR,
+ GTK_BUTTONS_OK,
+ _("User not allowed"),
+ str);
+ gtk_dialog_run (GTK_DIALOG (dialog));
+ gtk_widget_destroy (dialog);
+ g_free (str);
+
+ gtk_combo_box_set_active (GTK_COMBO_BOX (combo_box), 0);
+ return TRUE;
+ }
+ }
+ }
+
val = gdm_config_get_string ((gchar *)key);
if (new_val &&
@@ -1067,6 +1420,138 @@ combobox_timeout (GtkWidget *combo_box)
}
g_free (section);
}
+ /* Use 24 clock combobox */
+ else if (strcmp (ve_sure_string (key), GDM_KEY_USE_24_CLOCK) == 0) {
+ gchar *val;
+ gchar *new_val;
+
+ new_val = gtk_combo_box_get_active_text (GTK_COMBO_BOX (combo_box));
+ val = gdm_config_get_string ((gchar *)key);
+ if (new_val &&
+ strcmp (ve_sure_string (val), ve_sure_string (new_val)) != 0) {
+ gdm_setup_config_set_string (key, new_val);
+ }
+ g_free (new_val);
+ g_free (val);
+ }
+ /* Commands combobox */
+ else if (strcmp (ve_sure_string (key), _("command_chooser_combobox")) == 0) {
+ /* We need to set the data according to selected command */
+ GtkWidget *hrs_cmd_entry = NULL;
+ GtkWidget *cust_cmd_entry = NULL;
+ GtkWidget *cust_cmd_label_entry = NULL;
+ GtkWidget *cust_cmd_lrlabel_entry = NULL;
+ GtkWidget *cust_cmd_text_entry = NULL;
+ GtkWidget *cust_cmd_tooltip_entry = NULL;
+ GtkWidget *cust_cmd_persistent_checkbox = NULL;
+ GtkWidget *cust_cmd_norestart_checkbox = NULL;
+ GtkWidget *status_label;
+ gchar *val = NULL;
+ gchar *key_string = NULL;
+ gboolean bool_val = FALSE;
+ gboolean enabled_command = FALSE;
+
+ hrs_cmd_entry = glade_helper_get (xml, "hrs_cmd_path_entry",
+ GTK_TYPE_ENTRY);
+ cust_cmd_entry = glade_helper_get (xml, "custom_cmd_path_entry",
+ GTK_TYPE_ENTRY);
+ status_label = glade_helper_get (xml, "command_status_label",
+ GTK_TYPE_LABEL);
+
+ if (selected == HALT_CMD) {
+ val = gdm_config_get_string (GDM_KEY_HALT);
+ gtk_entry_set_text (GTK_ENTRY (hrs_cmd_entry), ve_sure_string (val));
+ enabled_command = !ve_string_empty (val);
+ }
+ else if (selected == REBOOT_CMD) {
+ val = gdm_config_get_string (GDM_KEY_REBOOT);
+ gtk_entry_set_text (GTK_ENTRY (hrs_cmd_entry), ve_sure_string (val));
+ enabled_command = !ve_string_empty (val);
+ }
+ else if (selected == SUSPEND_CMD) {
+ val = gdm_config_get_string (GDM_KEY_SUSPEND);
+ gtk_entry_set_text (GTK_ENTRY (hrs_cmd_entry), ve_sure_string (val));
+ enabled_command = !ve_string_empty (val);
+ }
+ else {
+ gint i = selected - CUSTOM_CMD;
+ /* Here we are going to deal with custom commands */
+ key_string = g_strdup_printf(_("%s%d="), GDM_KEY_CUSTOM_CMD_TEMPLATE, i);
+ val = gdm_config_get_string (key_string);
+ gtk_entry_set_text (GTK_ENTRY (cust_cmd_entry), ve_sure_string (val));
+ enabled_command = !ve_string_empty (val);
+ g_free (key_string);
+ g_free (val);
+
+ key_string = g_strdup_printf(_("%s%d="), GDM_KEY_CUSTOM_CMD_LABEL_TEMPLATE, i);
+ cust_cmd_label_entry = glade_helper_get (xml, "custom_cmd_label_entry",
+ GTK_TYPE_ENTRY);
+ val = gdm_config_get_string (key_string);
+ gtk_entry_set_text (GTK_ENTRY (cust_cmd_label_entry), ve_sure_string (val));
+ g_free (key_string);
+ g_free (val);
+
+ key_string = g_strdup_printf(_("%s%d="), GDM_KEY_CUSTOM_CMD_LR_LABEL_TEMPLATE, i);
+ cust_cmd_lrlabel_entry = glade_helper_get (xml, "custom_cmd_lrlabel_entry",
+ GTK_TYPE_ENTRY);
+ val = gdm_config_get_string (key_string);
+ gtk_entry_set_text (GTK_ENTRY (cust_cmd_lrlabel_entry), ve_sure_string (val));
+ g_free (key_string);
+ g_free (val);
+
+ key_string = g_strdup_printf(_("%s%d="), GDM_KEY_CUSTOM_CMD_TEXT_TEMPLATE, i);
+ cust_cmd_text_entry = glade_helper_get (xml, "custom_cmd_text_entry",
+ GTK_TYPE_ENTRY);
+ val = gdm_config_get_string (key_string);
+ gtk_entry_set_text (GTK_ENTRY (cust_cmd_text_entry), ve_sure_string (val));
+ g_free (key_string);
+ g_free (val);
+
+ key_string = g_strdup_printf(_("%s%d="), GDM_KEY_CUSTOM_CMD_TOOLTIP_TEMPLATE, i);
+ cust_cmd_tooltip_entry = glade_helper_get (xml, "custom_cmd_tooltip_entry",
+ GTK_TYPE_ENTRY);
+ val = gdm_config_get_string (key_string);
+ gtk_entry_set_text (GTK_ENTRY (cust_cmd_tooltip_entry), ve_sure_string (val));
+ g_free (key_string);
+
+ key_string = g_strdup_printf(_("%s%d="), GDM_KEY_CUSTOM_CMD_NO_RESTART_TEMPLATE, i);
+ cust_cmd_norestart_checkbox = glade_helper_get (xml, "custom_cmd_norestart_checkbutton",
+ GTK_TYPE_CHECK_BUTTON);
+ bool_val = gdm_config_get_bool (key_string);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cust_cmd_norestart_checkbox), bool_val);
+ g_free (key_string);
+
+ key_string = g_strdup_printf(_("%s%d="), GDM_KEY_CUSTOM_CMD_IS_PERSISTENT_TEMPLATE, i);
+ cust_cmd_persistent_checkbox = glade_helper_get (xml, "custom_cmd_persistent_checkbutton",
+ GTK_TYPE_CHECK_BUTTON);
+ bool_val = gdm_config_get_bool (key_string);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cust_cmd_persistent_checkbox), bool_val);
+
+ }
+ g_free (val);
+ g_free (key_string);
+
+ if (enabled_command)
+ gtk_label_set_text (GTK_LABEL (status_label), _("(Enabled) "));
+ else
+ gtk_label_set_text (GTK_LABEL (status_label), _("(Disabled)"));
+ }
+ /* Default session combobox*/
+ else if (strcmp (ve_sure_string (key), GDM_KEY_DEFAULT_SESSION) == 0) {
+ /* First we get the selected index. Next we lookup the actual
+ filename in the List of sessions */
+ gchar *val;
+ gchar *new_val = NULL;
+
+ val = gdm_config_get_string ((gchar *)key);
+ new_val = g_strdup ((gchar*) g_slist_nth_data (sessions, selected));
+
+ if (strcmp (ve_sure_string (val), ve_sure_string (new_val)) != 0)
+ gdm_setup_config_set_string (key, ve_sure_string (new_val));
+
+ g_free (new_val);
+ g_free (val);
+ }
return FALSE;
}
@@ -1077,6 +1562,12 @@ toggle_toggled (GtkWidget *toggle)
}
static void
+radiogroup_toggled (GtkWidget *toggle)
+{
+ run_timeout (toggle, 200, radiogroup_timeout);
+}
+
+static void
list_selection_toggled (GtkWidget *toggle, gpointer data)
{
GtkWidget *widget = data;
@@ -1295,6 +1786,32 @@ combobox_changed (GtkWidget *combobox)
mode_combobox = glade_helper_get (xml, "gg_mode_combobox",
GTK_TYPE_COMBO_BOX);
gtk_combo_box_set_active (GTK_COMBO_BOX (mode_combobox), selected);
+
+ if (mode_combobox != combobox) {
+ /* Display a warning when no themes are selected and the
+ Random from selected option has been activated.
+ This is a bit of a HACK as combo_box handler is
+ called multiple times and we want this warning
+ to be displayed only once */
+ if (selected == RANDOM_THEME && ve_string_empty (selected_themes)) {
+ GtkWidget *warn_dlg = ve_hig_dialog_new (NULL /* parent */,
+ GTK_DIALOG_MODAL /* flags */,
+ GTK_MESSAGE_WARNING,
+ GTK_BUTTONS_OK,
+ _("No themes selected!"),
+ _("You need one or more themes "
+ "selected for the \"Random from selected\" "
+ "option to be valid. Failure to do so will "
+ "force \"Selected only\" mode."));
+ gtk_dialog_run (GTK_DIALOG (warn_dlg));
+ gtk_widget_destroy (warn_dlg);
+
+ GdmRandomFromSelectedChangesWarn = TRUE;
+ }
+ else if (selected == ONE_THEME) {
+ GdmRandomFromSelectedChangesWarn = FALSE;
+ }
+ }
}
radioColumn = gtk_tree_view_get_column (GTK_TREE_VIEW (theme_list),
@@ -1385,6 +1902,72 @@ combobox_changed (GtkWidget *combobox)
else if (strcmp (ve_sure_string (key), GDM_KEY_SERVER_PREFIX) == 0 ) {
init_servers_combobox (gtk_combo_box_get_active (GTK_COMBO_BOX (combobox)));
}
+ else if (strcmp (ve_sure_string (key), _("command_chooser_combobox")) == 0) {
+ gint selected;
+ GtkWidget *hrs_cmd_vbox;
+ GtkWidget *custom_cmd_vbox;
+
+ selected = gtk_combo_box_get_active (GTK_COMBO_BOX (combobox));
+
+ /* First of all we need to check if we had made any changes
+ to any of the command fields. If so user gets reminded and
+ given an option to save, or discard */
+ if (g_hash_table_size (GdmCommandChangesUnsaved) != 0) {
+ GtkWidget *prompt;
+ GtkWidget *setup_dialog;
+ GtkWidget *apply_command;
+ gint response;
+
+ setup_dialog = glade_helper_get (xml, "setup_dialog", GTK_TYPE_WINDOW);
+
+ prompt = ve_hig_dialog_new (GTK_WINDOW (setup_dialog),
+ GTK_DIALOG_MODAL |
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_WARNING,
+ GTK_BUTTONS_NONE,
+ _("Apply changes to the modified command?"),
+ _("If you don't apply, the changes "
+ "will be discarded."));
+
+ gtk_dialog_add_button (GTK_DIALOG (prompt), "gtk-cancel", GTK_RESPONSE_CANCEL);
+ gtk_dialog_add_button (GTK_DIALOG (prompt), "gtk-apply", GTK_RESPONSE_APPLY);
+
+ response = gtk_dialog_run (GTK_DIALOG (prompt));
+ gtk_widget_destroy (prompt);
+
+ apply_command = glade_helper_get (xml, "command_apply_button",
+ GTK_TYPE_BUTTON);
+ if (response == GTK_RESPONSE_APPLY)
+ g_signal_emit_by_name (G_OBJECT (apply_command), "clicked");
+
+ else {
+ g_hash_table_remove_all (GdmCommandChangesUnsaved);
+ gtk_widget_set_sensitive (apply_command, FALSE);
+ }
+ }
+
+ last_selected_command = selected;
+
+ hrs_cmd_vbox = glade_helper_get (xml, "hrs_command_vbox",
+ GTK_TYPE_VBOX);
+ custom_cmd_vbox = glade_helper_get (xml, "custom_command_vbox",
+ GTK_TYPE_VBOX);
+ if (selected > SUSPEND_CMD) {
+ /* We are dealing with custom commands */
+ gtk_widget_show (custom_cmd_vbox);
+ gtk_widget_hide (hrs_cmd_vbox);
+ }
+ else {
+ /* We are dealing with hrs (Halt, Reboot, Shutdown) commands */
+ gtk_widget_hide (custom_cmd_vbox);
+ gtk_widget_show (hrs_cmd_vbox);
+ }
+
+ /* We dont want default timeout for this one so we
+ are going to bail out now */
+ run_timeout (combobox, 100, combobox_timeout);
+ return;
+ }
run_timeout (combobox, 500, combobox_timeout);
}
@@ -1546,6 +2129,64 @@ setup_notify_toggle (const char *name,
g_signal_connect (G_OBJECT (toggle), "toggled",
G_CALLBACK (timedlogin_allow_remote_toggled), timedlogin_allow_remote);
}
+ else if (strcmp ("vis_feedback_passwd_checkbox", ve_sure_string (name)) == 0) {
+ /* This one is a lil bit back to front
+ true is false and false is true */
+ GtkWidget *use_circles_in_passwd;
+ use_circles_in_passwd = glade_helper_get (xml, "use_circles_passwd_checkbox",
+ GTK_TYPE_CHECK_BUTTON);
+
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle), !val);
+ gtk_widget_set_sensitive (use_circles_in_passwd, !val);
+
+ g_signal_connect (G_OBJECT (toggle), "toggled",
+ G_CALLBACK (toggle_toggled), toggle);
+ g_signal_connect (G_OBJECT (toggle), "toggled",
+ G_CALLBACK (toggle_toggled_sensitivity_positive), use_circles_in_passwd);
+
+ }
+ else if (strcmp ("local_set_pos_checkbox", ve_sure_string (name)) == 0) {
+
+ GtkWidget *posx;
+ GtkWidget *posy;
+
+ posx = glade_helper_get (xml, "local_posx_spinbutton",
+ GTK_TYPE_SPIN_BUTTON);
+
+ posy = glade_helper_get (xml, "local_posy_spinbutton",
+ GTK_TYPE_SPIN_BUTTON);
+
+ gtk_widget_set_sensitive (posx, val);
+ gtk_widget_set_sensitive (posy, val);
+
+ g_signal_connect (G_OBJECT (toggle), "toggled",
+ G_CALLBACK (toggle_toggled), toggle);
+ g_signal_connect (G_OBJECT (toggle), "toggled",
+ G_CALLBACK (toggle_toggled_sensitivity_positive), posx);
+ g_signal_connect (G_OBJECT (toggle), "toggled",
+ G_CALLBACK (toggle_toggled_sensitivity_positive), posy);
+ }
+ else if (strcmp ("remote_set_pos_checkbox", ve_sure_string (name)) == 0) {
+
+ GtkWidget *posx;
+ GtkWidget *posy;
+
+ posx = glade_helper_get (xml, "remote_posx_spinbutton",
+ GTK_TYPE_SPIN_BUTTON);
+
+ posy = glade_helper_get (xml, "remote_posy_spinbutton",
+ GTK_TYPE_SPIN_BUTTON);
+
+ gtk_widget_set_sensitive (posx, val);
+ gtk_widget_set_sensitive (posy, val);
+
+ g_signal_connect (G_OBJECT (toggle), "toggled",
+ G_CALLBACK (toggle_toggled), toggle);
+ g_signal_connect (G_OBJECT (toggle), "toggled",
+ G_CALLBACK (toggle_toggled_sensitivity_positive), posx);
+ g_signal_connect (G_OBJECT (toggle), "toggled",
+ G_CALLBACK (toggle_toggled_sensitivity_positive), posy);
+ }
else {
g_signal_connect (G_OBJECT (toggle), "toggled",
G_CALLBACK (toggle_toggled), NULL);
@@ -1575,23 +2216,6 @@ setup_xdmcp_notify_toggle (const char *name,
}
#endif
-static const char *
-get_root_user (void)
-{
- static char *root_user = NULL;
- struct passwd *pwent;
-
- if (root_user != NULL)
- return root_user;
-
- pwent = getpwuid (0);
- if (pwent == NULL) /* huh? */
- root_user = g_strdup ("root");
- else
- root_user = g_strdup (pwent->pw_name);
- return root_user;
-}
-
static void
root_not_allowed (GtkWidget *combo_box)
{
@@ -1893,6 +2517,30 @@ face_add (FaceData *fd)
}
if (fd->type == INCLUDE) {
+ /* Now the user is valid but his/hers UID might be smaller than the MinimalUID */
+ gint user_uid = gdm_user_uid (text);
+ if (user_uid < gdm_config_get_int (GDM_KEY_MINIMAL_UID)) {
+ GtkWidget *setup_dialog;
+ GtkWidget *dialog;
+ gchar *str;
+
+ str = g_strdup_printf (_("The \"%s\" user UID is lower than allowed MinimalUID."), text);
+
+ setup_dialog = glade_helper_get (xml_add_users, "add_user_dialog",
+ GTK_TYPE_WINDOW);
+
+ dialog = ve_hig_dialog_new (GTK_WINDOW (setup_dialog),
+ GTK_DIALOG_MODAL |
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_ERROR,
+ GTK_BUTTONS_OK,
+ _("Cannot add user"),
+ str);
+ gtk_dialog_run (GTK_DIALOG (dialog));
+ gtk_widget_destroy (dialog);
+ g_free (str);
+ return;
+ }
gtk_list_store_append (fd->fc->include_store, &iter);
gtk_list_store_set (fd->fc->include_store, &iter,
USERLIST_NAME, text, -1);
@@ -1977,6 +2625,30 @@ browser_move (GtkWidget *button, gpointer data)
if (gtk_tree_selection_get_selected (selection, &model, &iter)) {
gtk_tree_model_get (model, &iter, USERLIST_NAME, &text, -1);
if (fd->type == INCLUDE) {
+ /* We cant move the users that have uid smaller that MinimalUID */
+ gint user_uid = gdm_user_uid (text);
+ if (user_uid < gdm_config_get_int (GDM_KEY_MINIMAL_UID)) {
+ GtkWidget *setup_dialog;
+ GtkWidget *dialog;
+ gchar *str;
+
+ str = g_strdup_printf (_("The \"%s\" user UID is lower than allowed MinimalUID."), text);
+
+ setup_dialog = glade_helper_get (xml_add_users, "add_user_dialog",
+ GTK_TYPE_WINDOW);
+
+ dialog = ve_hig_dialog_new (GTK_WINDOW (setup_dialog),
+ GTK_DIALOG_MODAL |
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_ERROR,
+ GTK_BUTTONS_OK,
+ _("Cannot add user"),
+ str);
+ gtk_dialog_run (GTK_DIALOG (dialog));
+ gtk_widget_destroy (dialog);
+ g_free (str);
+ return;
+ }
gtk_list_store_remove (fd->fc->exclude_store, &iter);
gtk_list_store_append (fd->fc->include_store, &iter);
gtk_list_store_set (fd->fc->include_store, &iter,
@@ -1992,6 +2664,89 @@ browser_move (GtkWidget *button, gpointer data)
}
}
+/* Hash key happens to be equal to the config entry key,
+ se we save the value under the key and clean up
+*/
+gboolean
+unsaved_data_from_hash_table_func (gpointer key, gpointer value, gpointer user_data)
+{
+ gchar *c_key = key;
+ if (strncmp (c_key, GDM_KEY_CUSTOM_CMD_NO_RESTART_TEMPLATE,
+ strlen (GDM_KEY_CUSTOM_CMD_NO_RESTART_TEMPLATE)) == 0 ||
+ strncmp (c_key, GDM_KEY_CUSTOM_CMD_IS_PERSISTENT_TEMPLATE,
+ strlen (GDM_KEY_CUSTOM_CMD_IS_PERSISTENT_TEMPLATE)) == 0) {
+ gboolean *p_val = (gboolean*)value;
+ gdm_setup_config_set_bool (c_key, *p_val);
+ }
+ else
+ gdm_setup_config_set_string (c_key, (gchar*)value);
+
+ /* And final cleanup */
+ g_free (value);
+ g_free (key);
+
+ return TRUE;
+}
+
+/* Go thru and remove each of the hash entries
+ then clean the hash (if not already empty)
+ just in case, then de-sensitise the apply
+ command changes button
+*/
+static void
+command_apply (GtkWidget *button, gpointer data)
+{
+ gchar *command = NULL;
+ GtkWidget *cmd_path_entry = NULL;
+ GtkWidget *command_combobox = (GtkWidget*)data;
+ gboolean command_exists = FALSE;
+ gint selected;
+
+ selected = gtk_combo_box_get_active (GTK_COMBO_BOX (command_combobox));
+
+ if (last_selected_command < CUSTOM_CMD)
+ cmd_path_entry = glade_helper_get (xml,
+ "hrs_cmd_path_entry",
+ GTK_TYPE_ENTRY);
+ else
+ cmd_path_entry = glade_helper_get (xml,
+ "custom_cmd_path_entry",
+ GTK_TYPE_ENTRY);
+
+ command = gtk_entry_get_text (GTK_ENTRY (cmd_path_entry));
+
+ command_exists = ve_string_empty (command) || gdm_working_command_exists (command);
+
+ if(command_exists)
+ g_hash_table_foreach_remove (GdmCommandChangesUnsaved,
+ (GHRFunc) unsaved_data_from_hash_table_func, NULL);
+
+ else {
+ GtkWidget *dialog = ve_hig_dialog_new (NULL,
+ GTK_DIALOG_MODAL,
+ GTK_MESSAGE_ERROR,
+ GTK_BUTTONS_OK,
+ _("Invalid command path"),
+ _("The path you provided for this "
+ "command is not valid. The changes "
+ "will not be saved."));
+ gtk_dialog_run (GTK_DIALOG (dialog));
+ gtk_widget_destroy (dialog);
+ }
+
+ /* Just to make sure */
+ if (g_hash_table_size (GdmCommandChangesUnsaved) != 0)
+ g_hash_table_remove_all (GdmCommandChangesUnsaved);
+
+ gtk_widget_set_sensitive (button, FALSE);
+
+ if (selected == last_selected_command)
+ g_signal_emit_by_name (G_OBJECT (command_combobox), "changed");
+
+ if(command_exists)
+ update_greeters ();
+}
+
static void
browser_apply (GtkWidget *button, gpointer data)
{
@@ -2638,6 +3393,73 @@ greeter_entry_untranslate_timeout (GtkWidget *entry)
return FALSE;
}
+static gboolean
+greeter_command_entry_timeout (GtkWidget *entry)
+{
+ GtkWidget *apply_cmd_changes;
+ GtkWidget *command_combobox;
+ gint selected;
+
+ const char *key = g_object_get_data (G_OBJECT (entry), "key");
+ gchar *val = gtk_entry_get_text (GTK_ENTRY (entry));
+
+ apply_cmd_changes = glade_helper_get (xml, "command_apply_button", GTK_TYPE_BUTTON);
+ command_combobox = glade_helper_get (xml, "cmd_type_combobox", GTK_TYPE_COMBO_BOX);
+
+ selected = gtk_combo_box_get_active (GTK_COMBO_BOX (command_combobox));
+
+ /* All hrs (Halt, Shutdown, Suspend) commands will fall into this category */
+ if (strcmp ("hrs_custom_cmd", ve_sure_string (key)) == 0) {
+ gchar *old_val;
+ gchar *cmd_key = NULL;
+
+ if (selected == HALT_CMD)
+ cmd_key = g_strdup (GDM_KEY_HALT);
+ else if (selected == REBOOT_CMD)
+ cmd_key = g_strdup (GDM_KEY_REBOOT);
+ else if (selected == SUSPEND_CMD)
+ cmd_key = g_strdup (GDM_KEY_SUSPEND);
+
+ old_val = gdm_config_get_string (cmd_key);
+
+ if (strcmp (ve_sure_string (val), ve_sure_string (old_val)) != 0)
+ g_hash_table_insert (GdmCommandChangesUnsaved, g_strdup (cmd_key), g_strdup (val));
+
+ else if (g_hash_table_lookup (GdmCommandChangesUnsaved, cmd_key) != NULL)
+ g_hash_table_remove (GdmCommandChangesUnsaved, cmd_key);
+
+ g_free (old_val);
+ g_free (cmd_key);
+ }
+ /* All the custom commands will fall into this category */
+ else {
+ gchar *key_string;
+ gchar *old_val;
+ gint i;
+
+ i = selected - CUSTOM_CMD;
+ key_string = g_strdup_printf(_("%s%d="), ve_sure_string (key), i);
+ old_val = gdm_config_get_string (key_string);
+
+
+ if (strcmp (ve_sure_string (val), ve_sure_string (old_val)) != 0)
+ g_hash_table_insert (GdmCommandChangesUnsaved, g_strdup (key_string), g_strdup (val));
+
+ else if (g_hash_table_lookup (GdmCommandChangesUnsaved, key_string) != NULL)
+ g_hash_table_remove (GdmCommandChangesUnsaved, key_string);
+
+ g_free (old_val);
+ g_free (key_string);
+ }
+
+ if (g_hash_table_size (GdmCommandChangesUnsaved) == 0)
+ gtk_widget_set_sensitive (apply_cmd_changes, FALSE);
+ else
+ gtk_widget_set_sensitive (apply_cmd_changes, TRUE);
+
+ return FALSE;
+}
+
static void
greeter_entry_untranslate_changed (GtkWidget *entry)
{
@@ -2645,6 +3467,155 @@ greeter_entry_untranslate_changed (GtkWidget *entry)
}
static void
+greeter_command_entry_changed (GtkWidget *entry)
+{
+ run_timeout (entry, 100, greeter_command_entry_timeout);
+}
+
+static void
+command_response (GtkWidget *button, gpointer data)
+{
+
+ GtkWidget *chooser = NULL;
+ GtkWidget *setup_dialog;
+ gint response;
+ gchar *filename;
+
+ setup_dialog = glade_helper_get (xml, "setup_dialog", GTK_TYPE_WINDOW);
+
+ /* first get the file */
+ chooser = gtk_file_chooser_dialog_new (_("Select Command"),
+ GTK_WINDOW (setup_dialog),
+ GTK_FILE_CHOOSER_ACTION_OPEN,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OK, GTK_RESPONSE_OK,
+ NULL);
+
+ response = gtk_dialog_run (GTK_DIALOG (chooser));
+
+ if (response != GTK_RESPONSE_OK) {
+ gtk_widget_destroy (chooser);
+ return;
+ }
+
+ filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooser));
+ gtk_widget_destroy (chooser);
+
+ if (filename == NULL) {
+
+ GtkWidget *dialog;
+
+ dialog = ve_hig_dialog_new (GTK_WINDOW (setup_dialog),
+ GTK_DIALOG_MODAL |
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_ERROR,
+ GTK_BUTTONS_OK,
+ _("No file selected"),
+ "");
+ gtk_dialog_run (GTK_DIALOG (dialog));
+ gtk_widget_destroy (dialog);
+ return;
+ }
+
+ const gchar *key;
+ gchar *value;
+ GtkWidget *command_combobox;
+ GtkWidget *command_entry = NULL;
+ gint selected;
+
+ key = g_object_get_data (G_OBJECT (button), "key");
+
+ /* Then according to the selected command
+ append the chosen filepath onto the existing
+ string */
+
+ command_combobox = glade_helper_get (xml,
+ "cmd_type_combobox",
+ GTK_TYPE_COMBO_BOX);
+
+ selected = gtk_combo_box_get_active (GTK_COMBO_BOX (command_combobox));
+
+ if (selected == HALT_CMD)
+ value = gdm_config_get_string (GDM_KEY_HALT);
+ else if (selected == REBOOT_CMD)
+ value = gdm_config_get_string (GDM_KEY_REBOOT);
+ else if (selected == SUSPEND_CMD)
+ value = gdm_config_get_string (GDM_KEY_SUSPEND);
+ else {
+ gchar *key_string;
+ gint i;
+
+ i = selected - CUSTOM_CMD;
+
+ key_string = g_strdup_printf(_("%s%d="), GDM_KEY_CUSTOM_CMD_TEMPLATE, i);
+ value = gdm_config_get_string (key_string);
+ g_free (key_string);
+ }
+
+ value = strings_list_add (value, filename, ";");
+
+ if (strcmp (ve_sure_string (key), "add_hrs_cmd_button") == 0)
+ command_entry = glade_helper_get (xml, "hrs_cmd_path_entry", GTK_TYPE_ENTRY);
+
+ else if (strcmp (ve_sure_string (key), "add_custom_cmd_button") == 0)
+ command_entry = glade_helper_get (xml, "custom_cmd_path_entry", GTK_TYPE_ENTRY);
+
+
+ gtk_entry_set_text (GTK_ENTRY (command_entry), ve_sure_string (value));
+
+ g_free (value);
+ g_free (filename);
+}
+
+static void
+default_filechooser_response (GtkWidget *file_chooser, gpointer data)
+{
+ gchar *filename;
+ gchar *key;
+ gchar *value;
+
+ filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_chooser));
+ key = g_object_get_data (G_OBJECT (file_chooser), "key");
+ value = gdm_config_get_string (key);
+
+ if (strcmp (ve_sure_string (key), GDM_KEY_GLOBAL_FACE_DIR) == 0) {
+ /* we need to append trailing / so it matches the default
+ config values. This is not really necessary but makes
+ things neater */
+ gchar *corr_filename;
+
+ corr_filename = g_strdup_printf("%s/", ve_sure_string (filename));
+
+ if (strcmp (ve_sure_string (value), corr_filename) != 0)
+ gdm_setup_config_set_string (key, corr_filename);
+
+ g_free (corr_filename);
+ }
+ else {
+ /* All other cases */
+ if (strcmp (ve_sure_string (value), ve_sure_string (filename)) != 0)
+ gdm_setup_config_set_string (key, ve_sure_string (filename));
+ }
+
+ g_free (filename);
+ g_free (value);
+}
+
+static void
+setup_general_command_buttons (const char *name,
+ const char *key)
+{
+ GtkWidget *button = glade_helper_get (xml, name, GTK_TYPE_BUTTON);
+
+ g_object_set_data_full (G_OBJECT (button),
+ "key", g_strdup (key),
+ (GDestroyNotify) g_free);
+ g_signal_connect (G_OBJECT (button), "clicked",
+ G_CALLBACK (command_response),
+ NULL);
+}
+
+static void
setup_greeter_untranslate_entry (const char *name,
const char *key)
{
@@ -2917,6 +3888,34 @@ strings_list_add (char *strings_list, const char *string, const char *sep)
return n;
}
+/* This function removes *string with the addition of *sep
+ as a postfix deliminator the string from *strings_list, then
+ returns a copy of the new strings_list. */
+static char *
+strings_list_remove (char *strings_list, const char *string, const char *sep)
+{
+ if (ve_string_empty (strings_list))
+ return strings_list;
+
+ char **actions;
+ gint i;
+ GString *msg = g_string_new ("");
+ const char *separator = "";
+
+ actions = g_strsplit (strings_list, sep, -1);
+ for (i = 0; actions[i]; i++) {
+ if (strncmp (actions[i], string, strlen (string)) == 0)
+ continue;
+ g_string_append_printf (msg, "%s%s", separator, actions[i]);
+ separator = sep;
+ }
+ g_strfreev (actions);
+ char *n = g_strdup (msg->str);
+ g_string_free (msg, TRUE);
+ g_free (strings_list);
+ return n;
+}
+
static void
acc_modules_toggled (GtkWidget *toggle, gpointer data)
{
@@ -3008,9 +4007,101 @@ sound_response (GtkWidget *file_chooser, gpointer data)
static void
setup_users_tab (void)
{
+ GtkFileFilter *filter;
+ GtkWidget *default_face_filechooser;
+ GtkWidget *default_face_checkbox;
+ GtkWidget *global_face_dir_filechooser;
+ GtkWidget *global_face_dir_checkbox;
+ gchar *filename;
+
setup_greeter_toggle ("fb_allusers",
GDM_KEY_INCLUDE_ALL);
setup_face ();
+
+ /* Setup default face */
+ default_face_filechooser = glade_helper_get (xml,
+ "default_face_filechooser",
+ GTK_TYPE_FILE_CHOOSER_BUTTON);
+
+ filter = gtk_file_filter_new ();
+ gtk_file_filter_set_name (filter, _("Images"));
+ gtk_file_filter_add_pixbuf_formats (filter);
+ gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (default_face_filechooser), filter);
+
+ filename = gdm_config_get_string (GDM_KEY_DEFAULT_FACE);
+
+ default_face_checkbox = glade_helper_get (xml,
+ "default_face_checkbutton",
+ GTK_TYPE_CHECK_BUTTON);
+
+
+ if (!ve_string_empty (filename) && access (filename, R_OK|X_OK)) {
+ gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (default_face_filechooser),
+ filename);
+
+ gtk_widget_set_sensitive (default_face_filechooser, TRUE);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (default_face_checkbox), TRUE);
+
+ }
+ else {
+ gtk_widget_set_sensitive (default_face_filechooser, FALSE);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (default_face_checkbox), FALSE);
+ }
+
+ g_object_set_data_full (G_OBJECT (default_face_filechooser),
+ "key", g_strdup (GDM_KEY_DEFAULT_FACE),
+ (GDestroyNotify) g_free);
+ g_signal_connect (G_OBJECT (default_face_filechooser), "selection-changed",
+ G_CALLBACK (default_filechooser_response),
+ NULL);
+
+ g_object_set_data_full (G_OBJECT (default_face_checkbox),
+ "key", g_strdup (GDM_KEY_DEFAULT_FACE),
+ (GDestroyNotify) g_free);
+ g_signal_connect (G_OBJECT (default_face_checkbox), "toggled",
+ G_CALLBACK (toggle_toggled), default_face_checkbox);
+ g_signal_connect (G_OBJECT (default_face_checkbox), "toggled",
+ G_CALLBACK (toggle_toggled_sensitivity_positive), default_face_filechooser);
+
+ /* Setup global face dir */
+ g_free (filename);
+
+ global_face_dir_filechooser = glade_helper_get (xml,
+ "global_face_dir_filechooser",
+ GTK_TYPE_FILE_CHOOSER_BUTTON);
+
+ filename = gdm_config_get_string (GDM_KEY_GLOBAL_FACE_DIR);
+
+ global_face_dir_checkbox = glade_helper_get (xml,
+ "global_face_dir_checkbutton",
+ GTK_TYPE_CHECK_BUTTON);
+
+ if (!ve_string_empty (filename) && access (filename, R_OK|X_OK) == 0) {
+ gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (global_face_dir_filechooser),
+ filename);
+ gtk_widget_set_sensitive (global_face_dir_filechooser, TRUE);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (global_face_dir_checkbox), TRUE);
+ }
+ else {
+ gtk_widget_set_sensitive (global_face_dir_filechooser, FALSE);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (global_face_dir_checkbox), FALSE);
+ }
+
+
+ g_object_set_data_full (G_OBJECT (global_face_dir_filechooser),
+ "key", g_strdup (GDM_KEY_GLOBAL_FACE_DIR),
+ (GDestroyNotify) g_free);
+ g_signal_connect (G_OBJECT (global_face_dir_filechooser), "selection-changed",
+ G_CALLBACK (default_filechooser_response), NULL);
+
+ g_object_set_data_full (G_OBJECT (global_face_dir_checkbox),
+ "key", g_strdup (GDM_KEY_GLOBAL_FACE_DIR),
+ (GDestroyNotify) g_free);
+ g_signal_connect (G_OBJECT (global_face_dir_checkbox), "toggled",
+ G_CALLBACK (toggle_toggled), global_face_dir_checkbox);
+ g_signal_connect (G_OBJECT (global_face_dir_checkbox), "toggled",
+ G_CALLBACK (toggle_toggled_sensitivity_positive), global_face_dir_filechooser);
+ g_free (filename);
}
static void
@@ -4481,6 +5572,44 @@ xserver_entry_timeout (GtkWidget *entry)
}
static gboolean
+xserver_priority_timeout (GtkWidget *entry)
+{
+ GtkWidget *mod_combobox;
+ GSList *li;
+ const char *key = g_object_get_data (G_OBJECT (entry), "key");
+ gint value = 0;
+ gchar *section;
+
+ mod_combobox = glade_helper_get (xml_xservers, "xserver_mod_combobox",
+ GTK_TYPE_COMBO_BOX);
+
+ /* Get xserver section to update */
+ section = gtk_combo_box_get_active_text (GTK_COMBO_BOX (mod_combobox));
+
+ for (li = xservers; li != NULL; li = li->next) {
+ GdmXserver *svr = li->data;
+ if (strcmp (ve_sure_string (svr->id), ve_sure_string (section)) == 0) {
+
+
+ if (strcmp (ve_sure_string (key),
+ ve_sure_string (GDM_KEY_SERVER_PRIORITY)) == 0)
+ value = svr->priority;
+
+ /* Update this servers configuration */
+ gint new_value = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (entry));
+ if (new_value != value) {
+ svr->priority = new_value;
+ update_xserver (section, svr);
+ }
+ break;
+ }
+ }
+ g_free (section);
+
+ return FALSE;
+}
+
+static gboolean
xserver_toggle_timeout (GtkWidget *toggle)
{
GtkWidget *mod_combobox;
@@ -4542,6 +5671,12 @@ xserver_entry_changed (GtkWidget *entry)
}
static void
+xserver_priority_changed (GtkWidget *entry)
+{
+ run_timeout (entry, 500, xserver_priority_timeout);
+}
+
+static void
xserver_append_combobox (GdmXserver *xserver, GtkComboBox *combobox)
{
gtk_combo_box_append_text (combobox, (xserver->id));
@@ -4832,6 +5967,7 @@ xserver_create (gpointer data)
GtkWidget *handled_check, *flexible_check;
GtkWidget *greeter_radio, *chooser_radio;
GtkWidget *create_button, *delete_button;
+ GtkWidget *priority_spinbutton;
/* Get Widgets from glade */
frame = glade_helper_get (xml, "xserver_modify_frame",
@@ -4840,6 +5976,8 @@ xserver_create (gpointer data)
GTK_TYPE_ENTRY);
command_entry = glade_helper_get (xml, "xserver_command_entry",
GTK_TYPE_ENTRY);
+ priority_spinbutton = glade_helper_get(xml, "xserv_priority_spinbutton",
+ GTK_TYPE_SPIN_BUTTON);
handled_check = glade_helper_get (xml, "xserver_handled_checkbutton",
GTK_TYPE_CHECK_BUTTON);
flexible_check = glade_helper_get (xml, "xserver_flexible_checkbutton",
@@ -4950,6 +6088,7 @@ static void
setup_xserver_support (GladeXML *xml_xservers)
{
GtkWidget *command_entry;
+ GtkWidget *priority_spinbutton;
GtkWidget *name_entry;
GtkWidget *handled_check;
GtkWidget *flexible_check;
@@ -4977,6 +6116,8 @@ setup_xserver_support (GladeXML *xml_xservers)
GTK_TYPE_ENTRY);
command_entry = glade_helper_get (xml_xservers, "xserver_command_entry",
GTK_TYPE_ENTRY);
+ priority_spinbutton = glade_helper_get(xml_xservers, "xserv_priority_spinbutton",
+ GTK_TYPE_SPIN_BUTTON);
handled_check = glade_helper_get (xml_xservers, "xserver_handled_checkbutton",
GTK_TYPE_CHECK_BUTTON);
flexible_check = glade_helper_get (xml_xservers, "xserver_flexible_checkbutton",
@@ -5050,7 +6191,9 @@ setup_xserver_support (GladeXML *xml_xservers)
g_object_set_data_full (G_OBJECT (style_combobox), "key",
g_strdup (GDM_KEY_SERVER_CHOOSER),
(GDestroyNotify) g_free);
-
+ g_object_set_data_full (G_OBJECT (priority_spinbutton), "key",
+ g_strdup (GDM_KEY_SERVER_PRIORITY),
+ (GDestroyNotify) g_free);
/* Signals Handlers */
g_signal_connect (G_OBJECT (name_entry), "changed",
G_CALLBACK (xserver_entry_changed),NULL);
@@ -5068,7 +6211,9 @@ setup_xserver_support (GladeXML *xml_xservers)
G_CALLBACK (xserver_remove_display), NULL);
g_signal_connect (G_OBJECT (selection), "changed",
G_CALLBACK (xserver_row_selected), NULL);
-
+ g_signal_connect (G_OBJECT (priority_spinbutton), "value_changed",
+ G_CALLBACK (xserver_priority_changed), NULL);
+
/* TODO: In the future, allow creation & delection of servers
g_signal_connect (create_button, "clicked",
G_CALLBACK (xserver_create), NULL);
@@ -5124,6 +6269,28 @@ xserver_button_clicked (void)
}
static void
+setup_radio_group (const gchar *name,
+ const gchar *key, gint position)
+{
+ GtkWidget *radio;
+ gint val;
+
+ radio = glade_helper_get (xml, name, GTK_TYPE_RADIO_BUTTON);
+ val = gdm_config_get_int ((gchar *)key);
+
+ if (val == position)
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), TRUE);
+ else
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), FALSE);
+
+ g_object_set_data_full (G_OBJECT (radio), "key", g_strdup (key),
+ (GDestroyNotify) g_free);
+
+ g_signal_connect (G_OBJECT (radio), "toggled",
+ G_CALLBACK (radiogroup_toggled), NULL);
+}
+
+static void
setup_security_tab (void)
{
GtkWidget *checkbox;
@@ -5171,6 +6338,26 @@ setup_security_tab (void)
/* Setup Allow remote timed logins */
setup_notify_toggle ("allowremoteauto", GDM_KEY_ALLOW_REMOTE_AUTOLOGIN);
+ /* Setup check dir owner */
+ setup_notify_toggle ("check_dir_owner_checkbutton", GDM_KEY_CHECK_DIR_OWNER);
+
+ /* Setup never place cookies on NFS */
+ setup_notify_toggle ("never_cookies_NFS_checkbutton", GDM_KEY_NEVER_PLACE_COOKIES_ON_NFS);
+
+ /* Setup Relax permissions */
+ setup_radio_group ("relax_permissions0_radiobutton", GDM_KEY_RELAX_PERM, 0);
+ setup_radio_group ("relax_permissions1_radiobutton", GDM_KEY_RELAX_PERM, 1);
+ setup_radio_group ("relax_permissions2_radiobutton", GDM_KEY_RELAX_PERM, 2);
+
+ /* Setup MinumalUID */
+ setup_intspin ("minimal_uid_spinbutton", GDM_KEY_MINIMAL_UID);
+
+ /* Setup always login current session */
+ setup_notify_toggle ("a_login_curr_session_checkbutton", GDM_KEY_ALWAYS_LOGIN_CURRENT_SESSION);
+
+ /* Setup always restart server */
+ setup_notify_toggle ("a_restart_server_checkbutton", GDM_KEY_ALWAYS_RESTART_SERVER);
+
/* Setup Configure XDMCP button */
XDMCPbutton = glade_helper_get (xml, "config_xserverbutton",
GTK_TYPE_BUTTON);
@@ -5839,6 +7026,26 @@ hookup_plain_background (void)
}
static void
+hookup_plain_behaviour (void)
+{
+ /* Setup qiver */
+ setup_notify_toggle ("local_quiver_checkbox", GDM_KEY_QUIVER);
+
+ /* Setup lock position */
+ setup_notify_toggle ("local_lock_pos_checkbox", GDM_KEY_LOCK_POSITION);
+
+ /* Setup set position */
+ setup_notify_toggle ("local_set_pos_checkbox", GDM_KEY_SET_POSITION);
+
+ /* Setup positionX */
+ setup_intspin ("local_posx_spinbutton", GDM_KEY_POSITION_X);
+
+ /* Setup positionX */
+ setup_intspin ("local_posy_spinbutton", GDM_KEY_POSITION_Y);
+
+}
+
+static void
hookup_plain_logo (void)
{
/* Initialize and hookup callbacks for plain logo settings */
@@ -5950,6 +7157,9 @@ setup_local_plain_settings (void)
/* Plain background settings */
hookup_plain_background ();
+ /* Plain behaviour settings */
+ hookup_plain_behaviour ();
+
/* Plain logo settings */
hookup_plain_logo ();
@@ -5961,6 +7171,289 @@ setup_local_plain_settings (void)
}
static void
+setup_default_session (void)
+{
+ GtkWidget *default_session_combobox;
+ GtkWidget *default_session_checkbox;
+ GHashTable *sessnames = NULL;
+ GList *org_sessions = NULL;
+ GList *tmp;
+ gint i = 0;
+ gint active = 0;
+ gchar *org_val;
+
+ _gdm_session_list_init (&sessnames, &org_sessions, NULL, NULL);
+
+ default_session_combobox = glade_helper_get (xml, "default_session_combobox", GTK_TYPE_COMBO_BOX);
+
+ org_val = gdm_config_get_string (GDM_KEY_DEFAULT_SESSION);
+
+ for (tmp = org_sessions; tmp != NULL; tmp = tmp->next, i++) {
+ GdmSession *session;
+ gchar *file;
+
+ file = (gchar *) tmp->data;
+ if (strcmp (ve_sure_string (org_val), ve_sure_string (file)) == 0)
+ active = i;
+
+ session = g_hash_table_lookup (sessnames, file);
+
+ if (!ve_string_empty (session->clearname)) {
+ gtk_combo_box_append_text (GTK_COMBO_BOX (default_session_combobox),
+ session->clearname);
+ sessions = g_slist_prepend (sessions, file);
+ }
+ }
+
+ sessions = g_slist_reverse (sessions);
+
+ /* some cleanup */
+ g_slist_free (org_sessions);
+ g_hash_table_remove_all (sessnames);
+
+ gtk_widget_set_sensitive (default_session_combobox, TRUE);
+
+ gtk_combo_box_set_active (GTK_COMBO_BOX (default_session_combobox), active);
+
+ g_object_set_data_full (G_OBJECT (default_session_combobox), "key",
+ g_strdup (GDM_KEY_DEFAULT_SESSION),
+ (GDestroyNotify) g_free);
+
+ g_signal_connect (default_session_combobox, "changed",
+ G_CALLBACK (combobox_changed), NULL);
+
+ default_session_checkbox = glade_helper_get (xml,
+ "default_session_checkbutton",
+ GTK_TYPE_CHECK_BUTTON);
+
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (default_session_checkbox), !ve_string_empty (org_val));
+
+ g_object_set_data_full (G_OBJECT (default_session_checkbox),
+ "key", g_strdup (GDM_KEY_DEFAULT_SESSION),
+ (GDestroyNotify) g_free);
+
+ g_signal_connect (G_OBJECT (default_session_checkbox), "toggled",
+ G_CALLBACK (toggle_toggled), default_session_checkbox);
+ g_signal_connect (G_OBJECT (default_session_checkbox), "toggled",
+ G_CALLBACK (toggle_toggled_sensitivity_positive), default_session_combobox);
+
+ g_free (org_val);
+
+}
+
+static void
+setup_general_tab (void)
+{
+ GtkWidget *gtkrc_filechooser;
+ GtkWidget *gtkrc_checkbox;
+ GtkWidget *clock_type_chooser;
+ GtkWidget *command_chooser;
+ GtkWidget *hrs_cmd_path_entry;
+ GtkWidget *custom_cmd_path_entry;
+ GtkWidget *custom_cmd_label_entry;
+ GtkWidget *custom_cmd_lrlabel_entry;
+ GtkWidget *custom_cmd_text_entry;
+ GtkWidget *custom_cmd_tooltip_entry;
+ GtkWidget *custom_cmd_persistent_checkbutton;
+ GtkWidget *custom_cmd_norestart_checkbutton;
+ GtkWidget *apply_command_changes_button;
+ gchar *gtkrc_filename;
+ gchar *user_24hr_clock;
+
+
+ /* Setup use visual feedback in the passwotrd entry */
+ setup_notify_toggle ("vis_feedback_passwd_checkbox", GDM_KEY_ENTRY_INVISIBLE);
+
+ /* Setup use circles in the password entry */
+ setup_notify_toggle ("use_circles_passwd_checkbox", GDM_KEY_ENTRY_CIRCLES);
+
+ /* Setup default session */
+ setup_default_session ();
+
+ /* Setup GtkRC file path */
+ gtkrc_filechooser = glade_helper_get (xml,
+ "gtkrc_chooserbutton",
+ GTK_TYPE_FILE_CHOOSER_BUTTON);
+
+ gtkrc_filename = gdm_config_get_string (GDM_KEY_GTKRC);
+
+ gtkrc_checkbox = glade_helper_get (xml,
+ "gtkrc_checkbutton",
+ GTK_TYPE_CHECK_BUTTON);
+
+ if (!ve_string_empty (gtkrc_filename) && access (gtkrc_filename, R_OK) == 0) {
+ gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (gtkrc_filechooser),
+ gtkrc_filename);
+
+ gtk_widget_set_sensitive (gtkrc_filechooser, TRUE);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtkrc_checkbox), TRUE);
+
+ }
+ else {
+ gtk_widget_set_sensitive (gtkrc_filechooser, FALSE);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtkrc_checkbox), FALSE);
+ }
+
+ g_object_set_data_full (G_OBJECT (gtkrc_filechooser),
+ "key", g_strdup (GDM_KEY_GTKRC),
+ (GDestroyNotify) g_free);
+
+ g_signal_connect (G_OBJECT (gtkrc_filechooser), "selection-changed",
+ G_CALLBACK (default_filechooser_response),
+ NULL);
+
+
+ g_object_set_data_full (G_OBJECT (gtkrc_checkbox),
+ "key", g_strdup (GDM_KEY_GTKRC),
+ (GDestroyNotify) g_free);
+
+ g_signal_connect (G_OBJECT (gtkrc_checkbox), "toggled",
+ G_CALLBACK (toggle_toggled), gtkrc_checkbox);
+ g_signal_connect (G_OBJECT (gtkrc_checkbox), "toggled",
+ G_CALLBACK (toggle_toggled_sensitivity_positive), gtkrc_filechooser);
+
+ g_free (gtkrc_filename);
+
+ /* Setup user 24Hr Clock */
+ clock_type_chooser = glade_helper_get (xml,
+ "use_24hr_clock_combobox",
+ GTK_TYPE_COMBO_BOX);
+
+ user_24hr_clock = gdm_config_get_string (GDM_KEY_USE_24_CLOCK);
+ if (!ve_string_empty (user_24hr_clock)) {
+ if (strcasecmp (ve_sure_string (user_24hr_clock), _("auto")) == 0) {
+ gtk_combo_box_set_active (GTK_COMBO_BOX (clock_type_chooser), CLOCK_AUTO);
+ }
+ else if (strcasecmp (ve_sure_string (user_24hr_clock), _("yes")) == 0) {
+ gtk_combo_box_set_active (GTK_COMBO_BOX (clock_type_chooser), CLOCK_AUTO);
+ }
+ else if (strcasecmp (ve_sure_string (user_24hr_clock), _("no")) == 0) {
+ gtk_combo_box_set_active (GTK_COMBO_BOX (clock_type_chooser), CLOCK_NO);
+ }
+ }
+
+ g_object_set_data_full (G_OBJECT (clock_type_chooser), "key",
+ g_strdup (GDM_KEY_USE_24_CLOCK), (GDestroyNotify) g_free);
+ g_signal_connect (G_OBJECT (clock_type_chooser), "changed",
+ G_CALLBACK (combobox_changed), NULL);
+
+
+ /* Set up unsaved changes storage container */
+ GdmCommandChangesUnsaved = g_hash_table_new (g_str_hash, g_str_equal);
+
+ /* Set up Halt, Rebewt, Suspend and Custom command fields */
+ command_chooser = glade_helper_get (xml,
+ "cmd_type_combobox",
+ GTK_TYPE_COMBO_BOX);
+
+ /* Add halt, rebewt and suspend commands */
+ gtk_combo_box_append_text (GTK_COMBO_BOX (command_chooser), _("Halt command"));
+ gtk_combo_box_append_text (GTK_COMBO_BOX (command_chooser), _("Reboot command"));
+ gtk_combo_box_append_text (GTK_COMBO_BOX (command_chooser), _("Suspend command"));
+
+ /* Add all the custom commands */
+ gint i;
+ for (i = 0; i < GDM_CUSTOM_COMMAND_MAX; i++) {
+ gchar *label = g_strdup_printf("Custom command %d", i);
+ gtk_combo_box_append_text (GTK_COMBO_BOX (command_chooser), label);
+ g_free (label);
+ }
+
+ g_object_set_data_full (G_OBJECT (command_chooser), "key",
+ _("command_chooser_combobox"), (GDestroyNotify) g_free);
+ g_signal_connect (G_OBJECT (command_chooser), "changed",
+ G_CALLBACK (combobox_changed), NULL);
+
+ /* Lets setup handlers for all the entries
+ They will be assigned exactly the same key and handler
+ as their only functionality would be to notify about changes */
+
+ hrs_cmd_path_entry = glade_helper_get (xml,
+ "hrs_cmd_path_entry",
+ GTK_TYPE_ENTRY);
+ g_object_set_data_full (G_OBJECT (hrs_cmd_path_entry), "key",
+ g_strdup ("hrs_custom_cmd"), (GDestroyNotify) g_free);
+ g_signal_connect (G_OBJECT (hrs_cmd_path_entry), "changed",
+ G_CALLBACK (greeter_command_entry_changed), NULL);
+
+ custom_cmd_path_entry = glade_helper_get (xml,
+ "custom_cmd_path_entry",
+ GTK_TYPE_ENTRY);
+ g_object_set_data_full (G_OBJECT (custom_cmd_path_entry), "key",
+ g_strdup (GDM_KEY_CUSTOM_CMD_TEMPLATE), (GDestroyNotify) g_free);
+ g_signal_connect (G_OBJECT (custom_cmd_path_entry), "changed",
+ G_CALLBACK (greeter_command_entry_changed), NULL);
+
+ custom_cmd_label_entry = glade_helper_get (xml,
+ "custom_cmd_label_entry",
+ GTK_TYPE_ENTRY);
+ g_object_set_data_full (G_OBJECT (custom_cmd_label_entry), "key",
+ g_strdup (GDM_KEY_CUSTOM_CMD_LABEL_TEMPLATE), (GDestroyNotify) g_free);
+ g_signal_connect (G_OBJECT (custom_cmd_label_entry), "changed",
+ G_CALLBACK (greeter_command_entry_changed), NULL);
+
+
+ custom_cmd_lrlabel_entry = glade_helper_get (xml,
+ "custom_cmd_lrlabel_entry",
+ GTK_TYPE_ENTRY);
+ g_object_set_data_full (G_OBJECT (custom_cmd_lrlabel_entry), "key",
+ g_strdup (GDM_KEY_CUSTOM_CMD_LR_LABEL_TEMPLATE), (GDestroyNotify) g_free);
+ g_signal_connect (G_OBJECT (custom_cmd_lrlabel_entry), "changed",
+ G_CALLBACK (greeter_command_entry_changed), NULL);
+
+ custom_cmd_text_entry = glade_helper_get (xml,
+ "custom_cmd_text_entry",
+ GTK_TYPE_ENTRY);
+ g_object_set_data_full (G_OBJECT (custom_cmd_text_entry), "key",
+ g_strdup (GDM_KEY_CUSTOM_CMD_TEXT_TEMPLATE), (GDestroyNotify) g_free);
+ g_signal_connect (G_OBJECT (custom_cmd_text_entry), "changed",
+ G_CALLBACK (greeter_command_entry_changed), NULL);
+
+ custom_cmd_tooltip_entry = glade_helper_get (xml,
+ "custom_cmd_tooltip_entry",
+ GTK_TYPE_ENTRY);
+ g_object_set_data_full (G_OBJECT (custom_cmd_tooltip_entry), "key",
+ g_strdup (GDM_KEY_CUSTOM_CMD_TOOLTIP_TEMPLATE), (GDestroyNotify) g_free);
+ g_signal_connect (G_OBJECT (custom_cmd_tooltip_entry), "changed",
+ G_CALLBACK (greeter_command_entry_changed), NULL);
+
+ custom_cmd_persistent_checkbutton = glade_helper_get (xml,
+ "custom_cmd_persistent_checkbutton",
+ GTK_TYPE_CHECK_BUTTON);
+ g_object_set_data_full (G_OBJECT (custom_cmd_persistent_checkbutton), "key",
+ g_strdup (GDM_KEY_CUSTOM_CMD_IS_PERSISTENT_TEMPLATE), (GDestroyNotify) g_free);
+ g_signal_connect (G_OBJECT (custom_cmd_persistent_checkbutton), "toggled",
+ G_CALLBACK (toggle_toggled), custom_cmd_persistent_checkbutton);
+
+ custom_cmd_norestart_checkbutton = glade_helper_get (xml,
+ "custom_cmd_norestart_checkbutton",
+ GTK_TYPE_CHECK_BUTTON);
+ g_object_set_data_full (G_OBJECT (custom_cmd_norestart_checkbutton), "key",
+ g_strdup (GDM_KEY_CUSTOM_CMD_NO_RESTART_TEMPLATE), (GDestroyNotify) g_free);
+ g_signal_connect (G_OBJECT (custom_cmd_norestart_checkbutton), "toggled",
+ G_CALLBACK (toggle_toggled), custom_cmd_norestart_checkbutton);
+
+
+ /* Set up append command buttons */
+ setup_general_command_buttons("hrs_command_add", "add_hrs_cmd_button");
+ setup_general_command_buttons("custom_command_add", "add_custom_cmd_button");
+
+ /* set up apply command changes button */
+ apply_command_changes_button = glade_helper_get (xml,
+ "command_apply_button",
+ GTK_TYPE_BUTTON);
+ g_object_set_data_full (G_OBJECT (apply_command_changes_button), "key",
+ g_strdup ("apply_command_changes"), (GDestroyNotify) g_free);
+ g_signal_connect (G_OBJECT (apply_command_changes_button), "clicked",
+ G_CALLBACK (command_apply), command_chooser);
+
+ gtk_widget_set_sensitive (apply_command_changes_button, FALSE);
+
+ /* Finally lets set our default choice */
+ gtk_combo_box_set_active (GTK_COMBO_BOX (command_chooser), HALT_CMD);
+}
+
+static void
setup_local_tab (void)
{
setup_local_plain_settings ();
@@ -6114,6 +7607,25 @@ hookup_remote_plain_background (void)
}
static void
+hookup_remote_plain_behaviour (void)
+{
+ /* Setup qiver */
+ setup_notify_toggle ("remote_quiver_checkbox", GDM_KEY_QUIVER);
+
+ /* Setup lock position */
+ setup_notify_toggle ("remote_lock_pos_checkbox", GDM_KEY_LOCK_POSITION);
+
+ /* Setup set position */
+ setup_notify_toggle ("remote_set_pos_checkbox", GDM_KEY_SET_POSITION);
+
+ /* Setup positionX */
+ setup_intspin ("remote_posx_spinbutton", GDM_KEY_POSITION_X);
+
+ /* Setup positionX */
+ setup_intspin ("remote_posy_spinbutton", GDM_KEY_POSITION_Y);
+}
+
+static void
hookup_remote_plain_logo (void)
{
/* Initialize and hookup callbacks for plain logo settings */
@@ -6398,6 +7910,10 @@ setup_gui (void)
glade_helper_tagify_label (xml, "themes_label", "b");
glade_helper_tagify_label (xml, "sounds_label", "b");
glade_helper_tagify_label (xml, "local_background_label", "b");
+ glade_helper_tagify_label (xml, "local_behaviour_label", "b");
+ glade_helper_tagify_label (xml, "commands_label", "b");
+ glade_helper_tagify_label (xml, "custom_cmd_note_label", "i");
+ glade_helper_tagify_label (xml, "custom_cmd_note_label", "small");
glade_helper_tagify_label (xml, "local_logo_label", "b");
glade_helper_tagify_label (xml, "local_menubar_label", "b");
glade_helper_tagify_label (xml, "local_welcome_message_label", "b");
@@ -6408,6 +7924,7 @@ setup_gui (void)
glade_helper_tagify_label (xml, "gg_copyright_label", "b");
glade_helper_tagify_label (xml, "gg_copyright_label", "small");
glade_helper_tagify_label (xml, "remote_plain_background_label", "b");
+ glade_helper_tagify_label (xml, "remote_behaviour_label", "b");
glade_helper_tagify_label (xml, "remote_logo_label", "b");
glade_helper_tagify_label (xml, "remote_welcome_message_label", "b");
glade_helper_tagify_label (xml, "label_welcomeremote_note", "i");
@@ -6421,6 +7938,7 @@ setup_gui (void)
glade_helper_tagify_label (xml, "fb_informationlabel", "small");
/* Setup preference tabs */
+ setup_general_tab ();
setup_local_tab ();
setup_remote_tab ();
setup_accessibility_tab ();
@@ -6556,7 +8074,6 @@ apply_user_changes (GObject *object, gint arg1, gpointer user_data)
if (GdmRandomFromSelectedChangesWarn == TRUE) {
GtkWidget *prompt;
- gint response;
prompt = ve_hig_dialog_new (NULL,
GTK_DIALOG_MODAL,
@@ -6705,13 +8222,26 @@ main (int argc, char *argv[])
*/
GdmIconMaxHeight = gdm_config_get_int (GDM_KEY_MAX_ICON_HEIGHT);
GdmIconMaxWidth = gdm_config_get_int (GDM_KEY_MAX_ICON_WIDTH);
- GdmMinimalUID = gdm_config_get_int (GDM_KEY_MINIMAL_UID);
GdmIncludeAll = gdm_config_get_bool (GDM_KEY_INCLUDE_ALL);
GdmInclude = gdm_config_get_string (GDM_KEY_INCLUDE);
+
+ /* We need to make sure that the users in the include list exist
+ and have uid that are higher than MinimalUID. This protects us
+ from invalid data obtained from the config file */
+ char **list;
+ gint GdmMinimalUID = gdm_config_get_int (GDM_KEY_MINIMAL_UID);
+ list = g_strsplit (GdmInclude, ",", 0);
+ int i;
+ for (i=0; list != NULL && list[i] != NULL; i++) {
+ if (gdm_is_user_valid (list[i]) && gdm_user_uid (list[i]) >= GdmMinimalUID)
+ continue;
+
+ GdmInclude = strings_list_remove (GdmInclude, list[i], ",");
+ }
+ g_strfreev (list);
+
GdmExclude = gdm_config_get_string (GDM_KEY_EXCLUDE);
GdmSoundProgram = gdm_config_get_string (GDM_KEY_SOUND_PROGRAM);
- GdmAllowRoot = gdm_config_get_bool (GDM_KEY_ALLOW_ROOT);
- GdmAllowRemoteRoot = gdm_config_get_bool (GDM_KEY_ALLOW_REMOTE_ROOT);
if (ve_string_empty (GdmSoundProgram) ||
g_access (GdmSoundProgram, X_OK) != 0) {
@@ -6720,11 +8250,16 @@ main (int argc, char *argv[])
xservers = gdm_config_get_xservers (FALSE);
- dialog = setup_gui ();
-
/* Done using socket */
gdmcomm_comm_bulk_stop ();
+ /* Once we corrected the include list we need to save it if
+ it was modified */
+ if ( strcmp (ve_sure_string (gdm_config_get_string (GDM_KEY_INCLUDE)), ve_sure_string (GdmInclude)) != 0)
+ gdm_setup_config_set_string (GDM_KEY_INCLUDE, GdmInclude);
+
+ dialog = setup_gui ();
+
g_signal_connect (G_OBJECT (dialog), "response",
G_CALLBACK (apply_user_changes), dialog);
gtk_widget_show (dialog);
diff --git a/gui/gdmsetup.glade b/gui/gdmsetup.glade
index 131c4e53..28e5cc5e 100644
--- a/gui/gdmsetup.glade
+++ b/gui/gdmsetup.glade
@@ -66,53 +66,126 @@
</child>
<child>
- <widget class="GtkNotebook" id="setup_notebook">
- <property name="border_width">5</property>
+ <widget class="GtkEventBox" id="eventbox1">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="show_tabs">True</property>
- <property name="show_border">True</property>
- <property name="tab_pos">GTK_POS_TOP</property>
- <property name="scrollable">False</property>
- <property name="enable_popup">False</property>
+ <property name="visible_window">True</property>
+ <property name="above_child">False</property>
<child>
- <widget class="GtkVBox" id="local_tab_vbox">
- <property name="border_width">12</property>
+ <widget class="GtkNotebook" id="setup_notebook">
+ <property name="border_width">5</property>
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">18</property>
+ <property name="can_focus">True</property>
+ <property name="show_tabs">True</property>
+ <property name="show_border">True</property>
+ <property name="tab_pos">GTK_POS_TOP</property>
+ <property name="scrollable">False</property>
+ <property name="enable_popup">False</property>
<child>
- <widget class="GtkVBox" id="local_style_vbox">
+ <widget class="GtkVBox" id="general_tab_vbox">
+ <property name="border_width">12</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">6</property>
+ <property name="spacing">18</property>
<child>
- <widget class="GtkHBox" id="local_style_hbox">
+ <widget class="GtkHBox" id="hbox201">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">12</property>
+ <property name="spacing">0</property>
<child>
- <widget class="GtkLabel" id="local_stylelabel">
+ <widget class="GtkTable" id="table24">
<property name="visible">True</property>
- <property name="label" translatable="yes">_Style:</property>
- <property name="use_underline">True</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</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">local_greeter</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
+ <property name="n_rows">2</property>
+ <property name="n_columns">1</property>
+ <property name="homogeneous">False</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">12</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="vis_feedback_passwd_checkbox">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Show visual feedback is the password entry. Turning this option on can be a security hazard as the length of your password can be guessed.</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Show visual feedback in the password entry</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </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>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox203">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="label297">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"> </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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</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="use_circles_passwd_checkbox">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Use circles instead of asterisks in the password entry. This may not work with all fonts however.</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Use circles instead of asterisks in the password entry</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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>
+ <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>
+ </packing>
+ </child>
</widget>
<packing>
<property name="padding">0</property>
@@ -120,20 +193,166 @@
<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="GtkTable" id="table25">
+ <property name="visible">True</property>
+ <property name="n_rows">1</property>
+ <property name="n_columns">1</property>
+ <property name="homogeneous">False</property>
+ <property name="row_spacing">0</property>
+ <property name="column_spacing">0</property>
<child>
- <widget class="GtkComboBox" id="local_greeter">
+ <widget class="GtkTable" id="table30">
<property name="visible">True</property>
- <property name="items" translatable="yes">Plain
-Plain with face browser
-Themed</property>
- <property name="add_tearoffs">False</property>
- <property name="focus_on_click">True</property>
+ <property name="n_rows">3</property>
+ <property name="n_columns">2</property>
+ <property name="homogeneous">False</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">12</property>
+
+ <child>
+ <widget class="GtkComboBox" id="default_session_combobox">
+ <property name="visible">True</property>
+ <property name="items" translatable="yes"></property>
+ <property name="add_tearoffs">False</property>
+ <property name="focus_on_click">True</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label348">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">U_se 24 Hour Clock</property>
+ <property name="use_underline">True</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">use_24hr_clock_combobox</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</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>
+
+ <child>
+ <widget class="GtkFileChooserButton" id="gtkrc_chooserbutton">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="title" translatable="yes">Select Background Image</property>
+ <property name="action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
+ <property name="local_only">True</property>
+ <property name="show_hidden">False</property>
+ <property name="do_overwrite_confirmation">False</property>
+ <property name="width_chars">-1</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <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">fill</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkComboBox" id="use_24hr_clock_combobox">
+ <property name="visible">True</property>
+ <property name="items" translatable="yes">auto
+yes
+no</property>
+ <property name="add_tearoffs">False</property>
+ <property name="focus_on_click">True</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">fill</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkCheckButton" id="default_session_checkbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Default session</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </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>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkCheckButton" id="gtkrc_checkbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_GtkRC file</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </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"></property>
+ </packing>
+ </child>
</widget>
<packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
+ <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>
</widget>
@@ -145,26 +364,90 @@ Themed</property>
</child>
<child>
- <widget class="GtkVBox" id="local_properties_vbox">
+ <widget class="GtkFixed" id="fixed5">
+ <property name="height_request">6</property>
+ <property name="visible">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="vbox129">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
- <widget class="GtkVBox" id="local_plain_properties_vbox">
+ <widget class="GtkHBox" id="hbox9896">
+ <property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">18</property>
+ <property name="spacing">0</property>
<child>
- <widget class="GtkVBox" id="local_plain_background_vbox">
+ <widget class="GtkLabel" id="commands_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Reboot, Halt, Suspend and Custom commands</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_FILL</property>
+ <property name="wrap">True</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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</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">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox9897">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkHBox" id="hbox9898">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">6</property>
+ <property name="spacing">0</property>
<child>
- <widget class="GtkFixed" id="local_plain_fixed">
- <property name="height_request">6</property>
+ <widget class="GtkLabel" id="custom_cmd_note_label">
<property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;b&gt;Note:&lt;/b&gt; You can select different commands from the drop-down list, and modify them through relevant fields located below. To save changes press Apply Command Changes button.</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_FILL</property>
+ <property name="wrap">True</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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -172,13 +455,159 @@ Themed</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>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</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>
+
+ <child>
+ <widget class="GtkHBox" id="hbox228">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkTable" id="table38">
+ <property name="visible">True</property>
+ <property name="n_rows">1</property>
+ <property name="n_columns">3</property>
+ <property name="homogeneous">False</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="label404">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Command type:</property>
+ <property name="use_underline">True</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">cmd_type_combobox</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </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>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="command_status_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">(Enabled)</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="right_attach">3</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkComboBox" id="cmd_type_combobox">
+ <property name="visible">True</property>
+ <property name="items" translatable="yes"></property>
+ <property name="add_tearoffs">False</property>
+ <property name="focus_on_click">True</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
+ </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>
+
+ <child>
+ <widget class="GtkVBox" id="commands_vbox">
+ <property name="width_request">316</property>
+ <property name="height_request">236</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkVBox" id="hrs_command_vbox">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkTable" id="table43">
+ <property name="visible">True</property>
+ <property name="n_rows">1</property>
+ <property name="n_columns">3</property>
+ <property name="homogeneous">False</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">12</property>
<child>
- <widget class="GtkLabel" id="local_background_label">
+ <widget class="GtkLabel" id="label439">
<property name="visible">True</property>
- <property name="label" translatable="yes">Background</property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
+ <property name="label" translatable="yes">_Path: </property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
@@ -186,123 +615,56 @@ Themed</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
+ <property name="mnemonic_widget">hrs_cmd_path_entry</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="local_background_hbox">
+ <widget class="GtkButton" id="hrs_command_add">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
+ <property name="can_focus">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
<child>
- <widget class="GtkLabel" id="local_background_indent_label">
+ <widget class="GtkAlignment" id="alignment49">
<property name="visible">True</property>
- <property name="label" translatable="yes"> </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>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkTable" id="local_background_table">
- <property name="visible">True</property>
- <property name="n_rows">3</property>
- <property name="n_columns">2</property>
- <property name="homogeneous">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
-
- <child>
- <widget class="GtkCheckButton" id="local_background_image_checkbutton">
- <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="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </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>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">0</property>
+ <property name="right_padding">0</property>
<child>
- <widget class="GtkFileChooserButton" id="local_background_image_chooserbutton">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="title" translatable="yes">Select Background Image</property>
- <property name="action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
- <property name="local_only">True</property>
- <property name="show_hidden">False</property>
- <property name="do_overwrite_confirmation">False</property>
- <property name="width_chars">-1</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
- <property name="y_options">fill</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="local_background_scale_hbox">
+ <widget class="GtkHBox" id="hbox9894">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">0</property>
+ <property name="spacing">2</property>
<child>
- <widget class="GtkLabel" id="local_background_scale_indent_label">
+ <widget class="GtkImage" id="image48">
<property name="visible">True</property>
- <property name="label" translatable="yes"> </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="stock">gtk-add</property>
+ <property name="icon_size">4</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -312,16 +674,22 @@ Themed</property>
</child>
<child>
- <widget class="GtkCheckButton" id="sg_scale_background">
+ <widget class="GtkLabel" id="label440">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Sc_ale to fit screen</property>
+ <property name="label" translatable="yes">_Add...</property>
<property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -330,205 +698,39 @@ Themed</property>
</packing>
</child>
</widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">fill</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkColorButton" id="local_background_colorbutton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="use_alpha">False</property>
- <property name="title" translatable="yes">Pick Background Color</property>
- <property name="focus_on_click">True</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="GtkHBox" id="hbox199">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkCheckButton" id="local_background_color_checkbutton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Co_lor:</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</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">True</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">fill</property>
- <property name="y_options">fill</property>
- </packing>
</child>
</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">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>
-
- <child>
- <widget class="GtkVBox" id="local_plain_logo_vbox">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkLabel" id="local_logo_label">
- <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</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="left_attach">2</property>
+ <property name="right_attach">3</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox102">
+ <widget class="GtkEntry" id="hrs_cmd_path_entry">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkLabel" id="label169">
- <property name="visible">True</property>
- <property name="label" translatable="yes"> </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>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</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="hbox104">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child>
- <widget class="GtkCheckButton" id="local_logo_image_checkbutton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">I_mage:</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</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="GtkFileChooserButton" id="local_logo_image_chooserbutton">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="title" translatable="yes">Select Logo Image</property>
- <property name="action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
- <property name="local_only">True</property>
- <property name="show_hidden">False</property>
- <property name="do_overwrite_confirmation">False</property>
- <property name="width_chars">-1</property>
- </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">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
+ <property name="tooltip" translatable="yes">Full path and arguments to command to be executed. If the value is missing, the command will not available.</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">*</property>
+ <property name="activates_default">False</property>
</widget>
<packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="y_options"></property>
</packing>
</child>
</widget>
@@ -547,20 +749,24 @@ Themed</property>
</child>
<child>
- <widget class="GtkVBox" id="local_themed_properties_vbox">
+ <widget class="GtkVBox" id="custom_command_vbox">
+ <property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
- <widget class="GtkHBox" id="hbox128">
+ <widget class="GtkTable" id="table44">
<property name="visible">True</property>
+ <property name="n_rows">5</property>
+ <property name="n_columns">3</property>
<property name="homogeneous">False</property>
- <property name="spacing">12</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">12</property>
<child>
- <widget class="GtkLabel" id="local_theme_label">
+ <widget class="GtkLabel" id="label441">
<property name="visible">True</property>
- <property name="label" translatable="yes">_Theme:</property>
+ <property name="label" translatable="yes">Pa_th:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -570,271 +776,56 @@ Themed</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
- <property name="mnemonic_widget">gg_mode_combobox</property>
+ <property name="mnemonic_widget">custom_cmd_path_entry</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkComboBox" id="gg_mode_combobox">
- <property name="visible">True</property>
- <property name="items" translatable="yes">Selected only
-Random from selected
-</property>
- <property name="add_tearoffs">False</property>
- <property name="focus_on_click">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></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="GtkHBox" id="hbox92">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
<child>
- <widget class="GtkScrolledWindow" id="local_theme_scrolled_window">
- <property name="width_request">350</property>
+ <widget class="GtkButton" id="custom_command_add">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_NEVER</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">True</property>
- <property name="fixed_height_mode">False</property>
- <property name="hover_selection">False</property>
- <property name="hover_expand">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="vbox56">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkButton" id="gg_install_new_theme">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment5">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkHBox" id="hbox107">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">2</property>
-
- <child>
- <widget class="GtkImage" id="image1">
- <property name="visible">True</property>
- <property name="stock">gtk-add</property>
- <property name="icon_size">4</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="GtkLabel" id="label173">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Add...</property>
- <property name="use_underline">True</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>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkButton" id="gg_delete_theme">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment6">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkHBox" id="hbox108">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">2</property>
-
- <child>
- <widget class="GtkImage" id="image2">
- <property name="visible">True</property>
- <property name="stock">gtk-remove</property>
- <property name="icon_size">4</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="GtkLabel" id="LocalThemeRemoveButtonLabel">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Remove...</property>
- <property name="use_underline">True</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>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
<child>
- <widget class="GtkVBox" id="vbox87">
+ <widget class="GtkAlignment" id="alignment50">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">0</property>
+ <property name="right_padding">0</property>
<child>
- <widget class="GtkVBox" id="vbox89">
+ <widget class="GtkHBox" id="hbox9895">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">3</property>
+ <property name="spacing">2</property>
<child>
- <widget class="GtkLabel" id="gg_copyright_label">
+ <widget class="GtkImage" id="image49">
<property name="visible">True</property>
- <property name="label" translatable="yes">Copyright:</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</property>
+ <property name="stock">gtk-add</property>
+ <property name="icon_size">4</property>
+ <property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -844,64 +835,15 @@ Random from selected
</child>
<child>
- <widget class="GtkScrolledWindow" id="scrolledwindow11">
+ <widget class="GtkLabel" id="label442">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
- <property name="vscrollbar_policy">GTK_POLICY_NEVER</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTextView" id="gg_copyright_text_view">
- <property name="visible">True</property>
- <property name="editable">False</property>
- <property name="overwrite">False</property>
- <property name="accepts_tab">True</property>
- <property name="justification">GTK_JUSTIFY_LEFT</property>
- <property name="wrap_mode">GTK_WRAP_WORD</property>
- <property name="cursor_visible">False</property>
- <property name="pixels_above_lines">0</property>
- <property name="pixels_below_lines">0</property>
- <property name="pixels_inside_wrap">0</property>
- <property name="left_margin">0</property>
- <property name="right_margin">0</property>
- <property name="indent">0</property>
- <property name="text" translatable="yes"></property>
- </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">False</property>
- <property name="fill">False</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox88">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">3</property>
-
- <child>
- <widget class="GtkLabel" id="gg_author_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Author:</property>
- <property name="use_underline">False</property>
+ <property name="label" translatable="yes">_Add...</property>
+ <property name="use_underline">True</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</property>
+ <property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
@@ -916,154 +858,244 @@ Random from selected
<property name="fill">False</property>
</packing>
</child>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow12">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
- <property name="vscrollbar_policy">GTK_POLICY_NEVER</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTextView" id="gg_author_text_view">
- <property name="visible">True</property>
- <property name="editable">False</property>
- <property name="overwrite">False</property>
- <property name="accepts_tab">True</property>
- <property name="justification">GTK_JUSTIFY_LEFT</property>
- <property name="wrap_mode">GTK_WRAP_WORD</property>
- <property name="cursor_visible">False</property>
- <property name="pixels_above_lines">0</property>
- <property name="pixels_below_lines">0</property>
- <property name="pixels_inside_wrap">0</property>
- <property name="left_margin">0</property>
- <property name="right_margin">0</property>
- <property name="indent">0</property>
- <property name="text" translatable="yes"></property>
- </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">False</property>
- <property name="fill">False</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <placeholder/>
</child>
</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>
+ <property name="left_attach">2</property>
+ <property name="right_attach">3</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
</packing>
</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="vbox90">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
+ <child>
+ <widget class="GtkEntry" id="custom_cmd_path_entry">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Full path and arguments to command to be executed. If the value is missing, the command will not available.</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">*</property>
+ <property name="activates_default">False</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
<child>
- <widget class="GtkHBox" id="hbox129">
+ <widget class="GtkLabel" id="label443">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
+ <property name="label" translatable="yes">_Label:</property>
+ <property name="use_underline">True</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">custom_cmd_label_entry</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </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"></property>
+ </packing>
+ </child>
- <child>
- <widget class="GtkTable" id="table14">
- <property name="visible">True</property>
- <property name="n_rows">1</property>
- <property name="n_columns">2</property>
- <property name="homogeneous">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <child>
+ <widget class="GtkLabel" id="label444">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">LRla_bel:</property>
+ <property name="use_underline">True</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">custom_cmd_lrlabel_entry</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</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>
- <child>
- <widget class="GtkLabel" id="label207">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Background color:</property>
- <property name="use_underline">True</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</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">local_background_theme_colorbutton</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </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>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
+ <child>
+ <widget class="GtkLabel" id="label445">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Te_xt:</property>
+ <property name="use_underline">True</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">custom_cmd_text_entry</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</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>
- <child>
- <widget class="GtkColorButton" id="local_background_theme_colorbutton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="use_alpha">False</property>
- <property name="title" translatable="yes">Pick Background Color</property>
- <property name="focus_on_click">True</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
- <property name="x_options">fill</property>
- <property name="y_options">expand</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
+ <child>
+ <widget class="GtkLabel" id="label446">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">T_ooltip:</property>
+ <property name="use_underline">True</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">custom_cmd_tooltip_entry</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
</widget>
<packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</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>
+
+ <child>
+ <widget class="GtkEntry" id="custom_cmd_label_entry">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Specifies the label that will be displayed on the Custom Command buttons and menu items.</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">*</property>
+ <property name="activates_default">False</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkEntry" id="custom_cmd_lrlabel_entry">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Specifies the label that will be displayed on the Custom Command list items and radio buttons.</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">*</property>
+ <property name="activates_default">False</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="GtkEntry" id="custom_cmd_text_entry">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Specifies the message that will be displayed on the warning dialog box when one of the Custom Command widgets is activated.</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">*</property>
+ <property name="activates_default">False</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkEntry" id="custom_cmd_tooltip_entry">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Specifies the message that will be displayed on Custom Command tooltip entries.</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">*</property>
+ <property name="activates_default">False</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">4</property>
+ <property name="bottom_attach">5</property>
+ <property name="y_options"></property>
</packing>
</child>
</widget>
@@ -1073,6 +1105,46 @@ Random from selected
<property name="fill">False</property>
</packing>
</child>
+
+ <child>
+ <widget class="GtkCheckButton" id="custom_cmd_persistent_checkbutton">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Specifies if Custom Command will appear outside the login manager, for example on the desktop through the Log Out/Shut Down widgets.</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Pe_rsistent</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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="custom_cmd_norestart_checkbutton">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Specifies if gdm will be restarted once Custom Command has been executed.</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_No restart required</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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>
<packing>
<property name="padding">0</property>
@@ -1083,134 +1155,52 @@ Random from selected
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</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>
-
- <child>
- <widget class="GtkVBox" id="local_welcome_message_vbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">18</property>
<child>
- <widget class="GtkVBox" id="LocalPlainMenuBarVBox">
+ <widget class="GtkHBox" id="hbox9892">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
- <widget class="GtkLabel" id="local_menubar_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Menu Bar</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</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</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="hbox103">
+ <widget class="GtkButton" id="command_apply_button">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
<child>
- <widget class="GtkLabel" id="label170">
+ <widget class="GtkAlignment" id="alignment48">
<property name="visible">True</property>
- <property name="label" translatable="yes"> </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>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox73">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkCheckButton" id="sysmenu">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Sho_w Actions menu</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</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>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">0</property>
+ <property name="right_padding">0</property>
<child>
- <widget class="GtkHBox" id="hbox105">
+ <widget class="GtkHBox" id="hbox9893">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">0</property>
+ <property name="spacing">2</property>
<child>
- <widget class="GtkLabel" id="label171">
+ <widget class="GtkImage" id="image47">
<property name="visible">True</property>
- <property name="label" translatable="yes"> </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="stock">gtk-apply</property>
+ <property name="icon_size">4</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -1220,42 +1210,10 @@ Random from selected
</child>
<child>
- <widget class="GtkCheckButton" id="config_available">
+ <widget class="GtkLabel" id="label438">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Include Con_figure menu item</property>
+ <property name="label" translatable="yes">_Apply Command Changes</property>
<property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</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>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox106">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkLabel" id="label172">
- <property name="visible">True</property>
- <property name="label" translatable="yes"> </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>
@@ -1275,104 +1233,93 @@ Random from selected
<property name="fill">False</property>
</packing>
</child>
-
- <child>
- <widget class="GtkCheckButton" id="chooser_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Includ_e Hostname Chooser (XDMCP) menu item</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</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>
- <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">True</property>
- <property name="fill">True</property>
- </packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="pack_type">GTK_PACK_END</property>
</packing>
</child>
+
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="pack_type">GTK_PACK_END</property>
</packing>
</child>
+ </widget>
+ <packing>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="general_tab_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">General</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</property>
+ <property name="yalign">0</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="local_tab_vbox">
+ <property name="border_width">12</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">18</property>
<child>
- <widget class="GtkVBox" id="vbox128">
+ <widget class="GtkVBox" id="local_style_vbox">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
- <widget class="GtkLabel" id="local_welcome_message_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Welcome Message</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</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</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="local_welcome_message_hbox">
+ <widget class="GtkHBox" id="local_style_hbox">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">0</property>
+ <property name="spacing">12</property>
<child>
- <widget class="GtkLabel" id="local_welcome_message_indent">
+ <widget class="GtkLabel" id="local_stylelabel">
<property name="visible">True</property>
- <property name="label" translatable="yes"> </property>
- <property name="use_underline">False</property>
+ <property name="label" translatable="yes">_Style:</property>
+ <property name="use_underline">True</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="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
+ <property name="mnemonic_widget">local_greeter</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
@@ -1386,118 +1333,13 @@ Random from selected
</child>
<child>
- <widget class="GtkVBox" id="local_welcome_message_vbox2">
+ <widget class="GtkComboBox" id="local_greeter">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkRadioButton" id="sg_defaultwelcome">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Default: &quot;Welcome&quot;</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</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="GtkTable" id="local_welcome_message_table">
- <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">0</property>
- <property name="column_spacing">12</property>
-
- <child>
- <widget class="GtkRadioButton" id="sg_customwelcome">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">C_ustom:</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <property name="group">sg_defaultwelcome</property>
- </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>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="welcome">
- <property name="visible">True</property>
- <property name="sensitive">False</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">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label_welcome_note">
- <property name="visible">True</property>
- <property name="label" translatable="yes">%n will be replaced by hostname</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</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <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>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
+ <property name="items" translatable="yes">Plain
+Plain with face browser
+Themed</property>
+ <property name="add_tearoffs">False</property>
+ <property name="focus_on_click">True</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -1508,191 +1350,50 @@ Random from selected
</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">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>
- <packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="local_tab_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Local</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>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="remote_tab_vbox">
- <property name="border_width">12</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">18</property>
-
- <child>
- <widget class="GtkVBox" id="vbox78">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkHBox" id="hbox116">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child>
- <widget class="GtkLabel" id="remote_stylelabel">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Style:</property>
- <property name="use_underline">True</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</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">remote_greeter</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
- <widget class="GtkComboBox" id="remote_greeter">
+ <widget class="GtkVBox" id="local_properties_vbox">
<property name="visible">True</property>
- <property name="items" translatable="yes">Remote login disabled
-Same as Local</property>
- <property name="add_tearoffs">False</property>
- <property name="focus_on_click">True</property>
- </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>
-
- <child>
- <widget class="GtkVBox" id="vbox79">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkVBox" id="remote_plain_properties_vbox">
<property name="homogeneous">False</property>
- <property name="spacing">18</property>
+ <property name="spacing">0</property>
<child>
- <widget class="GtkVBox" id="vbox81">
- <property name="visible">True</property>
+ <widget class="GtkVBox" id="local_plain_properties_vbox">
<property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkFixed" id="fixed2">
- <property name="height_request">6</property>
- <property name="visible">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
+ <property name="spacing">18</property>
<child>
- <widget class="GtkLabel" id="remote_plain_background_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Background</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</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</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="hbox117">
+ <widget class="GtkVBox" id="local_plain_background_vbox">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">0</property>
+ <property name="spacing">6</property>
<child>
- <widget class="GtkLabel" id="label186">
+ <widget class="GtkFixed" id="local_plain_fixed">
+ <property name="height_request">6</property>
<property name="visible">True</property>
- <property name="label" translatable="yes"> </property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="local_background_label">
+ <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="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="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
@@ -1709,19 +1410,47 @@ Same as Local</property>
</child>
<child>
- <widget class="GtkVBox" id="vbox127">
+ <widget class="GtkHBox" id="local_background_hbox">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">6</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="local_background_indent_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"> </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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</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="remote_background_image_hhox">
+ <widget class="GtkTable" id="local_background_table">
<property name="visible">True</property>
+ <property name="n_rows">3</property>
+ <property name="n_columns">2</property>
<property name="homogeneous">False</property>
- <property name="spacing">12</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">12</property>
<child>
- <widget class="GtkCheckButton" id="remote_background_image_checkbutton">
+ <widget class="GtkCheckButton" id="local_background_image_checkbutton">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">_Image:</property>
@@ -1733,15 +1462,19 @@ Same as Local</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkFileChooserButton" id="remote_background_image_chooserbutton">
+ <widget class="GtkFileChooserButton" id="local_background_image_chooserbutton">
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="title" translatable="yes">Select Background Image</property>
<property name="action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
<property name="local_only">True</property>
@@ -1750,66 +1483,123 @@ Same as Local</property>
<property name="width_chars">-1</property>
</widget>
<packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="y_options">fill</property>
</packing>
</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="sg_scale_background_remote_hbox">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
<child>
- <widget class="GtkLabel" id="label187">
+ <widget class="GtkHBox" id="local_background_scale_hbox">
<property name="visible">True</property>
- <property name="label" translatable="yes"> </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>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="local_background_scale_indent_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"> </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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</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_scale_background">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Sc_ale to fit screen</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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>
<packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="left_attach">0</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">fill</property>
</packing>
</child>
<child>
- <widget class="GtkCheckButton" id="sg_scale_background_remote">
+ <widget class="GtkColorButton" id="local_background_colorbutton">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">Sc_ale to fit screen</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="use_alpha">False</property>
+ <property name="title" translatable="yes">Pick Background Color</property>
<property name="focus_on_click">True</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>
+ <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="GtkHBox" id="hbox199">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="local_background_color_checkbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Co_lor:</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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">True</property>
+ <property name="fill">True</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="x_options">fill</property>
+ <property name="y_options">fill</property>
</packing>
</child>
</widget>
@@ -1819,108 +1609,200 @@ Same as Local</property>
<property name="fill">True</property>
</packing>
</child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="local_behaviour_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Behaviour</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</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="hbox209">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
<child>
- <widget class="GtkHBox" id="hbox127">
+ <widget class="GtkLabel" id="label304">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
+ <property name="label" translatable="yes"> </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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
- <child>
- <widget class="GtkLabel" id="label198">
- <property name="visible">True</property>
- <property name="label" translatable="yes"> </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>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</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="local_quiver_checkbox">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Quiver when incorrect username/password entered</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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>
+ <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">Do not show image for _remote logins</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</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="hbox219">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="label317">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"> </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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="remote_background_color_hbox">
+ <widget class="GtkCheckButton" id="local_lock_pos_checkbox">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Lock position</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
- <child>
- <widget class="GtkCheckButton" id="remote_background_color_checkbutton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Co_lor:</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</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="hbox220">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
- <child>
- <widget class="GtkColorButton" id="remote_background_colorbutton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="use_alpha">False</property>
- <property name="title" translatable="yes">Pick Background Color</property>
- <property name="focus_on_click">True</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="label318">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"> </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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkCheckButton" id="local_set_pos_checkbox">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Se_t position</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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>
@@ -1930,44 +1812,183 @@ Same as Local</property>
<property name="fill">True</property>
</packing>
</child>
- </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>
- <child>
- <widget class="GtkVBox" id="remote_plain_logo_vbox">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
+ <child>
+ <widget class="GtkHBox" id="hbox221">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
- <child>
- <widget class="GtkLabel" id="remote_logo_label">
- <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</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
+ <child>
+ <widget class="GtkLabel" id="label323">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"> </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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label324">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"> </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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label325">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Position _X:</property>
+ <property name="use_underline">True</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">local_posx_spinbutton</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkSpinButton" id="local_posx_spinbutton">
+ <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="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label326">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Position _Y:</property>
+ <property name="use_underline">True</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">local_posy_spinbutton</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkSpinButton" id="local_posy_spinbutton">
+ <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="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <placeholder/>
+ </child>
+
+ <child>
+ <placeholder/>
+ </child>
+
+ <child>
+ <placeholder/>
+ </child>
+
+ <child>
+ <placeholder/>
+ </child>
+
+ <child>
+ <placeholder/>
+ </child>
+
+ <child>
+ <placeholder/>
+ </child>
+ </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>
@@ -1977,21 +1998,21 @@ Same as Local</property>
</child>
<child>
- <widget class="GtkHBox" id="hbox122">
+ <widget class="GtkVBox" id="local_plain_logo_vbox">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">0</property>
+ <property name="spacing">6</property>
<child>
- <widget class="GtkLabel" id="label193">
+ <widget class="GtkLabel" id="local_logo_label">
<property name="visible">True</property>
- <property name="label" translatable="yes"> </property>
+ <property name="label" translatable="yes">Logo</property>
<property name="use_underline">False</property>
- <property name="use_markup">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="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
@@ -2008,22 +2029,28 @@ Same as Local</property>
</child>
<child>
- <widget class="GtkHBox" id="remote_plain_logo_hbox">
+ <widget class="GtkHBox" id="hbox102">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">12</property>
+ <property name="spacing">0</property>
<child>
- <widget class="GtkCheckButton" id="remote_logo_image_checkbutton">
+ <widget class="GtkLabel" id="label169">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">I_mage:</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
+ <property name="label" translatable="yes"> </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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -2033,14 +2060,47 @@ Same as Local</property>
</child>
<child>
- <widget class="GtkFileChooserButton" id="remote_logo_image_chooserbutton">
+ <widget class="GtkHBox" id="hbox104">
<property name="visible">True</property>
- <property name="title" translatable="yes">Select Logo Image</property>
- <property name="action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
- <property name="local_only">True</property>
- <property name="show_hidden">False</property>
- <property name="do_overwrite_confirmation">False</property>
- <property name="width_chars">-1</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="local_logo_image_checkbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">I_mage:</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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="GtkFileChooserButton" id="local_logo_image_chooserbutton">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="title" translatable="yes">Select Logo Image</property>
+ <property name="action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
+ <property name="local_only">True</property>
+ <property name="show_hidden">False</property>
+ <property name="do_overwrite_confirmation">False</property>
+ <property name="width_chars">-1</property>
+ </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>
@@ -2058,44 +2118,31 @@ Same as Local</property>
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</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>
+ <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="GtkVBox" id="remote_themed_properties_vbox">
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
<child>
- <widget class="GtkVBox" id="vbox91">
- <property name="visible">True</property>
+ <widget class="GtkVBox" id="local_themed_properties_vbox">
<property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
- <widget class="GtkHBox" id="remote_theme_mode_hbox">
+ <widget class="GtkHBox" id="hbox128">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">12</property>
<child>
- <widget class="GtkLabel" id="remote_theme_label">
+ <widget class="GtkLabel" id="local_theme_label">
<property name="visible">True</property>
<property name="label" translatable="yes">_Theme:</property>
<property name="use_underline">True</property>
@@ -2107,7 +2154,7 @@ Same as Local</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
- <property name="mnemonic_widget">gg_mode_combobox_remote</property>
+ <property name="mnemonic_widget">gg_mode_combobox</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
@@ -2121,7 +2168,7 @@ Same as Local</property>
</child>
<child>
- <widget class="GtkComboBox" id="gg_mode_combobox_remote">
+ <widget class="GtkComboBox" id="gg_mode_combobox">
<property name="visible">True</property>
<property name="items" translatable="yes">Selected only
Random from selected
@@ -2144,13 +2191,13 @@ Random from selected
</child>
<child>
- <widget class="GtkHBox" id="remote_theme_select_hbox">
+ <widget class="GtkHBox" id="hbox92">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">12</property>
<child>
- <widget class="GtkScrolledWindow" id="scrolledwindow13">
+ <widget class="GtkScrolledWindow" id="local_theme_scrolled_window">
<property name="width_request">350</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -2160,7 +2207,7 @@ Random from selected
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
- <widget class="GtkTreeView" id="gg_theme_list_remote">
+ <widget class="GtkTreeView" id="gg_theme_list">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="headers_visible">False</property>
@@ -2181,20 +2228,20 @@ Random from selected
</child>
<child>
- <widget class="GtkVBox" id="vbox92">
+ <widget class="GtkVBox" id="vbox56">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
- <widget class="GtkButton" id="gg_install_new_theme_remote">
+ <widget class="GtkButton" id="gg_install_new_theme">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<child>
- <widget class="GtkAlignment" id="alignment9">
+ <widget class="GtkAlignment" id="alignment5">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
@@ -2206,13 +2253,13 @@ Random from selected
<property name="right_padding">0</property>
<child>
- <widget class="GtkHBox" id="hbox132">
+ <widget class="GtkHBox" id="hbox107">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">2</property>
<child>
- <widget class="GtkImage" id="image5">
+ <widget class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="stock">gtk-add</property>
<property name="icon_size">4</property>
@@ -2229,7 +2276,7 @@ Random from selected
</child>
<child>
- <widget class="GtkLabel" id="label209">
+ <widget class="GtkLabel" id="label173">
<property name="visible">True</property>
<property name="label" translatable="yes">_Add...</property>
<property name="use_underline">True</property>
@@ -2265,7 +2312,7 @@ Random from selected
</child>
<child>
- <widget class="GtkButton" id="gg_delete_theme_remote">
+ <widget class="GtkButton" id="gg_delete_theme">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">True</property>
@@ -2273,7 +2320,7 @@ Random from selected
<property name="focus_on_click">True</property>
<child>
- <widget class="GtkAlignment" id="alignment10">
+ <widget class="GtkAlignment" id="alignment6">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
@@ -2285,13 +2332,13 @@ Random from selected
<property name="right_padding">0</property>
<child>
- <widget class="GtkHBox" id="hbox133">
+ <widget class="GtkHBox" id="hbox108">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">2</property>
<child>
- <widget class="GtkImage" id="remove_image">
+ <widget class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="stock">gtk-remove</property>
<property name="icon_size">4</property>
@@ -2308,7 +2355,7 @@ Random from selected
</child>
<child>
- <widget class="GtkLabel" id="label210">
+ <widget class="GtkLabel" id="LocalThemeRemoveButtonLabel">
<property name="visible">True</property>
<property name="label" translatable="yes">_Remove...</property>
<property name="use_underline">True</property>
@@ -2344,19 +2391,19 @@ Random from selected
</child>
<child>
- <widget class="GtkVBox" id="vbox93">
+ <widget class="GtkVBox" id="vbox87">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">12</property>
<child>
- <widget class="GtkVBox" id="vbox94">
+ <widget class="GtkVBox" id="vbox89">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">3</property>
<child>
- <widget class="GtkLabel" id="label211">
+ <widget class="GtkLabel" id="gg_copyright_label">
<property name="visible">True</property>
<property name="label" translatable="yes">Copyright:</property>
<property name="use_underline">False</property>
@@ -2381,7 +2428,7 @@ Random from selected
</child>
<child>
- <widget class="GtkScrolledWindow" id="scrolledwindow14">
+ <widget class="GtkScrolledWindow" id="scrolledwindow11">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
@@ -2390,7 +2437,7 @@ Random from selected
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
- <widget class="GtkTextView" id="gg_copyright_text_view_remote">
+ <widget class="GtkTextView" id="gg_copyright_text_view">
<property name="visible">True</property>
<property name="editable">False</property>
<property name="overwrite">False</property>
@@ -2424,13 +2471,13 @@ Random from selected
</child>
<child>
- <widget class="GtkVBox" id="vbox95">
+ <widget class="GtkVBox" id="vbox88">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">3</property>
<child>
- <widget class="GtkLabel" id="label212">
+ <widget class="GtkLabel" id="gg_author_label">
<property name="visible">True</property>
<property name="label" translatable="yes">Author:</property>
<property name="use_underline">False</property>
@@ -2455,7 +2502,7 @@ Random from selected
</child>
<child>
- <widget class="GtkScrolledWindow" id="scrolledwindow15">
+ <widget class="GtkScrolledWindow" id="scrolledwindow12">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
@@ -2464,7 +2511,7 @@ Random from selected
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
- <widget class="GtkTextView" id="gg_author_text_view_remote">
+ <widget class="GtkTextView" id="gg_author_text_view">
<property name="visible">True</property>
<property name="editable">False</property>
<property name="overwrite">False</property>
@@ -2523,19 +2570,19 @@ Random from selected
</child>
<child>
- <widget class="GtkVBox" id="vbox96">
+ <widget class="GtkVBox" id="vbox90">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
- <widget class="GtkHBox" id="hbox134">
+ <widget class="GtkHBox" id="hbox129">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
- <widget class="GtkTable" id="remote_theme_background_hbox">
+ <widget class="GtkTable" id="table14">
<property name="visible">True</property>
<property name="n_rows">1</property>
<property name="n_columns">2</property>
@@ -2544,7 +2591,7 @@ Random from selected
<property name="column_spacing">12</property>
<child>
- <widget class="GtkLabel" id="label215">
+ <widget class="GtkLabel" id="label207">
<property name="visible">True</property>
<property name="label" translatable="yes">_Background color:</property>
<property name="use_underline">True</property>
@@ -2556,7 +2603,7 @@ Random from selected
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
- <property name="mnemonic_widget">remote_background_theme_colorbutton</property>
+ <property name="mnemonic_widget">local_background_theme_colorbutton</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
@@ -2573,7 +2620,7 @@ Random from selected
</child>
<child>
- <widget class="GtkColorButton" id="remote_background_theme_colorbutton">
+ <widget class="GtkColorButton" id="local_background_theme_colorbutton">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="use_alpha">False</property>
@@ -2631,92 +2678,36 @@ Random from selected
<property name="fill">True</property>
</packing>
</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="remote_welcome_message_vbox">
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
<child>
- <widget class="GtkLabel" id="remote_welcome_message_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Welcome Message</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</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</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="hbox98">
+ <widget class="GtkVBox" id="local_welcome_message_vbox1">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">0</property>
+ <property name="spacing">18</property>
<child>
- <widget class="GtkLabel" id="label161">
- <property name="visible">True</property>
- <property name="label" translatable="yes"> </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>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox66">
+ <widget class="GtkVBox" id="LocalPlainMenuBarVBox">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">0</property>
+ <property name="spacing">6</property>
<child>
- <widget class="GtkRadioButton" id="sg_defaultwelcomeremote">
+ <widget class="GtkLabel" id="local_menubar_label">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Default: &quot;Welcome to %n&quot;</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
+ <property name="label" translatable="yes">Menu Bar</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -2726,69 +2717,243 @@ Random from selected
</child>
<child>
- <widget class="GtkTable" id="table11">
+ <widget class="GtkHBox" id="hbox103">
<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">0</property>
- <property name="column_spacing">12</property>
+ <property name="spacing">0</property>
<child>
- <widget class="GtkRadioButton" id="sg_customwelcomeremote">
+ <widget class="GtkLabel" id="label170">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">C_ustom:</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <property name="group">sg_defaultwelcomeremote</property>
+ <property name="label" translatable="yes"> </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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
</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>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
</packing>
</child>
<child>
- <widget class="GtkEntry" id="welcomeremote">
+ <widget class="GtkVBox" id="vbox73">
<property name="visible">True</property>
- <property name="sensitive">False</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">*</property>
- <property name="activates_default">False</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="sysmenu">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Sho_w Actions menu</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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="hbox105">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="label171">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"> </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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</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">Include Con_figure menu item</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox106">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="label172">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"> </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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</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="chooser_button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Includ_e Hostname Chooser (XDMCP) menu item</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</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">1</property>
- <property name="y_options"></property>
+ <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">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </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="vbox128">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkLabel" id="local_welcome_message_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Welcome Message</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</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="local_welcome_message_hbox">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
<child>
- <widget class="GtkLabel" id="label_welcomeremote_note">
+ <widget class="GtkLabel" id="local_welcome_message_indent">
<property name="visible">True</property>
- <property name="label" translatable="yes">%n will be replaced by hostname</property>
+ <property name="label" translatable="yes"> </property>
<property name="use_underline">False</property>
- <property name="use_markup">True</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</property>
+ <property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
@@ -2798,19 +2963,137 @@ Random from selected
<property name="angle">0</property>
</widget>
<packing>
- <property name="left_attach">1</property>
- <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>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="local_welcome_message_vbox2">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkRadioButton" id="sg_defaultwelcome">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Default: &quot;Welcome&quot;</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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="GtkTable" id="local_welcome_message_table">
+ <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">0</property>
+ <property name="column_spacing">12</property>
+
+ <child>
+ <widget class="GtkRadioButton" id="sg_customwelcome">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">C_ustom:</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">sg_defaultwelcome</property>
+ </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>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkEntry" id="welcome">
+ <property name="visible">True</property>
+ <property name="sensitive">False</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">*</property>
+ <property name="activates_default">False</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label_welcome_note">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">%n will be replaced by hostname</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <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>
+ </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>
<packing>
<property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
</packing>
</child>
</widget>
@@ -2823,169 +3106,99 @@ Random from selected
</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>
-
- <child>
- <widget class="GtkVBox" id="remote_configure_xdmcp_vbox">
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkHBox" id="remove_configure_xdmcp_hbox">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkButton" id="xdmcp_configbutton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Configure _XDMCP...</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </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">False</property>
- <property name="fill">False</property>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
</packing>
</child>
- </widget>
- <packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="remote_tab_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Remote</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>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="accessibility_tab_vbox">
- <property name="border_width">12</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">18</property>
<child>
- <widget class="GtkCheckButton" id="acc_modules">
+ <widget class="GtkLabel" id="local_tab_label">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Enable accessible login</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
+ <property name="label" translatable="yes">Local</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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
</widget>
<packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="type">tab</property>
</packing>
</child>
<child>
- <widget class="GtkVBox" id="themes_vbox">
+ <widget class="GtkVBox" id="remote_tab_vbox">
+ <property name="border_width">12</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkLabel" id="themes_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Themes</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</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
+ <property name="spacing">18</property>
<child>
- <widget class="GtkHBox" id="themes_category_hbox">
+ <widget class="GtkVBox" id="vbox78">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">0</property>
+ <property name="spacing">6</property>
<child>
- <widget class="GtkLabel" id="themes_indent_label">
+ <widget class="GtkHBox" id="hbox116">
<property name="visible">True</property>
- <property name="label" translatable="yes"> </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>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="remote_stylelabel">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Style:</property>
+ <property name="use_underline">True</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">remote_greeter</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkComboBox" id="remote_greeter">
+ <property name="visible">True</property>
+ <property name="items" translatable="yes">Remote login disabled
+Same as Local</property>
+ <property name="add_tearoffs">False</property>
+ <property name="focus_on_click">True</property>
+ </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>
@@ -2995,85 +3208,1409 @@ Random from selected
</child>
<child>
- <widget class="GtkCheckButton" id="acc_theme">
+ <widget class="GtkVBox" id="vbox79">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Allow users to change fonts and colors of plain greeter</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkVBox" id="remote_plain_properties_vbox">
+ <property name="homogeneous">False</property>
+ <property name="spacing">18</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox81">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkFixed" id="fixed2">
+ <property name="height_request">6</property>
+ <property name="visible">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="remote_plain_background_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Background</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</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="hbox117">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="label186">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"> </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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="vbox127">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkHBox" id="remote_background_image_hhox">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="remote_background_image_checkbutton">
+ <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="focus_on_click">True</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="GtkFileChooserButton" id="remote_background_image_chooserbutton">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes">Select Background Image</property>
+ <property name="action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
+ <property name="local_only">True</property>
+ <property name="show_hidden">False</property>
+ <property name="do_overwrite_confirmation">False</property>
+ <property name="width_chars">-1</property>
+ </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">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="sg_scale_background_remote_hbox">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="label187">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"> </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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</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_scale_background_remote">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Sc_ale to fit screen</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox127">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="label198">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"> </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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</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_remote_color_only">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Do not show image for _remote logins</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="remote_background_color_hbox">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="remote_background_color_checkbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Co_lor:</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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="GtkColorButton" id="remote_background_colorbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="use_alpha">False</property>
+ <property name="title" translatable="yes">Pick Background Color</property>
+ <property name="focus_on_click">True</property>
+ </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">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </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">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="remote_behaviour_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Behaviour</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</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="hbox222">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="label328">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"> </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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</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="remote_quiver_checkbox">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Quiver when incorrect username/password entered</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox223">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="label329">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"> </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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</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="remote_lock_pos_checkbox">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Lock position</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox224">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="label330">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"> </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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</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="remote_set_pos_checkbox">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Se_t position:</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox225">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="label331">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"> </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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label332">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"> </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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label333">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Position _X:</property>
+ <property name="use_underline">True</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">remote_posx_spinbutton</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkSpinButton" id="remote_posx_spinbutton">
+ <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="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label334">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Position _Y:</property>
+ <property name="use_underline">True</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">remote_posy_spinbutton</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkSpinButton" id="remote_posy_spinbutton">
+ <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="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <placeholder/>
+ </child>
+
+ <child>
+ <placeholder/>
+ </child>
+
+ <child>
+ <placeholder/>
+ </child>
+
+ <child>
+ <placeholder/>
+ </child>
+
+ <child>
+ <placeholder/>
+ </child>
+
+ <child>
+ <placeholder/>
+ </child>
+ </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>
+
+ <child>
+ <widget class="GtkVBox" id="remote_plain_logo_vbox">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkLabel" id="remote_logo_label">
+ <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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</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="hbox122">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="label193">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"> </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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</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="remote_plain_logo_hbox">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="remote_logo_image_checkbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">I_mage:</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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="GtkFileChooserButton" id="remote_logo_image_chooserbutton">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes">Select Logo Image</property>
+ <property name="action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
+ <property name="local_only">True</property>
+ <property name="show_hidden">False</property>
+ <property name="do_overwrite_confirmation">False</property>
+ <property name="width_chars">-1</property>
+ </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">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </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">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>
+
+ <child>
+ <widget class="GtkVBox" id="remote_themed_properties_vbox">
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox91">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkHBox" id="remote_theme_mode_hbox">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="remote_theme_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Theme:</property>
+ <property name="use_underline">True</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">gg_mode_combobox_remote</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkComboBox" id="gg_mode_combobox_remote">
+ <property name="visible">True</property>
+ <property name="items" translatable="yes">Selected only
+Random from selected
+</property>
+ <property name="add_tearoffs">False</property>
+ <property name="focus_on_click">True</property>
+ </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>
+
+ <child>
+ <widget class="GtkHBox" id="remote_theme_select_hbox">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkScrolledWindow" id="scrolledwindow13">
+ <property name="width_request">350</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_NEVER</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_remote">
+ <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">True</property>
+ <property name="fixed_height_mode">False</property>
+ <property name="hover_selection">False</property>
+ <property name="hover_expand">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="vbox92">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkButton" id="gg_install_new_theme_remote">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+
+ <child>
+ <widget class="GtkAlignment" id="alignment9">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">0</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkHBox" id="hbox132">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
+
+ <child>
+ <widget class="GtkImage" id="image5">
+ <property name="visible">True</property>
+ <property name="stock">gtk-add</property>
+ <property name="icon_size">4</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="GtkLabel" id="label209">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Add...</property>
+ <property name="use_underline">True</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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="gg_delete_theme_remote">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+
+ <child>
+ <widget class="GtkAlignment" id="alignment10">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">0</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkHBox" id="hbox133">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
+
+ <child>
+ <widget class="GtkImage" id="remove_image">
+ <property name="visible">True</property>
+ <property name="stock">gtk-remove</property>
+ <property name="icon_size">4</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="GtkLabel" id="label210">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Remove...</property>
+ <property name="use_underline">True</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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="vbox93">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox94">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">3</property>
+
+ <child>
+ <widget class="GtkLabel" id="label211">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Copyright:</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkScrolledWindow" id="scrolledwindow14">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+ <property name="vscrollbar_policy">GTK_POLICY_NEVER</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+ <child>
+ <widget class="GtkTextView" id="gg_copyright_text_view_remote">
+ <property name="visible">True</property>
+ <property name="editable">False</property>
+ <property name="overwrite">False</property>
+ <property name="accepts_tab">True</property>
+ <property name="justification">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap_mode">GTK_WRAP_WORD</property>
+ <property name="cursor_visible">False</property>
+ <property name="pixels_above_lines">0</property>
+ <property name="pixels_below_lines">0</property>
+ <property name="pixels_inside_wrap">0</property>
+ <property name="left_margin">0</property>
+ <property name="right_margin">0</property>
+ <property name="indent">0</property>
+ <property name="text" translatable="yes"></property>
+ </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">False</property>
+ <property name="fill">False</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="vbox95">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">3</property>
+
+ <child>
+ <widget class="GtkLabel" id="label212">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Author:</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkScrolledWindow" id="scrolledwindow15">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+ <property name="vscrollbar_policy">GTK_POLICY_NEVER</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+ <child>
+ <widget class="GtkTextView" id="gg_author_text_view_remote">
+ <property name="visible">True</property>
+ <property name="editable">False</property>
+ <property name="overwrite">False</property>
+ <property name="accepts_tab">True</property>
+ <property name="justification">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap_mode">GTK_WRAP_WORD</property>
+ <property name="cursor_visible">False</property>
+ <property name="pixels_above_lines">0</property>
+ <property name="pixels_below_lines">0</property>
+ <property name="pixels_inside_wrap">0</property>
+ <property name="left_margin">0</property>
+ <property name="right_margin">0</property>
+ <property name="indent">0</property>
+ <property name="text" translatable="yes"></property>
+ </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">False</property>
+ <property name="fill">False</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+
+ <child>
+ <placeholder/>
+ </child>
+ </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>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="vbox96">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkHBox" id="hbox134">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkTable" id="remote_theme_background_hbox">
+ <property name="visible">True</property>
+ <property name="n_rows">1</property>
+ <property name="n_columns">2</property>
+ <property name="homogeneous">False</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="label215">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Background color:</property>
+ <property name="use_underline">True</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">remote_background_theme_colorbutton</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </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>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkColorButton" id="remote_background_theme_colorbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="use_alpha">False</property>
+ <property name="title" translatable="yes">Pick Background Color</property>
+ <property name="focus_on_click">True</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options">expand</property>
+ </packing>
+ </child>
+ </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">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>
+ <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">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>
+ <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>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="sounds_vbox">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkLabel" id="sounds_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Sounds</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</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="sounds_category_hbox">
- <property name="visible">True</property>
+ <widget class="GtkVBox" id="remote_welcome_message_vbox">
<property name="homogeneous">False</property>
- <property name="spacing">0</property>
+ <property name="spacing">6</property>
<child>
- <widget class="GtkLabel" id="sounds_indent_label">
+ <widget class="GtkLabel" id="remote_welcome_message_label">
<property name="visible">True</property>
- <property name="label" translatable="yes"> </property>
+ <property name="label" translatable="yes">Welcome Message</property>
<property name="use_underline">False</property>
- <property name="use_markup">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="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
@@ -3090,111 +4627,53 @@ Random from selected
</child>
<child>
- <widget class="GtkTable" id="sounds_table">
+ <widget class="GtkHBox" id="hbox98">
<property name="visible">True</property>
- <property name="n_rows">3</property>
- <property name="n_columns">2</property>
<property name="homogeneous">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
-
- <child>
- <widget class="GtkCheckButton" id="acc_sound_ready">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Login screen ready:</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </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>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkCheckButton" id="acc_sound_success">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Login _successful:</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </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"></property>
- </packing>
- </child>
+ <property name="spacing">0</property>
<child>
- <widget class="GtkCheckButton" id="acc_sound_failure">
+ <widget class="GtkLabel" id="label161">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Login _failed:</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
+ <property name="label" translatable="yes"> </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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
</widget>
<packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox182">
+ <widget class="GtkVBox" id="vbox66">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">6</property>
+ <property name="spacing">0</property>
<child>
- <widget class="GtkFileChooserButton" id="acc_sound_ready_button">
- <property name="visible">True</property>
- <property name="title" translatable="yes">Select Sound File</property>
- <property name="action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
- <property name="local_only">True</property>
- <property name="show_hidden">False</property>
- <property name="do_overwrite_confirmation">False</property>
- <property name="width_chars">-1</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkButton" id="acc_soundtest_ready_button">
+ <widget class="GtkRadioButton" id="sg_defaultwelcomeremote">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label">gtk-media-play</property>
- <property name="use_stock">True</property>
+ <property name="label" translatable="yes">_Default: &quot;Welcome to %n&quot;</property>
+ <property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -3202,47 +4681,88 @@ Random from selected
<property name="fill">False</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">1</property>
- <property name="y_options">fill</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox183">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
<child>
- <widget class="GtkFileChooserButton" id="acc_sound_success_button">
+ <widget class="GtkTable" id="table11">
<property name="visible">True</property>
- <property name="title" translatable="yes">Select Sound File</property>
- <property name="action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
- <property name="local_only">True</property>
- <property name="show_hidden">False</property>
- <property name="do_overwrite_confirmation">False</property>
- <property name="width_chars">-1</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
+ <property name="n_rows">2</property>
+ <property name="n_columns">2</property>
+ <property name="homogeneous">False</property>
+ <property name="row_spacing">0</property>
+ <property name="column_spacing">12</property>
- <child>
- <widget class="GtkButton" id="acc_soundtest_success_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-media-play</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
+ <child>
+ <widget class="GtkRadioButton" id="sg_customwelcomeremote">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">C_ustom:</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">sg_defaultwelcomeremote</property>
+ </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>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkEntry" id="welcomeremote">
+ <property name="visible">True</property>
+ <property name="sensitive">False</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">*</property>
+ <property name="activates_default">False</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label_welcomeremote_note">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">%n will be replaced by hostname</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <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>
</widget>
<packing>
<property name="padding">0</property>
@@ -3252,130 +4772,109 @@ Random from selected
</child>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="y_options">fill</property>
+ <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">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>
- <child>
- <widget class="GtkHBox" id="hbox184">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
+ <child>
+ <widget class="GtkVBox" id="remote_configure_xdmcp_vbox">
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
- <child>
- <widget class="GtkFileChooserButton" id="acc_sound_failure_button">
- <property name="visible">True</property>
- <property name="title" translatable="yes">Select Sound File</property>
- <property name="action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
- <property name="local_only">True</property>
- <property name="show_hidden">False</property>
- <property name="do_overwrite_confirmation">False</property>
- <property name="width_chars">-1</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
+ <child>
+ <widget class="GtkHBox" id="remove_configure_xdmcp_hbox">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
- <child>
- <widget class="GtkButton" id="acc_soundtest_failure_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-media-play</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
+ <child>
+ <widget class="GtkButton" id="xdmcp_configbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Configure _XDMCP...</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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">fill</property>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="pack_type">GTK_PACK_END</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</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>
+ <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>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
</packing>
</child>
- </widget>
- <packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="accessibility_tab_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Accessibility</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>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
- <child>
- <widget class="GtkVBox" id="security_tab_vbox">
- <property name="border_width">12</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">18</property>
+ <child>
+ <widget class="GtkLabel" id="remote_tab_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Remote</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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ </packing>
+ </child>
<child>
- <widget class="GtkVBox" id="autologin_vbox">
+ <widget class="GtkVBox" id="accessibility_tab_vbox">
+ <property name="border_width">12</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">6</property>
+ <property name="spacing">18</property>
<child>
- <widget class="GtkCheckButton" id="autologin">
+ <widget class="GtkCheckButton" id="acc_modules">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">_Enable Automatic Login</property>
+ <property name="label" translatable="yes">_Enable accessible login</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
@@ -3391,21 +4890,21 @@ Random from selected
</child>
<child>
- <widget class="GtkHBox" id="hbox136">
+ <widget class="GtkVBox" id="themes_vbox">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">0</property>
+ <property name="spacing">6</property>
<child>
- <widget class="GtkLabel" id="label227">
+ <widget class="GtkLabel" id="themes_label">
<property name="visible">True</property>
- <property name="label" translatable="yes"> </property>
+ <property name="label" translatable="yes">Themes</property>
<property name="use_underline">False</property>
- <property name="use_markup">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="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
@@ -3422,122 +4921,85 @@ Random from selected
</child>
<child>
- <widget class="GtkTable" id="table17">
+ <widget class="GtkHBox" id="themes_category_hbox">
<property name="visible">True</property>
- <property name="n_rows">1</property>
- <property name="n_columns">2</property>
<property name="homogeneous">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="spacing">0</property>
<child>
- <widget class="GtkLabel" id="autologin_label">
+ <widget class="GtkLabel" id="themes_indent_label">
<property name="visible">True</property>
- <property name="label" translatable="yes">_User:</property>
- <property name="use_underline">True</property>
+ <property name="label" translatable="yes"> </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</property>
+ <property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
- <property name="mnemonic_widget">autologin_combo</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</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>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
</packing>
</child>
<child>
- <widget class="GtkComboBoxEntry" id="autologin_combo">
+ <widget class="GtkCheckButton" id="acc_theme">
<property name="visible">True</property>
- <property name="items" translatable="yes">dummy</property>
- <property name="add_tearoffs">False</property>
- <property name="has_frame">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Allow users to change fonts and colors of plain greeter</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
- <property name="y_options">fill</property>
+ <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>
+ <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>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="timedlogin_vbox">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkCheckButton" id="timedlogin">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Enable _Timed Login</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</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="hbox138">
+ <widget class="GtkVBox" id="sounds_vbox">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">0</property>
+ <property name="spacing">6</property>
<child>
- <widget class="GtkLabel" id="label231">
+ <widget class="GtkLabel" id="sounds_label">
<property name="visible">True</property>
- <property name="label" translatable="yes"> </property>
+ <property name="label" translatable="yes">Sounds</property>
<property name="use_underline">False</property>
- <property name="use_markup">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="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
@@ -3554,144 +5016,190 @@ Random from selected
</child>
<child>
- <widget class="GtkTable" id="table18">
+ <widget class="GtkHBox" id="sounds_category_hbox">
<property name="visible">True</property>
- <property name="n_rows">3</property>
- <property name="n_columns">2</property>
<property name="homogeneous">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="spacing">0</property>
<child>
- <widget class="GtkLabel" id="timed_login_label">
+ <widget class="GtkLabel" id="sounds_indent_label">
<property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="label" translatable="yes">U_ser:</property>
- <property name="use_underline">True</property>
+ <property name="label" translatable="yes"> </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</property>
+ <property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
- <property name="mnemonic_widget">timedlogin_combo</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</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>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkCheckButton" id="allowremoteauto">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Allo_w remote timed logins</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="left_attach">0</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>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox148">
+ <widget class="GtkTable" id="sounds_table">
<property name="visible">True</property>
+ <property name="n_rows">3</property>
+ <property name="n_columns">2</property>
<property name="homogeneous">False</property>
- <property name="spacing">12</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">12</property>
<child>
- <widget class="GtkLabel" id="timedlogin_seconds_label">
+ <widget class="GtkCheckButton" id="acc_sound_ready">
<property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="label" translatable="yes">_Pause before login:</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Login screen ready:</property>
<property name="use_underline">True</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</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">timedlogin_seconds</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkCheckButton" id="acc_sound_success">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Login _successful:</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </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"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkCheckButton" id="acc_sound_failure">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Login _failed:</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</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>
<child>
- <widget class="GtkHBox" id="hbox141">
+ <widget class="GtkHBox" id="hbox182">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
- <widget class="GtkSpinButton" id="timedlogin_seconds">
+ <widget class="GtkFileChooserButton" id="acc_sound_ready_button">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes">Select Sound File</property>
+ <property name="action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
+ <property name="local_only">True</property>
+ <property name="show_hidden">False</property>
+ <property name="do_overwrite_confirmation">False</property>
+ <property name="width_chars">-1</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="acc_soundtest_ready_button">
<property name="visible">True</property>
- <property name="sensitive">False</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">0 0 100 1 10 10</property>
+ <property name="label">gtk-media-play</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
- <property name="fill">True</property>
+ <property name="fill">False</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">1</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox183">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
<child>
- <widget class="GtkLabel" id="timedlogin_seconds_units">
+ <widget class="GtkFileChooserButton" id="acc_sound_success_button">
<property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="label" translatable="yes">seconds</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>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="title" translatable="yes">Select Sound File</property>
+ <property name="action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
+ <property name="local_only">True</property>
+ <property name="show_hidden">False</property>
+ <property name="do_overwrite_confirmation">False</property>
<property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="acc_soundtest_success_button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-media-play</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -3701,36 +5209,66 @@ Random from selected
</child>
</widget>
<packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="y_options">fill</property>
</packing>
</child>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">fill</property>
- </packing>
- </child>
- <child>
- <widget class="GtkComboBoxEntry" id="timedlogin_combo">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="items" translatable="yes">dummy</property>
- <property name="add_tearoffs">False</property>
- <property name="has_frame">True</property>
- <property name="focus_on_click">True</property>
+ <child>
+ <widget class="GtkHBox" id="hbox184">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkFileChooserButton" id="acc_sound_failure_button">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes">Select Sound File</property>
+ <property name="action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
+ <property name="local_only">True</property>
+ <property name="show_hidden">False</property>
+ <property name="do_overwrite_confirmation">False</property>
+ <property name="width_chars">-1</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="acc_soundtest_failure_button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-media-play</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </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">fill</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">1</property>
- <property name="y_options">fill</property>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
</packing>
</child>
</widget>
@@ -3749,41 +5287,58 @@ Random from selected
</child>
</widget>
<packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="accessibility_tab_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Accessibility</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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
</packing>
</child>
<child>
- <widget class="GtkVBox" id="security_vbox">
+ <widget class="GtkVBox" id="security_tab_vbox">
+ <property name="border_width">12</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">18</property>
<child>
- <widget class="GtkVBox" id="vbox101">
+ <widget class="GtkVBox" id="autologin_vbox">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
- <widget class="GtkLabel" id="security_label">
+ <widget class="GtkCheckButton" id="autologin">
<property name="visible">True</property>
- <property name="label" translatable="yes">Security</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</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Enable Automatic Login</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -3793,13 +5348,13 @@ Random from selected
</child>
<child>
- <widget class="GtkHBox" id="hbox142">
+ <widget class="GtkHBox" id="hbox136">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
- <widget class="GtkLabel" id="label238">
+ <widget class="GtkLabel" id="label227">
<property name="visible">True</property>
<property name="label" translatable="yes"> </property>
<property name="use_underline">False</property>
@@ -3824,73 +5379,183 @@ Random from selected
</child>
<child>
- <widget class="GtkVBox" id="vbox102">
+ <widget class="GtkTable" id="table17">
<property name="visible">True</property>
+ <property name="n_rows">1</property>
+ <property name="n_columns">2</property>
<property name="homogeneous">False</property>
- <property name="spacing">6</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">12</property>
<child>
- <widget class="GtkCheckButton" id="allowroot">
+ <widget class="GtkLabel" id="autologin_label">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Allow local system administrator login</property>
+ <property name="label" translatable="yes">_User:</property>
<property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">autologin_combo</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
</widget>
<packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkCheckButton" id="allowremoteroot">
+ <widget class="GtkComboBoxEntry" id="autologin_combo">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">A_llow remote system administrator login</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="items" translatable="yes">dummy</property>
+ <property name="add_tearoffs">False</property>
+ <property name="has_frame">True</property>
<property name="focus_on_click">True</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>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="y_options">fill</property>
</packing>
</child>
+ </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">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>
+
+ <child>
+ <widget class="GtkVBox" id="timedlogin_vbox">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="timedlogin">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Enable _Timed Login</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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="hbox138">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="label231">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"> </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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkTable" id="table18">
+ <property name="visible">True</property>
+ <property name="n_rows">3</property>
+ <property name="n_columns">2</property>
+ <property name="homogeneous">False</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">12</property>
<child>
- <widget class="GtkCheckButton" id="enable_debug">
+ <widget class="GtkLabel" id="timed_login_label">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">E_nable debug messages to system log</property>
+ <property name="sensitive">False</property>
+ <property name="label" translatable="yes">U_ser:</property>
<property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">timedlogin_combo</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
</widget>
<packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkCheckButton" id="disallow_tcp">
+ <widget class="GtkCheckButton" id="allowremoteauto">
<property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="tooltip" translatable="yes">Remote connections through XDMCP will be allowed to log into the &quot;TimedLogin&quot; user by letting the login window time out, just like the local user on the first console.</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">_Deny TCP connections to Xserver</property>
+ <property name="label" translatable="yes">Allo_w remote timed logins</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
@@ -3899,31 +5564,36 @@ Random from selected
<property name="draw_indicator">True</property>
</widget>
<packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="left_attach">0</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>
<child>
- <widget class="GtkHBox" id="hbox181">
+ <widget class="GtkHBox" id="hbox148">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">0</property>
+ <property name="spacing">12</property>
<child>
- <widget class="GtkLabel" id="label275">
+ <widget class="GtkLabel" id="timedlogin_seconds_label">
<property name="visible">True</property>
- <property name="label" translatable="yes"> </property>
- <property name="use_underline">False</property>
+ <property name="sensitive">False</property>
+ <property name="label" translatable="yes">_Pause before login:</property>
+ <property name="use_underline">True</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="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
+ <property name="mnemonic_widget">timedlogin_seconds</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
@@ -3937,31 +5607,174 @@ Random from selected
</child>
<child>
- <widget class="GtkLabel" id="xforwarding_label">
+ <widget class="GtkHBox" id="hbox141">
<property name="visible">True</property>
- <property name="label" translatable="yes">Disables X forwarding, but does not affect XDMCP.</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>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkSpinButton" id="timedlogin_seconds">
+ <property name="visible">True</property>
+ <property name="sensitive">False</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">0 0 100 1 10 10</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="timedlogin_seconds_units">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="label" translatable="yes">seconds</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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</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>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
</packing>
</child>
</widget>
<packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">fill</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkComboBoxEntry" id="timedlogin_combo">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="items" translatable="yes">dummy</property>
+ <property name="add_tearoffs">False</property>
+ <property name="has_frame">True</property>
+ <property name="focus_on_click">True</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
+ </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">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>
+
+ <child>
+ <widget class="GtkVBox" id="security_vbox">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">18</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox101">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkLabel" id="security_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Security</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</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="hbox142">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="label238">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"> </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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
@@ -3969,29 +5782,60 @@ Random from selected
</child>
<child>
- <widget class="GtkHBox" id="hbox145">
+ <widget class="GtkVBox" id="vbox102">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">12</property>
+ <property name="spacing">6</property>
<child>
- <widget class="GtkLabel" id="label241">
+ <widget class="GtkCheckButton" id="allowroot">
<property name="visible">True</property>
- <property name="label" translatable="yes">L_ogin retry delay:</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Allow local system administrator login</property>
<property name="use_underline">True</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>
- <property name="mnemonic_widget">retry_delay</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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="allowremoteroot">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">A_llow remote system administrator login</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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="enable_debug">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">E_nable debug messages to system log</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -4001,43 +5845,336 @@ Random from selected
</child>
<child>
- <widget class="GtkHBox" id="hbox146">
+ <widget class="GtkCheckButton" id="disallow_tcp">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Always append -nolisten tcp to the command line of local X servers, thus disallowing TCP connection. This is useful if you do not care for allowing remote connections, since the X protocol could really be potentially a security hazard to leave open, even though no known security problems exist.</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Deny TCP connections to Xserver</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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="hbox181">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">6</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="label275">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"> </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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="xforwarding_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Disables X forwarding, but does not affect XDMCP.</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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</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="GtkTable" id="table31">
+ <property name="visible">True</property>
+ <property name="n_rows">2</property>
+ <property name="n_columns">3</property>
+ <property name="homogeneous">False</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="label351">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">L_ogin retry delay:</property>
+ <property name="use_underline">True</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">gg_mode_combobox</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </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>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label353">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">seconds</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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="right_attach">3</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label392">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Minimal UID:</property>
+ <property name="use_underline">True</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">minimal_uid_spinbutton</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </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"></property>
+ </packing>
+ </child>
<child>
<widget class="GtkSpinButton" id="retry_delay">
<property name="visible">True</property>
+ <property name="tooltip" translatable="yes">The number of seconds that should pass before reactivating the entry field after a failed login.</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="numeric">True</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="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label242">
+ <widget class="GtkSpinButton" id="minimal_uid_spinbutton">
<property name="visible">True</property>
- <property name="label" translatable="yes">seconds</property>
- <property name="use_underline">False</property>
+ <property name="tooltip" translatable="yes">All users with a lower UID will be excluded from the face browser, automatic and timed login.</property>
+ <property name="can_focus">True</property>
+ <property name="climb_rate">1</property>
+ <property name="digits">0</property>
+ <property name="numeric">True</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 50000 1 10 10</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <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>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkCheckButton" id="check_dir_owner_checkbutton">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Checks the ownership of the home directories before writing to them. This prevents security issues in case of bad setup.</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Check directory owner</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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="never_cookies_NFS_checkbutton">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Does not place cookies into the users home directory if this directory is on NFS.</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Ne_ver place cookies on NFS</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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="a_login_curr_session_checkbutton">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">When the user logs in and already has an existing session, they are connected to that session rather than starting a new session. This only works for session's running on VT's (Virtual Terminals) started with gdmflexiserver, and not with XDMCP.</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Disa_ble multiple logins for a single user</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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="a_restart_server_checkbutton">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Does not reuse existing X servers, but kills them and starts over. Normally, just reinitializing is a nicer way to go but if the X server memory usage keeps growing this may be a safer option.</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Always _restart server</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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="GtkVBox" id="vbox130">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="label447">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Permissions:</property>
+ <property name="use_underline">True</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="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
+ <property name="mnemonic_widget">gg_mode_combobox</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
@@ -4049,17 +6186,130 @@ Random from selected
<property name="fill">False</property>
</packing>
</child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox9899">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="label448">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"> </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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="vbox131">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkRadioButton" id="relax_permissions0_radiobutton">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Paranoia option. Only accepts user owned files and directories.</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Only allow login if user's home directory permissions are secure</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</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="relax_permissions1_radiobutton">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Allow group writable files and directories.</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Allow login if group write permissions on user's home directory</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">relax_permissions0_radiobutton</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="relax_permissions2_radiobutton">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Allow world writable files and directories.</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Allow login if all write permissions on user's home directory</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">relax_permissions0_radiobutton</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">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </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="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">True</property>
+ <property name="expand">False</property>
<property name="fill">True</property>
</packing>
</child>
@@ -4067,7 +6317,7 @@ Random from selected
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
- <property name="fill">True</property>
+ <property name="fill">False</property>
</packing>
</child>
</widget>
@@ -4080,108 +6330,71 @@ Random from selected
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
</packing>
</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="vbox103">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
<child>
- <widget class="GtkHBox" id="hbox151">
+ <widget class="GtkVBox" id="vbox103">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">12</property>
+ <property name="spacing">6</property>
<child>
- <widget class="GtkButton" id="config_xserverbutton">
+ <widget class="GtkHBox" id="hbox151">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Configure _X Server...</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkButton" id="config_xserverbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Configure _X Server...</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="pack_type">GTK_PACK_END</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</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>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
</packing>
</child>
- </widget>
- <packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="security_tab_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Security</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>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="users_tab_vbox">
- <property name="border_width">12</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
<child>
- <widget class="GtkLabel" id="fb_informationlabel">
+ <widget class="GtkLabel" id="security_tab_label">
<property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Note:&lt;/b&gt; Users in the Include list will appear in the face browser if enabled and will appear in the user drop-down lists for automatic and timed logins on the Security tab. Users in the Exclude list will not appear.</property>
+ <property name="label" translatable="yes">Security</property>
<property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_FILL</property>
- <property name="wrap">True</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</property>
- <property name="yalign">0</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
@@ -4190,30 +6403,34 @@ Random from selected
<property name="angle">0</property>
</widget>
<packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="type">tab</property>
</packing>
</child>
<child>
- <widget class="GtkVBox" id="vbox125">
+ <widget class="GtkVBox" id="users_tab_vbox">
+ <property name="border_width">12</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">6</property>
+ <property name="spacing">12</property>
<child>
- <widget class="GtkCheckButton" id="fb_allusers">
- <property name="border_width">3</property>
+ <widget class="GtkLabel" id="fb_informationlabel">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Include all users from /etc/passwd (not for NIS)</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
+ <property name="label" translatable="yes">&lt;b&gt;Note:&lt;/b&gt; Users in the Include list will appear in the face browser if enabled and will appear in the user drop-down lists for automatic and timed logins on the Security tab. Users in the Exclude list will not appear. MinimalUID setting in the Security tab will affect which users will be allowed to join Include list.</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_FILL</property>
+ <property name="wrap">True</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -4223,502 +6440,647 @@ Random from selected
</child>
<child>
- <widget class="GtkTable" id="table22">
+ <widget class="GtkVBox" id="vbox125">
<property name="visible">True</property>
- <property name="n_rows">3</property>
- <property name="n_columns">3</property>
<property name="homogeneous">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
-
- <child>
- <widget class="GtkLabel" id="fb_includelabel">
- <property name="visible">True</property>
- <property name="label" translatable="yes">I_nclude:</property>
- <property name="use_underline">True</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</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">fb_include_treeview</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </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>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
+ <property name="spacing">6</property>
<child>
- <widget class="GtkLabel" id="fb_excludelabel">
+ <widget class="GtkCheckButton" id="fb_allusers">
+ <property name="border_width">3</property>
<property name="visible">True</property>
- <property name="label" translatable="yes">E_xclude:</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Include all users from /etc/passwd (not for NIS)</property>
<property name="use_underline">True</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</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">fb_exclude_treeview</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
</widget>
<packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
</packing>
</child>
<child>
- <widget class="GtkScrolledWindow" id="scrolledwindow19">
+ <widget class="GtkTable" id="table22">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_NEVER</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>
+ <property name="n_rows">3</property>
+ <property name="n_columns">3</property>
+ <property name="homogeneous">False</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">12</property>
<child>
- <widget class="GtkTreeView" id="fb_include_treeview">
+ <widget class="GtkLabel" id="fb_includelabel">
<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">True</property>
- <property name="fixed_height_mode">False</property>
- <property name="hover_selection">False</property>
- <property name="hover_expand">False</property>
+ <property name="label" translatable="yes">I_nclude:</property>
+ <property name="use_underline">True</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">fb_include_treeview</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
</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>
+ <property name="x_options">fill</property>
+ <property name="y_options"></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>
- </packing>
- </child>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow20">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_NEVER</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="fb_exclude_treeview">
+ <widget class="GtkLabel" id="fb_excludelabel">
<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">True</property>
- <property name="fixed_height_mode">False</property>
- <property name="hover_selection">False</property>
- <property name="hover_expand">False</property>
+ <property name="label" translatable="yes">E_xclude:</property>
+ <property name="use_underline">True</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">fb_exclude_treeview</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
</widget>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="right_attach">3</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
</child>
- </widget>
- <packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox124">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
<child>
- <widget class="GtkVBox" id="UsersButtonBox">
+ <widget class="GtkScrolledWindow" id="scrolledwindow19">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkButton" id="fb_toexclude">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
-
- <child>
- <widget class="GtkImage" id="image19">
- <property name="visible">True</property>
- <property name="stock">gtk-go-forward</property>
- <property name="icon_size">4</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_NEVER</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="GtkButton" id="fb_toinclude">
+ <widget class="GtkTreeView" id="fb_include_treeview">
<property name="visible">True</property>
- <property name="sensitive">False</property>
<property name="can_focus">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
-
- <child>
- <widget class="GtkImage" id="image20">
- <property name="visible">True</property>
- <property name="stock">gtk-go-back</property>
- <property name="icon_size">4</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- </child>
+ <property name="headers_visible">False</property>
+ <property name="rules_hint">False</property>
+ <property name="reorderable">False</property>
+ <property name="enable_search">True</property>
+ <property name="fixed_height_mode">False</property>
+ <property name="hover_selection">False</property>
+ <property name="hover_expand">False</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">True</property>
- <property name="fill">False</property>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
</packing>
</child>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <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">fill</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox193">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
<child>
- <widget class="GtkButton" id="fb_includedelete">
+ <widget class="GtkScrolledWindow" id="scrolledwindow20">
<property name="visible">True</property>
- <property name="sensitive">False</property>
<property name="can_focus">True</property>
- <property name="label">gtk-remove</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_NEVER</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="fb_exclude_treeview">
+ <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">True</property>
+ <property name="fixed_height_mode">False</property>
+ <property name="hover_selection">False</property>
+ <property name="hover_expand">False</property>
+ </widget>
+ </child>
</widget>
<packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="pack_type">GTK_PACK_END</property>
+ <property name="left_attach">2</property>
+ <property name="right_attach">3</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
</packing>
</child>
<child>
- <widget class="GtkButton" id="fb_includeadd">
+ <widget class="GtkVBox" id="vbox124">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
<child>
- <widget class="GtkAlignment" id="alignment22">
+ <widget class="GtkVBox" id="UsersButtonBox">
<property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
<child>
- <widget class="GtkHBox" id="hbox198">
+ <widget class="GtkButton" id="fb_toexclude">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">2</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
<child>
- <widget class="GtkImage" id="image21">
+ <widget class="GtkImage" id="image19">
<property name="visible">True</property>
- <property name="stock">gtk-add</property>
+ <property name="stock">gtk-go-forward</property>
<property name="icon_size">4</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>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="fb_toinclude">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
<child>
- <widget class="GtkLabel" id="label294">
+ <widget class="GtkImage" id="image20">
<property name="visible">True</property>
- <property name="label" translatable="yes">_Add...</property>
- <property name="use_underline">True</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="stock">gtk-go-back</property>
+ <property name="icon_size">4</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</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>
</widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</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>
- <property name="pack_type">GTK_PACK_END</property>
+ <property name="left_attach">1</property>
+ <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">fill</property>
</packing>
</child>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">fill</property>
- <property name="y_options">fill</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox194">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
<child>
- <widget class="GtkButton" id="fb_excludedelete">
+ <widget class="GtkHBox" id="hbox193">
<property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
<child>
- <widget class="GtkAlignment" id="alignment21">
+ <widget class="GtkButton" id="fb_includedelete">
<property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-remove</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="fb_includeadd">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
<child>
- <widget class="GtkHBox" id="hbox192">
+ <widget class="GtkAlignment" id="alignment22">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">2</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">0</property>
+ <property name="right_padding">0</property>
<child>
- <widget class="GtkImage" id="image18">
+ <widget class="GtkHBox" id="hbox198">
<property name="visible">True</property>
- <property name="stock">gtk-remove</property>
- <property name="icon_size">4</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>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
- <child>
- <widget class="GtkLabel" id="label290">
- <property name="visible">True</property>
- <property name="label" translatable="yes">R_emove</property>
- <property name="use_underline">True</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>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
+ <child>
+ <widget class="GtkImage" id="image21">
+ <property name="visible">True</property>
+ <property name="stock">gtk-add</property>
+ <property name="icon_size">4</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="GtkLabel" id="label294">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Add...</property>
+ <property name="use_underline">True</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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</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>
</widget>
</child>
</widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
</child>
</widget>
<packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="pack_type">GTK_PACK_END</property>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="x_options">fill</property>
+ <property name="y_options">fill</property>
</packing>
</child>
<child>
- <widget class="GtkButton" id="fb_excludeadd">
+ <widget class="GtkHBox" id="hbox194">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
<child>
- <widget class="GtkAlignment" id="alignment20">
+ <widget class="GtkButton" id="fb_excludedelete">
<property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
<child>
- <widget class="GtkHBox" id="hbox191">
+ <widget class="GtkAlignment" id="alignment21">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">2</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">0</property>
+ <property name="right_padding">0</property>
<child>
- <widget class="GtkImage" id="image17">
+ <widget class="GtkHBox" id="hbox192">
<property name="visible">True</property>
- <property name="stock">gtk-add</property>
- <property name="icon_size">4</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
+
+ <child>
+ <widget class="GtkImage" id="image18">
+ <property name="visible">True</property>
+ <property name="stock">gtk-remove</property>
+ <property name="icon_size">4</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="GtkLabel" id="label290">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">R_emove</property>
+ <property name="use_underline">True</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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</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>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="fb_excludeadd">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+
+ <child>
+ <widget class="GtkAlignment" id="alignment20">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">0</property>
+ <property name="right_padding">0</property>
<child>
- <widget class="GtkLabel" id="label289">
+ <widget class="GtkHBox" id="hbox191">
<property name="visible">True</property>
- <property name="label" translatable="yes">A_dd...</property>
- <property name="use_underline">True</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>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
+
+ <child>
+ <widget class="GtkImage" id="image17">
+ <property name="visible">True</property>
+ <property name="stock">gtk-add</property>
+ <property name="icon_size">4</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="GtkLabel" id="label289">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">A_dd...</property>
+ <property name="use_underline">True</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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</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>
</widget>
</child>
</widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
</child>
</widget>
<packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="pack_type">GTK_PACK_END</property>
+ <property name="left_attach">2</property>
+ <property name="right_attach">3</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="x_options">fill</property>
+ <property name="y_options">fill</property>
</packing>
</child>
</widget>
<packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">fill</property>
- <property name="y_options">fill</property>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkFixed" id="fixed6">
+ <property name="height_request">6</property>
+ <property name="visible">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkTable" id="table36">
+ <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">6</property>
+ <property name="column_spacing">12</property>
+
+ <child>
+ <widget class="GtkFileChooserButton" id="default_face_filechooser">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="title" translatable="yes">Select Logo Image</property>
+ <property name="action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
+ <property name="local_only">True</property>
+ <property name="show_hidden">False</property>
+ <property name="do_overwrite_confirmation">False</property>
+ <property name="width_chars">-1</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkFileChooserButton" id="global_face_dir_filechooser">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="title" translatable="yes">Select Logo Image</property>
+ <property name="action">GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER</property>
+ <property name="local_only">True</property>
+ <property name="show_hidden">False</property>
+ <property name="do_overwrite_confirmation">False</property>
+ <property name="width_chars">-1</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkCheckButton" id="global_face_dir_checkbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Global face dir</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </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"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkCheckButton" id="default_face_checkbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Default face</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </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>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
</packing>
</child>
</widget>
@@ -4728,138 +7090,133 @@ Random from selected
<property name="fill">True</property>
</packing>
</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="hbox157">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
<child>
- <widget class="GtkButton" id="fb_faceapply">
+ <widget class="GtkHBox" id="hbox217">
<property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
<child>
- <widget class="GtkAlignment" id="alignment17">
+ <widget class="GtkButton" id="fb_faceapply">
<property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
<child>
- <widget class="GtkHBox" id="hbox186">
+ <widget class="GtkAlignment" id="alignment26">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">2</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">0</property>
+ <property name="right_padding">0</property>
<child>
- <widget class="GtkImage" id="image14">
+ <widget class="GtkHBox" id="hbox218">
<property name="visible">True</property>
- <property name="stock">gtk-apply</property>
- <property name="icon_size">4</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>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
- <child>
- <widget class="GtkLabel" id="label280">
- <property name="visible">True</property>
- <property name="label" translatable="yes">A_pply User Changes</property>
- <property name="use_underline">True</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>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
+ <child>
+ <widget class="GtkImage" id="image25">
+ <property name="visible">True</property>
+ <property name="stock">gtk-apply</property>
+ <property name="icon_size">4</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="GtkLabel" id="label313">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">A_pply User Changes</property>
+ <property name="use_underline">True</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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</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>
</widget>
</child>
</widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+
+ <child>
+ <placeholder/>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="pack_type">GTK_PACK_END</property>
</packing>
</child>
-
- <child>
- <placeholder/>
- </child>
</widget>
<packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
</packing>
</child>
- </widget>
- <packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="users_tab_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Users</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>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
+ <child>
+ <widget class="GtkLabel" id="users_tab_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Users</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>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ </packing>
+ </child>
</widget>
- <packing>
- <property name="type">tab</property>
- </packing>
</child>
</widget>
<packing>
@@ -5986,7 +8343,7 @@ Random from selected
<child>
<widget class="GtkTable" id="table19">
<property name="visible">True</property>
- <property name="n_rows">3</property>
+ <property name="n_rows">4</property>
<property name="n_columns">2</property>
<property name="homogeneous">False</property>
<property name="row_spacing">6</property>
@@ -6139,6 +8496,56 @@ Chooser</property>
<property name="y_options">fill</property>
</packing>
</child>
+
+ <child>
+ <widget class="GtkLabel" id="label302">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Priority:</property>
+ <property name="use_underline">True</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">xserv_priority_spinbutton</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</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>
+
+ <child>
+ <widget class="GtkSpinButton" id="xserv_priority_spinbutton">
+ <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">True</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 -20 20 1 10 10</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="padding">0</property>
diff --git a/gui/gdmuser.c b/gui/gdmuser.c
index bc706549..f85db2c4 100644
--- a/gui/gdmuser.c
+++ b/gui/gdmuser.c
@@ -289,6 +289,34 @@ gdm_is_user_valid (const char *username)
return (NULL != getpwnam (username));
}
+gint
+gdm_user_uid (const char *username)
+{
+ struct passwd *pwent;
+ pwent = getpwnam (username);
+ if (pwent != NULL)
+ return pwent->pw_uid;
+
+ return -1;
+}
+
+const char *
+get_root_user (void)
+{
+ static char *root_user = NULL;
+ struct passwd *pwent;
+
+ if (root_user != NULL)
+ return root_user;
+
+ pwent = getpwuid (0);
+ if (pwent == NULL) /* huh? */
+ root_user = g_strdup ("root");
+ else
+ root_user = g_strdup (pwent->pw_name);
+ return root_user;
+}
+
void
gdm_users_init (GList **users,
GList **users_string,
diff --git a/gui/gdmuser.h b/gui/gdmuser.h
index 55c99656..38f3376b 100644
--- a/gui/gdmuser.h
+++ b/gui/gdmuser.h
@@ -33,8 +33,10 @@ struct _GdmUser {
GdkPixbuf *picture;
};
-gboolean gdm_is_user_valid (const char *username);
-void gdm_users_init (GList **users, GList **users_string,
+gboolean gdm_is_user_valid (const char *username);
+gint gdm_user_uid (const char *username);
+const char *get_root_user (void);
+void gdm_users_init (GList **users, GList **users_string,
char *exclude_user, GdkPixbuf *defface,
int *size_of_users, gboolean is_local,
gboolean read_faces);
diff --git a/gui/greeter/greeter.c b/gui/greeter/greeter.c
index 62e7ab20..3cb0da83 100644
--- a/gui/greeter/greeter.c
+++ b/gui/greeter/greeter.c
@@ -174,7 +174,10 @@ process_operation (guchar op_code,
static GnomeCanvasItem *disabled_cover = NULL;
gchar *language;
gchar *selected_user = NULL;
-
+ gint lookup_status = SESSION_LOOKUP_SUCCESS;
+ gchar *firstmsg = NULL;
+ gchar *secondmsg = NULL;
+ gint save_session = GTK_RESPONSE_NO;
/* Parse opcode */
switch (op_code) {
@@ -278,9 +281,60 @@ process_operation (guchar op_code,
case GDM_SESS:
tmp = ve_locale_to_utf8 (args);
- session = gdm_session_lookup (tmp);
+ session = gdm_session_lookup (tmp, &lookup_status);
+ if (lookup_status != SESSION_LOOKUP_SUCCESS) {
+ switch (lookup_status) {
+ case SESSION_LOOKUP_PREFERRED_MISSING:
+ firstmsg = g_strdup_printf (_("Do you wish to make %s the default for "
+ "future sessions?"),
+ gdm_session_name (tmp));
+ secondmsg = g_strdup_printf (_("Your preferred session type %s is not "
+ "installed on this computer."),
+ gdm_session_name (gdm_get_default_session ()));
+ save_session = gdm_wm_query_dialog (firstmsg, secondmsg,
+ _("Make _Default"), _("Just _Log In"), TRUE);
+
+ g_free (firstmsg);
+ g_free (secondmsg);
+ gdm_set_save_session (save_session);
+ break;
+
+ case SESSION_LOOKUP_DEFAULT_MISMATCH:
+ firstmsg = g_strdup_printf (_("Do you wish to make %s the default for "
+ "future sessions?"),
+ gdm_session_name (session));
+ secondmsg = g_strdup_printf (_("You have chosen %s for this "
+ "session, but your default "
+ "setting is %s."),
+ gdm_session_name (session),
+ gdm_session_name (tmp));
+ save_session = gdm_wm_query_dialog (firstmsg, secondmsg,
+ _("Make _Default"), _("Just For _This Session"), TRUE);
+
+ g_free (firstmsg);
+ g_free (secondmsg);
+ gdm_set_save_session (save_session);
+ break;
+ case SESSION_LOOKUP_USE_SWITCHDESK:
+ firstmsg = g_strdup_printf (_("You have chosen %s for this "
+ "session"),
+ gdm_session_name (session));
+ secondmsg = g_strdup_printf (_("If you wish to make %s "
+ "the default for future sessions, "
+ "run the 'switchdesk' utility "
+ "(System->Desktop Switching Tool from "
+ "the panel menu)."),
+ gdm_session_name (session));
+ gdm_wm_message_dialog (firstmsg, secondmsg);
+ g_free (firstmsg);
+ g_free (secondmsg);
+ break;
+
+ default:
+ break;
+ }
+ }
g_free (tmp);
-
if (gdm_get_save_session () == GTK_RESPONSE_CANCEL) {
printf ("%c%s\n", STX, GDM_RESPONSE_CANCEL);
} else {