comparison src/prefs.c @ 3500:b79894c97bed

[gaim-migrate @ 3563] a couple prefs fixes. prefs should now save things when you change them (thanks faceprint) committer: Tailor Script <tailor@pidgin.im>
author Luke Schierer <lschiere@pidgin.im>
date Sat, 14 Sep 2002 03:08:39 +0000
parents 6187c93da61a
children 4f9e12e90ea3
comparison
equal deleted inserted replaced
3499:bb49f0c4f7cd 3500:b79894c97bed
85 GtkWidget *gaim_labeled_spin_button(GtkWidget *, const gchar *, int*, int, int, GtkSizeGroup *); 85 GtkWidget *gaim_labeled_spin_button(GtkWidget *, const gchar *, int*, int, int, GtkSizeGroup *);
86 static GtkWidget *gaim_dropdown(GtkWidget *, const gchar *, int *, int, ...); 86 static GtkWidget *gaim_dropdown(GtkWidget *, const gchar *, int *, int, ...);
87 static GtkWidget *show_color_pref(GtkWidget *, gboolean); 87 static GtkWidget *show_color_pref(GtkWidget *, gboolean);
88 static void delete_prefs(GtkWidget *, void *); 88 static void delete_prefs(GtkWidget *, void *);
89 void set_default_away(GtkWidget *, gpointer); 89 void set_default_away(GtkWidget *, gpointer);
90 static void apply_prefs();
90 91
91 struct debug_window *dw = NULL; 92 struct debug_window *dw = NULL;
92 static GtkWidget *prefs = NULL; 93 static GtkWidget *prefs = NULL;
93 GtkWidget *debugbutton = NULL; 94 GtkWidget *debugbutton = NULL;
94 95
95 void delete_prefs(GtkWidget *asdf, void *gdsa) { 96 void delete_prefs(GtkWidget *asdf, void *gdsa) {
96 int v; 97 int v;
97 98
98 prefs = NULL; 99 prefs = NULL;
99 for (v = 0; v < NUM_SOUNDS; v++) { 100 for (v = 0; v < NUM_SOUNDS; v++) {
100 if (sound_file_new[v]) { 101 if (sound_file_new[v]) {
101 g_free(sound_file_new[v]); 102 g_free(sound_file_new[v]);
102 sound_file_new[v] = NULL; 103 sound_file_new[v] = NULL;
105 sound_entry = NULL; 106 sound_entry = NULL;
106 browser_entry = NULL; 107 browser_entry = NULL;
107 debugbutton=NULL; 108 debugbutton=NULL;
108 if(sounddialog) 109 if(sounddialog)
109 gtk_widget_destroy(sounddialog); 110 gtk_widget_destroy(sounddialog);
110 g_object_unref(G_OBJECT(prefs_away_store)); 111 g_object_unref(G_OBJECT(prefs_away_store));
111 } 112 }
112 113
113 GtkWidget *preflabel; 114 GtkWidget *preflabel;
114 GtkWidget *prefsnotebook; 115 GtkWidget *prefsnotebook;
115 GtkTreeStore *prefstree; 116 GtkTreeStore *prefstree;
116 117
117 static void set_misc_options(); 118 static void set_misc_options();
118 static void set_logging_options(); 119 static void set_logging_options();
119 static void set_blist_options(); 120 static void set_blist_options();
120 static void set_convo_options(); 121 static void set_convo_options();
121 static void set_im_options(); 122 static void set_im_options();
122 static void set_chat_options(); 123 static void set_chat_options();
123 static void set_font_options(); 124 static void set_font_options();
124 static void set_sound_options(); 125 static void set_sound_options();
137 proxyport = atoi(gtk_entry_get_text(entry)); 138 proxyport = atoi(gtk_entry_get_text(entry));
138 else if (entrynum == PROXYUSER) 139 else if (entrynum == PROXYUSER)
139 g_snprintf(proxyuser, sizeof(proxyuser), "%s", gtk_entry_get_text(entry)); 140 g_snprintf(proxyuser, sizeof(proxyuser), "%s", gtk_entry_get_text(entry));
140 else if (entrynum == PROXYPASS) 141 else if (entrynum == PROXYPASS)
141 g_snprintf(proxypass, sizeof(proxypass), "%s", gtk_entry_get_text(entry)); 142 g_snprintf(proxypass, sizeof(proxypass), "%s", gtk_entry_get_text(entry));
142 save_prefs(); 143 apply_prefs();
143 } 144 }
144 145
145 146
146 static GtkWidget *make_frame(GtkWidget *ret, char *text) { 147 static GtkWidget *make_frame(GtkWidget *ret, char *text) {
147 GtkWidget *vbox, *label, *hbox; 148 GtkWidget *vbox, *label, *hbox;
148 char labeltext[256]; 149 char labeltext[256];
149 150
150 vbox = gtk_vbox_new(FALSE, 6); 151 vbox = gtk_vbox_new(FALSE, 6);
151 gtk_box_pack_start(GTK_BOX(ret), vbox, FALSE, FALSE, 0); 152 gtk_box_pack_start(GTK_BOX(ret), vbox, FALSE, FALSE, 0);
152 label = gtk_label_new(NULL); 153 label = gtk_label_new(NULL);
153 g_snprintf(labeltext, sizeof(labeltext), "<span weight=\"bold\">%s</span>", text); 154 g_snprintf(labeltext, sizeof(labeltext), "<span weight=\"bold\">%s</span>", text);
154 gtk_label_set_markup(GTK_LABEL(label), labeltext); 155 gtk_label_set_markup(GTK_LABEL(label), labeltext);
165 166
166 /* OK, Apply and Cancel */ 167 /* OK, Apply and Cancel */
167 168
168 static void apply_cb(GtkWidget *button, void *data) 169 static void apply_cb(GtkWidget *button, void *data)
169 { 170 {
171 apply_prefs();
172 }
173
174 static void apply_prefs()
175 {
170 int r; 176 int r;
171 if (misc_options != misc_options_new) 177 if (misc_options != misc_options_new)
172 set_misc_options(); 178 set_misc_options();
173 if (logging_options != logging_options_new) 179 if (logging_options != logging_options_new)
174 set_logging_options(); 180 set_logging_options();
175 if (blist_options != blist_options_new) 181 if (blist_options != blist_options_new)
176 set_blist_options(); 182 set_blist_options();
177 if (convo_options != convo_options_new) 183 if (convo_options != convo_options_new)
178 set_convo_options(); 184 set_convo_options();
179 if (im_options != im_options_new) 185 if (im_options != im_options_new)
180 set_im_options(); 186 set_im_options();
181 if (chat_options != chat_options_new) 187 if (chat_options != chat_options_new)
182 set_chat_options(); 188 set_chat_options();
183 chat_options = chat_options_new; 189 chat_options = chat_options_new;
184 if (font_options != font_options_new) 190 if (font_options != font_options_new)
185 set_font_options(); 191 set_font_options();
186 if (sound_options != sound_options_new) 192 if (sound_options != sound_options_new)
187 set_sound_options(); 193 set_sound_options();
188 for (r = 0; r < NUM_SOUNDS; r++) { 194 for (r = 0; r < NUM_SOUNDS; r++) {
189 if (sound_file[r]) 195 if (sound_file[r])
190 g_free(sound_file[r]); 196 g_free(sound_file[r]);
191 sound_file[r] = g_strdup(sound_file_new[r]); 197 sound_file[r] = g_strdup(sound_file_new[r]);
192 } 198 }
193 if (away_options != away_options_new) 199 if (away_options != away_options_new)
194 set_away_options(); 200 set_away_options();
195 away_resend = away_resend_new; 201 away_resend = away_resend_new;
196 auto_away = auto_away_new; 202 auto_away = auto_away_new;
197 report_idle = report_idle_new; 203 report_idle = report_idle_new;
198 web_browser = web_browser_new; 204 web_browser = web_browser_new;
199 proxytype = proxytype_new; 205 proxytype = proxytype_new;
200 default_away = default_away_new; 206 default_away = default_away_new;
201 fontsize = fontsize_new; 207 fontsize = fontsize_new;
202 g_snprintf(sound_cmd, sizeof(sound_cmd), "%s", sound_cmd_new); 208 g_snprintf(sound_cmd, sizeof(sound_cmd), "%s", sound_cmd_new);
203 g_snprintf(web_command, sizeof(web_command), "%s", web_command_new); 209 g_snprintf(web_command, sizeof(web_command), "%s", web_command_new);
204 memcpy(&conv_size, &conv_size_new, sizeof(struct window_size)); 210 memcpy(&conv_size, &conv_size_new, sizeof(struct window_size));
205 memcpy(&conv_size, &conv_size_new, sizeof(struct window_size)); 211 memcpy(&conv_size, &conv_size_new, sizeof(struct window_size));
206 memcpy(&fgcolor, &fgcolor_new, sizeof(GdkColor)); 212 memcpy(&fgcolor, &fgcolor_new, sizeof(GdkColor));
207 memcpy(&bgcolor, &bgcolor_new, sizeof(GdkColor)); 213 memcpy(&bgcolor, &bgcolor_new, sizeof(GdkColor));
208 214
209 215
210 g_snprintf(fontface, sizeof(fontface), fontface_new); 216 g_snprintf(fontface, sizeof(fontface), fontface_new);
223 static void pref_nb_select(GtkTreeSelection *sel, GtkNotebook *nb) { 229 static void pref_nb_select(GtkTreeSelection *sel, GtkNotebook *nb) {
224 GtkTreeIter iter; 230 GtkTreeIter iter;
225 char text[128]; 231 char text[128];
226 GValue val = { 0, }; 232 GValue val = { 0, };
227 GtkTreeModel *model = GTK_TREE_MODEL(prefstree); 233 GtkTreeModel *model = GTK_TREE_MODEL(prefstree);
228 234
229 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) 235 if (! gtk_tree_selection_get_selected (sel, &model, &iter))
230 return; 236 return;
231 gtk_tree_model_get_value (model, &iter, 1, &val); 237 gtk_tree_model_get_value (model, &iter, 1, &val);
232 g_snprintf(text, sizeof(text), "<span weight=\"bold\" size=\"larger\">%s</span>", 238 g_snprintf(text, sizeof(text), "<span weight=\"bold\" size=\"larger\">%s</span>",
233 g_value_get_string(&val)); 239 g_value_get_string(&val));
234 gtk_label_set_markup (GTK_LABEL(preflabel), text); 240 gtk_label_set_markup (GTK_LABEL(preflabel), text);
235 g_value_unset (&val); 241 g_value_unset (&val);
236 gtk_tree_model_get_value (model, &iter, 2, &val); 242 gtk_tree_model_get_value (model, &iter, 2, &val);
237 gtk_notebook_set_current_page (GTK_NOTEBOOK (prefsnotebook), g_value_get_int (&val)); 243 gtk_notebook_set_current_page (GTK_NOTEBOOK (prefsnotebook), g_value_get_int (&val));
246 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); 252 gtk_container_set_border_width (GTK_CONTAINER (ret), 12);
247 253
248 vbox = make_frame(ret, _("Interface Options")); 254 vbox = make_frame(ret, _("Interface Options"));
249 /* This shouldn't have to wait for user to click OK or APPLY or whatnot */ 255 /* This shouldn't have to wait for user to click OK or APPLY or whatnot */
250 /* This really shouldn't be in preferences at all */ 256 /* This really shouldn't be in preferences at all */
251 debugbutton = gaim_button(_("Show _Debug Window"), &misc_options, OPT_MISC_DEBUG, vbox); 257 debugbutton = gaim_button(_("Show _Debug Window"), &misc_options_new, OPT_MISC_DEBUG, vbox);
252 258
253 259
254 gaim_button(_("Use _borderless buttons"), &misc_options_new, OPT_MISC_COOL_LOOK, vbox); 260 gaim_button(_("Use _borderless buttons"), &misc_options_new, OPT_MISC_COOL_LOOK, vbox);
255 261
256 gtk_widget_show_all(ret); 262 gtk_widget_show_all(ret);
257 return ret; 263 return ret;
258 } 264 }
259 265
260 GtkWidget *font_page() { 266 GtkWidget *font_page() {
261 GtkWidget *ret; 267 GtkWidget *ret;
262 GtkWidget *button; 268 GtkWidget *button;
263 GtkWidget *vbox, *hbox; 269 GtkWidget *vbox, *hbox;
264 GtkWidget *select = NULL; 270 GtkWidget *select = NULL;
265 GtkSizeGroup *sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); 271 GtkSizeGroup *sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
266 272
267 ret = gtk_vbox_new(FALSE, 18); 273 ret = gtk_vbox_new(FALSE, 18);
268 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); 274 gtk_container_set_border_width (GTK_CONTAINER (ret), 12);
269 275
270 vbox = make_frame(ret, _("Style")); 276 vbox = make_frame(ret, _("Style"));
271 gaim_button(_("_Bold"), &font_options_new, OPT_FONT_BOLD, vbox); 277 gaim_button(_("_Bold"), &font_options_new, OPT_FONT_BOLD, vbox);
272 gaim_button(_("_Italics"), &font_options_new, OPT_FONT_ITALIC, vbox); 278 gaim_button(_("_Italics"), &font_options_new, OPT_FONT_ITALIC, vbox);
273 gaim_button(_("_Underline"), &font_options_new, OPT_FONT_UNDERLINE, vbox); 279 gaim_button(_("_Underline"), &font_options_new, OPT_FONT_UNDERLINE, vbox);
274 gaim_button(_("_Strikethough"), &font_options_new, OPT_FONT_STRIKE, vbox); 280 gaim_button(_("_Strikethough"), &font_options_new, OPT_FONT_STRIKE, vbox);
275 281
276 vbox = make_frame(ret, _("Face")); 282 vbox = make_frame(ret, _("Face"));
277 hbox = gtk_hbox_new(FALSE, 6); 283 hbox = gtk_hbox_new(FALSE, 6);
278 gtk_container_add(GTK_CONTAINER(vbox), hbox); 284 gtk_container_add(GTK_CONTAINER(vbox), hbox);
279 button = gaim_button(_("Use custo_m face"), &font_options_new, OPT_FONT_FACE, hbox); 285 button = gaim_button(_("Use custo_m face"), &font_options_new, OPT_FONT_FACE, hbox);
280 gtk_size_group_add_widget(sg, button); 286 gtk_size_group_add_widget(sg, button);
281 select = gtk_button_new_from_stock(GTK_STOCK_SELECT_FONT); 287 select = gtk_button_new_from_stock(GTK_STOCK_SELECT_FONT);
282 288
283 if (!(font_options_new & OPT_FONT_FACE)) 289 if (!(font_options_new & OPT_FONT_FACE))
284 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE); 290 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE);
285 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), select); 291 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), select);
286 gtk_signal_connect(GTK_OBJECT(select), "clicked", GTK_SIGNAL_FUNC(show_font_dialog), NULL); 292 gtk_signal_connect(GTK_OBJECT(select), "clicked", GTK_SIGNAL_FUNC(show_font_dialog), NULL);
287 gtk_box_pack_start(GTK_BOX(hbox), select, FALSE, FALSE, 0); 293 gtk_box_pack_start(GTK_BOX(hbox), select, FALSE, FALSE, 0);
288 294
289 hbox = gtk_hbox_new(FALSE, 5); 295 hbox = gtk_hbox_new(FALSE, 5);
290 gtk_container_add(GTK_CONTAINER(vbox), hbox); 296 gtk_container_add(GTK_CONTAINER(vbox), hbox);
291 button = gaim_button(_("Use custom si_ze"), &font_options_new, OPT_FONT_SIZE, hbox); 297 button = gaim_button(_("Use custom si_ze"), &font_options_new, OPT_FONT_SIZE, hbox);
293 select = gaim_labeled_spin_button(hbox, NULL, &fontsize_new, 1, 7, NULL); 299 select = gaim_labeled_spin_button(hbox, NULL, &fontsize_new, 1, 7, NULL);
294 if (!(font_options_new & OPT_FONT_SIZE)) 300 if (!(font_options_new & OPT_FONT_SIZE))
295 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE); 301 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE);
296 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), select); 302 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), select);
297 303
298 vbox = make_frame(ret, _("Color")); 304 vbox = make_frame(ret, _("Color"));
299 hbox = gtk_hbox_new(FALSE, 5); 305 hbox = gtk_hbox_new(FALSE, 5);
300 gtk_container_add(GTK_CONTAINER(vbox), hbox); 306 gtk_container_add(GTK_CONTAINER(vbox), hbox);
301 307
302 308
303 button = gaim_button(_("_Text color"), &font_options_new, OPT_FONT_FGCOL, hbox); 309 button = gaim_button(_("_Text color"), &font_options_new, OPT_FONT_FGCOL, hbox);
304 gtk_size_group_add_widget(sg, button); 310 gtk_size_group_add_widget(sg, button);
305 311
306 select = gtk_button_new_from_stock(GTK_STOCK_SELECT_COLOR); 312 select = gtk_button_new_from_stock(GTK_STOCK_SELECT_COLOR);
307 gtk_box_pack_start(GTK_BOX(hbox), select, FALSE, FALSE, 0); 313 gtk_box_pack_start(GTK_BOX(hbox), select, FALSE, FALSE, 0);
313 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE); 319 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE);
314 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), select); 320 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), select);
315 gtk_signal_connect(GTK_OBJECT(select), "clicked", GTK_SIGNAL_FUNC(show_fgcolor_dialog), NULL); 321 gtk_signal_connect(GTK_OBJECT(select), "clicked", GTK_SIGNAL_FUNC(show_fgcolor_dialog), NULL);
316 hbox = gtk_hbox_new(FALSE, 5); 322 hbox = gtk_hbox_new(FALSE, 5);
317 gtk_container_add(GTK_CONTAINER(vbox), hbox); 323 gtk_container_add(GTK_CONTAINER(vbox), hbox);
318 324
319 button = gaim_button(_("Bac_kground color"), &font_options_new, OPT_FONT_BGCOL, hbox); 325 button = gaim_button(_("Bac_kground color"), &font_options_new, OPT_FONT_BGCOL, hbox);
320 gtk_size_group_add_widget(sg, button); 326 gtk_size_group_add_widget(sg, button);
321 select = gtk_button_new_from_stock(GTK_STOCK_SELECT_COLOR); 327 select = gtk_button_new_from_stock(GTK_STOCK_SELECT_COLOR);
322 gtk_box_pack_start(GTK_BOX(hbox), select, FALSE, FALSE, 0); 328 gtk_box_pack_start(GTK_BOX(hbox), select, FALSE, FALSE, 0);
323 pref_bg_picture = show_color_pref(hbox, FALSE); 329 pref_bg_picture = show_color_pref(hbox, FALSE);
343 vbox = make_frame (ret, _("Display")); 349 vbox = make_frame (ret, _("Display"));
344 gaim_button(_("Show graphical _smileys"), &convo_options_new, OPT_CONVO_SHOW_SMILEY, vbox); 350 gaim_button(_("Show graphical _smileys"), &convo_options_new, OPT_CONVO_SHOW_SMILEY, vbox);
345 gaim_button(_("Show _timestamp on messages"), &convo_options_new, OPT_CONVO_SHOW_TIME, vbox); 351 gaim_button(_("Show _timestamp on messages"), &convo_options_new, OPT_CONVO_SHOW_TIME, vbox);
346 gaim_button(_("Show _URLs as links"), &convo_options_new, OPT_CONVO_SEND_LINKS, vbox); 352 gaim_button(_("Show _URLs as links"), &convo_options_new, OPT_CONVO_SEND_LINKS, vbox);
347 gaim_button(_("_Highlight misspelled words"), &convo_options_new, OPT_CONVO_CHECK_SPELLING, vbox); 353 gaim_button(_("_Highlight misspelled words"), &convo_options_new, OPT_CONVO_CHECK_SPELLING, vbox);
348 354
349 vbox = make_frame (ret, _("Ignore")); 355 vbox = make_frame (ret, _("Ignore"));
350 gaim_button(_("Ignore c_olors"), &convo_options_new, OPT_CONVO_IGNORE_COLOUR, vbox); 356 gaim_button(_("Ignore c_olors"), &convo_options_new, OPT_CONVO_IGNORE_COLOUR, vbox);
351 gaim_button(_("Ignore font _faces"), &convo_options_new, OPT_CONVO_IGNORE_FONTS, vbox); 357 gaim_button(_("Ignore font _faces"), &convo_options_new, OPT_CONVO_IGNORE_FONTS, vbox);
352 gaim_button(_("Ignore font si_zes"), &convo_options_new, OPT_CONVO_IGNORE_SIZES, vbox); 358 gaim_button(_("Ignore font si_zes"), &convo_options_new, OPT_CONVO_IGNORE_SIZES, vbox);
353 gaim_button(_("Ignore Ti_K Automated Messages"), &away_options_new, OPT_AWAY_TIK_HACK, vbox); 359 gaim_button(_("Ignore Ti_K Automated Messages"), &away_options_new, OPT_AWAY_TIK_HACK, vbox);
354 360
355 gtk_widget_show_all(ret); 361 gtk_widget_show_all(ret);
356 return ret; 362 return ret;
357 } 363 }
358 364
359 GtkWidget *hotkeys_page() { 365 GtkWidget *hotkeys_page() {
363 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); 369 gtk_container_set_border_width (GTK_CONTAINER (ret), 12);
364 370
365 vbox = make_frame(ret, _("Send Message")); 371 vbox = make_frame(ret, _("Send Message"));
366 gaim_button(_("_Enter sends message"), &convo_options_new, OPT_CONVO_ENTER_SENDS, vbox); 372 gaim_button(_("_Enter sends message"), &convo_options_new, OPT_CONVO_ENTER_SENDS, vbox);
367 gaim_button(_("C_ontrol-Enter sends message"), &convo_options_new, OPT_CONVO_CTL_ENTER, vbox); 373 gaim_button(_("C_ontrol-Enter sends message"), &convo_options_new, OPT_CONVO_CTL_ENTER, vbox);
368 374
369 vbox = make_frame (ret, _("Window Closing")); 375 vbox = make_frame (ret, _("Window Closing"));
370 gaim_button(_("E_scape closes window"), &convo_options_new, OPT_CONVO_ESC_CAN_CLOSE, vbox); 376 gaim_button(_("E_scape closes window"), &convo_options_new, OPT_CONVO_ESC_CAN_CLOSE, vbox);
371 gaim_button(_("Control-_W closes window"), &convo_options_new, OPT_CONVO_CTL_W_CLOSES, vbox); 377 gaim_button(_("Control-_W closes window"), &convo_options_new, OPT_CONVO_CTL_W_CLOSES, vbox);
372 378
373 vbox = make_frame(ret, "Insertions"); 379 vbox = make_frame(ret, "Insertions");
411 return ret; 417 return ret;
412 } 418 }
413 419
414 GtkWidget *im_page() { 420 GtkWidget *im_page() {
415 GtkWidget *ret; 421 GtkWidget *ret;
416 GtkWidget *vbox; 422 GtkWidget *vbox;
417 GtkWidget *typingbutton, *widge; 423 GtkWidget *typingbutton, *widge;
418 GtkSizeGroup *sg; 424 GtkSizeGroup *sg;
419 425
420 ret = gtk_vbox_new(FALSE, 18); 426 ret = gtk_vbox_new(FALSE, 18);
421 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); 427 gtk_container_set_border_width (GTK_CONTAINER (ret), 12);
422 428
423 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); 429 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
424 430
425 vbox = make_frame (ret, _("Window")); 431 vbox = make_frame (ret, _("Window"));
426 widge = gaim_dropdown(vbox, "Show _buttons as:", &im_options_new, OPT_IM_BUTTON_TEXT | OPT_IM_BUTTON_XPM, 432 widge = gaim_dropdown(vbox, "Show _buttons as:", &im_options_new, OPT_IM_BUTTON_TEXT | OPT_IM_BUTTON_XPM,
427 "Pictures", OPT_IM_BUTTON_XPM, 433 "Pictures", OPT_IM_BUTTON_XPM,
428 "Text", OPT_IM_BUTTON_TEXT, 434 "Text", OPT_IM_BUTTON_TEXT,
429 "Pictures and text", OPT_IM_BUTTON_XPM | OPT_IM_BUTTON_TEXT, NULL); 435 "Pictures and text", OPT_IM_BUTTON_XPM | OPT_IM_BUTTON_TEXT, NULL);
430 gtk_size_group_add_widget(sg, widge); 436 gtk_size_group_add_widget(sg, widge);
431 gtk_misc_set_alignment(GTK_MISC(widge), 0, 0); 437 gtk_misc_set_alignment(GTK_MISC(widge), 0, 0);
432 gaim_labeled_spin_button(vbox, _("New window _width:"), &conv_size_new.width, 25, 9999, sg); 438 gaim_labeled_spin_button(vbox, _("New window _width:"), &conv_size_new.width, 25, 9999, sg);
459 GtkWidget *dd; 465 GtkWidget *dd;
460 GtkSizeGroup *sg; 466 GtkSizeGroup *sg;
461 467
462 ret = gtk_vbox_new(FALSE, 18); 468 ret = gtk_vbox_new(FALSE, 18);
463 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); 469 gtk_container_set_border_width (GTK_CONTAINER (ret), 12);
464 470
465 sg = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); 471 sg = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
466 472
467 vbox = make_frame (ret, _("Window")); 473 vbox = make_frame (ret, _("Window"));
468 dd = gaim_dropdown(vbox, "Show _buttons as:", &chat_options_new, OPT_CHAT_BUTTON_TEXT | OPT_CHAT_BUTTON_XPM, 474 dd = gaim_dropdown(vbox, "Show _buttons as:", &chat_options_new, OPT_CHAT_BUTTON_TEXT | OPT_CHAT_BUTTON_XPM,
469 "Pictures", OPT_CHAT_BUTTON_XPM, 475 "Pictures", OPT_CHAT_BUTTON_XPM,
470 "Text", OPT_CHAT_BUTTON_TEXT, 476 "Text", OPT_CHAT_BUTTON_TEXT,
471 "Pictures and Text", OPT_CHAT_BUTTON_XPM | OPT_CHAT_BUTTON_TEXT, NULL); 477 "Pictures and Text", OPT_CHAT_BUTTON_XPM | OPT_CHAT_BUTTON_TEXT, NULL);
472 gtk_size_group_add_widget(sg, dd); 478 gtk_size_group_add_widget(sg, dd);
473 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0); 479 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0);
474 gaim_labeled_spin_button(vbox, _("New window _width:"), &buddy_chat_size_new.width, 25, 9999, sg); 480 gaim_labeled_spin_button(vbox, _("New window _width:"), &buddy_chat_size_new.width, 25, 9999, sg);
495 GtkSizeGroup *sg; 501 GtkSizeGroup *sg;
496 ret = gtk_vbox_new(FALSE, 18); 502 ret = gtk_vbox_new(FALSE, 18);
497 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); 503 gtk_container_set_border_width (GTK_CONTAINER (ret), 12);
498 504
499 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); 505 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
500 506
501 vbox = make_frame (ret, _("IM Tabs")); 507 vbox = make_frame (ret, _("IM Tabs"));
502 dd = gaim_dropdown(vbox, "Tab _Placement:", &im_options_new, OPT_IM_SIDE_TAB | OPT_IM_BR_TAB, 508 dd = gaim_dropdown(vbox, "Tab _Placement:", &im_options_new, OPT_IM_SIDE_TAB | OPT_IM_BR_TAB,
503 "Top", 0, 509 "Top", 0,
504 "Bottom", OPT_IM_BR_TAB, 510 "Bottom", OPT_IM_BR_TAB,
505 "Left", OPT_IM_SIDE_TAB, 511 "Left", OPT_IM_SIDE_TAB,
506 "Right", OPT_IM_BR_TAB | OPT_IM_SIDE_TAB, NULL); 512 "Right", OPT_IM_BR_TAB | OPT_IM_SIDE_TAB, NULL);
507 gtk_size_group_add_widget(sg, dd); 513 gtk_size_group_add_widget(sg, dd);
508 gaim_button(_("Show all _Instant Messages in one tabbed\nwindow"), &im_options_new, OPT_IM_ONE_WINDOW, vbox); 514 gaim_button(_("Show all _Instant Messages in one tabbed\nwindow"), &im_options_new, OPT_IM_ONE_WINDOW, vbox);
509 gaim_button(_("Show a_liases in tabs/titles"), &im_options_new, OPT_IM_ALIAS_TAB, vbox); 515 gaim_button(_("Show a_liases in tabs/titles"), &im_options_new, OPT_IM_ALIAS_TAB, vbox);
510 516
511 vbox = make_frame (ret, _("Chat Tabs")); 517 vbox = make_frame (ret, _("Chat Tabs"));
512 dd = gaim_dropdown(vbox, "Tab _Placement:", &chat_options_new, OPT_CHAT_SIDE_TAB | OPT_CHAT_BR_TAB, 518 dd = gaim_dropdown(vbox, "Tab _Placement:", &chat_options_new, OPT_CHAT_SIDE_TAB | OPT_CHAT_BR_TAB,
513 "Top", 0, 519 "Top", 0,
514 "Bottom", OPT_CHAT_BR_TAB, 520 "Bottom", OPT_CHAT_BR_TAB,
515 "Left", OPT_CHAT_SIDE_TAB, 521 "Left", OPT_CHAT_SIDE_TAB,
516 "Right", OPT_CHAT_SIDE_TAB | OPT_CHAT_BR_TAB, NULL); 522 "Right", OPT_CHAT_SIDE_TAB | OPT_CHAT_BR_TAB, NULL);
517 gtk_size_group_add_widget(sg, dd); 523 gtk_size_group_add_widget(sg, dd);
518 gaim_button(_("Show all c_hats in one tabbed window"), &chat_options_new, OPT_CHAT_ONE_WINDOW, 524 gaim_button(_("Show all c_hats in one tabbed window"), &chat_options_new, OPT_CHAT_ONE_WINDOW,
519 vbox); 525 vbox);
520 526
521 vbox = make_frame (ret, _("Combined Tabs")); 527 vbox = make_frame (ret, _("Combined Tabs"));
522 gaim_button(_("Show IMs and chats in _same tabbed\nwindow."), &convo_options_new, OPT_CONVO_COMBINE, vbox); 528 gaim_button(_("Show IMs and chats in _same tabbed\nwindow."), &convo_options_new, OPT_CONVO_COMBINE, vbox);
523 529
524 vbox = make_frame (ret, _("Buddy List Tabs")); 530 vbox = make_frame (ret, _("Buddy List Tabs"));
525 dd = gaim_dropdown(vbox, "Tab _Placement:", &blist_options_new, OPT_BLIST_BOTTOM_TAB, 531 dd = gaim_dropdown(vbox, "Tab _Placement:", &blist_options_new, OPT_BLIST_BOTTOM_TAB,
526 "Top", 0, 532 "Top", 0,
527 "Bottom", OPT_BLIST_BOTTOM_TAB, NULL); 533 "Bottom", OPT_BLIST_BOTTOM_TAB, NULL);
528 gtk_size_group_add_widget(sg, dd); 534 gtk_size_group_add_widget(sg, dd);
529 535
530 gtk_widget_show_all(ret); 536 gtk_widget_show_all(ret);
531 return ret; 537 return ret;
532 } 538 }
533 539
534 GtkWidget *proxy_page() { 540 GtkWidget *proxy_page() {
542 ret = gtk_vbox_new(FALSE, 18); 548 ret = gtk_vbox_new(FALSE, 18);
543 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); 549 gtk_container_set_border_width (GTK_CONTAINER (ret), 12);
544 550
545 vbox = make_frame (ret, _("Proxy Type")); 551 vbox = make_frame (ret, _("Proxy Type"));
546 gaim_dropdown(vbox, "Proxy _Type:", &proxytype_new, -1, 552 gaim_dropdown(vbox, "Proxy _Type:", &proxytype_new, -1,
547 "No Proxy", PROXY_NONE, 553 "No Proxy", PROXY_NONE,
548 "SOCKS 4", PROXY_SOCKS4, 554 "SOCKS 4", PROXY_SOCKS4,
549 "SOCKS 5", PROXY_SOCKS5, 555 "SOCKS 5", PROXY_SOCKS5,
550 "HTTP", PROXY_HTTP, NULL); 556 "HTTP", PROXY_HTTP, NULL);
551 557
552 table = gtk_table_new(2, 2, FALSE); 558 table = gtk_table_new(2, 2, FALSE);
620 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 3, 4, GTK_FILL , 0, 0, 0); 626 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 3, 4, GTK_FILL , 0, 0, 0);
621 gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE); 627 gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE);
622 gtk_signal_connect(GTK_OBJECT(entry), "changed", 628 gtk_signal_connect(GTK_OBJECT(entry), "changed",
623 GTK_SIGNAL_FUNC(proxy_print_option), (void *)PROXYPASS); 629 GTK_SIGNAL_FUNC(proxy_print_option), (void *)PROXYPASS);
624 gtk_entry_set_text(GTK_ENTRY(entry), proxypass); 630 gtk_entry_set_text(GTK_ENTRY(entry), proxypass);
625 631
626 gtk_widget_show_all(ret); 632 gtk_widget_show_all(ret);
627 return ret; 633 return ret;
628 } 634 }
629 635
630 static void browser_print_option(GtkEntry *entry, void *nullish) { 636 static void browser_print_option(GtkEntry *entry, void *nullish) {
641 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); 647 gtk_container_set_border_width (GTK_CONTAINER (ret), 12);
642 648
643 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); 649 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
644 650
645 vbox = make_frame (ret, _("Browser Selection")); 651 vbox = make_frame (ret, _("Browser Selection"));
646 label = gaim_dropdown(vbox, "_Browser", &web_browser_new, -1, 652 label = gaim_dropdown(vbox, "_Browser", &web_browser_new, -1,
647 "Netscape", BROWSER_NETSCAPE, 653 "Netscape", BROWSER_NETSCAPE,
648 "Konqueror", BROWSER_KONQ, 654 "Konqueror", BROWSER_KONQ,
649 "Mozilla", BROWSER_MOZILLA, 655 "Mozilla", BROWSER_MOZILLA,
650 "Manual", BROWSER_MANUAL, 656 "Manual", BROWSER_MANUAL,
651 /* fixme: GNOME binary helper 657 /* fixme: GNOME binary helper
674 vbox = make_frame (ret, _("Browser Options")); 680 vbox = make_frame (ret, _("Browser Options"));
675 gaim_button(_("Open new _window by default"), &misc_options_new, OPT_MISC_BROWSER_POPUP, vbox); 681 gaim_button(_("Open new _window by default"), &misc_options_new, OPT_MISC_BROWSER_POPUP, vbox);
676 682
677 gtk_widget_show_all(ret); 683 gtk_widget_show_all(ret);
678 return ret; 684 return ret;
679 } 685 }
680 686
681 GtkWidget *logging_page() { 687 GtkWidget *logging_page() {
682 GtkWidget *ret; 688 GtkWidget *ret;
683 GtkWidget *vbox; 689 GtkWidget *vbox;
684 ret = gtk_vbox_new(FALSE, 18); 690 ret = gtk_vbox_new(FALSE, 18);
723 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); 729 gtk_container_set_border_width (GTK_CONTAINER (ret), 12);
724 730
725 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); 731 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
726 732
727 vbox = make_frame (ret, _("Sound Options")); 733 vbox = make_frame (ret, _("Sound Options"));
728 gaim_button(_("_No sounds when you log in"), &sound_options, OPT_SOUND_SILENT_SIGNON, vbox); 734 gaim_button(_("_No sounds when you log in"), &sound_options_new, OPT_SOUND_SILENT_SIGNON, vbox);
729 gaim_button(_("_Sounds while away"), &sound_options, OPT_SOUND_WHEN_AWAY, vbox); 735 gaim_button(_("_Sounds while away"), &sound_options_new, OPT_SOUND_WHEN_AWAY, vbox);
730 736
731 vbox = make_frame (ret, _("Sound Method")); 737 vbox = make_frame (ret, _("Sound Method"));
732 dd = gaim_dropdown(vbox, "_Method", &sound_options_new, OPT_SOUND_BEEP | 738 dd = gaim_dropdown(vbox, "_Method", &sound_options_new, OPT_SOUND_BEEP |
733 OPT_SOUND_ESD | OPT_SOUND_ARTSC | OPT_SOUND_NAS | OPT_SOUND_NORMAL | 739 OPT_SOUND_ESD | OPT_SOUND_ARTSC | OPT_SOUND_NAS | OPT_SOUND_NORMAL |
734 OPT_SOUND_CMD, 740 OPT_SOUND_CMD,
735 "Console Beep", OPT_SOUND_BEEP, 741 "Console Beep", OPT_SOUND_BEEP,
736 #ifdef ESD_SOUND 742 #ifdef ESD_SOUND
737 "ESD", OPT_SOUND_ESD, 743 "ESD", OPT_SOUND_ESD,
738 #endif /* ESD_SOUND */ 744 #endif /* ESD_SOUND */
739 #ifdef ARTSC_SOUND 745 #ifdef ARTSC_SOUND
740 "ArtsC", OPT_SOUND_ARTSC, 746 "ArtsC", OPT_SOUND_ARTSC,
741 #endif /* ARTSC_SOUND */ 747 #endif /* ARTSC_SOUND */
742 #ifdef NAS_SOUND 748 #ifdef NAS_SOUND
743 "NAS", OPT_SOUND_NAS, 749 "NAS", OPT_SOUND_NAS,
744 #endif /* NAS_SOUND */ 750 #endif /* NAS_SOUND */
745 "Internal", OPT_SOUND_NORMAL, 751 "Internal", OPT_SOUND_NORMAL,
746 "Command", OPT_SOUND_CMD, NULL); 752 "Command", OPT_SOUND_CMD, NULL);
747 gtk_size_group_add_widget(sg, dd); 753 gtk_size_group_add_widget(sg, dd);
748 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0); 754 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0);
749 755
750 hbox = gtk_hbox_new(FALSE, 5); 756 hbox = gtk_hbox_new(FALSE, 5);
751 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); 757 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);
752 758
753 hbox = gtk_hbox_new(FALSE, 5); 759 hbox = gtk_hbox_new(FALSE, 5);
754 gtk_container_add(GTK_CONTAINER(vbox), hbox); 760 gtk_container_add(GTK_CONTAINER(vbox), hbox);
755 label = gtk_label_new_with_mnemonic(_("Sound c_ommand\n(%s for filename)")); 761 label = gtk_label_new_with_mnemonic(_("Sound c_ommand\n(%s for filename)"));
756 gtk_size_group_add_widget(sg, label); 762 gtk_size_group_add_widget(sg, label);
757 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); 763 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
758 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); 764 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
759 765
760 sndcmd = gtk_entry_new(); 766 sndcmd = gtk_entry_new();
795 vbox = make_frame (ret, _("Auto-response")); 801 vbox = make_frame (ret, _("Auto-response"));
796 hbox = gtk_hbox_new(FALSE, 0); 802 hbox = gtk_hbox_new(FALSE, 0);
797 gtk_container_add(GTK_CONTAINER(vbox), hbox); 803 gtk_container_add(GTK_CONTAINER(vbox), hbox);
798 gaim_labeled_spin_button(hbox, _("Seconds before _resending:"), 804 gaim_labeled_spin_button(hbox, _("Seconds before _resending:"),
799 &away_resend_new, 1, 24 * 60 * 60, sg); 805 &away_resend_new, 1, 24 * 60 * 60, sg);
800 gaim_button(_("_Don't send auto-response"), &away_options_new, OPT_AWAY_NO_AUTO_RESP, vbox); 806 gaim_button(_("_Don't send auto-response"), &away_options_new, OPT_AWAY_NO_AUTO_RESP, vbox);
801 gaim_button(_("_Only send auto-response when idle"), &away_options_new, OPT_AWAY_IDLE_RESP, vbox); 807 gaim_button(_("_Only send auto-response when idle"), &away_options_new, OPT_AWAY_IDLE_RESP, vbox);
802 808
803 if (away_options_new & OPT_AWAY_NO_AUTO_RESP) 809 if (away_options_new & OPT_AWAY_NO_AUTO_RESP)
804 gtk_widget_set_sensitive(hbox, FALSE); 810 gtk_widget_set_sensitive(hbox, FALSE);
805 811
806 vbox = make_frame (ret, _("Idle")); 812 vbox = make_frame (ret, _("Idle"));
807 dd = gaim_dropdown(vbox, "Idle _Time Reporting:", &away_resend_new, -1, 813 dd = gaim_dropdown(vbox, "Idle _Time Reporting:", &report_idle_new, -1,
808 "None", IDLE_NONE, 814 "None", IDLE_NONE,
809 "Gaim Usage", IDLE_GAIM, 815 "Gaim Usage", IDLE_GAIM,
810 #ifdef USE_SCREENSAVER 816 #ifdef USE_SCREENSAVER
811 "X Usage", IDLE_SCREENSAVER, 817 "X Usage", IDLE_SCREENSAVER,
812 #endif 818 #endif
813 NULL); 819 NULL);
814 gtk_size_group_add_widget(sg, dd); 820 gtk_size_group_add_widget(sg, dd);
815 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0); 821 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0);
816 822
833 gtk_widget_set_sensitive(GTK_WIDGET(prefs_away_menu), FALSE); 839 gtk_widget_set_sensitive(GTK_WIDGET(prefs_away_menu), FALSE);
834 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), prefs_away_menu); 840 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), prefs_away_menu);
835 default_away_menu_init(prefs_away_menu); 841 default_away_menu_init(prefs_away_menu);
836 gtk_widget_show(prefs_away_menu); 842 gtk_widget_show(prefs_away_menu);
837 gtk_box_pack_start(GTK_BOX(hbox), prefs_away_menu, FALSE, FALSE, 0); 843 gtk_box_pack_start(GTK_BOX(hbox), prefs_away_menu, FALSE, FALSE, 0);
838 844
839 gtk_widget_show_all(ret); 845 gtk_widget_show_all(ret);
840 return ret; 846 return ret;
841 } 847 }
842 848
843 static void event_toggled (GtkCellRendererToggle *cell, gchar *pth, gpointer data) 849 static void event_toggled (GtkCellRendererToggle *cell, gchar *pth, gpointer data)
844 { 850 {
845 GtkTreeModel *model = (GtkTreeModel *)data; 851 GtkTreeModel *model = (GtkTreeModel *)data;
846 GtkTreeIter iter; 852 GtkTreeIter iter;
847 GtkTreePath *path = gtk_tree_path_new_from_string(pth); 853 GtkTreePath *path = gtk_tree_path_new_from_string(pth);
848 gint soundnum; 854 gint soundnum;
849 855
850 gtk_tree_model_get_iter (model, &iter, path); 856 gtk_tree_model_get_iter (model, &iter, path);
851 gtk_tree_model_get (model, &iter, 2, &soundnum, -1); 857 gtk_tree_model_get (model, &iter, 2, &soundnum, -1);
852 858
853 sound_options_new ^= sounds[soundnum].opt; 859 sound_options_new ^= sounds[soundnum].opt;
854 gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, sound_options_new & sounds[soundnum].opt, -1); 860 gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, sound_options_new & sounds[soundnum].opt, -1);
855 } 861 }
856 862
857 static void test_sound(GtkWidget *button, gpointer i_am_NULL) 863 static void test_sound(GtkWidget *button, gpointer i_am_NULL)
858 { 864 {
863 if (!(sound_options & sounds[sound_row_sel].opt)) 869 if (!(sound_options & sounds[sound_row_sel].opt))
864 sound_options ^= sounds[sound_row_sel].opt; 870 sound_options ^= sounds[sound_row_sel].opt;
865 save_me = sound_file[sound_row_sel]; 871 save_me = sound_file[sound_row_sel];
866 sound_file[sound_row_sel] = sound_file_new[sound_row_sel]; 872 sound_file[sound_row_sel] = sound_file_new[sound_row_sel];
867 play_sound(sound_row_sel); 873 play_sound(sound_row_sel);
868 874
869 sound_file[sound_row_sel] = save_me; 875 sound_file[sound_row_sel] = save_me;
870 sound_options = tmp_sound; 876 sound_options = tmp_sound;
871 } 877 }
872 878
873 static void reset_sound(GtkWidget *button, gpointer i_am_also_NULL) 879 static void reset_sound(GtkWidget *button, gpointer i_am_also_NULL)
910 if (sound_file_new[snd]) 916 if (sound_file_new[snd])
911 g_free(sound_file_new[snd]); 917 g_free(sound_file_new[snd]);
912 918
913 /* Set it -- and forget it */ 919 /* Set it -- and forget it */
914 sound_file_new[snd] = g_strdup(file); 920 sound_file_new[snd] = g_strdup(file);
915 921
916 /* Set our text entry */ 922 /* Set our text entry */
917 gtk_entry_set_text(GTK_ENTRY(sound_entry), sound_file_new[snd]); 923 gtk_entry_set_text(GTK_ENTRY(sound_entry), sound_file_new[snd]);
918 924
919 /* Close the window! It's getting cold in here! */ 925 /* Close the window! It's getting cold in here! */
920 close_sounddialog(NULL, sounddialog); 926 close_sounddialog(NULL, sounddialog);
954 960
955 961
956 static void prefs_sound_sel (GtkTreeSelection *sel, GtkTreeModel *model) { 962 static void prefs_sound_sel (GtkTreeSelection *sel, GtkTreeModel *model) {
957 GtkTreeIter iter; 963 GtkTreeIter iter;
958 GValue val = { 0, }; 964 GValue val = { 0, };
959 965
960 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) 966 if (! gtk_tree_selection_get_selected (sel, &model, &iter))
961 return; 967 return;
962 gtk_tree_model_get_value (model, &iter, 2, &val); 968 gtk_tree_model_get_value (model, &iter, 2, &val);
963 sound_row_sel = g_value_get_uint(&val); 969 sound_row_sel = g_value_get_uint(&val);
964 if (sound_entry) 970 if (sound_entry)
991 event_store = gtk_list_store_new (3, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_UINT); 997 event_store = gtk_list_store_new (3, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_UINT);
992 998
993 for (j=0; j < NUM_SOUNDS; j++) { 999 for (j=0; j < NUM_SOUNDS; j++) {
994 if (sounds[j].opt == 0) 1000 if (sounds[j].opt == 0)
995 continue; 1001 continue;
996 1002
997 gtk_list_store_append (event_store, &iter); 1003 gtk_list_store_append (event_store, &iter);
998 gtk_list_store_set(event_store, &iter, 1004 gtk_list_store_set(event_store, &iter,
999 0, sound_options & sounds[j].opt, 1005 0, sound_options & sounds[j].opt,
1000 1, sounds[j].label, 1006 1, sounds[j].label,
1001 2, j, -1); 1007 2, j, -1);
1002 } 1008 }
1003 1009
1004 event_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(event_store)); 1010 event_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(event_store));
1005 1011
1006 rend = gtk_cell_renderer_toggle_new(); 1012 rend = gtk_cell_renderer_toggle_new();
1007 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view)); 1013 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view));
1008 g_signal_connect (G_OBJECT (sel), "changed", 1014 g_signal_connect (G_OBJECT (sel), "changed",
1009 G_CALLBACK (prefs_sound_sel), 1015 G_CALLBACK (prefs_sound_sel),
1010 NULL); 1016 NULL);
1011 g_signal_connect (G_OBJECT(rend), "toggled", 1017 g_signal_connect (G_OBJECT(rend), "toggled",
1012 G_CALLBACK(event_toggled), event_store); 1018 G_CALLBACK(event_toggled), event_store);
1013 path = gtk_tree_path_new_first(); 1019 path = gtk_tree_path_new_first();
1014 gtk_tree_selection_select_path(sel, path); 1020 gtk_tree_selection_select_path(sel, path);
1015 1021
1016 col = gtk_tree_view_column_new_with_attributes ("Play", 1022 col = gtk_tree_view_column_new_with_attributes ("Play",
1017 rend, 1023 rend,
1018 "active", 0, 1024 "active", 0,
1019 NULL); 1025 NULL);
1020 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); 1026 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col);
1023 col = gtk_tree_view_column_new_with_attributes ("Event", 1029 col = gtk_tree_view_column_new_with_attributes ("Event",
1024 rend, 1030 rend,
1025 "text", 1, 1031 "text", 1,
1026 NULL); 1032 NULL);
1027 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); 1033 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col);
1028 g_object_unref(G_OBJECT(event_store)); 1034 g_object_unref(G_OBJECT(event_store));
1029 gtk_container_add(GTK_CONTAINER(sw), event_view); 1035 gtk_container_add(GTK_CONTAINER(sw), event_view);
1030 1036
1031 hbox = gtk_hbox_new(FALSE, 6); 1037 hbox = gtk_hbox_new(FALSE, 6);
1032 gtk_box_pack_start(GTK_BOX(ret), hbox, FALSE, FALSE, 0); 1038 gtk_box_pack_start(GTK_BOX(ret), hbox, FALSE, FALSE, 0);
1033 sound_entry = gtk_entry_new(); 1039 sound_entry = gtk_entry_new();
1044 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); 1050 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
1045 1051
1046 button = gtk_button_new_with_label(_("Choose...")); 1052 button = gtk_button_new_with_label(_("Choose..."));
1047 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(sel_sound), NULL); 1053 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(sel_sound), NULL);
1048 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); 1054 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
1049 1055
1050 gtk_widget_show_all (ret); 1056 gtk_widget_show_all (ret);
1051 1057
1052 return ret; 1058 return ret;
1053 } 1059 }
1054 1060
1071 GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_SCROLL); 1077 GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_SCROLL);
1072 gtk_imhtml_append_text(GTK_IMHTML(away_text), "<BR>", -1, GTK_IMHTML_NO_TITLE | 1078 gtk_imhtml_append_text(GTK_IMHTML(away_text), "<BR>", -1, GTK_IMHTML_NO_TITLE |
1073 GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_SCROLL); 1079 GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_SCROLL);
1074 g_free(tmp); 1080 g_free(tmp);
1075 g_value_unset (&val); 1081 g_value_unset (&val);
1076 1082
1077 } 1083 }
1078 1084
1079 void remove_away_message(GtkWidget *widget, GtkTreeView *tv) { 1085 void remove_away_message(GtkWidget *widget, GtkTreeView *tv) {
1080 struct away_message *am; 1086 struct away_message *am;
1081 GtkTreeIter iter; 1087 GtkTreeIter iter;
1082 GtkTreePath *path; 1088 GtkTreePath *path;
1083 GtkTreeStore *ts = GTK_TREE_STORE(gtk_tree_view_get_model(tv)); 1089 GtkTreeStore *ts = GTK_TREE_STORE(gtk_tree_view_get_model(tv));
1084 GtkTreeSelection *sel = gtk_tree_view_get_selection(tv); 1090 GtkTreeSelection *sel = gtk_tree_view_get_selection(tv);
1085 GtkTreeModel *model = GTK_TREE_MODEL(prefs_away_store); 1091 GtkTreeModel *model = GTK_TREE_MODEL(prefs_away_store);
1086 GValue val = { 0, }; 1092 GValue val = { 0, };
1087 1093
1088 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) 1094 if (! gtk_tree_selection_get_selected (sel, &model, &iter))
1089 return; 1095 return;
1090 gtk_tree_model_get_value (GTK_TREE_MODEL(prefs_away_store), &iter, 1, &val); 1096 gtk_tree_model_get_value (GTK_TREE_MODEL(prefs_away_store), &iter, 1, &val);
1091 am = g_value_get_pointer (&val); 1097 am = g_value_get_pointer (&val);
1092 gtk_imhtml_clear(GTK_IMHTML(away_text)); 1098 gtk_imhtml_clear(GTK_IMHTML(away_text));
1114 1120
1115 ret = gtk_vbox_new(FALSE, 18); 1121 ret = gtk_vbox_new(FALSE, 18);
1116 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); 1122 gtk_container_set_border_width (GTK_CONTAINER (ret), 12);
1117 1123
1118 sg = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); 1124 sg = gtk_size_group_new(GTK_SIZE_GROUP_BOTH);
1119 1125
1120 sw = gtk_scrolled_window_new(NULL,NULL); 1126 sw = gtk_scrolled_window_new(NULL,NULL);
1121 away_text = gtk_imhtml_new(NULL, NULL); 1127 away_text = gtk_imhtml_new(NULL, NULL);
1122 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); 1128 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
1123 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), 1129 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw),
1124 GTK_SHADOW_IN); 1130 GTK_SHADOW_IN);
1125 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0); 1131 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0);
1126 1132
1127 prefs_away_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_POINTER); 1133 prefs_away_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_POINTER);
1128 while (awy) { 1134 while (awy) {
1129 a = (struct away_message *)awy->data; 1135 a = (struct away_message *)awy->data;
1130 gtk_list_store_append (prefs_away_store, &iter); 1136 gtk_list_store_append (prefs_away_store, &iter);
1131 gtk_list_store_set(prefs_away_store, &iter, 1137 gtk_list_store_set(prefs_away_store, &iter,
1148 1154
1149 sw2 = gtk_scrolled_window_new(NULL, NULL); 1155 sw2 = gtk_scrolled_window_new(NULL, NULL);
1150 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw2), 1156 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw2),
1151 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); 1157 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
1152 gtk_box_pack_start(GTK_BOX(ret), sw2, TRUE, TRUE, 0); 1158 gtk_box_pack_start(GTK_BOX(ret), sw2, TRUE, TRUE, 0);
1153 1159
1154 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw2), away_text); 1160 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw2), away_text);
1155 GTK_LAYOUT(away_text)->hadjustment->step_increment = 10.0; 1161 GTK_LAYOUT(away_text)->hadjustment->step_increment = 10.0;
1156 GTK_LAYOUT(away_text)->vadjustment->step_increment = 10.0; 1162 GTK_LAYOUT(away_text)->vadjustment->step_increment = 10.0;
1157 gaim_setup_imhtml(away_text); 1163 gaim_setup_imhtml(away_text);
1158 gtk_imhtml_set_defaults(GTK_IMHTML(away_text), NULL, NULL, NULL); 1164 gtk_imhtml_set_defaults(GTK_IMHTML(away_text), NULL, NULL, NULL);
1176 1182
1177 button = pixbuf_button(_("_Edit"), "edit.png"); 1183 button = pixbuf_button(_("_Edit"), "edit.png");
1178 gtk_size_group_add_widget(sg, button); 1184 gtk_size_group_add_widget(sg, button);
1179 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(create_away_mess), event_view); 1185 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(create_away_mess), event_view);
1180 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); 1186 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
1181 1187
1182 gtk_widget_show_all(ret); 1188 gtk_widget_show_all(ret);
1183 return ret; 1189 return ret;
1184 } 1190 }
1185 1191
1186 GtkTreeIter *prefs_notebook_add_page(char *text, 1192 GtkTreeIter *prefs_notebook_add_page(char *text,
1187 GdkPixbuf *pixbuf, 1193 GdkPixbuf *pixbuf,
1188 GtkWidget *page, 1194 GtkWidget *page,
1189 GtkTreeIter *iter, 1195 GtkTreeIter *iter,
1190 GtkTreeIter *parent, 1196 GtkTreeIter *parent,
1191 int ind) { 1197 int ind) {
1192 GdkPixbuf *icon = NULL; 1198 GdkPixbuf *icon = NULL;
1193 1199
1194 if (pixbuf) 1200 if (pixbuf)
1195 icon = gdk_pixbuf_scale_simple (pixbuf, 18, 18, GDK_INTERP_BILINEAR); 1201 icon = gdk_pixbuf_scale_simple (pixbuf, 18, 18, GDK_INTERP_BILINEAR);
1196 1202
1197 gtk_tree_store_append (prefstree, iter, parent); 1203 gtk_tree_store_append (prefstree, iter, parent);
1198 gtk_tree_store_set (prefstree, iter, 0, icon, 1, text, 2, ind, -1); 1204 gtk_tree_store_set (prefstree, iter, 0, icon, 1, text, 2, ind, -1);
1199 1205
1200 if (pixbuf) 1206 if (pixbuf)
1201 g_object_unref(pixbuf); 1207 g_object_unref(pixbuf);
1202 if (icon) 1208 if (icon)
1203 g_object_unref(icon); 1209 g_object_unref(icon);
1204 gtk_notebook_append_page(GTK_NOTEBOOK(prefsnotebook), page, gtk_label_new(text)); 1210 gtk_notebook_append_page(GTK_NOTEBOOK(prefsnotebook), page, gtk_label_new(text));
1224 prefs_notebook_add_page(_("Sound Events"), NULL, sound_events_page(), &c, &p, a++); 1230 prefs_notebook_add_page(_("Sound Events"), NULL, sound_events_page(), &c, &p, a++);
1225 prefs_notebook_add_page(_("Away / Idle"), NULL, away_page(), &p, NULL, a++); 1231 prefs_notebook_add_page(_("Away / Idle"), NULL, away_page(), &p, NULL, a++);
1226 prefs_notebook_add_page(_("Away Messages"), NULL, away_message_page(), &c, &p, a++); 1232 prefs_notebook_add_page(_("Away Messages"), NULL, away_message_page(), &c, &p, a++);
1227 } 1233 }
1228 1234
1229 void show_prefs() 1235 void show_prefs()
1230 { 1236 {
1231 GtkWidget *vbox, *vbox2; 1237 GtkWidget *vbox, *vbox2;
1232 GtkWidget *hbox; 1238 GtkWidget *hbox;
1233 GtkWidget *frame; 1239 GtkWidget *frame;
1234 GtkWidget *tree_v; 1240 GtkWidget *tree_v;
1236 GtkCellRenderer *cell; 1242 GtkCellRenderer *cell;
1237 GtkTreeSelection *sel; 1243 GtkTreeSelection *sel;
1238 GtkWidget *notebook; 1244 GtkWidget *notebook;
1239 GtkWidget *sep; 1245 GtkWidget *sep;
1240 GtkWidget *button; 1246 GtkWidget *button;
1241 1247
1242 int r; 1248 int r;
1243 1249
1244 if (prefs) { 1250 if (prefs) {
1245 gtk_window_present(GTK_WINDOW(prefs)); 1251 gtk_window_present(GTK_WINDOW(prefs));
1246 return; 1252 return;
1265 default_away_new = default_away; 1271 default_away_new = default_away;
1266 fontsize_new = fontsize; 1272 fontsize_new = fontsize;
1267 web_browser_new = web_browser; 1273 web_browser_new = web_browser;
1268 proxytype_new = proxytype; 1274 proxytype_new = proxytype;
1269 g_snprintf(sound_cmd_new, sizeof(sound_cmd_new), "%s", sound_cmd); 1275 g_snprintf(sound_cmd_new, sizeof(sound_cmd_new), "%s", sound_cmd);
1270 g_snprintf(web_command_new, sizeof(web_command_new), "%s", 1276 g_snprintf(web_command_new, sizeof(web_command_new), "%s",
1271 web_command ? web_command : "xterm -e lynx %%s"); 1277 web_command ? web_command : "xterm -e lynx %%s");
1272 g_snprintf(fontface_new, sizeof(fontface_new), fontface); 1278 g_snprintf(fontface_new, sizeof(fontface_new), fontface);
1273 memcpy(&conv_size_new, &conv_size, sizeof(struct window_size)); 1279 memcpy(&conv_size_new, &conv_size, sizeof(struct window_size));
1274 memcpy(&buddy_chat_size_new, &buddy_chat_size, sizeof(struct window_size)); 1280 memcpy(&buddy_chat_size_new, &buddy_chat_size, sizeof(struct window_size));
1275 memcpy(&fgcolor_new, &fgcolor, sizeof(GdkColor)); 1281 memcpy(&fgcolor_new, &fgcolor, sizeof(GdkColor));
1276 memcpy(&bgcolor_new, &bgcolor, sizeof(GdkColor)); 1282 memcpy(&bgcolor_new, &bgcolor, sizeof(GdkColor));
1277 1283
1278 /* Create the window */ 1284 /* Create the window */
1279 prefs = gtk_window_new(GTK_WINDOW_TOPLEVEL); 1285 prefs = gtk_window_new(GTK_WINDOW_TOPLEVEL);
1280 gtk_window_set_wmclass(GTK_WINDOW(prefs), "preferences", "Gaim"); 1286 gtk_window_set_wmclass(GTK_WINDOW(prefs), "preferences", "Gaim");
1281 gtk_widget_realize(prefs); 1287 gtk_widget_realize(prefs);
1282 gtk_window_set_title(GTK_WINDOW(prefs), _("Gaim - Preferences")); 1288 gtk_window_set_title(GTK_WINDOW(prefs), _("Gaim - Preferences"));
1295 1301
1296 frame = gtk_frame_new (NULL); 1302 frame = gtk_frame_new (NULL);
1297 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); 1303 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
1298 gtk_box_pack_start (GTK_BOX (hbox), frame, FALSE, FALSE, 0); 1304 gtk_box_pack_start (GTK_BOX (hbox), frame, FALSE, FALSE, 0);
1299 gtk_widget_show (frame); 1305 gtk_widget_show (frame);
1300 1306
1301 /* The tree -- much inspired by the Gimp */ 1307 /* The tree -- much inspired by the Gimp */
1302 prefstree = gtk_tree_store_new (3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_INT); 1308 prefstree = gtk_tree_store_new (3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_INT);
1303 tree_v = gtk_tree_view_new_with_model (GTK_TREE_MODEL (prefstree)); 1309 tree_v = gtk_tree_view_new_with_model (GTK_TREE_MODEL (prefstree));
1304 gtk_container_add (GTK_CONTAINER (frame), tree_v); 1310 gtk_container_add (GTK_CONTAINER (frame), tree_v);
1305 1311
1306 gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (tree_v), FALSE); 1312 gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (tree_v), FALSE);
1307 gtk_widget_show(tree_v); 1313 gtk_widget_show(tree_v);
1308 /* icons */ 1314 /* icons */
1309 cell = gtk_cell_renderer_pixbuf_new (); 1315 cell = gtk_cell_renderer_pixbuf_new ();
1310 column = gtk_tree_view_column_new_with_attributes ("icons", cell, "pixbuf", 0, NULL); 1316 column = gtk_tree_view_column_new_with_attributes ("icons", cell, "pixbuf", 0, NULL);
1311 1317
1312 /* text */ 1318 /* text */
1313 cell = gtk_cell_renderer_text_new (); 1319 cell = gtk_cell_renderer_text_new ();
1314 column = gtk_tree_view_column_new_with_attributes ("text", cell, "text", 1, NULL); 1320 column = gtk_tree_view_column_new_with_attributes ("text", cell, "text", 1, NULL);
1315 1321
1316 gtk_tree_view_append_column (GTK_TREE_VIEW (tree_v), column); 1322 gtk_tree_view_append_column (GTK_TREE_VIEW (tree_v), column);
1317 1323
1318 /* The right side */ 1324 /* The right side */
1319 frame = gtk_frame_new (NULL); 1325 frame = gtk_frame_new (NULL);
1320 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); 1326 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
1321 gtk_box_pack_start (GTK_BOX (hbox), frame, TRUE, TRUE, 0); 1327 gtk_box_pack_start (GTK_BOX (hbox), frame, TRUE, TRUE, 0);
1322 gtk_widget_show (frame); 1328 gtk_widget_show (frame);
1323 1329
1324 vbox2 = gtk_vbox_new (FALSE, 4); 1330 vbox2 = gtk_vbox_new (FALSE, 4);
1325 gtk_container_add (GTK_CONTAINER (frame), vbox2); 1331 gtk_container_add (GTK_CONTAINER (frame), vbox2);
1326 gtk_widget_show (vbox2); 1332 gtk_widget_show (vbox2);
1327 1333
1328 frame = gtk_frame_new (NULL); 1334 frame = gtk_frame_new (NULL);
1329 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT); 1335 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT);
1330 gtk_box_pack_start (GTK_BOX (vbox2), frame, FALSE, TRUE, 0); 1336 gtk_box_pack_start (GTK_BOX (vbox2), frame, FALSE, TRUE, 0);
1331 gtk_widget_show (frame); 1337 gtk_widget_show (frame);
1332 1338
1333 hbox = gtk_hbox_new (FALSE, 4); 1339 hbox = gtk_hbox_new (FALSE, 4);
1334 gtk_container_set_border_width (GTK_CONTAINER (hbox), 4); 1340 gtk_container_set_border_width (GTK_CONTAINER (hbox), 4);
1335 gtk_container_add (GTK_CONTAINER (frame), hbox); 1341 gtk_container_add (GTK_CONTAINER (frame), hbox);
1336 gtk_widget_show (hbox); 1342 gtk_widget_show (hbox);
1337 1343
1338 preflabel = gtk_label_new(NULL); 1344 preflabel = gtk_label_new(NULL);
1339 gtk_box_pack_end (GTK_BOX (hbox), preflabel, FALSE, FALSE, 0); 1345 gtk_box_pack_end (GTK_BOX (hbox), preflabel, FALSE, FALSE, 0);
1340 gtk_widget_show (preflabel); 1346 gtk_widget_show (preflabel);
1341 1347
1342 /* The notebook */ 1348 /* The notebook */
1343 prefsnotebook = notebook = gtk_notebook_new (); 1349 prefsnotebook = notebook = gtk_notebook_new ();
1344 gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), FALSE); 1350 gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), FALSE);
1345 gtk_notebook_set_show_border (GTK_NOTEBOOK (notebook), FALSE); 1351 gtk_notebook_set_show_border (GTK_NOTEBOOK (notebook), FALSE);
1346 gtk_box_pack_start (GTK_BOX (vbox2), notebook, FALSE, FALSE, 0); 1352 gtk_box_pack_start (GTK_BOX (vbox2), notebook, FALSE, FALSE, 0);
1347 1353
1348 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_v)); 1354 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_v));
1349 g_signal_connect (G_OBJECT (sel), "changed", 1355 g_signal_connect (G_OBJECT (sel), "changed",
1350 G_CALLBACK (pref_nb_select), 1356 G_CALLBACK (pref_nb_select),
1351 notebook); 1357 notebook);
1352 gtk_widget_show(notebook); 1358 gtk_widget_show(notebook);
1353 sep = gtk_hseparator_new(); 1359 sep = gtk_hseparator_new();
1354 gtk_widget_show(sep); 1360 gtk_widget_show(sep);
1355 gtk_box_pack_start (GTK_BOX (vbox), sep, FALSE, FALSE, 0); 1361 gtk_box_pack_start (GTK_BOX (vbox), sep, FALSE, FALSE, 0);
1356 1362
1357 /* The buttons to press! */ 1363 /* The buttons to press! */
1358 hbox = gtk_hbox_new (FALSE, 6); 1364 hbox = gtk_hbox_new (FALSE, 6);
1359 gtk_container_set_border_width (GTK_CONTAINER (hbox), 6); 1365 gtk_container_set_border_width (GTK_CONTAINER (hbox), 6);
1360 gtk_container_add (GTK_CONTAINER(vbox), hbox); 1366 gtk_container_add (GTK_CONTAINER(vbox), hbox);
1361 gtk_widget_show (hbox); 1367 gtk_widget_show (hbox);
1362 1368
1363 button = gtk_button_new_from_stock (GTK_STOCK_OK); 1369 button = gtk_button_new_from_stock (GTK_STOCK_OK);
1364 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(ok_cb), prefs); 1370 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(ok_cb), prefs);
1365 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); 1371 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
1366 gtk_widget_show(button); 1372 gtk_widget_show(button);
1367 1373
1368 button = gtk_button_new_from_stock (GTK_STOCK_APPLY); 1374 button = gtk_button_new_from_stock (GTK_STOCK_APPLY);
1369 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(apply_cb), prefs); 1375 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(apply_cb), prefs);
1370 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); 1376 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
1371 gtk_widget_show(button); 1377 gtk_widget_show(button);
1372 1378
1373 button = gtk_button_new_from_stock (GTK_STOCK_CANCEL); 1379 button = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
1374 gtk_signal_connect_object(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy), prefs); 1380 gtk_signal_connect_object(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy), prefs);
1375 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); 1381 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
1376 gtk_widget_show(button); 1382 gtk_widget_show(button);
1377 1383
1378 prefs_notebook_init(); 1384 prefs_notebook_init();
1379 1385
1380 gtk_tree_view_expand_all (GTK_TREE_VIEW(tree_v)); 1386 gtk_tree_view_expand_all (GTK_TREE_VIEW(tree_v));
1381 gtk_widget_show(prefs); 1387 gtk_widget_show(prefs);
1382 } 1388 }
1383 1389
1384 static gint debug_delete(GtkWidget *w, GdkEvent *event, void *dummy) 1390 static gint debug_delete(GtkWidget *w, GdkEvent *event, void *dummy)
1385 { 1391 {
1386 if (debugbutton) 1392 if (debugbutton)
1387 gtk_button_clicked(GTK_BUTTON(debugbutton)); 1393 gtk_button_clicked(GTK_BUTTON(debugbutton));
1388 if (misc_options & OPT_MISC_DEBUG) { 1394 if (misc_options & OPT_MISC_DEBUG) {
1395 misc_options_new ^= OPT_MISC_DEBUG;
1389 misc_options ^= OPT_MISC_DEBUG; 1396 misc_options ^= OPT_MISC_DEBUG;
1390 save_prefs(); 1397 save_prefs();
1391 } 1398 }
1392 g_free(dw); 1399 g_free(dw);
1393 dw = NULL; 1400 dw = NULL;
1462 } 1469 }
1463 if (opt_debug) 1470 if (opt_debug)
1464 g_print("%s", s); 1471 g_print("%s", s);
1465 g_free(s); 1472 g_free(s);
1466 } 1473 }
1467 1474
1468 1475
1469 1476
1470 1477
1471 1478
1472 1479
1473 void set_option(GtkWidget *w, int *option) 1480 void set_option(GtkWidget *w, int *option)
1474 { 1481 {
1475 *option = !(*option); 1482 *option = !(*option);
1476 } 1483 }
1477 1484
1478 static void set_misc_option(GtkWidget *w, int option) 1485 static void set_misc_option(GtkWidget *w, int option)
1479 { 1486 {
1480 misc_options ^= option; 1487 misc_options_new ^= option;
1481 1488
1482 if (option == OPT_MISC_DEBUG) 1489 /* gross hack because we don't want to save all prefs just because
1490 * we enabled the debug window. then again, what about the debug
1491 * window _isn't_ an ugly hack? */
1492
1493 if (option == OPT_MISC_DEBUG) {
1494 misc_options ^= option;
1495 save_prefs();
1483 show_debug(); 1496 show_debug();
1484 1497 }
1485 save_prefs();
1486 } 1498 }
1487 1499
1488 1500
1489 /* Functions for each _options variable that sees what's changed, and makes 1501 /* Functions for each _options variable that sees what's changed, and makes
1490 * effective those changes that take place immediately (UI stuff) */ 1502 * effective those changes that take place immediately (UI stuff) */
1491 static void set_misc_options() 1503 static void set_misc_options()
1492 { 1504 {
1493 1505
1494 /* int option = misc_options ^ misc_options_new; */ 1506 /* int option = misc_options ^ misc_options_new; */
1495 misc_options = misc_options_new; 1507 misc_options = misc_options_new;
1496 1508
1497 } 1509 }
1498 1510
1499 static void set_logging_options() 1511 static void set_logging_options()
1500 { 1512 {
1501 int option = logging_options ^ logging_options_new; 1513 int option = logging_options ^ logging_options_new;
1502 logging_options = logging_options_new; 1514 logging_options = logging_options_new;
1503 1515
1504 if (option & OPT_LOG_CONVOS || option & OPT_LOG_CHATS) 1516 if (option & OPT_LOG_CONVOS || option & OPT_LOG_CHATS)
1505 update_log_convs(); 1517 update_log_convs();
1506 1518
1507 } 1519 }
1508 1520
1511 int option = blist_options ^ blist_options_new; 1523 int option = blist_options ^ blist_options_new;
1512 blist_options = blist_options_new; 1524 blist_options = blist_options_new;
1513 1525
1514 if (!blist) 1526 if (!blist)
1515 return; 1527 return;
1516 1528
1517 if (option & OPT_BLIST_BOTTOM_TAB) 1529 if (option & OPT_BLIST_BOTTOM_TAB)
1518 set_blist_tab(); 1530 set_blist_tab();
1519 1531
1520 if (option & OPT_BLIST_NO_BUTTONS) 1532 if (option & OPT_BLIST_NO_BUTTONS)
1521 build_imchat_box(!(blist_options & OPT_BLIST_NO_BUTTONS)); 1533 build_imchat_box(!(blist_options & OPT_BLIST_NO_BUTTONS));
1539 1551
1540 static void set_convo_options() 1552 static void set_convo_options()
1541 { 1553 {
1542 int option = convo_options ^ convo_options_new; 1554 int option = convo_options ^ convo_options_new;
1543 convo_options = convo_options_new; 1555 convo_options = convo_options_new;
1544 1556
1545 if (option & OPT_CONVO_SHOW_SMILEY) 1557 if (option & OPT_CONVO_SHOW_SMILEY)
1546 toggle_smileys(); 1558 toggle_smileys();
1547 1559
1548 if (option & OPT_CONVO_SHOW_TIME) 1560 if (option & OPT_CONVO_SHOW_TIME)
1549 toggle_timestamps(); 1561 toggle_timestamps();
1550 1562
1551 if (option & OPT_CONVO_CHECK_SPELLING) 1563 if (option & OPT_CONVO_CHECK_SPELLING)
1552 toggle_spellchk(); 1564 toggle_spellchk();
1553 1565
1554 if (option & OPT_CONVO_COMBINE) { 1566 if (option & OPT_CONVO_COMBINE) {
1555 /* (OPT_IM_SIDE_TAB | OPT_IM_BR_TAB) == (OPT_CHAT_SIDE_TAB | OPT_CHAT_BR_TAB) */ 1567 /* (OPT_IM_SIDE_TAB | OPT_IM_BR_TAB) == (OPT_CHAT_SIDE_TAB | OPT_CHAT_BR_TAB) */
1556 1568
1557 } 1569 }
1558 1570
1559 } 1571 }
1560 1572
1561 static void set_im_options() 1573 static void set_im_options()
1562 { 1574 {
1563 int option = im_options ^ im_options_new; 1575 int option = im_options ^ im_options_new;
1564 im_options = im_options_new; 1576 im_options = im_options_new;
1565 1577
1566 if (option & OPT_IM_ONE_WINDOW) 1578 if (option & OPT_IM_ONE_WINDOW)
1567 im_tabize(); 1579 im_tabize();
1568 1580
1569 if (option & OPT_IM_SIDE_TAB || option & OPT_IM_BR_TAB) 1581 if (option & OPT_IM_SIDE_TAB || option & OPT_IM_BR_TAB)
1570 update_im_tabs(); 1582 update_im_tabs();
1575 if (option & OPT_IM_ALIAS_TAB) 1587 if (option & OPT_IM_ALIAS_TAB)
1576 set_convo_titles(); 1588 set_convo_titles();
1577 1589
1578 if (option & OPT_IM_NO_ANIMATION) 1590 if (option & OPT_IM_NO_ANIMATION)
1579 set_anim(); 1591 set_anim();
1580 1592
1581 if (option & OPT_IM_BUTTON_TEXT || option & OPT_IM_BUTTON_XPM) 1593 if (option & OPT_IM_BUTTON_TEXT || option & OPT_IM_BUTTON_XPM)
1582 update_im_button_pix(); 1594 update_im_button_pix();
1583 } 1595 }
1584 1596
1585 static void set_chat_options() 1597 static void set_chat_options()
1586 { 1598 {
1587 int option = chat_options ^ chat_options_new; 1599 int option = chat_options ^ chat_options_new;
1588 chat_options = chat_options_new; 1600 chat_options = chat_options_new;
1589 1601
1590 if (option & OPT_CHAT_ONE_WINDOW) 1602 if (option & OPT_CHAT_ONE_WINDOW)
1591 chat_tabize(); 1603 chat_tabize();
1592 1604
1593 if (option & OPT_CHAT_BUTTON_TEXT || option & OPT_CHAT_BUTTON_XPM) 1605 if (option & OPT_CHAT_BUTTON_TEXT || option & OPT_CHAT_BUTTON_XPM)
1594 update_chat_button_pix(); 1606 update_chat_button_pix();
1595 } 1607 }
1596 1608
1597 void set_sound_options() 1609 void set_sound_options()
1598 { 1610 {
1599 /* int option = sound_options ^ sound_options_new; */ 1611 /* int option = sound_options ^ sound_options_new; */
1600 sound_options = sound_options_new; 1612 sound_options = sound_options_new;
1601 1613
1602 } 1614 }
1603 1615
1604 static void set_font_options() 1616 static void set_font_options()
1605 { 1617 {
1606 /* int option = font_options ^ font_options_new; */ 1618 /* int option = font_options ^ font_options_new; */
1607 font_options = font_options_new; 1619 font_options = font_options_new;
1608 1620
1609 update_font_buttons(); 1621 update_font_buttons();
1610 } 1622 }
1611 1623
1612 static void set_away_options() 1624 static void set_away_options()
1613 { 1625 {
1614 int option = away_options ^ away_options_new; 1626 int option = away_options ^ away_options_new;
1615 away_options = away_options_new; 1627 away_options = away_options_new;
1616 1628
1617 if (option & OPT_AWAY_QUEUE) 1629 if (option & OPT_AWAY_QUEUE)
1618 toggle_away_queue(); 1630 toggle_away_queue();
1619 } 1631 }
1631 gtk_box_pack_start(GTK_BOX(page), button, FALSE, FALSE, 0); 1643 gtk_box_pack_start(GTK_BOX(page), button, FALSE, FALSE, 0);
1632 gtk_object_set_user_data(GTK_OBJECT(button), options); 1644 gtk_object_set_user_data(GTK_OBJECT(button), options);
1633 1645
1634 /* So that the debug window happens immediately 1646 /* So that the debug window happens immediately
1635 * I don't think it should be "preferences," anyway. */ 1647 * I don't think it should be "preferences," anyway. */
1636 if (options == &misc_options && option == OPT_MISC_DEBUG) 1648 if (options == &misc_options_new && option == OPT_MISC_DEBUG)
1637 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(set_misc_option), 1649 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(set_misc_option),
1638 (int *)option); 1650 (int *)option);
1639 else 1651 else
1640 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_option), 1652 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_option),
1641 (int *)option); 1653 (int *)option);
1642 1654
1643 gtk_widget_show(button); 1655 gtk_widget_show(button);
1644 1656
1645 return button; 1657 return button;
1646 } 1658 }
1647 1659
1689 1701
1690 void apply_color_dlg(GtkWidget *w, gpointer d) 1702 void apply_color_dlg(GtkWidget *w, gpointer d)
1691 { 1703 {
1692 if ((int)d == 1) { 1704 if ((int)d == 1) {
1693 gtk_color_selection_get_current_color(GTK_COLOR_SELECTION 1705 gtk_color_selection_get_current_color(GTK_COLOR_SELECTION
1694 (GTK_COLOR_SELECTION_DIALOG(fgcseld)->colorsel), 1706 (GTK_COLOR_SELECTION_DIALOG(fgcseld)->colorsel),
1695 &fgcolor_new); 1707 &fgcolor_new);
1696 destroy_colorsel(NULL, (void *)1); 1708 destroy_colorsel(NULL, (void *)1);
1697 update_color(NULL, pref_fg_picture); 1709 update_color(NULL, pref_fg_picture);
1698 } else { 1710 } else {
1699 gtk_color_selection_get_current_color(GTK_COLOR_SELECTION 1711 gtk_color_selection_get_current_color(GTK_COLOR_SELECTION
1700 (GTK_COLOR_SELECTION_DIALOG(bgcseld)->colorsel), 1712 (GTK_COLOR_SELECTION_DIALOG(bgcseld)->colorsel),
1701 &bgcolor_new); 1713 &bgcolor_new);
1702 destroy_colorsel(NULL, (void *)0); 1714 destroy_colorsel(NULL, (void *)0);
1703 update_color(NULL, pref_bg_picture); 1715 update_color(NULL, pref_bg_picture);
1704 } 1716 }
1705 } 1717 }
1707 void update_color(GtkWidget *w, GtkWidget *pic) 1719 void update_color(GtkWidget *w, GtkWidget *pic)
1708 { 1720 {
1709 GdkColor c; 1721 GdkColor c;
1710 GtkStyle *style; 1722 GtkStyle *style;
1711 c.pixel = 0; 1723 c.pixel = 0;
1712 1724
1713 if (pic == pref_fg_picture) { 1725 if (pic == pref_fg_picture) {
1714 if (font_options_new & OPT_FONT_FGCOL) { 1726 if (font_options_new & OPT_FONT_FGCOL) {
1715 c.red = fgcolor_new.red; 1727 c.red = fgcolor_new.red;
1716 c.blue = fgcolor_new.blue; 1728 c.blue = fgcolor_new.blue;
1717 c.green = fgcolor_new.green; 1729 c.green = fgcolor_new.green;
1747 else if ((int)i >= length) 1759 else if ((int)i >= length)
1748 default_away_new = g_slist_nth_data(away_messages, length - 1); 1760 default_away_new = g_slist_nth_data(away_messages, length - 1);
1749 else 1761 else
1750 default_away_new = g_slist_nth_data(away_messages, (int)i); 1762 default_away_new = g_slist_nth_data(away_messages, (int)i);
1751 } 1763 }
1752 1764
1753 static void update_spin_value(GtkWidget *w, GtkWidget *spin) 1765 static void update_spin_value(GtkWidget *w, GtkWidget *spin)
1754 { 1766 {
1755 int *value = gtk_object_get_user_data(GTK_OBJECT(spin)); 1767 int *value = gtk_object_get_user_data(GTK_OBJECT(spin));
1756 *value = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin)); 1768 *value = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin));
1757 } 1769 }
1776 gtk_widget_set_usize(spin, 50, -1); 1788 gtk_widget_set_usize(spin, 50, -1);
1777 gtk_box_pack_start(GTK_BOX(hbox), spin, FALSE, FALSE, 0); 1789 gtk_box_pack_start(GTK_BOX(hbox), spin, FALSE, FALSE, 0);
1778 gtk_signal_connect(GTK_OBJECT(adjust), "value-changed", 1790 gtk_signal_connect(GTK_OBJECT(adjust), "value-changed",
1779 GTK_SIGNAL_FUNC(update_spin_value), GTK_WIDGET(spin)); 1791 GTK_SIGNAL_FUNC(update_spin_value), GTK_WIDGET(spin));
1780 gtk_widget_show(spin); 1792 gtk_widget_show(spin);
1781 1793
1782 gtk_label_set_mnemonic_widget(GTK_LABEL(label), spin); 1794 gtk_label_set_mnemonic_widget(GTK_LABEL(label), spin);
1783 1795
1784 if (sg) { 1796 if (sg) {
1785 gtk_size_group_add_widget(sg, label); 1797 gtk_size_group_add_widget(sg, label);
1786 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); 1798 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
1787 1799
1788 } 1800 }
1789 return label; 1801 return label;
1790 } 1802 }
1791 1803
1792 void dropdown_set(GtkObject *w, int *option) 1804 void dropdown_set(GtkObject *w, int *option)
1793 { 1805 {
1794 int opt = (int)gtk_object_get_user_data(w); 1806 int opt = (int)gtk_object_get_user_data(w);
1795 int clear = (int)gtk_object_get_data(w, "clear"); 1807 int clear = (int)gtk_object_get_data(w, "clear");
1796 1808
1797 if (clear != -1) { 1809 if (clear != -1) {
1798 *option = *option & ~clear; 1810 *option = *option & ~clear;
1799 *option = *option | opt; 1811 *option = *option | opt;
1800 } else { 1812 } else {
1801 debug_printf("HELLO %d\n", opt); 1813 debug_printf("HELLO %d\n", opt);
1802 *option = opt; 1814 *option = opt;
1803 } 1815 }
1804 1816
1805 if (option == &proxytype_new) { 1817 if (option == &proxytype_new) {
1806 if (opt == PROXY_NONE) 1818 if (opt == PROXY_NONE)
1807 gtk_widget_set_sensitive(prefs_proxy_frame, FALSE); 1819 gtk_widget_set_sensitive(prefs_proxy_frame, FALSE);
1808 else 1820 else
1809 gtk_widget_set_sensitive(prefs_proxy_frame, TRUE); 1821 gtk_widget_set_sensitive(prefs_proxy_frame, TRUE);
1816 if (opt == OPT_SOUND_CMD) 1828 if (opt == OPT_SOUND_CMD)
1817 gtk_widget_set_sensitive(sndcmd, TRUE); 1829 gtk_widget_set_sensitive(sndcmd, TRUE);
1818 else 1830 else
1819 gtk_widget_set_sensitive(sndcmd, FALSE); 1831 gtk_widget_set_sensitive(sndcmd, FALSE);
1820 } 1832 }
1821 1833
1822 } 1834 }
1823 1835
1824 static GtkWidget *gaim_dropdown(GtkWidget *box, const gchar *title, int *option, int clear, ...) 1836 static GtkWidget *gaim_dropdown(GtkWidget *box, const gchar *title, int *option, int clear, ...)
1825 { 1837 {
1826 va_list menuitems; 1838 va_list menuitems;
1827 GtkWidget *dropdown, *opt, *menu; 1839 GtkWidget *dropdown, *opt, *menu;
1828 GtkWidget *label; 1840 GtkWidget *label;
1829 gchar *text; 1841 gchar *text;
1842 va_start(menuitems, clear); 1854 va_start(menuitems, clear);
1843 text = va_arg(menuitems, gchar *); 1855 text = va_arg(menuitems, gchar *);
1844 1856
1845 if (!text) 1857 if (!text)
1846 return NULL; 1858 return NULL;
1847 1859
1848 dropdown = gtk_option_menu_new(); 1860 dropdown = gtk_option_menu_new();
1849 menu = gtk_menu_new(); 1861 menu = gtk_menu_new();
1850 1862
1851 gtk_label_set_mnemonic_widget(GTK_LABEL(label), dropdown); 1863 gtk_label_set_mnemonic_widget(GTK_LABEL(label), dropdown);
1852 1864
1853 while (text) { 1865 while (text) {
1854 value = va_arg(menuitems, int); 1866 value = va_arg(menuitems, int);
1855 opt = gtk_menu_item_new_with_label(text); 1867 opt = gtk_menu_item_new_with_label(text);
1856 gtk_object_set_user_data(GTK_OBJECT(opt), (void *)value); 1868 gtk_object_set_user_data(GTK_OBJECT(opt), (void *)value);
1857 gtk_object_set_data(GTK_OBJECT(opt), "clear", (void *)clear); 1869 gtk_object_set_data(GTK_OBJECT(opt), "clear", (void *)clear);
1867 o++; 1879 o++;
1868 } 1880 }
1869 1881
1870 va_end(menuitems); 1882 va_end(menuitems);
1871 1883
1872 gtk_option_menu_set_menu(GTK_OPTION_MENU(dropdown), menu); 1884 gtk_option_menu_set_menu(GTK_OPTION_MENU(dropdown), menu);
1873 gtk_box_pack_start(GTK_BOX(hbox), dropdown, FALSE, FALSE, 0); 1885 gtk_box_pack_start(GTK_BOX(hbox), dropdown, FALSE, FALSE, 0);
1874 gtk_widget_show(dropdown); 1886 gtk_widget_show(dropdown);
1875 return label; 1887 return label;
1876 } 1888 }
1877 1889
1878 static GtkWidget *show_color_pref(GtkWidget *box, gboolean fgc) 1890 static GtkWidget *show_color_pref(GtkWidget *box, gboolean fgc)
1879 { 1891 {
1880 /* more stuff stolen from X-Chat */ 1892 /* more stuff stolen from X-Chat */
1881 GtkWidget *swid; 1893 GtkWidget *swid;
1882 GdkColor c; 1894 GdkColor c;
1921 char *fontname; 1933 char *fontname;
1922 1934
1923 fontname = g_strdup(gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(f))); 1935 fontname = g_strdup(gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(f)));
1924 destroy_fontsel(0, 0); 1936 destroy_fontsel(0, 0);
1925 1937
1926 while(fontname[i] && !isdigit(fontname[i]) && i < sizeof(fontface_new)) { 1938 while(fontname[i] && !isdigit(fontname[i]) && i < sizeof(fontface_new)) {
1927 fontface_new[i] = fontname[i]; 1939 fontface_new[i] = fontname[i];
1928 i++; 1940 i++;
1929 } 1941 }
1930 fontface_new[i] = 0; 1942 fontface_new[i] = 0;
1931 debug_printf("fontface_new: %s\n", fontface_new); 1943 debug_printf("fontface_new: %s\n", fontface_new);
1932 g_free(fontname); 1944 g_free(fontname);
1933 } 1945 }
1946