cleaned up the interface some

dirtied up the code some
This commit is contained in:
Jonathan Blandford 1998-10-19 19:03:55 +00:00
parent 8b77425757
commit b08f7c854e
10 changed files with 466 additions and 291 deletions

View file

@ -0,0 +1,5 @@
Makefile.in
Makefile
.deps
.libs
theme-selector-capplet

View file

@ -64,13 +64,17 @@ click_entry(GtkWidget *widget, gpointer data);
void
delete_entry(GtkWidget *widget, gpointer data);
void
update_theme_entries(GtkWidget *system_list, GtkWidget *user_list);
update_theme_entries(GtkWidget *disp_list);
void
signal_apply_theme(GtkWidget *widget);
void
click_preview(GtkWidget *widget, gpointer data);
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
edit_file_to_use(gchar *file, gchar *theme);
void
@ -88,8 +92,11 @@ extern gchar *readme_current;
extern GtkWidget *icon_display;
extern GtkWidget *icon_current;
extern GtkWidget *current_theme;
extern GtkWidget *current_global_theme;
extern GtkWidget *initial_theme;
extern GtkWidget *last_theme;
extern GtkWidget *system_list;
extern GtkWidget *user_list;
extern GtkWidget *preview_socket;
extern GtkWidget *auto_preview;
extern gint prog_fd;
extern gchar gtkrc_tmp[1024];

View file

@ -64,13 +64,17 @@ click_entry(GtkWidget *widget, gpointer data);
void
delete_entry(GtkWidget *widget, gpointer data);
void
update_theme_entries(GtkWidget *system_list, GtkWidget *user_list);
update_theme_entries(GtkWidget *disp_list);
void
signal_apply_theme(GtkWidget *widget);
void
click_preview(GtkWidget *widget, gpointer data);
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
edit_file_to_use(gchar *file, gchar *theme);
void
@ -88,8 +92,11 @@ extern gchar *readme_current;
extern GtkWidget *icon_display;
extern GtkWidget *icon_current;
extern GtkWidget *current_theme;
extern GtkWidget *current_global_theme;
extern GtkWidget *initial_theme;
extern GtkWidget *last_theme;
extern GtkWidget *system_list;
extern GtkWidget *user_list;
extern GtkWidget *preview_socket;
extern GtkWidget *auto_preview;
extern gint prog_fd;
extern gchar gtkrc_tmp[1024];

View file

@ -39,8 +39,13 @@ void demo_main(int argc, char **argv)
{
gchar buf[256];
XID window;
GtkWidget *w[NUM], *hb, *vb[5], *widg, *ww, *www, *l;
int j, i;
GtkWidget *widget, *table, *hbox;
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);
buf[12] = 0;
@ -52,58 +57,64 @@ void demo_main(int argc, char **argv)
gtk_rc_parse(gtkrc_tmp);
plug = gtk_plug_new(window);
gtk_widget_show(plug);
hb = gtk_hbox_new(TRUE, 4);
gtk_container_add(GTK_CONTAINER(plug), hb);
gtk_widget_show(hb);
table = gtk_table_new (4, 3, FALSE);
gtk_container_add(GTK_CONTAINER(plug), table);
for(i=0; i<5;i++)
{
vb[i] = gtk_vbox_new(TRUE, 4);
gtk_box_pack_start(GTK_BOX(hb), vb[i], TRUE, TRUE, 0);
gtk_widget_show(vb[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);
j= 0;
w[j++] = widg =
gtk_button_new_with_label("A Button");
gtk_box_pack_start(GTK_BOX(vb[0]), widg , TRUE, TRUE, 0);
w[j++] = widg =
gtk_check_button_new_with_label("A Check Button");
gtk_box_pack_start(GTK_BOX(vb[0]), widg , TRUE, TRUE, 0);
w[j++] = widg =
gtk_radio_button_new_with_label(NULL, "A Radio Button");
gtk_box_pack_start(GTK_BOX(vb[0]), widg , TRUE, TRUE, 0);
ww = gtk_menu_new();
gtk_widget_show(ww);
www = gtk_menu_item_new_with_label("Menu 1");
gtk_widget_show(www);
gtk_menu_append(GTK_MENU(ww), www);
www = gtk_menu_item_new_with_label("Menu 2");
gtk_widget_show(www);
gtk_menu_append(GTK_MENU(ww), www);
www = gtk_menu_item_new_with_label("Menu 3");
gtk_widget_show(www);
gtk_menu_append(GTK_MENU(ww), www);
www = gtk_menu_item_new_with_label("Menu 4");
gtk_widget_show(www);
gtk_menu_append(GTK_MENU(ww), www);
www = gtk_menu_item_new_with_label("Menu 5");
gtk_widget_show(www);
gtk_menu_append(GTK_MENU(ww), www);
w[j++] = widg =
gtk_option_menu_new();
gtk_box_pack_start(GTK_BOX(vb[0]), widg , TRUE, TRUE, 0);
gtk_option_menu_set_menu(GTK_OPTION_MENU(widg), ww);
w[j++] = widg =
gtk_gamma_curve_new();
gtk_box_pack_start(GTK_BOX(vb[1]), widg , TRUE, TRUE, 0);
/* 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);
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);
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);
for (i=0; i< j; i++)
gtk_widget_show(w[i]);
/* 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);
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);
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);
/* column three */
widget = gtk_clist_new_with_titles (2, titles);
// gtk_clist_set_border(GTK_CLIST(widget), GTK_SHADOW_OUT);
gtk_clist_set_policy(GTK_CLIST(widget), GTK_POLICY_ALWAYS, GTK_POLICY_AUTOMATIC);
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);
gtk_widget_show_all (plug);
gtk_main ();
}

