cleaned up the interface some
dirtied up the code some
This commit is contained in:
parent
8b77425757
commit
b08f7c854e
10 changed files with 466 additions and 291 deletions
5
capplets/theme-switcher/.cvsignore
Normal file
5
capplets/theme-switcher/.cvsignore
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
Makefile.in
|
||||||
|
Makefile
|
||||||
|
.deps
|
||||||
|
.libs
|
||||||
|
theme-selector-capplet
|
|
@ -64,13 +64,17 @@ click_entry(GtkWidget *widget, gpointer data);
|
||||||
void
|
void
|
||||||
delete_entry(GtkWidget *widget, gpointer data);
|
delete_entry(GtkWidget *widget, gpointer data);
|
||||||
void
|
void
|
||||||
update_theme_entries(GtkWidget *system_list, GtkWidget *user_list);
|
update_theme_entries(GtkWidget *disp_list);
|
||||||
void
|
void
|
||||||
signal_apply_theme(GtkWidget *widget);
|
signal_apply_theme(GtkWidget *widget);
|
||||||
void
|
void
|
||||||
click_preview(GtkWidget *widget, gpointer data);
|
click_preview(GtkWidget *widget, gpointer data);
|
||||||
void
|
void
|
||||||
click_apply(GtkWidget *widget, gpointer data);
|
click_try(GtkWidget *widget, gpointer data);
|
||||||
|
void
|
||||||
|
click_ok(GtkWidget *widget, gpointer data);
|
||||||
|
void
|
||||||
|
click_revert(GtkWidget *widget, gpointer data);
|
||||||
void
|
void
|
||||||
edit_file_to_use(gchar *file, gchar *theme);
|
edit_file_to_use(gchar *file, gchar *theme);
|
||||||
void
|
void
|
||||||
|
@ -88,8 +92,11 @@ extern gchar *readme_current;
|
||||||
extern GtkWidget *icon_display;
|
extern GtkWidget *icon_display;
|
||||||
extern GtkWidget *icon_current;
|
extern GtkWidget *icon_current;
|
||||||
extern GtkWidget *current_theme;
|
extern GtkWidget *current_theme;
|
||||||
|
extern GtkWidget *current_global_theme;
|
||||||
|
extern GtkWidget *initial_theme;
|
||||||
|
extern GtkWidget *last_theme;
|
||||||
extern GtkWidget *system_list;
|
extern GtkWidget *system_list;
|
||||||
extern GtkWidget *user_list;
|
|
||||||
extern GtkWidget *preview_socket;
|
extern GtkWidget *preview_socket;
|
||||||
|
extern GtkWidget *auto_preview;
|
||||||
extern gint prog_fd;
|
extern gint prog_fd;
|
||||||
extern gchar gtkrc_tmp[1024];
|
extern gchar gtkrc_tmp[1024];
|
||||||
|
|
|
@ -64,13 +64,17 @@ click_entry(GtkWidget *widget, gpointer data);
|
||||||
void
|
void
|
||||||
delete_entry(GtkWidget *widget, gpointer data);
|
delete_entry(GtkWidget *widget, gpointer data);
|
||||||
void
|
void
|
||||||
update_theme_entries(GtkWidget *system_list, GtkWidget *user_list);
|
update_theme_entries(GtkWidget *disp_list);
|
||||||
void
|
void
|
||||||
signal_apply_theme(GtkWidget *widget);
|
signal_apply_theme(GtkWidget *widget);
|
||||||
void
|
void
|
||||||
click_preview(GtkWidget *widget, gpointer data);
|
click_preview(GtkWidget *widget, gpointer data);
|
||||||
void
|
void
|
||||||
click_apply(GtkWidget *widget, gpointer data);
|
click_try(GtkWidget *widget, gpointer data);
|
||||||
|
void
|
||||||
|
click_ok(GtkWidget *widget, gpointer data);
|
||||||
|
void
|
||||||
|
click_revert(GtkWidget *widget, gpointer data);
|
||||||
void
|
void
|
||||||
edit_file_to_use(gchar *file, gchar *theme);
|
edit_file_to_use(gchar *file, gchar *theme);
|
||||||
void
|
void
|
||||||
|
@ -88,8 +92,11 @@ extern gchar *readme_current;
|
||||||
extern GtkWidget *icon_display;
|
extern GtkWidget *icon_display;
|
||||||
extern GtkWidget *icon_current;
|
extern GtkWidget *icon_current;
|
||||||
extern GtkWidget *current_theme;
|
extern GtkWidget *current_theme;
|
||||||
|
extern GtkWidget *current_global_theme;
|
||||||
|
extern GtkWidget *initial_theme;
|
||||||
|
extern GtkWidget *last_theme;
|
||||||
extern GtkWidget *system_list;
|
extern GtkWidget *system_list;
|
||||||
extern GtkWidget *user_list;
|
|
||||||
extern GtkWidget *preview_socket;
|
extern GtkWidget *preview_socket;
|
||||||
|
extern GtkWidget *auto_preview;
|
||||||
extern gint prog_fd;
|
extern gint prog_fd;
|
||||||
extern gchar gtkrc_tmp[1024];
|
extern gchar gtkrc_tmp[1024];
|
||||||
|
|
|
@ -39,9 +39,14 @@ void demo_main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
gchar buf[256];
|
gchar buf[256];
|
||||||
XID window;
|
XID window;
|
||||||
GtkWidget *w[NUM], *hb, *vb[5], *widg, *ww, *www, *l;
|
GtkWidget *widget, *table, *hbox;
|
||||||
int j, i;
|
GSList *group;
|
||||||
|
gchar *titles[2] = {"One","Two"};
|
||||||
|
gchar *row1[2] = {"Eenie", "Meenie"};
|
||||||
|
gchar *row2[2] = {"Mynie", "Moe"};
|
||||||
|
gchar *row3[2] = {"Catcha", "Tiger"};
|
||||||
|
gchar *row4[2] = {"By Its", "Toe"};
|
||||||
|
|
||||||
read(0, buf, 12);
|
read(0, buf, 12);
|
||||||
buf[12] = 0;
|
buf[12] = 0;
|
||||||
sscanf(buf, "%x", &window);
|
sscanf(buf, "%x", &window);
|
||||||
|
@ -52,58 +57,64 @@ void demo_main(int argc, char **argv)
|
||||||
gtk_rc_parse(gtkrc_tmp);
|
gtk_rc_parse(gtkrc_tmp);
|
||||||
|
|
||||||
plug = gtk_plug_new(window);
|
plug = gtk_plug_new(window);
|
||||||
gtk_widget_show(plug);
|
|
||||||
|
|
||||||
hb = gtk_hbox_new(TRUE, 4);
|
table = gtk_table_new (4, 3, FALSE);
|
||||||
gtk_container_add(GTK_CONTAINER(plug), hb);
|
gtk_container_add(GTK_CONTAINER(plug), table);
|
||||||
gtk_widget_show(hb);
|
|
||||||
|
|
||||||
for(i=0; i<5;i++)
|
widget = gtk_label_new ("Selected themes from above will be tested by previewing here.");
|
||||||
{
|
gtk_label_set_justify (GTK_LABEL (widget), GTK_JUSTIFY_LEFT);
|
||||||
vb[i] = gtk_vbox_new(TRUE, 4);
|
|
||||||
gtk_box_pack_start(GTK_BOX(hb), vb[i], TRUE, TRUE, 0);
|
/* column one */
|
||||||
gtk_widget_show(vb[i]);
|
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);
|
||||||
j= 0;
|
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
|
||||||
w[j++] = widg =
|
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
|
||||||
gtk_button_new_with_label("A Button");
|
widget = gtk_check_button_new_with_label ("Sample Check Button");
|
||||||
gtk_box_pack_start(GTK_BOX(vb[0]), widg , TRUE, TRUE, 0);
|
hbox = gtk_hbox_new (FALSE, 0);
|
||||||
w[j++] = widg =
|
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
|
||||||
gtk_check_button_new_with_label("A Check Button");
|
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, 0);
|
||||||
gtk_box_pack_start(GTK_BOX(vb[0]), widg , TRUE, TRUE, 0);
|
widget = gtk_entry_new_with_max_length (50);
|
||||||
w[j++] = widg =
|
gtk_entry_set_text (GTK_ENTRY (widget), "Sample Text Entry Field");
|
||||||
gtk_radio_button_new_with_label(NULL, "A Radio Button");
|
gtk_widget_set_usize (widget, 70, -1);
|
||||||
gtk_box_pack_start(GTK_BOX(vb[0]), widg , TRUE, TRUE, 0);
|
hbox = gtk_hbox_new (FALSE, 0);
|
||||||
ww = gtk_menu_new();
|
gtk_box_pack_start (GTK_BOX (hbox), widget, TRUE, TRUE, 0);
|
||||||
gtk_widget_show(ww);
|
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 3, 4, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
|
||||||
www = gtk_menu_item_new_with_label("Menu 1");
|
|
||||||
gtk_widget_show(www);
|
/* column two */
|
||||||
gtk_menu_append(GTK_MENU(ww), www);
|
widget = gtk_radio_button_new_with_label (NULL, "Radio Button 1");
|
||||||
www = gtk_menu_item_new_with_label("Menu 2");
|
hbox = gtk_hbox_new (FALSE, 0);
|
||||||
gtk_widget_show(www);
|
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
|
||||||
gtk_menu_append(GTK_MENU(ww), www);
|
group = gtk_radio_button_group (GTK_RADIO_BUTTON (widget));
|
||||||
www = gtk_menu_item_new_with_label("Menu 3");
|
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 1, 2, GTK_EXPAND | GTK_FILL, 0, 0, GNOME_PAD_SMALL);
|
||||||
gtk_widget_show(www);
|
|
||||||
gtk_menu_append(GTK_MENU(ww), www);
|
widget = gtk_radio_button_new_with_label (group, "Radio Button 2");
|
||||||
www = gtk_menu_item_new_with_label("Menu 4");
|
hbox = gtk_hbox_new (FALSE, 0);
|
||||||
gtk_widget_show(www);
|
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
|
||||||
gtk_menu_append(GTK_MENU(ww), www);
|
group = gtk_radio_button_group (GTK_RADIO_BUTTON (widget));
|
||||||
www = gtk_menu_item_new_with_label("Menu 5");
|
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 2, 3, GTK_EXPAND | GTK_FILL, 0, 0, 0);
|
||||||
gtk_widget_show(www);
|
|
||||||
gtk_menu_append(GTK_MENU(ww), www);
|
widget = gtk_radio_button_new_with_label (group, "Radio Button 3");
|
||||||
w[j++] = widg =
|
hbox = gtk_hbox_new (FALSE, 0);
|
||||||
gtk_option_menu_new();
|
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
|
||||||
gtk_box_pack_start(GTK_BOX(vb[0]), widg , TRUE, TRUE, 0);
|
group = gtk_radio_button_group (GTK_RADIO_BUTTON (widget));
|
||||||
gtk_option_menu_set_menu(GTK_OPTION_MENU(widg), ww);
|
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 3, 4, GTK_EXPAND | GTK_FILL, 0, 0, 0);
|
||||||
w[j++] = widg =
|
|
||||||
gtk_gamma_curve_new();
|
/* column three */
|
||||||
gtk_box_pack_start(GTK_BOX(vb[1]), widg , TRUE, TRUE, 0);
|
widget = gtk_clist_new_with_titles (2, titles);
|
||||||
|
// gtk_clist_set_border(GTK_CLIST(widget), GTK_SHADOW_OUT);
|
||||||
for (i=0; i< j; i++)
|
gtk_clist_set_policy(GTK_CLIST(widget), GTK_POLICY_ALWAYS, GTK_POLICY_AUTOMATIC);
|
||||||
gtk_widget_show(w[i]);
|
gtk_clist_set_column_width (GTK_CLIST(widget), 0, 45);
|
||||||
|
gtk_clist_set_column_width (GTK_CLIST(widget), 1, 45);
|
||||||
|
gtk_clist_append (GTK_CLIST(widget), row1);
|
||||||
|
gtk_clist_append (GTK_CLIST(widget), row2);
|
||||||
|
gtk_clist_append (GTK_CLIST(widget), row3);
|
||||||
|
gtk_clist_append (GTK_CLIST(widget), row4);
|
||||||
|
gtk_widget_set_usize (widget, 160, -1);
|
||||||
|
gtk_table_attach (GTK_TABLE (table), widget, 2, 3, 1, 4, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, 0);
|
||||||
|
|
||||||
gdk_input_add_full(0, GDK_INPUT_READ, demo_data_in, NULL, NULL);
|
gdk_input_add_full(0, GDK_INPUT_READ, demo_data_in, NULL, NULL);
|
||||||
|
gtk_widget_show_all (plug);
|
||||||
|
|
||||||
gtk_main ();
|
gtk_main ();
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,9 +39,14 @@ void demo_main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
gchar buf[256];
|
gchar buf[256];
|
||||||
XID window;
|
XID window;
|
||||||
GtkWidget *w[NUM], *hb, *vb[5], *widg, *ww, *www, *l;
|
GtkWidget *widget, *table, *hbox;
|
||||||
int j, i;
|
GSList *group;
|
||||||
|
gchar *titles[2] = {"One","Two"};
|
||||||
|
gchar *row1[2] = {"Eenie", "Meenie"};
|
||||||
|
gchar *row2[2] = {"Mynie", "Moe"};
|
||||||
|
gchar *row3[2] = {"Catcha", "Tiger"};
|
||||||
|
gchar *row4[2] = {"By Its", "Toe"};
|
||||||
|
|
||||||
read(0, buf, 12);
|
read(0, buf, 12);
|
||||||
buf[12] = 0;
|
buf[12] = 0;
|
||||||
sscanf(buf, "%x", &window);
|
sscanf(buf, "%x", &window);
|
||||||
|
@ -52,58 +57,64 @@ void demo_main(int argc, char **argv)
|
||||||
gtk_rc_parse(gtkrc_tmp);
|
gtk_rc_parse(gtkrc_tmp);
|
||||||
|
|
||||||
plug = gtk_plug_new(window);
|
plug = gtk_plug_new(window);
|
||||||
gtk_widget_show(plug);
|
|
||||||
|
|
||||||
hb = gtk_hbox_new(TRUE, 4);
|
table = gtk_table_new (4, 3, FALSE);
|
||||||
gtk_container_add(GTK_CONTAINER(plug), hb);
|
gtk_container_add(GTK_CONTAINER(plug), table);
|
||||||
gtk_widget_show(hb);
|
|
||||||
|
|
||||||
for(i=0; i<5;i++)
|
widget = gtk_label_new ("Selected themes from above will be tested by previewing here.");
|
||||||
{
|
gtk_label_set_justify (GTK_LABEL (widget), GTK_JUSTIFY_LEFT);
|
||||||
vb[i] = gtk_vbox_new(TRUE, 4);
|
|
||||||
gtk_box_pack_start(GTK_BOX(hb), vb[i], TRUE, TRUE, 0);
|
/* column one */
|
||||||
gtk_widget_show(vb[i]);
|
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);
|
||||||
j= 0;
|
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
|
||||||
w[j++] = widg =
|
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
|
||||||
gtk_button_new_with_label("A Button");
|
widget = gtk_check_button_new_with_label ("Sample Check Button");
|
||||||
gtk_box_pack_start(GTK_BOX(vb[0]), widg , TRUE, TRUE, 0);
|
hbox = gtk_hbox_new (FALSE, 0);
|
||||||
w[j++] = widg =
|
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
|
||||||
gtk_check_button_new_with_label("A Check Button");
|
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, 0);
|
||||||
gtk_box_pack_start(GTK_BOX(vb[0]), widg , TRUE, TRUE, 0);
|
widget = gtk_entry_new_with_max_length (50);
|
||||||
w[j++] = widg =
|
gtk_entry_set_text (GTK_ENTRY (widget), "Sample Text Entry Field");
|
||||||
gtk_radio_button_new_with_label(NULL, "A Radio Button");
|
gtk_widget_set_usize (widget, 70, -1);
|
||||||
gtk_box_pack_start(GTK_BOX(vb[0]), widg , TRUE, TRUE, 0);
|
hbox = gtk_hbox_new (FALSE, 0);
|
||||||
ww = gtk_menu_new();
|
gtk_box_pack_start (GTK_BOX (hbox), widget, TRUE, TRUE, 0);
|
||||||
gtk_widget_show(ww);
|
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 3, 4, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
|
||||||
www = gtk_menu_item_new_with_label("Menu 1");
|
|
||||||
gtk_widget_show(www);
|
/* column two */
|
||||||
gtk_menu_append(GTK_MENU(ww), www);
|
widget = gtk_radio_button_new_with_label (NULL, "Radio Button 1");
|
||||||
www = gtk_menu_item_new_with_label("Menu 2");
|
hbox = gtk_hbox_new (FALSE, 0);
|
||||||
gtk_widget_show(www);
|
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
|
||||||
gtk_menu_append(GTK_MENU(ww), www);
|
group = gtk_radio_button_group (GTK_RADIO_BUTTON (widget));
|
||||||
www = gtk_menu_item_new_with_label("Menu 3");
|
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 1, 2, GTK_EXPAND | GTK_FILL, 0, 0, GNOME_PAD_SMALL);
|
||||||
gtk_widget_show(www);
|
|
||||||
gtk_menu_append(GTK_MENU(ww), www);
|
widget = gtk_radio_button_new_with_label (group, "Radio Button 2");
|
||||||
www = gtk_menu_item_new_with_label("Menu 4");
|
hbox = gtk_hbox_new (FALSE, 0);
|
||||||
gtk_widget_show(www);
|
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
|
||||||
gtk_menu_append(GTK_MENU(ww), www);
|
group = gtk_radio_button_group (GTK_RADIO_BUTTON (widget));
|
||||||
www = gtk_menu_item_new_with_label("Menu 5");
|
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 2, 3, GTK_EXPAND | GTK_FILL, 0, 0, 0);
|
||||||
gtk_widget_show(www);
|
|
||||||
gtk_menu_append(GTK_MENU(ww), www);
|
widget = gtk_radio_button_new_with_label (group, "Radio Button 3");
|
||||||
w[j++] = widg =
|
hbox = gtk_hbox_new (FALSE, 0);
|
||||||
gtk_option_menu_new();
|
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
|
||||||
gtk_box_pack_start(GTK_BOX(vb[0]), widg , TRUE, TRUE, 0);
|
group = gtk_radio_button_group (GTK_RADIO_BUTTON (widget));
|
||||||
gtk_option_menu_set_menu(GTK_OPTION_MENU(widg), ww);
|
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 3, 4, GTK_EXPAND | GTK_FILL, 0, 0, 0);
|
||||||
w[j++] = widg =
|
|
||||||
gtk_gamma_curve_new();
|
/* column three */
|
||||||
gtk_box_pack_start(GTK_BOX(vb[1]), widg , TRUE, TRUE, 0);
|
widget = gtk_clist_new_with_titles (2, titles);
|
||||||
|
// gtk_clist_set_border(GTK_CLIST(widget), GTK_SHADOW_OUT);
|
||||||
for (i=0; i< j; i++)
|
gtk_clist_set_policy(GTK_CLIST(widget), GTK_POLICY_ALWAYS, GTK_POLICY_AUTOMATIC);
|
||||||
gtk_widget_show(w[i]);
|
gtk_clist_set_column_width (GTK_CLIST(widget), 0, 45);
|
||||||
|
gtk_clist_set_column_width (GTK_CLIST(widget), 1, 45);
|
||||||
|
gtk_clist_append (GTK_CLIST(widget), row1);
|
||||||
|
gtk_clist_append (GTK_CLIST(widget), row2);
|
||||||
|
gtk_clist_append (GTK_CLIST(widget), row3);
|
||||||
|
gtk_clist_append (GTK_CLIST(widget), row4);
|
||||||
|
gtk_widget_set_usize (widget, 160, -1);
|
||||||
|
gtk_table_attach (GTK_TABLE (table), widget, 2, 3, 1, 4, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, 0);
|
||||||
|
|
||||||
gdk_input_add_full(0, GDK_INPUT_READ, demo_data_in, NULL, NULL);
|
gdk_input_add_full(0, GDK_INPUT_READ, demo_data_in, NULL, NULL);
|
||||||
|
gtk_widget_show_all (plug);
|
||||||
|
|
||||||
gtk_main ();
|
gtk_main ();
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,8 +5,11 @@ gchar *readme_current;
|
||||||
GtkWidget *icon_display;
|
GtkWidget *icon_display;
|
||||||
GtkWidget *icon_current;
|
GtkWidget *icon_current;
|
||||||
GtkWidget *current_theme;
|
GtkWidget *current_theme;
|
||||||
|
GtkWidget *current_global_theme = NULL;
|
||||||
|
GtkWidget *initial_theme = NULL;
|
||||||
|
GtkWidget *last_theme;
|
||||||
GtkWidget *system_list;
|
GtkWidget *system_list;
|
||||||
GtkWidget *user_list;
|
|
||||||
GtkWidget *preview_socket;
|
GtkWidget *preview_socket;
|
||||||
gint prog_fd;
|
gint prog_fd;
|
||||||
gchar gtkrc_tmp[1024];
|
gchar gtkrc_tmp[1024];
|
||||||
|
GtkWidget *auto_preview;
|
||||||
|
|
|
@ -5,8 +5,11 @@ gchar *readme_current;
|
||||||
GtkWidget *icon_display;
|
GtkWidget *icon_display;
|
||||||
GtkWidget *icon_current;
|
GtkWidget *icon_current;
|
||||||
GtkWidget *current_theme;
|
GtkWidget *current_theme;
|
||||||
|
GtkWidget *current_global_theme = NULL;
|
||||||
|
GtkWidget *initial_theme = NULL;
|
||||||
|
GtkWidget *last_theme;
|
||||||
GtkWidget *system_list;
|
GtkWidget *system_list;
|
||||||
GtkWidget *user_list;
|
|
||||||
GtkWidget *preview_socket;
|
GtkWidget *preview_socket;
|
||||||
gint prog_fd;
|
gint prog_fd;
|
||||||
gchar gtkrc_tmp[1024];
|
gchar gtkrc_tmp[1024];
|
||||||
|
GtkWidget *auto_preview;
|
||||||
|
|
|
@ -4,105 +4,112 @@
|
||||||
|
|
||||||
static GtkWidget *w;
|
static GtkWidget *w;
|
||||||
extern gint pid;
|
extern gint pid;
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
die_callback(GtkWidget *widget, gpointer data)
|
die_callback(GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
kill (pid,9);
|
kill (pid,9);
|
||||||
}
|
}
|
||||||
|
void
|
||||||
|
auto_callback (GtkWidget *widget, gpointer data)
|
||||||
|
{
|
||||||
|
if (GTK_TOGGLE_BUTTON (auto_preview)->active)
|
||||||
|
click_preview (widget,NULL);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
GtkWidget *
|
GtkWidget *
|
||||||
make_main(void)
|
make_main(void)
|
||||||
{
|
{
|
||||||
GtkWidget *evbox;
|
GtkWidget *evbox;
|
||||||
GtkWidget *l1, *l2;
|
GtkWidget *l2;
|
||||||
GtkWidget *sw, *label, *socket;
|
GtkWidget *sw, *label, *socket;
|
||||||
GtkWidget *box, *vbox, *hbox;
|
GtkWidget *box, *vbox, *hbox;
|
||||||
GtkWidget *text, *frame, *button;
|
GtkWidget *text, *frame, *button;
|
||||||
|
GtkWidget *hbxo;
|
||||||
|
|
||||||
w = capplet_widget_new();
|
w = capplet_widget_new();
|
||||||
gtk_container_border_width(GTK_CONTAINER(w), 0);
|
gtk_container_border_width(GTK_CONTAINER(w), 5);
|
||||||
|
|
||||||
l1 = gtk_list_new();
|
box = gtk_vbox_new(FALSE, GNOME_PAD);
|
||||||
gtk_list_set_selection_mode(GTK_LIST(l1), GTK_SELECTION_SINGLE);
|
hbox = gtk_hbox_new(TRUE, GNOME_PAD);
|
||||||
|
frame = gtk_frame_new ("Available Themes");
|
||||||
|
vbox = gtk_hbox_new(FALSE, 0);
|
||||||
|
gtk_container_border_width (GTK_CONTAINER (vbox), GNOME_PAD_SMALL);
|
||||||
|
gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0);
|
||||||
|
gtk_box_pack_start(GTK_BOX(box), hbox, TRUE, TRUE, 0);
|
||||||
|
gtk_container_add (GTK_CONTAINER (frame), vbox);
|
||||||
l2 = gtk_list_new();
|
l2 = gtk_list_new();
|
||||||
gtk_list_set_selection_mode(GTK_LIST(l2), GTK_SELECTION_SINGLE);
|
gtk_list_set_selection_mode(GTK_LIST(l2), GTK_SELECTION_SINGLE);
|
||||||
|
hbxo = gtk_vbox_new (FALSE, GNOME_PAD_SMALL);
|
||||||
box = gtk_vbox_new(FALSE, 0);
|
gtk_container_border_width (GTK_CONTAINER (hbxo), GNOME_PAD_SMALL);
|
||||||
|
label = gtk_label_new ("Auto\nPreview");
|
||||||
hbox = gtk_hbox_new(TRUE, 0);
|
gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
|
||||||
gtk_box_pack_start(GTK_BOX(box), hbox, TRUE, TRUE, 0);
|
auto_preview = gtk_check_button_new ();
|
||||||
|
|
||||||
vbox = gtk_vbox_new(FALSE, 0);
|
gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON (auto_preview), gnome_config_get_bool ("/theme-switcher-capplet/settings/auto=FALSE"));
|
||||||
gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 0);
|
gtk_signal_connect (GTK_OBJECT (auto_preview), "toggled", GTK_SIGNAL_FUNC (auto_callback), NULL);
|
||||||
|
gtk_container_add (GTK_CONTAINER (auto_preview), label);
|
||||||
label = gtk_label_new("Installed System Themes");
|
gtk_box_pack_start (GTK_BOX (hbxo), auto_preview, FALSE, FALSE, 0);
|
||||||
gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
|
button = gtk_button_new_with_label ("Preview");
|
||||||
|
gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (click_preview), NULL);
|
||||||
|
gtk_box_pack_start (GTK_BOX (hbxo), button, FALSE, FALSE, 0);
|
||||||
|
button = gtk_button_new_with_label ("Install");
|
||||||
|
|
||||||
sw = gtk_scrolled_window_new(NULL, NULL);
|
/* FIXME: this needs ot actually do something. */
|
||||||
gtk_container_add(GTK_CONTAINER(sw), l1);
|
gtk_box_pack_start (GTK_BOX (hbxo), button, FALSE, FALSE, 0);
|
||||||
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC,
|
|
||||||
GTK_POLICY_ALWAYS);
|
|
||||||
gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);
|
|
||||||
|
|
||||||
vbox = gtk_vbox_new(FALSE, 0);
|
|
||||||
gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 0);
|
|
||||||
|
|
||||||
label = gtk_label_new("Installed User Themes");
|
|
||||||
gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
|
|
||||||
|
|
||||||
sw = gtk_scrolled_window_new(NULL, NULL);
|
sw = gtk_scrolled_window_new(NULL, NULL);
|
||||||
gtk_container_add(GTK_CONTAINER(sw), l2);
|
gtk_container_add(GTK_CONTAINER(sw), l2);
|
||||||
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC,
|
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC,
|
||||||
GTK_POLICY_ALWAYS);
|
GTK_POLICY_AUTOMATIC);
|
||||||
|
gtk_widget_set_usize (sw, 120, -1);
|
||||||
|
|
||||||
gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);
|
gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);
|
||||||
|
gtk_box_pack_start(GTK_BOX(vbox), hbxo, FALSE, FALSE, 0);
|
||||||
|
|
||||||
sw = gtk_scrolled_window_new(NULL, NULL);
|
frame = gtk_frame_new ("Theme Information");
|
||||||
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_ALWAYS,
|
|
||||||
GTK_POLICY_ALWAYS);
|
|
||||||
gtk_widget_set_usize(sw, -1, 160);
|
|
||||||
gtk_box_pack_start(GTK_BOX(box), sw, FALSE, FALSE, 0);
|
|
||||||
|
|
||||||
evbox = gtk_event_box_new();
|
|
||||||
gtk_container_add(GTK_CONTAINER(sw), evbox);
|
|
||||||
|
|
||||||
socket = gtk_socket_new();
|
|
||||||
gtk_container_add(GTK_CONTAINER(evbox), socket);
|
|
||||||
/* gtk_widget_set_usize(socket, 640, 480);*/
|
|
||||||
|
|
||||||
hbox = gtk_hbox_new(FALSE, 0);
|
|
||||||
gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0);
|
|
||||||
|
|
||||||
frame = gtk_frame_new("Theme Information");
|
|
||||||
gtk_box_pack_start(GTK_BOX(hbox), frame, FALSE, FALSE, 0);
|
|
||||||
vbox = gtk_vbox_new(FALSE, 0);
|
|
||||||
gtk_widget_set_usize(vbox, 128, 128);
|
|
||||||
gtk_container_add(GTK_CONTAINER(frame), vbox);
|
|
||||||
icon_display = vbox;
|
|
||||||
|
|
||||||
evbox = gtk_viewport_new(NULL, NULL);
|
evbox = gtk_viewport_new(NULL, NULL);
|
||||||
gtk_widget_set_usize(evbox, 256, -1);
|
gtk_container_add (GTK_CONTAINER (frame), evbox);
|
||||||
gtk_box_pack_start(GTK_BOX(hbox), evbox, TRUE, TRUE, 0);
|
gtk_container_border_width (GTK_CONTAINER (evbox), GNOME_PAD_SMALL);
|
||||||
|
//gtk_widget_set_usize(evbox, 150, -1);
|
||||||
|
gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0);
|
||||||
|
|
||||||
text = gtk_xmhtml_new();
|
text = gtk_xmhtml_new();
|
||||||
gtk_container_add(GTK_CONTAINER(evbox), text);
|
gtk_container_add(GTK_CONTAINER(evbox), text);
|
||||||
/* gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 0);*/
|
|
||||||
|
hbox = gtk_hbox_new (FALSE, GNOME_PAD_SMALL);
|
||||||
update_theme_entries(l1, l2);
|
gtk_container_border_width (GTK_CONTAINER (hbox), GNOME_PAD_SMALL);
|
||||||
|
frame = gtk_frame_new ("Preview");
|
||||||
|
gtk_box_pack_start(GTK_BOX(box), frame, TRUE, TRUE, 0);
|
||||||
|
gtk_container_add (GTK_CONTAINER (frame), hbox);
|
||||||
|
/* in a gratuituous reuse of variable names... */
|
||||||
|
sw = gtk_frame_new (NULL);
|
||||||
|
gtk_frame_set_shadow_type (GTK_FRAME (sw), GTK_SHADOW_IN);
|
||||||
|
evbox = gtk_event_box_new();
|
||||||
|
gtk_box_pack_start(GTK_BOX(hbox), sw, TRUE, TRUE, 0);
|
||||||
|
gtk_container_add(GTK_CONTAINER(sw), evbox);
|
||||||
|
socket = gtk_socket_new();
|
||||||
|
gtk_container_add(GTK_CONTAINER(evbox), socket);
|
||||||
|
update_theme_entries(l2);
|
||||||
gtk_signal_connect (GTK_OBJECT (w), "try",
|
gtk_signal_connect (GTK_OBJECT (w), "try",
|
||||||
GTK_SIGNAL_FUNC (click_preview), NULL);
|
GTK_SIGNAL_FUNC (click_try), NULL);
|
||||||
gtk_signal_connect (GTK_OBJECT (w), "ok",
|
gtk_signal_connect (GTK_OBJECT (w), "ok",
|
||||||
GTK_SIGNAL_FUNC (click_apply), NULL);
|
GTK_SIGNAL_FUNC (click_ok), NULL);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (w), "revert",
|
||||||
|
GTK_SIGNAL_FUNC (click_revert), NULL);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (w), "cancel",
|
||||||
|
GTK_SIGNAL_FUNC (click_revert), NULL);
|
||||||
gtk_container_add (GTK_CONTAINER (w), box);
|
gtk_container_add (GTK_CONTAINER (w), box);
|
||||||
gtk_signal_connect (GTK_OBJECT (w), "destroy",
|
gtk_signal_connect (GTK_OBJECT (w), "destroy",
|
||||||
(GtkSignalFunc) die_callback, NULL);
|
(GtkSignalFunc) die_callback, NULL);
|
||||||
|
|
||||||
readme_display = text;
|
readme_display = text;
|
||||||
readme_current = NULL;
|
readme_current = NULL;
|
||||||
icon_current = NULL;
|
|
||||||
current_theme = NULL;
|
current_theme = NULL;
|
||||||
system_list = l1;
|
last_theme = NULL;
|
||||||
user_list = l2;
|
system_list = l2;
|
||||||
preview_socket = socket;
|
preview_socket = socket;
|
||||||
|
|
||||||
gtk_widget_realize(socket);
|
gtk_widget_realize(socket);
|
||||||
|
@ -113,7 +120,7 @@ make_main(void)
|
||||||
void
|
void
|
||||||
click_update(GtkWidget *widget, gpointer data)
|
click_update(GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
update_theme_entries(system_list, user_list);
|
update_theme_entries(system_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -121,23 +128,28 @@ click_preview(GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
gchar *rc;
|
gchar *rc;
|
||||||
|
|
||||||
widget = current_theme;
|
if (current_theme == last_theme)
|
||||||
if (!widget)
|
|
||||||
return;
|
return;
|
||||||
rc = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "rc");
|
last_theme = current_theme;
|
||||||
|
if (!current_theme)
|
||||||
|
return;
|
||||||
|
rc = (gchar *)gtk_object_get_data(GTK_OBJECT(current_theme), "rc");
|
||||||
test_theme(rc);
|
test_theme(rc);
|
||||||
send_reread();
|
send_reread();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
click_apply(GtkWidget *widget, gpointer data)
|
click_try(GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
gchar *rc;
|
gchar *rc;
|
||||||
gchar *dir, cmd[10240];
|
gchar *dir, cmd[10240];
|
||||||
|
|
||||||
|
if (current_theme == current_global_theme)
|
||||||
|
return;
|
||||||
widget = current_theme;
|
widget = current_theme;
|
||||||
if (!widget)
|
if (!widget)
|
||||||
return;
|
return;
|
||||||
|
current_global_theme = current_theme;
|
||||||
rc = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "rc");
|
rc = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "rc");
|
||||||
dir = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "dir");
|
dir = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "dir");
|
||||||
|
|
||||||
|
@ -153,20 +165,62 @@ click_apply(GtkWidget *widget, gpointer data)
|
||||||
system(cmd);
|
system(cmd);
|
||||||
gdk_error_warnings = 1;
|
gdk_error_warnings = 1;
|
||||||
}
|
}
|
||||||
|
void
|
||||||
|
click_ok(GtkWidget *widget, gpointer data)
|
||||||
|
{
|
||||||
|
click_try (widget, data);
|
||||||
|
gnome_config_set_bool ("/theme-switcher-capplet/settings/auto",GTK_TOGGLE_BUTTON (auto_preview)->active);
|
||||||
|
gnome_config_set_string ("/theme-switcher-capplet/settings/theme", gtk_object_get_data (GTK_OBJECT (current_theme), "name"));
|
||||||
|
gnome_config_sync ();
|
||||||
|
}
|
||||||
|
void
|
||||||
|
click_revert(GtkWidget *widget, gpointer data)
|
||||||
|
{
|
||||||
|
gchar *rc;
|
||||||
|
gchar *dir, cmd[10240];
|
||||||
|
|
||||||
|
if ((current_global_theme == initial_theme) || (!current_global_theme))
|
||||||
|
return;
|
||||||
|
widget = initial_theme;
|
||||||
|
if (!widget)
|
||||||
|
return;
|
||||||
|
|
||||||
|
current_global_theme = widget;
|
||||||
|
rc = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "rc");
|
||||||
|
dir = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "dir");
|
||||||
|
|
||||||
|
/* hack for enlightenment only!!!! */
|
||||||
|
/* FIXME: restart what ever windowmanager you have! */
|
||||||
|
g_snprintf(cmd, sizeof(cmd), "eesh -e \"restart %s/e\"", dir);
|
||||||
|
printf("%s\n", cmd);
|
||||||
|
send_reread();
|
||||||
|
use_theme(rc);
|
||||||
|
gdk_error_warnings = 0;
|
||||||
|
signal_apply_theme(widget);
|
||||||
|
gdk_flush();
|
||||||
|
system(cmd);
|
||||||
|
gdk_error_warnings = 1;
|
||||||
|
gtk_list_select_child (GTK_LIST (system_list), initial_theme);
|
||||||
|
}
|
||||||
void
|
void
|
||||||
click_entry(GtkWidget *widget, gpointer data)
|
click_entry(GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
gchar *rc, *name, *readme, *icon, *new_readme, buf[1024];
|
gchar *rc, *name, *readme, *new_readme, buf[1024];
|
||||||
FILE *f;
|
FILE *f;
|
||||||
|
|
||||||
|
|
||||||
name = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "name");
|
name = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "name");
|
||||||
rc = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "rc");
|
rc = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "rc");
|
||||||
readme = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "readme");
|
readme = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "readme");
|
||||||
icon = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "icon");
|
|
||||||
|
|
||||||
capplet_widget_state_changed(CAPPLET_WIDGET (w), FALSE);
|
/* boy is this hackish! */
|
||||||
|
if (widget != initial_theme)
|
||||||
|
gtk_list_item_deselect (GTK_LIST_ITEM (initial_theme));
|
||||||
|
|
||||||
|
if (initial_theme)
|
||||||
|
capplet_widget_state_changed(CAPPLET_WIDGET (w), TRUE);
|
||||||
|
else
|
||||||
|
capplet_widget_state_changed(CAPPLET_WIDGET (w), FALSE);
|
||||||
|
|
||||||
if (readme_current)
|
if (readme_current)
|
||||||
{
|
{
|
||||||
|
@ -195,19 +249,11 @@ click_entry(GtkWidget *widget, gpointer data)
|
||||||
}
|
}
|
||||||
readme_current = new_readme;
|
readme_current = new_readme;
|
||||||
}
|
}
|
||||||
if (icon_current)
|
|
||||||
gtk_widget_destroy(icon_current);
|
|
||||||
icon_current = NULL;
|
|
||||||
if (isfile(icon))
|
|
||||||
{
|
|
||||||
icon_current = gnome_pixmap_new_from_file(icon);
|
|
||||||
if (icon_current)
|
|
||||||
{
|
|
||||||
gtk_container_add(GTK_CONTAINER(icon_display), icon_current);
|
|
||||||
gtk_widget_show(icon_current);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
current_theme = widget;
|
current_theme = widget;
|
||||||
|
if (GTK_TOGGLE_BUTTON (auto_preview)->active)
|
||||||
|
click_preview (widget,NULL);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -227,23 +273,37 @@ delete_entry(GtkWidget *widget, gpointer data)
|
||||||
if (current_theme == widget)
|
if (current_theme == widget)
|
||||||
current_theme = NULL;
|
current_theme = NULL;
|
||||||
}
|
}
|
||||||
|
static gint sort_alpha(const void *a, const void *b)
|
||||||
|
{
|
||||||
|
GtkBin *A, *B;
|
||||||
|
|
||||||
|
A = GTK_BIN (a);
|
||||||
|
B = GTK_BIN (b);
|
||||||
|
|
||||||
|
return strcmp((char *)GTK_LABEL (A->child)->label, (char *)GTK_LABEL (B->child)->label);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
update_theme_entries(GtkWidget *system_list, GtkWidget *user_list)
|
update_theme_entries(GtkWidget *disp_list)
|
||||||
{
|
{
|
||||||
ThemeEntry *te;
|
ThemeEntry *te;
|
||||||
gint num;
|
gint num;
|
||||||
GList *list;
|
GList *list;
|
||||||
int i;
|
int i;
|
||||||
GtkWidget *item;
|
GtkWidget *item;
|
||||||
|
gchar *d_theme = gnome_config_get_string ("/theme-switcher-capplet/settings/theme=Default");
|
||||||
|
|
||||||
list = NULL;
|
list = NULL;
|
||||||
gtk_list_clear_items(GTK_LIST(system_list), 0, -1);
|
gtk_list_clear_items(GTK_LIST(disp_list), 0, -1);
|
||||||
te = list_system_themes(&num);
|
te = list_system_themes(&num);
|
||||||
for (i = 0; i < num; i++)
|
for (i = 0; i < num; i++)
|
||||||
{
|
{
|
||||||
item = gtk_list_item_new_with_label(te[i].name);
|
item = gtk_list_item_new_with_label(te[i].name);
|
||||||
gtk_widget_show(item);
|
gtk_widget_show(item);
|
||||||
|
if (strcmp (d_theme, te[i].name) == 0) {
|
||||||
|
g_print ("woo hoo -- gotta match %s\n",te[i].name);
|
||||||
|
initial_theme = item;
|
||||||
|
}
|
||||||
gtk_object_set_data(GTK_OBJECT(item), "name", g_strdup(te[i].name));
|
gtk_object_set_data(GTK_OBJECT(item), "name", g_strdup(te[i].name));
|
||||||
gtk_object_set_data(GTK_OBJECT(item), "rc", g_strdup(te[i].rc));
|
gtk_object_set_data(GTK_OBJECT(item), "rc", g_strdup(te[i].rc));
|
||||||
gtk_object_set_data(GTK_OBJECT(item), "dir", g_strdup(te[i].dir));
|
gtk_object_set_data(GTK_OBJECT(item), "dir", g_strdup(te[i].dir));
|
||||||
|
@ -253,17 +313,18 @@ update_theme_entries(GtkWidget *system_list, GtkWidget *user_list)
|
||||||
GTK_SIGNAL_FUNC(click_entry), NULL);
|
GTK_SIGNAL_FUNC(click_entry), NULL);
|
||||||
gtk_signal_connect(GTK_OBJECT(item), "destroy",
|
gtk_signal_connect(GTK_OBJECT(item), "destroy",
|
||||||
GTK_SIGNAL_FUNC(delete_entry), NULL);
|
GTK_SIGNAL_FUNC(delete_entry), NULL);
|
||||||
list = g_list_append(list, item);
|
list = g_list_insert_sorted(list, item, sort_alpha);
|
||||||
}
|
}
|
||||||
gtk_list_append_items(GTK_LIST(system_list), list);
|
|
||||||
|
|
||||||
list = NULL;
|
|
||||||
gtk_list_clear_items(GTK_LIST(user_list), 0, -1);
|
|
||||||
te = list_user_themes(&num);
|
te = list_user_themes(&num);
|
||||||
for (i = 0; i < num; i++)
|
for (i = 0; i < num; i++)
|
||||||
{
|
{
|
||||||
item = gtk_list_item_new_with_label(te[i].name);
|
item = gtk_list_item_new_with_label(te[i].name);
|
||||||
gtk_widget_show(item);
|
gtk_widget_show(item);
|
||||||
|
if (strcmp (d_theme, te[i].name) == 0) {
|
||||||
|
g_print ("woo hoo -- gotta match %s\n",te[i].name);
|
||||||
|
initial_theme = item;
|
||||||
|
}
|
||||||
gtk_object_set_data(GTK_OBJECT(item), "name", g_strdup(te[i].name));
|
gtk_object_set_data(GTK_OBJECT(item), "name", g_strdup(te[i].name));
|
||||||
gtk_object_set_data(GTK_OBJECT(item), "rc", g_strdup(te[i].rc));
|
gtk_object_set_data(GTK_OBJECT(item), "rc", g_strdup(te[i].rc));
|
||||||
gtk_object_set_data(GTK_OBJECT(item), "dir", g_strdup(te[i].dir));
|
gtk_object_set_data(GTK_OBJECT(item), "dir", g_strdup(te[i].dir));
|
||||||
|
@ -273,9 +334,12 @@ update_theme_entries(GtkWidget *system_list, GtkWidget *user_list)
|
||||||
GTK_SIGNAL_FUNC(click_entry), NULL);
|
GTK_SIGNAL_FUNC(click_entry), NULL);
|
||||||
gtk_signal_connect(GTK_OBJECT(item), "destroy",
|
gtk_signal_connect(GTK_OBJECT(item), "destroy",
|
||||||
GTK_SIGNAL_FUNC(delete_entry), NULL);
|
GTK_SIGNAL_FUNC(delete_entry), NULL);
|
||||||
list = g_list_append(list, item);
|
list = g_list_insert_sorted(list, item, sort_alpha);
|
||||||
}
|
}
|
||||||
gtk_list_append_items(GTK_LIST(user_list), list);
|
|
||||||
|
gtk_list_select_child (GTK_LIST (system_list), initial_theme);
|
||||||
|
gtk_list_append_items(GTK_LIST(disp_list), list);
|
||||||
|
|
||||||
free_theme_list(te, num);
|
free_theme_list(te, num);
|
||||||
|
g_free (d_theme);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,105 +4,112 @@
|
||||||
|
|
||||||
static GtkWidget *w;
|
static GtkWidget *w;
|
||||||
extern gint pid;
|
extern gint pid;
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
die_callback(GtkWidget *widget, gpointer data)
|
die_callback(GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
kill (pid,9);
|
kill (pid,9);
|
||||||
}
|
}
|
||||||
|
void
|
||||||
|
auto_callback (GtkWidget *widget, gpointer data)
|
||||||
|
{
|
||||||
|
if (GTK_TOGGLE_BUTTON (auto_preview)->active)
|
||||||
|
click_preview (widget,NULL);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
GtkWidget *
|
GtkWidget *
|
||||||
make_main(void)
|
make_main(void)
|
||||||
{
|
{
|
||||||
GtkWidget *evbox;
|
GtkWidget *evbox;
|
||||||
GtkWidget *l1, *l2;
|
GtkWidget *l2;
|
||||||
GtkWidget *sw, *label, *socket;
|
GtkWidget *sw, *label, *socket;
|
||||||
GtkWidget *box, *vbox, *hbox;
|
GtkWidget *box, *vbox, *hbox;
|
||||||
GtkWidget *text, *frame, *button;
|
GtkWidget *text, *frame, *button;
|
||||||
|
GtkWidget *hbxo;
|
||||||
|
|
||||||
w = capplet_widget_new();
|
w = capplet_widget_new();
|
||||||
gtk_container_border_width(GTK_CONTAINER(w), 0);
|
gtk_container_border_width(GTK_CONTAINER(w), 5);
|
||||||
|
|
||||||
l1 = gtk_list_new();
|
box = gtk_vbox_new(FALSE, GNOME_PAD);
|
||||||
gtk_list_set_selection_mode(GTK_LIST(l1), GTK_SELECTION_SINGLE);
|
hbox = gtk_hbox_new(TRUE, GNOME_PAD);
|
||||||
|
frame = gtk_frame_new ("Available Themes");
|
||||||
|
vbox = gtk_hbox_new(FALSE, 0);
|
||||||
|
gtk_container_border_width (GTK_CONTAINER (vbox), GNOME_PAD_SMALL);
|
||||||
|
gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0);
|
||||||
|
gtk_box_pack_start(GTK_BOX(box), hbox, TRUE, TRUE, 0);
|
||||||
|
gtk_container_add (GTK_CONTAINER (frame), vbox);
|
||||||
l2 = gtk_list_new();
|
l2 = gtk_list_new();
|
||||||
gtk_list_set_selection_mode(GTK_LIST(l2), GTK_SELECTION_SINGLE);
|
gtk_list_set_selection_mode(GTK_LIST(l2), GTK_SELECTION_SINGLE);
|
||||||
|
hbxo = gtk_vbox_new (FALSE, GNOME_PAD_SMALL);
|
||||||
box = gtk_vbox_new(FALSE, 0);
|
gtk_container_border_width (GTK_CONTAINER (hbxo), GNOME_PAD_SMALL);
|
||||||
|
label = gtk_label_new ("Auto\nPreview");
|
||||||
hbox = gtk_hbox_new(TRUE, 0);
|
gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
|
||||||
gtk_box_pack_start(GTK_BOX(box), hbox, TRUE, TRUE, 0);
|
auto_preview = gtk_check_button_new ();
|
||||||
|
|
||||||
vbox = gtk_vbox_new(FALSE, 0);
|
gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON (auto_preview), gnome_config_get_bool ("/theme-switcher-capplet/settings/auto=FALSE"));
|
||||||
gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 0);
|
gtk_signal_connect (GTK_OBJECT (auto_preview), "toggled", GTK_SIGNAL_FUNC (auto_callback), NULL);
|
||||||
|
gtk_container_add (GTK_CONTAINER (auto_preview), label);
|
||||||
label = gtk_label_new("Installed System Themes");
|
gtk_box_pack_start (GTK_BOX (hbxo), auto_preview, FALSE, FALSE, 0);
|
||||||
gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
|
button = gtk_button_new_with_label ("Preview");
|
||||||
|
gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (click_preview), NULL);
|
||||||
|
gtk_box_pack_start (GTK_BOX (hbxo), button, FALSE, FALSE, 0);
|
||||||
|
button = gtk_button_new_with_label ("Install");
|
||||||
|
|
||||||
sw = gtk_scrolled_window_new(NULL, NULL);
|
/* FIXME: this needs ot actually do something. */
|
||||||
gtk_container_add(GTK_CONTAINER(sw), l1);
|
gtk_box_pack_start (GTK_BOX (hbxo), button, FALSE, FALSE, 0);
|
||||||
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC,
|
|
||||||
GTK_POLICY_ALWAYS);
|
|
||||||
gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);
|
|
||||||
|
|
||||||
vbox = gtk_vbox_new(FALSE, 0);
|
|
||||||
gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 0);
|
|
||||||
|
|
||||||
label = gtk_label_new("Installed User Themes");
|
|
||||||
gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
|
|
||||||
|
|
||||||
sw = gtk_scrolled_window_new(NULL, NULL);
|
sw = gtk_scrolled_window_new(NULL, NULL);
|
||||||
gtk_container_add(GTK_CONTAINER(sw), l2);
|
gtk_container_add(GTK_CONTAINER(sw), l2);
|
||||||
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC,
|
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC,
|
||||||
GTK_POLICY_ALWAYS);
|
GTK_POLICY_AUTOMATIC);
|
||||||
|
gtk_widget_set_usize (sw, 120, -1);
|
||||||
|
|
||||||
gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);
|
gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);
|
||||||
|
gtk_box_pack_start(GTK_BOX(vbox), hbxo, FALSE, FALSE, 0);
|
||||||
|
|
||||||
sw = gtk_scrolled_window_new(NULL, NULL);
|
frame = gtk_frame_new ("Theme Information");
|
||||||
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_ALWAYS,
|
|
||||||
GTK_POLICY_ALWAYS);
|
|
||||||
gtk_widget_set_usize(sw, -1, 160);
|
|
||||||
gtk_box_pack_start(GTK_BOX(box), sw, FALSE, FALSE, 0);
|
|
||||||
|
|
||||||
evbox = gtk_event_box_new();
|
|
||||||
gtk_container_add(GTK_CONTAINER(sw), evbox);
|
|
||||||
|
|
||||||
socket = gtk_socket_new();
|
|
||||||
gtk_container_add(GTK_CONTAINER(evbox), socket);
|
|
||||||
/* gtk_widget_set_usize(socket, 640, 480);*/
|
|
||||||
|
|
||||||
hbox = gtk_hbox_new(FALSE, 0);
|
|
||||||
gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0);
|
|
||||||
|
|
||||||
frame = gtk_frame_new("Theme Information");
|
|
||||||
gtk_box_pack_start(GTK_BOX(hbox), frame, FALSE, FALSE, 0);
|
|
||||||
vbox = gtk_vbox_new(FALSE, 0);
|
|
||||||
gtk_widget_set_usize(vbox, 128, 128);
|
|
||||||
gtk_container_add(GTK_CONTAINER(frame), vbox);
|
|
||||||
icon_display = vbox;
|
|
||||||
|
|
||||||
evbox = gtk_viewport_new(NULL, NULL);
|
evbox = gtk_viewport_new(NULL, NULL);
|
||||||
gtk_widget_set_usize(evbox, 256, -1);
|
gtk_container_add (GTK_CONTAINER (frame), evbox);
|
||||||
gtk_box_pack_start(GTK_BOX(hbox), evbox, TRUE, TRUE, 0);
|
gtk_container_border_width (GTK_CONTAINER (evbox), GNOME_PAD_SMALL);
|
||||||
|
//gtk_widget_set_usize(evbox, 150, -1);
|
||||||
|
gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0);
|
||||||
|
|
||||||
text = gtk_xmhtml_new();
|
text = gtk_xmhtml_new();
|
||||||
gtk_container_add(GTK_CONTAINER(evbox), text);
|
gtk_container_add(GTK_CONTAINER(evbox), text);
|
||||||
/* gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 0);*/
|
|
||||||
|
hbox = gtk_hbox_new (FALSE, GNOME_PAD_SMALL);
|
||||||
update_theme_entries(l1, l2);
|
gtk_container_border_width (GTK_CONTAINER (hbox), GNOME_PAD_SMALL);
|
||||||
|
frame = gtk_frame_new ("Preview");
|
||||||
|
gtk_box_pack_start(GTK_BOX(box), frame, TRUE, TRUE, 0);
|
||||||
|
gtk_container_add (GTK_CONTAINER (frame), hbox);
|
||||||
|
/* in a gratuituous reuse of variable names... */
|
||||||
|
sw = gtk_frame_new (NULL);
|
||||||
|
gtk_frame_set_shadow_type (GTK_FRAME (sw), GTK_SHADOW_IN);
|
||||||
|
evbox = gtk_event_box_new();
|
||||||
|
gtk_box_pack_start(GTK_BOX(hbox), sw, TRUE, TRUE, 0);
|
||||||
|
gtk_container_add(GTK_CONTAINER(sw), evbox);
|
||||||
|
socket = gtk_socket_new();
|
||||||
|
gtk_container_add(GTK_CONTAINER(evbox), socket);
|
||||||
|
update_theme_entries(l2);
|
||||||
gtk_signal_connect (GTK_OBJECT (w), "try",
|
gtk_signal_connect (GTK_OBJECT (w), "try",
|
||||||
GTK_SIGNAL_FUNC (click_preview), NULL);
|
GTK_SIGNAL_FUNC (click_try), NULL);
|
||||||
gtk_signal_connect (GTK_OBJECT (w), "ok",
|
gtk_signal_connect (GTK_OBJECT (w), "ok",
|
||||||
GTK_SIGNAL_FUNC (click_apply), NULL);
|
GTK_SIGNAL_FUNC (click_ok), NULL);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (w), "revert",
|
||||||
|
GTK_SIGNAL_FUNC (click_revert), NULL);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (w), "cancel",
|
||||||
|
GTK_SIGNAL_FUNC (click_revert), NULL);
|
||||||
gtk_container_add (GTK_CONTAINER (w), box);
|
gtk_container_add (GTK_CONTAINER (w), box);
|
||||||
gtk_signal_connect (GTK_OBJECT (w), "destroy",
|
gtk_signal_connect (GTK_OBJECT (w), "destroy",
|
||||||
(GtkSignalFunc) die_callback, NULL);
|
(GtkSignalFunc) die_callback, NULL);
|
||||||
|
|
||||||
readme_display = text;
|
readme_display = text;
|
||||||
readme_current = NULL;
|
readme_current = NULL;
|
||||||
icon_current = NULL;
|
|
||||||
current_theme = NULL;
|
current_theme = NULL;
|
||||||
system_list = l1;
|
last_theme = NULL;
|
||||||
user_list = l2;
|
system_list = l2;
|
||||||
preview_socket = socket;
|
preview_socket = socket;
|
||||||
|
|
||||||
gtk_widget_realize(socket);
|
gtk_widget_realize(socket);
|
||||||
|
@ -113,7 +120,7 @@ make_main(void)
|
||||||
void
|
void
|
||||||
click_update(GtkWidget *widget, gpointer data)
|
click_update(GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
update_theme_entries(system_list, user_list);
|
update_theme_entries(system_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -121,23 +128,28 @@ click_preview(GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
gchar *rc;
|
gchar *rc;
|
||||||
|
|
||||||
widget = current_theme;
|
if (current_theme == last_theme)
|
||||||
if (!widget)
|
|
||||||
return;
|
return;
|
||||||
rc = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "rc");
|
last_theme = current_theme;
|
||||||
|
if (!current_theme)
|
||||||
|
return;
|
||||||
|
rc = (gchar *)gtk_object_get_data(GTK_OBJECT(current_theme), "rc");
|
||||||
test_theme(rc);
|
test_theme(rc);
|
||||||
send_reread();
|
send_reread();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
click_apply(GtkWidget *widget, gpointer data)
|
click_try(GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
gchar *rc;
|
gchar *rc;
|
||||||
gchar *dir, cmd[10240];
|
gchar *dir, cmd[10240];
|
||||||
|
|
||||||
|
if (current_theme == current_global_theme)
|
||||||
|
return;
|
||||||
widget = current_theme;
|
widget = current_theme;
|
||||||
if (!widget)
|
if (!widget)
|
||||||
return;
|
return;
|
||||||
|
current_global_theme = current_theme;
|
||||||
rc = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "rc");
|
rc = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "rc");
|
||||||
dir = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "dir");
|
dir = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "dir");
|
||||||
|
|
||||||
|
@ -153,20 +165,62 @@ click_apply(GtkWidget *widget, gpointer data)
|
||||||
system(cmd);
|
system(cmd);
|
||||||
gdk_error_warnings = 1;
|
gdk_error_warnings = 1;
|
||||||
}
|
}
|
||||||
|
void
|
||||||
|
click_ok(GtkWidget *widget, gpointer data)
|
||||||
|
{
|
||||||
|
click_try (widget, data);
|
||||||
|
gnome_config_set_bool ("/theme-switcher-capplet/settings/auto",GTK_TOGGLE_BUTTON (auto_preview)->active);
|
||||||
|
gnome_config_set_string ("/theme-switcher-capplet/settings/theme", gtk_object_get_data (GTK_OBJECT (current_theme), "name"));
|
||||||
|
gnome_config_sync ();
|
||||||
|
}
|
||||||
|
void
|
||||||
|
click_revert(GtkWidget *widget, gpointer data)
|
||||||
|
{
|
||||||
|
gchar *rc;
|
||||||
|
gchar *dir, cmd[10240];
|
||||||
|
|
||||||
|
if ((current_global_theme == initial_theme) || (!current_global_theme))
|
||||||
|
return;
|
||||||
|
widget = initial_theme;
|
||||||
|
if (!widget)
|
||||||
|
return;
|
||||||
|
|
||||||
|
current_global_theme = widget;
|
||||||
|
rc = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "rc");
|
||||||
|
dir = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "dir");
|
||||||
|
|
||||||
|
/* hack for enlightenment only!!!! */
|
||||||
|
/* FIXME: restart what ever windowmanager you have! */
|
||||||
|
g_snprintf(cmd, sizeof(cmd), "eesh -e \"restart %s/e\"", dir);
|
||||||
|
printf("%s\n", cmd);
|
||||||
|
send_reread();
|
||||||
|
use_theme(rc);
|
||||||
|
gdk_error_warnings = 0;
|
||||||
|
signal_apply_theme(widget);
|
||||||
|
gdk_flush();
|
||||||
|
system(cmd);
|
||||||
|
gdk_error_warnings = 1;
|
||||||
|
gtk_list_select_child (GTK_LIST (system_list), initial_theme);
|
||||||
|
}
|
||||||
void
|
void
|
||||||
click_entry(GtkWidget *widget, gpointer data)
|
click_entry(GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
gchar *rc, *name, *readme, *icon, *new_readme, buf[1024];
|
gchar *rc, *name, *readme, *new_readme, buf[1024];
|
||||||
FILE *f;
|
FILE *f;
|
||||||
|
|
||||||
|
|
||||||
name = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "name");
|
name = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "name");
|
||||||
rc = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "rc");
|
rc = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "rc");
|
||||||
readme = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "readme");
|
readme = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "readme");
|
||||||
icon = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "icon");
|
|
||||||
|
|
||||||
capplet_widget_state_changed(CAPPLET_WIDGET (w), FALSE);
|
/* boy is this hackish! */
|
||||||
|
if (widget != initial_theme)
|
||||||
|
gtk_list_item_deselect (GTK_LIST_ITEM (initial_theme));
|
||||||
|
|
||||||
|
if (initial_theme)
|
||||||
|
capplet_widget_state_changed(CAPPLET_WIDGET (w), TRUE);
|
||||||
|
else
|
||||||
|
capplet_widget_state_changed(CAPPLET_WIDGET (w), FALSE);
|
||||||
|
|
||||||
if (readme_current)
|
if (readme_current)
|
||||||
{
|
{
|
||||||
|
@ -195,19 +249,11 @@ click_entry(GtkWidget *widget, gpointer data)
|
||||||
}
|
}
|
||||||
readme_current = new_readme;
|
readme_current = new_readme;
|
||||||
}
|
}
|
||||||
if (icon_current)
|
|
||||||
gtk_widget_destroy(icon_current);
|
|
||||||
icon_current = NULL;
|
|
||||||
if (isfile(icon))
|
|
||||||
{
|
|
||||||
icon_current = gnome_pixmap_new_from_file(icon);
|
|
||||||
if (icon_current)
|
|
||||||
{
|
|
||||||
gtk_container_add(GTK_CONTAINER(icon_display), icon_current);
|
|
||||||
gtk_widget_show(icon_current);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
current_theme = widget;
|
current_theme = widget;
|
||||||
|
if (GTK_TOGGLE_BUTTON (auto_preview)->active)
|
||||||
|
click_preview (widget,NULL);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -227,23 +273,37 @@ delete_entry(GtkWidget *widget, gpointer data)
|
||||||
if (current_theme == widget)
|
if (current_theme == widget)
|
||||||
current_theme = NULL;
|
current_theme = NULL;
|
||||||
}
|
}
|
||||||
|
static gint sort_alpha(const void *a, const void *b)
|
||||||
|
{
|
||||||
|
GtkBin *A, *B;
|
||||||
|
|
||||||
|
A = GTK_BIN (a);
|
||||||
|
B = GTK_BIN (b);
|
||||||
|
|
||||||
|
return strcmp((char *)GTK_LABEL (A->child)->label, (char *)GTK_LABEL (B->child)->label);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
update_theme_entries(GtkWidget *system_list, GtkWidget *user_list)
|
update_theme_entries(GtkWidget *disp_list)
|
||||||
{
|
{
|
||||||
ThemeEntry *te;
|
ThemeEntry *te;
|
||||||
gint num;
|
gint num;
|
||||||
GList *list;
|
GList *list;
|
||||||
int i;
|
int i;
|
||||||
GtkWidget *item;
|
GtkWidget *item;
|
||||||
|
gchar *d_theme = gnome_config_get_string ("/theme-switcher-capplet/settings/theme=Default");
|
||||||
|
|
||||||
list = NULL;
|
list = NULL;
|
||||||
gtk_list_clear_items(GTK_LIST(system_list), 0, -1);
|
gtk_list_clear_items(GTK_LIST(disp_list), 0, -1);
|
||||||
te = list_system_themes(&num);
|
te = list_system_themes(&num);
|
||||||
for (i = 0; i < num; i++)
|
for (i = 0; i < num; i++)
|
||||||
{
|
{
|
||||||
item = gtk_list_item_new_with_label(te[i].name);
|
item = gtk_list_item_new_with_label(te[i].name);
|
||||||
gtk_widget_show(item);
|
gtk_widget_show(item);
|
||||||
|
if (strcmp (d_theme, te[i].name) == 0) {
|
||||||
|
g_print ("woo hoo -- gotta match %s\n",te[i].name);
|
||||||
|
initial_theme = item;
|
||||||
|
}
|
||||||
gtk_object_set_data(GTK_OBJECT(item), "name", g_strdup(te[i].name));
|
gtk_object_set_data(GTK_OBJECT(item), "name", g_strdup(te[i].name));
|
||||||
gtk_object_set_data(GTK_OBJECT(item), "rc", g_strdup(te[i].rc));
|
gtk_object_set_data(GTK_OBJECT(item), "rc", g_strdup(te[i].rc));
|
||||||
gtk_object_set_data(GTK_OBJECT(item), "dir", g_strdup(te[i].dir));
|
gtk_object_set_data(GTK_OBJECT(item), "dir", g_strdup(te[i].dir));
|
||||||
|
@ -253,17 +313,18 @@ update_theme_entries(GtkWidget *system_list, GtkWidget *user_list)
|
||||||
GTK_SIGNAL_FUNC(click_entry), NULL);
|
GTK_SIGNAL_FUNC(click_entry), NULL);
|
||||||
gtk_signal_connect(GTK_OBJECT(item), "destroy",
|
gtk_signal_connect(GTK_OBJECT(item), "destroy",
|
||||||
GTK_SIGNAL_FUNC(delete_entry), NULL);
|
GTK_SIGNAL_FUNC(delete_entry), NULL);
|
||||||
list = g_list_append(list, item);
|
list = g_list_insert_sorted(list, item, sort_alpha);
|
||||||
}
|
}
|
||||||
gtk_list_append_items(GTK_LIST(system_list), list);
|
|
||||||
|
|
||||||
list = NULL;
|
|
||||||
gtk_list_clear_items(GTK_LIST(user_list), 0, -1);
|
|
||||||
te = list_user_themes(&num);
|
te = list_user_themes(&num);
|
||||||
for (i = 0; i < num; i++)
|
for (i = 0; i < num; i++)
|
||||||
{
|
{
|
||||||
item = gtk_list_item_new_with_label(te[i].name);
|
item = gtk_list_item_new_with_label(te[i].name);
|
||||||
gtk_widget_show(item);
|
gtk_widget_show(item);
|
||||||
|
if (strcmp (d_theme, te[i].name) == 0) {
|
||||||
|
g_print ("woo hoo -- gotta match %s\n",te[i].name);
|
||||||
|
initial_theme = item;
|
||||||
|
}
|
||||||
gtk_object_set_data(GTK_OBJECT(item), "name", g_strdup(te[i].name));
|
gtk_object_set_data(GTK_OBJECT(item), "name", g_strdup(te[i].name));
|
||||||
gtk_object_set_data(GTK_OBJECT(item), "rc", g_strdup(te[i].rc));
|
gtk_object_set_data(GTK_OBJECT(item), "rc", g_strdup(te[i].rc));
|
||||||
gtk_object_set_data(GTK_OBJECT(item), "dir", g_strdup(te[i].dir));
|
gtk_object_set_data(GTK_OBJECT(item), "dir", g_strdup(te[i].dir));
|
||||||
|
@ -273,9 +334,12 @@ update_theme_entries(GtkWidget *system_list, GtkWidget *user_list)
|
||||||
GTK_SIGNAL_FUNC(click_entry), NULL);
|
GTK_SIGNAL_FUNC(click_entry), NULL);
|
||||||
gtk_signal_connect(GTK_OBJECT(item), "destroy",
|
gtk_signal_connect(GTK_OBJECT(item), "destroy",
|
||||||
GTK_SIGNAL_FUNC(delete_entry), NULL);
|
GTK_SIGNAL_FUNC(delete_entry), NULL);
|
||||||
list = g_list_append(list, item);
|
list = g_list_insert_sorted(list, item, sort_alpha);
|
||||||
}
|
}
|
||||||
gtk_list_append_items(GTK_LIST(user_list), list);
|
|
||||||
|
gtk_list_select_child (GTK_LIST (system_list), initial_theme);
|
||||||
|
gtk_list_append_items(GTK_LIST(disp_list), list);
|
||||||
|
|
||||||
free_theme_list(te, num);
|
free_theme_list(te, num);
|
||||||
|
g_free (d_theme);
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ main(int argc, char **argv)
|
||||||
|
|
||||||
set_tmp_rc();
|
set_tmp_rc();
|
||||||
do_demo(argc, argv);
|
do_demo(argc, argv);
|
||||||
gnome_capplet_init ("DeskArt", NULL, argc, argv, 0, NULL);
|
gnome_capplet_init ("theme-switcher-capplet", NULL, argc, argv, 0, NULL);
|
||||||
|
|
||||||
w = make_main();
|
w = make_main();
|
||||||
gtk_widget_show_all(w);
|
gtk_widget_show_all(w);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue