1 --- control-center-1.0.5/capplets/background-properties/property-background.c.limitedbgs Fri Apr 2 17:16:33 1999
2 +++ control-center-1.0.5/capplets/background-properties/property-background.c Mon Apr 5 17:09:53 1999
5 #include "imlib-misc.h"
7 +#define MAX_NUMBER_OF_WP 8
9 static GtkWidget *capplet=NULL;
11 static GtkWidget *preview;
14 static gint fillPreview = TRUE;
15 static gint ignoreChanges = TRUE;
16 +static GList *wplist = NULL;
22 if (!ignoreChanges && found < 0) {
24 - cf = gtk_menu_item_new_with_label (str);
25 - gtk_signal_connect (GTK_OBJECT (cf),
27 - (GtkSignalFunc) browse_activated, str);
28 - gtk_menu_append (GTK_MENU (wpMenu), cf);
29 - gtk_widget_show (cf);
32 - gs = g_string_new ("/Background/Default/wallpaper");
33 - snprintf (num, sizeof(num), "%d", wpNum);
34 - g_string_append (gs, num);
35 - gnome_config_set_string (gs->str, str);
36 - g_string_free (gs, TRUE);
38 - gnome_config_set_int ("/Background/Default/wallpapers", wpNum);
39 - gnome_config_set_string ("/Background/Default/wallpapers_dir",
43 - gnome_config_sync ();
44 + cf = gtk_menu_item_new_with_label (str);
45 + gtk_signal_connect (GTK_OBJECT (cf),
47 + (GtkSignalFunc) browse_activated, str);
48 + gtk_menu_append (GTK_MENU (wpMenu), cf);
49 + gtk_widget_show (cf);
52 + wplist = g_list_prepend (wplist, g_strdup (str));
54 + gnome_config_sync ();
57 if (curState.wpFileName)
59 curState.wpFileName = g_strdup(str);
60 curState.bgType = BACKGROUND_WALLPAPER;
62 - gtk_option_menu_set_history (GTK_OPTION_MENU (wpOMenu), found);
63 + gtk_option_menu_set_history (GTK_OPTION_MENU (wpOMenu), found - 1);
65 fill_monitor (!ignoreChanges, &curState);
68 (GtkSignalFunc) browse_activated, NULL);
70 wpNum = gnome_config_get_int ("/Background/Default/wallpapers=0");
72 for (i = 0; i<wpNum; i++) {
74 - /* printf ("wallpaper%d", i); */
75 - wpName = g_string_new ("/Background/Default/wallpaper");
76 - snprintf (num, sizeof(num),"%d", i+1);
77 - g_string_append (wpName, num);
78 - g_string_append (wpName, "=???");
80 - wpName1 = gnome_config_get_string (wpName->str);
81 - /* printf (": %s\n", wpName1); */
83 - if (state->wpFileName)
84 - if (!strcmp (wpName1, state->wpFileName))
87 - none = gtk_menu_item_new_with_label (wpName1);
88 - gtk_menu_append (GTK_MENU (wpMenu), none);
89 - gtk_signal_connect (GTK_OBJECT (none),
91 - (GtkSignalFunc) browse_activated, wpName1);
92 - gtk_widget_show (none);
95 - g_string_free (wpName, TRUE);
96 + wpName = g_string_new ("/Background/Default/wallpaper");
97 + snprintf (num, sizeof(num),"%d", i);
98 + g_string_append (wpName, num);
99 + if (i > MAX_NUMBER_OF_WP) {
100 + /* We want to blow away the old ones. */
101 + gnome_config_clean_key (wpName->str);
103 + /* printf ("wallpaper%d", i); */
105 + wpName1 = gnome_config_get_string (wpName->str);
107 + if (state->wpFileName)
108 + if (!strcmp (wpName1, state->wpFileName))
109 + selectedWp = i + 1;
110 + none = gtk_menu_item_new_with_label (wpName1);
111 + wplist = g_list_prepend (wplist, g_strdup (wpName1));
112 + gtk_menu_append (GTK_MENU (wpMenu), none);
113 + gtk_signal_connect (GTK_OBJECT (none),
115 + (GtkSignalFunc) browse_activated, wpName1);
116 + gtk_widget_show (none);
119 + g_string_free (wpName, TRUE);
122 wpOMenu = gtk_option_menu_new ();
123 @@ -1137,7 +1131,7 @@
124 background_try(GtkWidget *widget, struct bgState *state)
128 +/*printState(state);*/
129 background_apply(state);
132 @@ -1166,7 +1160,8 @@
133 background_write (struct bgState *state)
140 snprintf (buffer, sizeof(buffer), "#%02x%02x%02x",
141 state->bgColor1.red >> 8,
142 @@ -1189,11 +1184,17 @@
143 gnome_config_set_string ("/Background/Default/wallpaper",
144 (state->bgType == BACKGROUND_SIMPLE) ? "none" : state->wpFileName);
145 gnome_config_set_int ("/Background/Default/wallpaperAlign", state->wpType);
146 + for (list = wplist; list; list = list->next) {
147 +/* if (i > MAX_NUMBER_OF_WP)
149 + snprintf (buffer, sizeof(buffer), "/Background/Default/wallpaper%d", i);
150 + gnome_config_set_string (buffer, (gchar *) list->data);
153 + gnome_config_set_int ("/Background/Default/wallpapers", i - 1);
155 gnome_config_sync ();
157 - background_apply(state);