View file

@ -39,8 +39,13 @@ void demo_main(int argc, char **argv)
{
gchar buf[256];
XID window;
GtkWidget *w[NUM], *hb, *vb[5], *widg, *ww, *www, *l;
int j, i;
GtkWidget *widget, *table, *hbox;
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);
buf[12] = 0;
@ -52,58 +57,64 @@ void demo_main(int argc, char **argv)
gtk_rc_parse(gtkrc_tmp);
plug = gtk_plug_new(window);
gtk_widget_show(plug);
hb = gtk_hbox_new(TRUE, 4);
gtk_container_add(GTK_CONTAINER(plug), hb);
gtk_widget_show(hb);
table = gtk_table_new (4, 3, FALSE);
gtk_container_add(GTK_CONTAINER(plug), table);
for(i=0; i<5;i++)
{
vb[i] = gtk_vbox_new(TRUE, 4);
gtk_box_pack_start(GTK_BOX(hb), vb[i], TRUE, TRUE, 0);
gtk_widget_show(vb[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);
j= 0;
w[j++] = widg =
gtk_button_new_with_label("A Button");
gtk_box_pack_start(GTK_BOX(vb[0]), widg , TRUE, TRUE, 0);
w[j++] = widg =
gtk_check_button_new_with_label("A Check Button");
gtk_box_pack_start(GTK_BOX(vb[0]), widg , TRUE, TRUE, 0);
w[j++] = widg =
gtk_radio_button_new_with_label(NULL, "A Radio Button");
gtk_box_pack_start(GTK_BOX(vb[0]), widg , TRUE, TRUE, 0);
ww = gtk_menu_new();
gtk_widget_show(ww);
www = gtk_menu_item_new_with_label("Menu 1");
gtk_widget_show(www);
gtk_menu_append(GTK_MENU(ww), www);
www = gtk_menu_item_new_with_label("Menu 2");
gtk_widget_show(www);
gtk_menu_append(GTK_MENU(ww), www);
www = gtk_menu_item_new_with_label("Menu 3");
gtk_widget_show(www);
gtk_menu_append(GTK_MENU(ww), www);
www = gtk_menu_item_new_with_label("Menu 4");
gtk_widget_show(www);
gtk_menu_append(GTK_MENU(ww), www);
www = gtk_menu_item_new_with_label("Menu 5");
gtk_widget_show(www);
gtk_menu_append(GTK_MENU(ww), www);
w[j++] = widg =
gtk_option_menu_new();
gtk_box_pack_start(GTK_BOX(vb[0]), widg , TRUE, TRUE, 0);
gtk_option_menu_set_menu(GTK_OPTION_MENU(widg), ww);
w[j++] = widg =
gtk_gamma_curve_new();
gtk_box_pack_start(GTK_BOX(vb[1]), widg , TRUE, TRUE, 0);
/* 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);
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);
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);
for (i=0; i< j; i++)
gtk_widget_show(w[i]);
/* 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);
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);
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);
/* column three */
widget = gtk_clist_new_with_titles (2, titles);
// gtk_clist_set_border(GTK_CLIST(widget), GTK_SHADOW_OUT);
gtk_clist_set_policy(GTK_CLIST(widget), GTK_POLICY_ALWAYS, GTK_POLICY_AUTOMATIC);
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);
gtk_widget_show_all (plug);
gtk_main ();
}

