keyboard-properties: Add a 'Preview' frame .

keyboard-properties: Add a 'Preview' frame .

screensaver-properties: Make the usage of
/usr/X11R6/lib/xscreensaver/ a bit more generic.

Fix DPMS.

Remove warnings.

sound-properties: Make it apply when people click 'OK'.

theme-switcher: Add a menubar & menu for people to see.
Fix warnings

ui-properties: Speed up startup, fix bugs (see ChangeLog).

wm-properties: Work with 0 wm's listed.
This commit is contained in:
Elliot Lee 1999-08-04 01:27:16 +00:00
parent b570b94516
commit 7ad35a1ed4
6 changed files with 131 additions and 72 deletions

View file

@ -45,7 +45,7 @@ demo_main(int argc, char **argv, gint in_fd)
gchar buf[256];
Window window;
GtkWidget *widget, *table, *hbox;
GtkWidget *scrolled_window;
GtkWidget *scrolled_window, *menubar, *menu;
GSList *group;
gchar *titles[2] = {N_("One"),N_("Two")};
/* just 8 short names that will serve as samples for titles in demo */
@ -108,54 +108,71 @@ demo_main(int argc, char **argv, gint in_fd)
plug = gtk_plug_new(window);
table = gtk_table_new (4, 3, FALSE);
table = gtk_table_new (5, 3, FALSE);
gtk_container_add(GTK_CONTAINER(plug), table);
widget = gtk_label_new (_("Selected themes from above will be tested by previewing here."));
gtk_label_set_justify (GTK_LABEL (widget), GTK_JUSTIFY_LEFT);
gtk_table_attach (GTK_TABLE (table), widget, 0, 3, 0, 1, 0, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
menubar = gtk_menu_bar_new();
gtk_table_attach (GTK_TABLE (table), menubar, 0, 3, 1, 2, 0, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
widget = gtk_menu_item_new_with_label(_("Submenu"));
gtk_widget_show(widget);
gtk_menu_bar_append(GTK_MENU_BAR(menubar), widget);
gtk_widget_show(menubar);
menu = gtk_menu_new();
gtk_menu_item_set_submenu(GTK_MENU_ITEM(widget), menu);
widget = gtk_menu_item_new_with_label(_("Item 1"));
gtk_widget_show(widget);
gtk_menu_append(GTK_MENU(menu), widget);
widget = gtk_menu_item_new_with_label(_("Another item"));
gtk_widget_show(widget);
gtk_menu_append(GTK_MENU(menu), widget);
/* column one */
gtk_table_attach (GTK_TABLE (table), widget, 0, 3, 0, 1, 0, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
widget = gtk_button_new_with_label (_("Sample Button"));
hbox = gtk_hbox_new (FALSE, 0);
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
widget = gtk_check_button_new_with_label (_("Sample Check Button"));
hbox = gtk_hbox_new (FALSE, 0);
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, 0);
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 3, 4, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, 0);
widget = gtk_entry_new_with_max_length (50);
gtk_entry_set_text (GTK_ENTRY (widget), _("Sample Text Entry Field"));
gtk_widget_set_usize (widget, 70, -1);
hbox = gtk_hbox_new (FALSE, 0);
gtk_box_pack_start (GTK_BOX (hbox), widget, TRUE, TRUE, 0);
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 3, 4, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 4, 5, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
/* column two */
widget = gtk_radio_button_new_with_label (NULL, _("Radio Button 1"));
hbox = gtk_hbox_new (FALSE, 0);
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
group = gtk_radio_button_group (GTK_RADIO_BUTTON (widget));
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 1, 2, GTK_EXPAND | GTK_FILL, 0, 0, GNOME_PAD_SMALL);
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 2, 3, GTK_EXPAND | GTK_FILL, 0, 0, GNOME_PAD_SMALL);
widget = gtk_radio_button_new_with_label (group, _("Radio Button 2"));
hbox = gtk_hbox_new (FALSE, 0);
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
group = gtk_radio_button_group (GTK_RADIO_BUTTON (widget));
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 2, 3, GTK_EXPAND | GTK_FILL, 0, 0, 0);
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 3, 4, GTK_EXPAND | GTK_FILL, 0, 0, 0);
widget = gtk_radio_button_new_with_label (group, _("Radio Button 3"));
hbox = gtk_hbox_new (FALSE, 0);
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
group = gtk_radio_button_group (GTK_RADIO_BUTTON (widget));
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 3, 4, GTK_EXPAND | GTK_FILL, 0, 0, 0);
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 4, 5, GTK_EXPAND | GTK_FILL, 0, 0, 0);
/* column three */
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (scrolled_window),
GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
gtk_table_attach (GTK_TABLE (table), scrolled_window, 2, 3, 1, 4, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, 0);
gtk_table_attach (GTK_TABLE (table), scrolled_window, 2, 3, 2, 5, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, 0);
widget = gtk_clist_new_with_titles (2, titles);
gtk_clist_set_column_width (GTK_CLIST(widget), 0, 45);