View file

@ -5,8 +5,11 @@ gchar *readme_current;
GtkWidget *icon_display;
GtkWidget *icon_current;
GtkWidget *current_theme;
GtkWidget *current_global_theme = NULL;
GtkWidget *initial_theme = NULL;
GtkWidget *last_theme;
GtkWidget *system_list;
GtkWidget *user_list;
GtkWidget *preview_socket;
gint prog_fd;
gchar gtkrc_tmp[1024];
GtkWidget *auto_preview;

View file

@ -5,8 +5,11 @@ gchar *readme_current;
GtkWidget *icon_display;
GtkWidget *icon_current;
GtkWidget *current_theme;
GtkWidget *current_global_theme = NULL;
GtkWidget *initial_theme = NULL;
GtkWidget *last_theme;
GtkWidget *system_list;
GtkWidget *user_list;
GtkWidget *preview_socket;
gint prog_fd;
gchar gtkrc_tmp[1024];
GtkWidget *auto_preview;

View file

@ -4,105 +4,112 @@
static GtkWidget *w;
extern gint pid;
void
die_callback(GtkWidget *widget, gpointer data)
{
kill (pid,9);
}
void
auto_callback (GtkWidget *widget, gpointer data)
{
if (GTK_TOGGLE_BUTTON (auto_preview)->active)
click_preview (widget,NULL);
}
GtkWidget *
make_main(void)
{
GtkWidget *evbox;
GtkWidget *l1, *l2;
GtkWidget *l2;
GtkWidget *sw, *label, *socket;
GtkWidget *box, *vbox, *hbox;
GtkWidget *text, *frame, *button;
GtkWidget *hbxo;
w = capplet_widget_new();
gtk_container_border_width(GTK_CONTAINER(w), 0);
l1 = gtk_list_new();
gtk_list_set_selection_mode(GTK_LIST(l1), GTK_SELECTION_SINGLE);
gtk_container_border_width(GTK_CONTAINER(w), 5);
box = gtk_vbox_new(FALSE, GNOME_PAD);
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();
gtk_list_set_selection_mode(GTK_LIST(l2), GTK_SELECTION_SINGLE);
hbxo = gtk_vbox_new (FALSE, GNOME_PAD_SMALL);
gtk_container_border_width (GTK_CONTAINER (hbxo), GNOME_PAD_SMALL);
label = gtk_label_new ("Auto\nPreview");
gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
auto_preview = gtk_check_button_new ();
box = 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_signal_connect (GTK_OBJECT (auto_preview), "toggled", GTK_SIGNAL_FUNC (auto_callback), NULL);
gtk_container_add (GTK_CONTAINER (auto_preview), label);
gtk_box_pack_start (GTK_BOX (hbxo), auto_preview, 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");
hbox = gtk_hbox_new(TRUE, 0);
gtk_box_pack_start(GTK_BOX(box), hbox, 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 System Themes");
gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
sw = gtk_scrolled_window_new(NULL, NULL);
gtk_container_add(GTK_CONTAINER(sw), l1);
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);
/* FIXME: this needs ot actually do something. */
gtk_box_pack_start (GTK_BOX (hbxo), button, FALSE, FALSE, 0);
sw = gtk_scrolled_window_new(NULL, NULL);
gtk_container_add(GTK_CONTAINER(sw), l2);
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);
sw = gtk_scrolled_window_new(NULL, NULL);
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);
gtk_box_pack_start(GTK_BOX(vbox), hbxo, 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);
gtk_widget_set_usize(evbox, 256, -1);
gtk_box_pack_start(GTK_BOX(hbox), evbox, TRUE, TRUE, 0);
gtk_container_add (GTK_CONTAINER (frame), evbox);
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();
gtk_container_add(GTK_CONTAINER(evbox), text);
/* gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 0);*/
update_theme_entries(l1, l2);
hbox = gtk_hbox_new (FALSE, GNOME_PAD_SMALL);
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_FUNC (click_preview), NULL);
GTK_SIGNAL_FUNC (click_try), NULL);
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_signal_connect (GTK_OBJECT (w), "destroy",
(GtkSignalFunc) die_callback, NULL);
readme_display = text;
readme_current = NULL;
icon_current = NULL;
current_theme = NULL;
system_list = l1;
user_list = l2;
last_theme = NULL;
system_list = l2;
preview_socket = socket;
gtk_widget_realize(socket);
@ -113,7 +120,7 @@ make_main(void)
void
click_update(GtkWidget *widget, gpointer data)
{
update_theme_entries(system_list, user_list);
update_theme_entries(system_list);
}
void
@ -121,23 +128,28 @@ click_preview(GtkWidget *widget, gpointer data)
{
gchar *rc;
widget = current_theme;
if (!widget)
if (current_theme == last_theme)
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);
send_reread();
}
void
click_apply(GtkWidget *widget, gpointer data)
click_try(GtkWidget *widget, gpointer data)
{
gchar *rc;
gchar *dir, cmd[10240];
if (current_theme == current_global_theme)
return;
widget = current_theme;
if (!widget)
return;
current_global_theme = current_theme;
rc = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "rc");
dir = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "dir");
@ -153,19 +165,61 @@ click_apply(GtkWidget *widget, gpointer data)
system(cmd);
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
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;
name = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "name");
rc = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "rc");
readme = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "readme");
icon = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "icon");
/* 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)
@ -195,19 +249,11 @@ click_entry(GtkWidget *widget, gpointer data)
}
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;
if (GTK_TOGGLE_BUTTON (auto_preview)->active)
click_preview (widget,NULL);
}
void
@ -227,23 +273,37 @@ delete_entry(GtkWidget *widget, gpointer data)
if (current_theme == widget)
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
update_theme_entries(GtkWidget *system_list, GtkWidget *user_list)
update_theme_entries(GtkWidget *disp_list)
{
ThemeEntry *te;
gint num;
GList *list;
int i;
GtkWidget *item;
gchar *d_theme = gnome_config_get_string ("/theme-switcher-capplet/settings/theme=Default");
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);
for (i = 0; i < num; i++)
{
item = gtk_list_item_new_with_label(te[i].name);
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), "rc", g_strdup(te[i].rc));
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_connect(GTK_OBJECT(item), "destroy",
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);
for (i = 0; i < num; i++)
{
item = gtk_list_item_new_with_label(te[i].name);
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), "rc", g_strdup(te[i].rc));
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_connect(GTK_OBJECT(item), "destroy",
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);
g_free (d_theme);
}

View file

@ -4,105 +4,112 @@
static GtkWidget *w;
extern gint pid;
void
die_callback(GtkWidget *widget, gpointer data)
{
kill (pid,9);
}
void
auto_callback (GtkWidget *widget, gpointer data)
{
if (GTK_TOGGLE_BUTTON (auto_preview)->active)
click_preview (widget,NULL);
}
GtkWidget *
make_main(void)
{
GtkWidget *evbox;
GtkWidget *l1, *l2;
GtkWidget *l2;
GtkWidget *sw, *label, *socket;
GtkWidget *box, *vbox, *hbox;
GtkWidget *text, *frame, *button;
GtkWidget *hbxo;
w = capplet_widget_new();
gtk_container_border_width(GTK_CONTAINER(w), 0);
l1 = gtk_list_new();
gtk_list_set_selection_mode(GTK_LIST(l1), GTK_SELECTION_SINGLE);
gtk_container_border_width(GTK_CONTAINER(w), 5);
box = gtk_vbox_new(FALSE, GNOME_PAD);
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();
gtk_list_set_selection_mode(GTK_LIST(l2), GTK_SELECTION_SINGLE);
hbxo = gtk_vbox_new (FALSE, GNOME_PAD_SMALL);
gtk_container_border_width (GTK_CONTAINER (hbxo), GNOME_PAD_SMALL);
label = gtk_label_new ("Auto\nPreview");
gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
auto_preview = gtk_check_button_new ();
box = 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_signal_connect (GTK_OBJECT (auto_preview), "toggled", GTK_SIGNAL_FUNC (auto_callback), NULL);
gtk_container_add (GTK_CONTAINER (auto_preview), label);
gtk_box_pack_start (GTK_BOX (hbxo), auto_preview, 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");
hbox = gtk_hbox_new(TRUE, 0);
gtk_box_pack_start(GTK_BOX(box), hbox, 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 System Themes");
gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
sw = gtk_scrolled_window_new(NULL, NULL);
gtk_container_add(GTK_CONTAINER(sw), l1);
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);
/* FIXME: this needs ot actually do something. */
gtk_box_pack_start (GTK_BOX (hbxo), button, FALSE, FALSE, 0);
sw = gtk_scrolled_window_new(NULL, NULL);
gtk_container_add(GTK_CONTAINER(sw), l2);
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);
sw = gtk_scrolled_window_new(NULL, NULL);
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);
gtk_box_pack_start(GTK_BOX(vbox), hbxo, 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);
gtk_widget_set_usize(evbox, 256, -1);
gtk_box_pack_start(GTK_BOX(hbox), evbox, TRUE, TRUE, 0);
gtk_container_add (GTK_CONTAINER (frame), evbox);
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();
gtk_container_add(GTK_CONTAINER(evbox), text);
/* gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 0);*/
update_theme_entries(l1, l2);
hbox = gtk_hbox_new (FALSE, GNOME_PAD_SMALL);
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_FUNC (click_preview), NULL);
GTK_SIGNAL_FUNC (click_try), NULL);
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_signal_connect (GTK_OBJECT (w), "destroy",
(GtkSignalFunc) die_callback, NULL);
readme_display = text;
readme_current = NULL;
icon_current = NULL;
current_theme = NULL;
system_list = l1;
user_list = l2;
last_theme = NULL;
system_list = l2;
preview_socket = socket;
gtk_widget_realize(socket);
@ -113,7 +120,7 @@ make_main(void)
void
click_update(GtkWidget *widget, gpointer data)
{
update_theme_entries(system_list, user_list);
update_theme_entries(system_list);
}
void
@ -121,23 +128,28 @@ click_preview(GtkWidget *widget, gpointer data)
{
gchar *rc;
widget = current_theme;
if (!widget)
if (current_theme == last_theme)
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);
send_reread();
}
void
click_apply(GtkWidget *widget, gpointer data)
click_try(GtkWidget *widget, gpointer data)
{
gchar *rc;
gchar *dir, cmd[10240];
if (current_theme == current_global_theme)
return;
widget = current_theme;
if (!widget)
return;
current_global_theme = current_theme;
rc = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "rc");
dir = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "dir");
@ -153,19 +165,61 @@ click_apply(GtkWidget *widget, gpointer data)
system(cmd);
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
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;
name = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "name");
rc = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "rc");
readme = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "readme");
icon = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "icon");
/* 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)
@ -195,19 +249,11 @@ click_entry(GtkWidget *widget, gpointer data)
}
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;
if (GTK_TOGGLE_BUTTON (auto_preview)->active)
click_preview (widget,NULL);
}
void
@ -227,23 +273,37 @@ delete_entry(GtkWidget *widget, gpointer data)
if (current_theme == widget)
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
update_theme_entries(GtkWidget *system_list, GtkWidget *user_list)
update_theme_entries(GtkWidget *disp_list)
{
ThemeEntry *te;
gint num;
GList *list;
int i;
GtkWidget *item;
gchar *d_theme = gnome_config_get_string ("/theme-switcher-capplet/settings/theme=Default");
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);
for (i = 0; i < num; i++)
{
item = gtk_list_item_new_with_label(te[i].name);
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), "rc", g_strdup(te[i].rc));
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_connect(GTK_OBJECT(item), "destroy",
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);
for (i = 0; i < num; i++)
{
item = gtk_list_item_new_with_label(te[i].name);
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), "rc", g_strdup(te[i].rc));
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_connect(GTK_OBJECT(item), "destroy",
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);
g_free (d_theme);
}

View file

@ -7,7 +7,7 @@ main(int argc, char **argv)
set_tmp_rc();
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();
gtk_widget_show_all(w);