View file

@ -45,7 +45,7 @@ demo_main(int argc, char **argv, gint in_fd)
gchar buf[256];
Window window;
GtkWidget *widget, *table, *hbox;
GtkWidget *scrolled_window;
GtkWidget *scrolled_window, *menubar, *menu;
GSList *group;
gchar *titles[2] = {N_("One"),N_("Two")};
/* just 8 short names that will serve as samples for titles in demo */
@ -108,54 +108,71 @@ demo_main(int argc, char **argv, gint in_fd)
plug = gtk_plug_new(window);
table = gtk_table_new (4, 3, FALSE);
table = gtk_table_new (5, 3, FALSE);
gtk_container_add(GTK_CONTAINER(plug), table);
widget = gtk_label_new (_("Selected themes from above will be tested by previewing here."));
gtk_label_set_justify (GTK_LABEL (widget), GTK_JUSTIFY_LEFT);
gtk_table_attach (GTK_TABLE (table), widget, 0, 3, 0, 1, 0, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
menubar = gtk_menu_bar_new();
gtk_table_attach (GTK_TABLE (table), menubar, 0, 3, 1, 2, 0, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
widget = gtk_menu_item_new_with_label(_("Submenu"));
gtk_widget_show(widget);
gtk_menu_bar_append(GTK_MENU_BAR(menubar), widget);
gtk_widget_show(menubar);
menu = gtk_menu_new();
gtk_menu_item_set_submenu(GTK_MENU_ITEM(widget), menu);
widget = gtk_menu_item_new_with_label(_("Item 1"));
gtk_widget_show(widget);
gtk_menu_append(GTK_MENU(menu), widget);
widget = gtk_menu_item_new_with_label(_("Another item"));
gtk_widget_show(widget);
gtk_menu_append(GTK_MENU(menu), widget);
/* column one */
gtk_table_attach (GTK_TABLE (table), widget, 0, 3, 0, 1, 0, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
widget = gtk_button_new_with_label (_("Sample Button"));
hbox = gtk_hbox_new (FALSE, 0);
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
widget = gtk_check_button_new_with_label (_("Sample Check Button"));
hbox = gtk_hbox_new (FALSE, 0);
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, 0);
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 3, 4, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, 0);
widget = gtk_entry_new_with_max_length (50);
gtk_entry_set_text (GTK_ENTRY (widget), _("Sample Text Entry Field"));
gtk_widget_set_usize (widget, 70, -1);
hbox = gtk_hbox_new (FALSE, 0);
gtk_box_pack_start (GTK_BOX (hbox), widget, TRUE, TRUE, 0);
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 3, 4, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 4, 5, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
/* column two */
widget = gtk_radio_button_new_with_label (NULL, _("Radio Button 1"));
hbox = gtk_hbox_new (FALSE, 0);
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
group = gtk_radio_button_group (GTK_RADIO_BUTTON (widget));
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 1, 2, GTK_EXPAND | GTK_FILL, 0, 0, GNOME_PAD_SMALL);
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 2, 3, GTK_EXPAND | GTK_FILL, 0, 0, GNOME_PAD_SMALL);
widget = gtk_radio_button_new_with_label (group, _("Radio Button 2"));
hbox = gtk_hbox_new (FALSE, 0);
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
group = gtk_radio_button_group (GTK_RADIO_BUTTON (widget));
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 2, 3, GTK_EXPAND | GTK_FILL, 0, 0, 0);
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 3, 4, GTK_EXPAND | GTK_FILL, 0, 0, 0);
widget = gtk_radio_button_new_with_label (group, _("Radio Button 3"));
hbox = gtk_hbox_new (FALSE, 0);
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
group = gtk_radio_button_group (GTK_RADIO_BUTTON (widget));
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 3, 4, GTK_EXPAND | GTK_FILL, 0, 0, 0);
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 4, 5, GTK_EXPAND | GTK_FILL, 0, 0, 0);
/* column three */
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (scrolled_window),
GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
gtk_table_attach (GTK_TABLE (table), scrolled_window, 2, 3, 1, 4, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, 0);
gtk_table_attach (GTK_TABLE (table), scrolled_window, 2, 3, 2, 5, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, 0);
widget = gtk_clist_new_with_titles (2, titles);
gtk_clist_set_column_width (GTK_CLIST(widget), 0, 45);

View file

@ -164,7 +164,7 @@ install_theme_callback (GtkWidget *widget, gpointer data)
}
gint
static gint
delete_capplet (GtkWidget *widget, GdkEvent *event, gpointer data)
{
/* We don't want the toplevel window destroyed until
@ -179,7 +179,7 @@ make_main(void)
{
void *sw, *label;
GtkWidget *box, *hbox, *hbox2, *vbox;
GtkWidget *text, *frame, *frame2, *button;
GtkWidget *frame, *button;
GtkWidget *button_vbox;
gboolean default_used;
@ -362,7 +362,7 @@ static void
click_try(GtkWidget *widget, gpointer data)
{
gchar *rc;
gchar *dir, cmd[10240];
gchar *dir;
/* if (current_theme == current_global_theme)
return;*/
@ -409,7 +409,7 @@ static void
click_revert(GtkWidget *widget, gpointer data)
{
gchar *rc;
gchar *dir, cmd[10240];
gchar *dir;
widget = initial_theme;
if (!widget)
@ -460,9 +460,7 @@ click_revert(GtkWidget *widget, gpointer data)
static void
click_entry(GtkWidget *widget, gpointer data)
{
gchar *rc, *name, *new_readme, buf[1024];
FILE *f;
gchar *rc, *name;
name = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "name");
rc = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "rc");

View file

@ -164,7 +164,7 @@ install_theme_callback (GtkWidget *widget, gpointer data)
}
gint
static gint
delete_capplet (GtkWidget *widget, GdkEvent *event, gpointer data)
{
/* We don't want the toplevel window destroyed until
@ -179,7 +179,7 @@ make_main(void)
{
void *sw, *label;
GtkWidget *box, *hbox, *hbox2, *vbox;
GtkWidget *text, *frame, *frame2, *button;
GtkWidget *frame, *button;
GtkWidget *button_vbox;
gboolean default_used;
@ -362,7 +362,7 @@ static void
click_try(GtkWidget *widget, gpointer data)
{
gchar *rc;
gchar *dir, cmd[10240];
gchar *dir;
/* if (current_theme == current_global_theme)
return;*/
@ -409,7 +409,7 @@ static void
click_revert(GtkWidget *widget, gpointer data)
{
gchar *rc;
gchar *dir, cmd[10240];
gchar *dir;
widget = initial_theme;
if (!widget)
@ -460,9 +460,7 @@ click_revert(GtkWidget *widget, gpointer data)
static void
click_entry(GtkWidget *widget, gpointer data)
{
gchar *rc, *name, *new_readme, buf[1024];
FILE *f;
gchar *rc, *name;
name = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "name");
rc = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "rc");

View file

@ -18,10 +18,10 @@ GList *window_managers = NULL;
static GList *window_managers_save = NULL;
/* Current window manager */
static WindowManager *current_wm;
static WindowManager *current_wm = NULL;
/* Window manager on startup */
static WindowManager *current_wm_save;
static WindowManager *current_wm_save = NULL;
gboolean
is_blank (gchar *str)
@ -270,10 +270,8 @@ wm_list_init (void)
if (!current_wm && window_managers)
current_wm = window_managers->data;
if (!current_wm)
g_error ("No window manager desktops found!");
current_wm_save = wm_list_find (window_managers_save, current_wm->dentry->name);
if(current_wm)
current_wm_save = wm_list_find (window_managers_save, current_wm->dentry->name);
}
void
@ -282,7 +280,6 @@ wm_list_save (void)
GList *old_files;
GList *tmp_list;
gchar *tempdir;
gchar *filename;
gchar *prefix;
WindowManager *wm;
@ -332,9 +329,9 @@ wm_list_save (void)
/* Save the current window manager
*/
gnome_config_set_string ("wm-properties/Config/Config/Current",
current_wm->dentry->name);
if(current_wm)
gnome_config_set_string ("wm-properties/Config/Config/Current",
current_wm->dentry->name);
gnome_config_sync ();
}
@ -342,7 +339,10 @@ void
wm_list_revert (void)
{
GList *tmp_list;
gchar *old_name = g_strdup (current_wm->dentry->name);
gchar *old_name = NULL;
if(current_wm)
old_name = g_strdup (current_wm->dentry->name);
g_list_foreach (window_managers, (GFunc)wm_free, NULL);
g_list_free (window_managers);
@ -399,6 +399,9 @@ wm_list_get_current (void)
WindowManager *
wm_list_get_revert (void)
{
return wm_list_find (window_managers, current_wm_save->dentry->name);
if(current_wm_save)
return wm_list_find (window_managers, current_wm_save->dentry->name);
else
return NULL;
}

View file

@ -31,10 +31,11 @@ typedef struct {
/* vars. */
static GtkWidget *capplet;
static GtkWidget *delete_button;
static GtkWidget *edit_button;
static GtkWidget *config_button;
static GtkWidget *clist;
static WindowManager *selected_wm;
static WindowManager *selected_wm = NULL;
static GtkWidget *restart_dialog = NULL;
static GtkWidget *restart_label = NULL;
@ -284,7 +285,7 @@ update_gui (void)
WindowManager *current_wm = wm_list_get_current();
gint new_row;
gchar *tmpstr;
gtk_clist_clear (GTK_CLIST (clist));
in_fill = TRUE;
@ -330,7 +331,18 @@ update_gui (void)
in_fill = FALSE;
gtk_widget_set_sensitive (delete_button, selected_wm->is_user);
if(selected_wm) {
gtk_widget_set_sensitive (edit_button, selected_wm->is_user);
gtk_widget_set_sensitive (delete_button, selected_wm->is_user);
} else {
gtk_widget_set_sensitive (edit_button, FALSE);
gtk_widget_set_sensitive (delete_button, FALSE);
}
if (current_wm)
gtk_widget_show(config_button);
else
gtk_widget_hide(config_button);
}
static void
@ -428,8 +440,8 @@ restart_failure (WMResult reason)
case STATE_CANCEL:
msg = g_strdup_printf (_("Could not start '%s'.\n"
"Falling back to previous window manager '%s'\n"),
selected_wm->dentry->name,
current_wm->dentry->name);
selected_wm?selected_wm->dentry->name:"Unknown",
current_wm?current_wm->dentry->name:"Unknown");
selected_wm = current_wm;
restart(TRUE);
break;
@ -533,14 +545,32 @@ destroy_callback (GtkWidget *widget, void *data)
static void
restart (gboolean force)
{
WindowManager *current_wm = wm_list_get_current();
WindowManager *current_wm = wm_list_get_current(), *mywm;
static gboolean last_try_was_twm = FALSE;
const char *twm_argv[] = {"twm", NULL};
const GnomeDesktopEntry twm_dentry = {"twm", "twm",
1, (char **)twm_argv, NULL,
NULL, NULL, 0, NULL,
NULL, NULL, 0, 0};
const WindowManager twm_fallback = {(GnomeDesktopEntry*)&twm_dentry, "twm", "twm", 0, 0, 1, 0};
if (force || current_wm != selected_wm) {
show_restart_dialog (selected_wm->dentry->name);
if(selected_wm) {
last_try_was_twm = FALSE;
mywm = selected_wm;
} else if(!last_try_was_twm) {
last_try_was_twm = TRUE;
mywm = (WindowManager*)&twm_fallback;
} else {
restart_finalize();
return;
}
if (force || current_wm != mywm) {
show_restart_dialog (mywm->dentry->name);
if (state != STATE_OK && state != STATE_CANCEL)
gtk_widget_set_sensitive (capplet, FALSE);
restart_pending = TRUE;
wm_restart (selected_wm,
wm_restart (mywm,
capplet->window,
restart_callback,
NULL);
@ -600,16 +630,6 @@ ok_callback (void)
}
}
static void
do_revert (void)
{
wm_list_revert();
selected_wm = wm_list_get_revert();
if (state != STATE_CANCEL)
update_gui();
restart(FALSE);
}
static void
revert_callback (void)
{
@ -837,10 +857,15 @@ get_dialog_contents (WMDialog *dialog, WindowManager *wm)
static void
edit_dialog (void)
{
WMDialog *dialog = create_dialog (_("Add New Window Manager"));
WMDialog *dialog;
gchar *tmp;
gint result;
if(!selected_wm)
return;
dialog = create_dialog (_("Edit Window Manager"));
if (selected_wm->dentry->name)
gtk_entry_set_text (GTK_ENTRY (dialog->name_entry), selected_wm->dentry->name);
@ -951,11 +976,13 @@ delete (void)
static void
run_config (void)
run_config (GtkWidget *w)
{
WindowManager *current_wm = wm_list_get_current();
if (current_wm->is_config_present &&
current_wm->config_exec != NULL) {
if (current_wm
&& current_wm->is_config_present
&& current_wm->config_exec != NULL) {
gchar *argv[4];
argv[0] = "/bin/sh";
@ -973,7 +1000,6 @@ wm_setup (void)
GtkWidget *hbox, *vbox, *bottom;
GtkWidget *util_vbox;
GtkWidget *add_button;
GtkWidget *edit_button;
GtkWidget *scrolled_window;
capplet = capplet_widget_new ();
@ -1030,9 +1056,9 @@ wm_setup (void)
gtk_container_add (GTK_CONTAINER (capplet), vbox);
update_gui();
gtk_widget_show_all (capplet);
update_gui();
}
int