comparison src/dialogs.c @ 2372:2927c2c26fe6

[gaim-migrate @ 2385] reformatting. nothing else. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Thu, 27 Sep 2001 19:17:11 +0000
parents 25e7c2a68ed2
children 466b29d35b85
comparison
equal deleted inserted replaced
2371:db02399a9ad7 2372:2927c2c26fe6
30 #include <sys/stat.h> 30 #include <sys/stat.h>
31 #include <fcntl.h> 31 #include <fcntl.h>
32 #include <ctype.h> 32 #include <ctype.h>
33 #include <sys/socket.h> 33 #include <sys/socket.h>
34 #include <netdb.h> 34 #include <netdb.h>
35 #include <netinet/in.h> 35 #include <netinet/in.h>
36 #include <unistd.h> 36 #include <unistd.h>
37 #include <netinet/in.h> 37 #include <netinet/in.h>
38 #include <arpa/inet.h> 38 #include <arpa/inet.h>
39 #include <errno.h> 39 #include <errno.h>
40 40
79 79
80 int smiley_array[FACE_TOTAL]; 80 int smiley_array[FACE_TOTAL];
81 GdkColor bgcolor; 81 GdkColor bgcolor;
82 GdkColor fgcolor; 82 GdkColor fgcolor;
83 83
84 static GtkWidget *imdialog = NULL; /*I only want ONE of these :) */ 84 static GtkWidget *imdialog = NULL; /*I only want ONE of these :) */
85 static GtkWidget *infodialog = NULL; 85 static GtkWidget *infodialog = NULL;
86 static GList *dialogwindows = NULL; 86 static GList *dialogwindows = NULL;
87 static GtkWidget *exportdialog, *importdialog; 87 static GtkWidget *exportdialog, *importdialog;
88 static GtkWidget *icondlg; 88 static GtkWidget *icondlg;
89 static GtkWidget *aliasdlg = NULL; 89 static GtkWidget *aliasdlg = NULL;
91 static GtkWidget *aliasname = NULL; 91 static GtkWidget *aliasname = NULL;
92 static GtkWidget *rename_dialog = NULL; 92 static GtkWidget *rename_dialog = NULL;
93 static GtkWidget *rename_bud_dialog = NULL; 93 static GtkWidget *rename_bud_dialog = NULL;
94 94
95 struct create_away { 95 struct create_away {
96 GtkWidget *window; 96 GtkWidget *window;
97 GtkWidget *entry; 97 GtkWidget *entry;
98 GtkWidget *text; 98 GtkWidget *text;
99 struct away_message *mess; 99 struct away_message *mess;
100 }; 100 };
101 101
102 102
103 struct warning { 103 struct warning {
104 GtkWidget *window; 104 GtkWidget *window;
105 GtkWidget *anon; 105 GtkWidget *anon;
106 char *who; 106 char *who;
107 struct gaim_connection *gc; 107 struct gaim_connection *gc;
108 }; 108 };
109 109
110 struct addbuddy { 110 struct addbuddy {
111 GtkWidget *window; 111 GtkWidget *window;
112 GtkWidget *combo; 112 GtkWidget *combo;
113 GtkWidget *entry; 113 GtkWidget *entry;
114 GtkWidget *entry_for_alias; 114 GtkWidget *entry_for_alias;
115 struct gaim_connection *gc; 115 struct gaim_connection *gc;
116 }; 116 };
117 117
118 struct addperm { 118 struct addperm {
119 GtkWidget *window; 119 GtkWidget *window;
120 GtkWidget *entry; 120 GtkWidget *entry;
121 struct gaim_connection *gc; 121 struct gaim_connection *gc;
122 gboolean permit; 122 gboolean permit;
123 }; 123 };
124 124
125 struct addbp { 125 struct addbp {
126 GtkWidget *window; 126 GtkWidget *window;
127 GtkWidget *nameentry; 127 GtkWidget *nameentry;
128 GtkWidget *messentry; 128 GtkWidget *messentry;
129 GtkWidget *commentry; 129 GtkWidget *commentry;
130 GtkWidget *command; 130 GtkWidget *command;
131 GtkWidget *sendim; 131 GtkWidget *sendim;
132 GtkWidget *openwindow; 132 GtkWidget *openwindow;
133 GtkWidget *p_signon; 133 GtkWidget *p_signon;
224 static gint delete_event_dialog(GtkWidget *w, GdkEventAny *e, struct conversation *c) 224 static gint delete_event_dialog(GtkWidget *w, GdkEventAny *e, struct conversation *c)
225 { 225 {
226 gchar *object_data; 226 gchar *object_data;
227 object_data = gtk_object_get_user_data(GTK_OBJECT(w)); 227 object_data = gtk_object_get_user_data(GTK_OBJECT(w));
228 228
229 if (GTK_IS_COLOR_SELECTION_DIALOG(w)) 229 if (GTK_IS_COLOR_SELECTION_DIALOG(w)) {
230 {
231 set_state_lock(1); 230 set_state_lock(1);
232 if (w == c->fg_color_dialog) { 231 if (w == c->fg_color_dialog) {
233 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(c->fgcolorbtn), FALSE); 232 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(c->fgcolorbtn), FALSE);
234 c->fg_color_dialog = NULL; 233 c->fg_color_dialog = NULL;
235 } else { 234 } else {
236 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(c->bgcolorbtn), FALSE); 235 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(c->bgcolorbtn), FALSE);
237 c->bg_color_dialog = NULL; 236 c->bg_color_dialog = NULL;
238 } 237 }
239 set_state_lock(0); 238 set_state_lock(0);
240 } 239 } else if (GTK_IS_FONT_SELECTION_DIALOG(w)) {
241 else if (GTK_IS_FONT_SELECTION_DIALOG(w))
242 {
243 set_state_lock(1); 240 set_state_lock(1);
244 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(c->font), FALSE); 241 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(c->font), FALSE);
245 set_state_lock(0); 242 set_state_lock(0);
246 c->font_dialog = NULL; 243 c->font_dialog = NULL;
247 } 244 } else if (!g_strcasecmp(object_data, "smiley dialog")) {
248 else if (!g_strcasecmp(object_data, "smiley dialog"))
249 {
250 set_state_lock(1); 245 set_state_lock(1);
251 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(c->smiley), FALSE); 246 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(c->smiley), FALSE);
252 set_state_lock(0); 247 set_state_lock(0);
253 c->smiley_dialog = NULL; 248 c->smiley_dialog = NULL;
254 } 249 } else if (!g_strcasecmp(object_data, "log dialog")) {
255 else if (!g_strcasecmp(object_data, "log dialog"))
256 {
257 set_state_lock(1); 250 set_state_lock(1);
258 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(c->wood), FALSE); 251 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(c->wood), FALSE);
259 set_state_lock(0); 252 set_state_lock(0);
260 c->log_dialog = NULL; 253 c->log_dialog = NULL;
261 } 254 }
262 255
263 dialogwindows = g_list_remove(dialogwindows, w); 256 dialogwindows = g_list_remove(dialogwindows, w);
264 gtk_widget_destroy(w); 257 gtk_widget_destroy(w);
265 258
266 return FALSE; 259 return FALSE;
267 } 260 }
268 261
269 static void destroy_dialog(GtkWidget *w, GtkWidget *w2) 262 static void destroy_dialog(GtkWidget *w, GtkWidget *w2)
270 { 263 {
271 GtkWidget *dest; 264 GtkWidget *dest;
272 265
273 if (!GTK_IS_WIDGET(w2)) 266 if (!GTK_IS_WIDGET(w2))
274 dest = w; 267 dest = w;
275 else 268 else
276 dest = w2; 269 dest = w2;
277 270
278 if (dest == imdialog) 271 if (dest == imdialog)
279 imdialog = NULL; 272 imdialog = NULL;
280 273
281 if (dest == infodialog) 274 if (dest == infodialog)
282 infodialog = NULL; 275 infodialog = NULL;
283 276
296 aliasname = NULL; 289 aliasname = NULL;
297 } 290 }
298 291
299 if (dest == rename_dialog) 292 if (dest == rename_dialog)
300 rename_dialog = NULL; 293 rename_dialog = NULL;
301 294
302 if (dest == rename_bud_dialog) 295 if (dest == rename_bud_dialog)
303 rename_bud_dialog = NULL; 296 rename_bud_dialog = NULL;
304 297
305 dialogwindows = g_list_remove(dialogwindows, dest); 298 dialogwindows = g_list_remove(dialogwindows, dest);
306 gtk_widget_destroy(dest); 299 gtk_widget_destroy(dest);
307 300
308 } 301 }
309 302
310 303
311 void destroy_all_dialogs() 304 void destroy_all_dialogs()
312 { 305 {
313 GList *d = dialogwindows; 306 GList *d = dialogwindows;
314 307
315 while(d) { 308 while (d) {
316 destroy_dialog(NULL, d->data); 309 destroy_dialog(NULL, d->data);
317 d = d->next; 310 d = d->next;
318 } 311 }
319 312
320 g_list_free(dialogwindows); 313 g_list_free(dialogwindows);
321 dialogwindows = NULL; 314 dialogwindows = NULL;
322 315
323 if (awaymessage) 316 if (awaymessage)
324 do_im_back(NULL, NULL); 317 do_im_back(NULL, NULL);
325 318
326 if (imdialog) { 319 if (imdialog) {
327 destroy_dialog(NULL, imdialog); 320 destroy_dialog(NULL, imdialog);
328 imdialog = NULL; 321 imdialog = NULL;
329 } 322 }
330 323
331 if (infodialog) { 324 if (infodialog) {
332 destroy_dialog(NULL, infodialog); 325 destroy_dialog(NULL, infodialog);
333 infodialog = NULL; 326 infodialog = NULL;
334 } 327 }
335 328
336 if (exportdialog) { 329 if (exportdialog) {
337 destroy_dialog(NULL, exportdialog); 330 destroy_dialog(NULL, exportdialog);
338 exportdialog = NULL; 331 exportdialog = NULL;
339 } 332 }
340 333
341 if (importdialog) { 334 if (importdialog) {
342 destroy_dialog(NULL, importdialog); 335 destroy_dialog(NULL, importdialog);
343 importdialog = NULL; 336 importdialog = NULL;
344 } 337 }
345 338
346 if (icondlg) { 339 if (icondlg) {
347 destroy_dialog(NULL, icondlg); 340 destroy_dialog(NULL, icondlg);
348 icondlg = NULL; 341 icondlg = NULL;
349 } 342 }
350 } 343 }
351 344
352 static void do_warn(GtkWidget *widget, struct warning *w) 345 static void do_warn(GtkWidget *widget, struct warning *w)
353 { 346 {
354 serv_warn(w->gc, w->who, (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w->anon))) ? 347 serv_warn(w->gc, w->who, (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w->anon))) ? 1 : 0);
355 1 : 0); 348
356 349 destroy_dialog(NULL, w->window);
357 destroy_dialog(NULL, w->window);
358 } 350 }
359 351
360 static void free_warn_data(GtkObject *obj, struct warning *w) 352 static void free_warn_data(GtkObject *obj, struct warning *w)
361 { 353 {
362 g_free(w); 354 g_free(w);
366 { 358 {
367 GtkWidget *cancel; 359 GtkWidget *cancel;
368 GtkWidget *warn; 360 GtkWidget *warn;
369 GtkWidget *label; 361 GtkWidget *label;
370 GtkWidget *vbox; 362 GtkWidget *vbox;
371 GtkWidget *bbox; 363 GtkWidget *bbox;
372 GtkWidget *frame; 364 GtkWidget *frame;
373 GtkWidget *fbox; 365 GtkWidget *fbox;
374 char buf[128]; 366 char buf[128];
375 367
376 struct warning *w = g_new0(struct warning, 1); 368 struct warning *w = g_new0(struct warning, 1);
377 w->who = who; 369 w->who = who;
378 w->gc = gc; 370 w->gc = gc;
379 371
380 w->window = gtk_window_new(GTK_WINDOW_DIALOG); 372 w->window = gtk_window_new(GTK_WINDOW_DIALOG);
381 dialogwindows = g_list_prepend(dialogwindows, w->window); 373 dialogwindows = g_list_prepend(dialogwindows, w->window);
382 gtk_window_set_wmclass(GTK_WINDOW(w->window), "warning", "Gaim"); 374 gtk_window_set_wmclass(GTK_WINDOW(w->window), "warning", "Gaim");
383 gtk_window_set_policy(GTK_WINDOW(w->window), FALSE, FALSE, TRUE); 375 gtk_window_set_policy(GTK_WINDOW(w->window), FALSE, FALSE, TRUE);
384 gtk_window_set_title(GTK_WINDOW(w->window), _("Gaim - Warn user?")); 376 gtk_window_set_title(GTK_WINDOW(w->window), _("Gaim - Warn user?"));
385 gtk_container_set_border_width(GTK_CONTAINER(w->window), 5); 377 gtk_container_set_border_width(GTK_CONTAINER(w->window), 5);
386 gtk_signal_connect(GTK_OBJECT(w->window), "delete_event", 378 gtk_signal_connect(GTK_OBJECT(w->window), "delete_event",
387 GTK_SIGNAL_FUNC(destroy_dialog), w->window); 379 GTK_SIGNAL_FUNC(destroy_dialog), w->window);
388 gtk_signal_connect(GTK_OBJECT(w->window), "delete_event", 380 gtk_signal_connect(GTK_OBJECT(w->window), "delete_event", GTK_SIGNAL_FUNC(free_warn_data), w);
389 GTK_SIGNAL_FUNC(free_warn_data), w);
390 gtk_widget_realize(w->window); 381 gtk_widget_realize(w->window);
391 aol_icon(w->window->window); 382 aol_icon(w->window->window);
392 383
393 fbox = gtk_vbox_new(FALSE, 5); 384 fbox = gtk_vbox_new(FALSE, 5);
394 gtk_container_add(GTK_CONTAINER(w->window), fbox); 385 gtk_container_add(GTK_CONTAINER(w->window), fbox);
395 gtk_widget_show(fbox); 386 gtk_widget_show(fbox);
396 387
397 frame = gtk_frame_new(_("Warn")); 388 frame = gtk_frame_new(_("Warn"));
398 gtk_box_pack_start(GTK_BOX(fbox), frame, FALSE, FALSE, 5); 389 gtk_box_pack_start(GTK_BOX(fbox), frame, FALSE, FALSE, 5);
399 gtk_widget_show(frame); 390 gtk_widget_show(frame);
400 391
401 vbox = gtk_vbox_new(FALSE, 5); 392 vbox = gtk_vbox_new(FALSE, 5);
402 gtk_container_add(GTK_CONTAINER(frame), vbox); 393 gtk_container_add(GTK_CONTAINER(frame), vbox);
403 gtk_widget_show(vbox); 394 gtk_widget_show(vbox);
404 395
405 g_snprintf(buf, 127, _("Do you really want to warn %s?"), who); 396 g_snprintf(buf, 127, _("Do you really want to warn %s?"), who);
406 label = gtk_label_new(buf); 397 label = gtk_label_new(buf);
407 gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 5); 398 gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 5);
408 gtk_widget_show(label); 399 gtk_widget_show(label);
409 400
410 w->anon = gtk_check_button_new_with_label(_("Warn anonymously?")); 401 w->anon = gtk_check_button_new_with_label(_("Warn anonymously?"));
411 gtk_box_pack_start(GTK_BOX(vbox), w->anon, TRUE, TRUE, 5); 402 gtk_box_pack_start(GTK_BOX(vbox), w->anon, TRUE, TRUE, 5);
412 gtk_widget_show(w->anon); 403 gtk_widget_show(w->anon);
413 404
414 label = gtk_label_new(_("Anonymous warnings are less harsh.")); 405 label = gtk_label_new(_("Anonymous warnings are less harsh."));
415 gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 5); 406 gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 5);
416 gtk_widget_show(label); 407 gtk_widget_show(label);
417 408
418 bbox = gtk_hbox_new(TRUE, 10); 409 bbox = gtk_hbox_new(TRUE, 10);
419 gtk_box_pack_start(GTK_BOX(fbox), bbox, FALSE, FALSE, 5); 410 gtk_box_pack_start(GTK_BOX(fbox), bbox, FALSE, FALSE, 5);
420 gtk_widget_show(bbox); 411 gtk_widget_show(bbox);
421 412
422 warn = picture_button(w->window, _("Warn"), warn_xpm); 413 warn = picture_button(w->window, _("Warn"), warn_xpm);
423 gtk_box_pack_start(GTK_BOX(bbox), warn, FALSE, FALSE, 5); 414 gtk_box_pack_start(GTK_BOX(bbox), warn, FALSE, FALSE, 5);
424 gtk_signal_connect(GTK_OBJECT(warn), "clicked", 415 gtk_signal_connect(GTK_OBJECT(warn), "clicked", GTK_SIGNAL_FUNC(do_warn), w);
425 GTK_SIGNAL_FUNC(do_warn), w);
426 416
427 cancel = picture_button(w->window, _("Cancel"), cancel_xpm); 417 cancel = picture_button(w->window, _("Cancel"), cancel_xpm);
428 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 5); 418 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 5);
429 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", 419 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), w->window);
430 GTK_SIGNAL_FUNC(destroy_dialog), w->window); 420
431 421 gtk_widget_show(w->window);
432 gtk_widget_show(w->window);
433 } 422 }
434 423
435 424
436 /*------------------------------------------------------------------------*/ 425 /*------------------------------------------------------------------------*/
437 /* The dialog for getting an error */ 426 /* The dialog for getting an error */
438 /*------------------------------------------------------------------------*/ 427 /*------------------------------------------------------------------------*/
439 428
440 GtkWidget* 429 GtkWidget *do_error_dialog(char *message, char *title)
441 do_error_dialog(char *message, char *title) 430 {
442 { 431 GtkWidget *d;
443 GtkWidget *d;
444 GtkWidget *label; 432 GtkWidget *label;
445 GtkWidget *close; 433 GtkWidget *close;
446 434
447 435
448 d = gtk_dialog_new(); 436 d = gtk_dialog_new();
449 gtk_window_set_policy(GTK_WINDOW(d), FALSE, FALSE, TRUE); 437 gtk_window_set_policy(GTK_WINDOW(d), FALSE, FALSE, TRUE);
450 gtk_widget_realize(d); 438 gtk_widget_realize(d);
451 label = gtk_label_new(message); 439 label = gtk_label_new(message);
452 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); 440 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
453 gtk_widget_show(label); 441 gtk_widget_show(label);
454 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->vbox), 442 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->vbox), label, FALSE, FALSE, 5);
455 label, FALSE, FALSE, 5); 443
456
457 close = picture_button(d, _("Close"), cancel_xpm); 444 close = picture_button(d, _("Close"), cancel_xpm);
458 445
459 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->action_area), 446 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->action_area), close, FALSE, FALSE, 5);
460 close, FALSE, FALSE, 5);
461 447
462 gtk_container_set_border_width(GTK_CONTAINER(d), 5); 448 gtk_container_set_border_width(GTK_CONTAINER(d), 5);
463 gtk_window_set_title(GTK_WINDOW(d), title); 449 gtk_window_set_title(GTK_WINDOW(d), title);
464 gtk_signal_connect(GTK_OBJECT(close), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), d); 450 gtk_signal_connect(GTK_OBJECT(close), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), d);
465 aol_icon(d->window); 451 aol_icon(d->window);
473 459
474 static void do_im(GtkWidget *widget, GtkWidget *imentry) 460 static void do_im(GtkWidget *widget, GtkWidget *imentry)
475 { 461 {
476 char *who; 462 char *who;
477 struct conversation *c; 463 struct conversation *c;
478 464
479 who = g_strdup(gtk_entry_get_text(GTK_ENTRY(imentry))); 465 who = g_strdup(gtk_entry_get_text(GTK_ENTRY(imentry)));
480 destroy_dialog(NULL, imdialog); 466 destroy_dialog(NULL, imdialog);
481 imdialog = NULL; 467 imdialog = NULL;
482 468
483 if (!g_strcasecmp(who, "")) { 469 if (!g_strcasecmp(who, "")) {
484 g_free(who); 470 g_free(who);
485 return; 471 return;
486 } 472 }
487 473
496 } 482 }
497 483
498 static void do_info(GtkWidget *widget, GtkWidget *infoentry) 484 static void do_info(GtkWidget *widget, GtkWidget *infoentry)
499 { 485 {
500 char *who; 486 char *who;
501 487
502 who = g_strdup(normalize(gtk_entry_get_text(GTK_ENTRY(infoentry)))); 488 who = g_strdup(normalize(gtk_entry_get_text(GTK_ENTRY(infoentry))));
503 destroy_dialog(NULL, infodialog); 489 destroy_dialog(NULL, infodialog);
504 infodialog = NULL; 490 infodialog = NULL;
505 491
506 if (!g_strcasecmp(who, "")) { 492 if (!g_strcasecmp(who, "")) {
507 g_free(who); 493 g_free(who);
508 return; 494 return;
509 } 495 }
510 496
511 /* what do we want to do about this case? */ 497 /* what do we want to do about this case? */
512 if (connections) 498 if (connections)
513 serv_get_info(connections->data, who); 499 serv_get_info(connections->data, who);
514 500
515 g_free(who); 501 g_free(who);
545 gtk_widget_show(box); 531 gtk_widget_show(box);
546 532
547 gtk_container_add(GTK_CONTAINER(eedialog), box); 533 gtk_container_add(GTK_CONTAINER(eedialog), box);
548 gtk_window_set_title(GTK_WINDOW(eedialog), "Gaim - SUPRISE!"); 534 gtk_window_set_title(GTK_WINDOW(eedialog), "Gaim - SUPRISE!");
549 535
550 gtk_signal_connect(GTK_OBJECT(ok), "clicked", 536 gtk_signal_connect(GTK_OBJECT(ok), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), eedialog);
551 GTK_SIGNAL_FUNC(destroy_dialog), eedialog);
552 gtk_widget_realize(eedialog); 537 gtk_widget_realize(eedialog);
553 aol_icon(eedialog->window); 538 aol_icon(eedialog->window);
554 539
555 gtk_widget_show(eedialog); 540 gtk_widget_show(eedialog);
556 } 541 }
557 542
558 void show_im_dialog() 543 void show_im_dialog()
559 { 544 {
560 GtkWidget *mainbox; 545 GtkWidget *mainbox;
561 GtkWidget *frame; 546 GtkWidget *frame;
562 GtkWidget *fbox; 547 GtkWidget *fbox;
563 GtkWidget *bbox; 548 GtkWidget *bbox;
564 GtkWidget *button; 549 GtkWidget *button;
565 GtkWidget *imentry; 550 GtkWidget *imentry;
566 GtkWidget *label; 551 GtkWidget *label;
567 552
568 if (!imdialog) { 553 if (!imdialog) {
569 imdialog = gtk_window_new(GTK_WINDOW_DIALOG); 554 imdialog = gtk_window_new(GTK_WINDOW_DIALOG);
570 gtk_window_set_wmclass(GTK_WINDOW(imdialog), "imdialog", 555 gtk_window_set_wmclass(GTK_WINDOW(imdialog), "imdialog", "Gaim");
571 "Gaim");
572 gtk_window_set_policy(GTK_WINDOW(imdialog), FALSE, TRUE, TRUE); 556 gtk_window_set_policy(GTK_WINDOW(imdialog), FALSE, TRUE, TRUE);
573 gtk_window_set_title(GTK_WINDOW(imdialog), _("Gaim - IM user")); 557 gtk_window_set_title(GTK_WINDOW(imdialog), _("Gaim - IM user"));
574 gtk_signal_connect(GTK_OBJECT(imdialog), "destroy", 558 gtk_signal_connect(GTK_OBJECT(imdialog), "destroy",
575 GTK_SIGNAL_FUNC(destroy_dialog), imdialog); 559 GTK_SIGNAL_FUNC(destroy_dialog), imdialog);
576 gtk_widget_realize(imdialog); 560 gtk_widget_realize(imdialog);
590 label = gtk_label_new(_("IM who:")); 574 label = gtk_label_new(_("IM who:"));
591 gtk_box_pack_start(GTK_BOX(fbox), label, FALSE, FALSE, 0); 575 gtk_box_pack_start(GTK_BOX(fbox), label, FALSE, FALSE, 0);
592 576
593 imentry = gtk_entry_new(); 577 imentry = gtk_entry_new();
594 gtk_box_pack_start(GTK_BOX(fbox), imentry, TRUE, TRUE, 0); 578 gtk_box_pack_start(GTK_BOX(fbox), imentry, TRUE, TRUE, 0);
595 gtk_signal_connect(GTK_OBJECT(imentry), "activate", 579 gtk_signal_connect(GTK_OBJECT(imentry), "activate", GTK_SIGNAL_FUNC(do_im), imentry);
596 GTK_SIGNAL_FUNC(do_im), imentry);
597 gtk_widget_grab_focus(imentry); 580 gtk_widget_grab_focus(imentry);
598 581
599 bbox = gtk_hbox_new(FALSE, 5); 582 bbox = gtk_hbox_new(FALSE, 5);
600 gtk_box_pack_start(GTK_BOX(mainbox), bbox, FALSE, FALSE, 0); 583 gtk_box_pack_start(GTK_BOX(mainbox), bbox, FALSE, FALSE, 0);
601 584
604 gtk_signal_connect(GTK_OBJECT(button), "clicked", 587 gtk_signal_connect(GTK_OBJECT(button), "clicked",
605 GTK_SIGNAL_FUNC(destroy_dialog), imdialog); 588 GTK_SIGNAL_FUNC(destroy_dialog), imdialog);
606 589
607 button = picture_button(imdialog, _("OK"), ok_xpm); 590 button = picture_button(imdialog, _("OK"), ok_xpm);
608 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0); 591 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0);
609 gtk_signal_connect(GTK_OBJECT(button), "clicked", 592 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(do_im), imentry);
610 GTK_SIGNAL_FUNC(do_im), imentry); 593 }
611 } 594
612 595 gtk_widget_show_all(imdialog);
613 gtk_widget_show_all(imdialog);
614 } 596 }
615 597
616 void show_info_dialog() 598 void show_info_dialog()
617 { 599 {
618 GtkWidget *mainbox; 600 GtkWidget *mainbox;
619 GtkWidget *frame; 601 GtkWidget *frame;
620 GtkWidget *fbox; 602 GtkWidget *fbox;
621 GtkWidget *bbox; 603 GtkWidget *bbox;
622 GtkWidget *button; 604 GtkWidget *button;
623 GtkWidget *infoentry; 605 GtkWidget *infoentry;
624 GtkWidget *label; 606 GtkWidget *label;
625 607
626 if (!infodialog) { 608 if (!infodialog) {
627 609
628 infodialog = gtk_window_new(GTK_WINDOW_DIALOG); 610 infodialog = gtk_window_new(GTK_WINDOW_DIALOG);
629 gtk_window_set_wmclass(GTK_WINDOW(infodialog), "infodialog", 611 gtk_window_set_wmclass(GTK_WINDOW(infodialog), "infodialog", "Gaim");
630 "Gaim");
631 gtk_window_set_policy(GTK_WINDOW(infodialog), FALSE, TRUE, TRUE); 612 gtk_window_set_policy(GTK_WINDOW(infodialog), FALSE, TRUE, TRUE);
632 gtk_widget_realize(infodialog); 613 gtk_widget_realize(infodialog);
633 614
634 mainbox = gtk_vbox_new(FALSE, 5); 615 mainbox = gtk_vbox_new(FALSE, 5);
635 gtk_container_set_border_width(GTK_CONTAINER(mainbox), 5); 616 gtk_container_set_border_width(GTK_CONTAINER(mainbox), 5);
636 gtk_container_add(GTK_CONTAINER(infodialog), mainbox); 617 gtk_container_add(GTK_CONTAINER(infodialog), mainbox);
637 618
638 frame = gtk_frame_new(_("Get User Info")); 619 frame = gtk_frame_new(_("Get User Info"));
639 gtk_box_pack_start(GTK_BOX(mainbox), frame, TRUE, TRUE, 0); 620 gtk_box_pack_start(GTK_BOX(mainbox), frame, TRUE, TRUE, 0);
640 621
641 fbox = gtk_hbox_new(FALSE, 5); 622 fbox = gtk_hbox_new(FALSE, 5);
642 gtk_container_set_border_width(GTK_CONTAINER(fbox), 5); 623 gtk_container_set_border_width(GTK_CONTAINER(fbox), 5);
643 gtk_container_add(GTK_CONTAINER(frame), fbox); 624 gtk_container_add(GTK_CONTAINER(frame), fbox);
644 625
645 label = gtk_label_new(_("User:")); 626 label = gtk_label_new(_("User:"));
646 gtk_box_pack_start(GTK_BOX(fbox), label, FALSE, FALSE, 0); 627 gtk_box_pack_start(GTK_BOX(fbox), label, FALSE, FALSE, 0);
647 gtk_widget_show(label); 628 gtk_widget_show(label);
648 629
649 infoentry = gtk_entry_new(); 630 infoentry = gtk_entry_new();
650 gtk_box_pack_start(GTK_BOX(fbox), infoentry, TRUE, TRUE, 0); 631 gtk_box_pack_start(GTK_BOX(fbox), infoentry, TRUE, TRUE, 0);
651 632
652 /* Handle closes right */ 633 /* Handle closes right */
653 gtk_signal_connect(GTK_OBJECT(infoentry), "activate", 634 gtk_signal_connect(GTK_OBJECT(infoentry), "activate",
654 GTK_SIGNAL_FUNC(do_info), infoentry); 635 GTK_SIGNAL_FUNC(do_info), infoentry);
655 gtk_signal_connect(GTK_OBJECT(infodialog), "destroy", 636 gtk_signal_connect(GTK_OBJECT(infodialog), "destroy",
656 GTK_SIGNAL_FUNC(destroy_dialog), infodialog); 637 GTK_SIGNAL_FUNC(destroy_dialog), infodialog);
657 638
658 /* Buttons */ 639 /* Buttons */
659 bbox = gtk_hbox_new(FALSE, 5); 640 bbox = gtk_hbox_new(FALSE, 5);
660 gtk_box_pack_start(GTK_BOX(mainbox), bbox, FALSE, FALSE, 0); 641 gtk_box_pack_start(GTK_BOX(mainbox), bbox, FALSE, FALSE, 0);
661 642
662 button = picture_button(infodialog, _("Cancel"), cancel_xpm); 643 button = picture_button(infodialog, _("Cancel"), cancel_xpm);
663 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0); 644 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0);
664 gtk_signal_connect(GTK_OBJECT(button), "clicked", 645 gtk_signal_connect(GTK_OBJECT(button), "clicked",
665 GTK_SIGNAL_FUNC(destroy_dialog), infodialog); 646 GTK_SIGNAL_FUNC(destroy_dialog), infodialog);
666 647
667 button = picture_button(infodialog, _("OK"), ok_xpm); 648 button = picture_button(infodialog, _("OK"), ok_xpm);
668 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0); 649 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0);
669 gtk_signal_connect(GTK_OBJECT(button), "clicked", 650 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(do_info), infoentry);
670 GTK_SIGNAL_FUNC(do_info), infoentry);
671 651
672 /* Finish up */ 652 /* Finish up */
673 gtk_window_set_title(GTK_WINDOW(infodialog), _("Gaim - Get User Info")); 653 gtk_window_set_title(GTK_WINDOW(infodialog), _("Gaim - Get User Info"));
674 gtk_widget_grab_focus(infoentry); 654 gtk_widget_grab_focus(infoentry);
675 655
676 aol_icon(infodialog->window); 656 aol_icon(infodialog->window);
677 } 657 }
678 gtk_widget_show_all(infodialog); 658 gtk_widget_show_all(infodialog);
679 } 659 }
680 660
681 661
682 /*------------------------------------------------------------------------*/ 662 /*------------------------------------------------------------------------*/
686 extern void add_callback(GtkWidget *, struct conversation *); 666 extern void add_callback(GtkWidget *, struct conversation *);
687 667
688 void do_add_buddy(GtkWidget *w, struct addbuddy *a) 668 void do_add_buddy(GtkWidget *w, struct addbuddy *a)
689 { 669 {
690 char *grp, *who, *whoalias; 670 char *grp, *who, *whoalias;
691 struct conversation *c; 671 struct conversation *c;
692 672
693 who = gtk_entry_get_text(GTK_ENTRY(a->entry)); 673 who = gtk_entry_get_text(GTK_ENTRY(a->entry));
694 grp = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(a->combo)->entry)); 674 grp = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(a->combo)->entry));
695 whoalias = gtk_entry_get_text(GTK_ENTRY(a->entry_for_alias)); 675 whoalias = gtk_entry_get_text(GTK_ENTRY(a->entry_for_alias));
696 676
697 c = find_conversation(who); 677 c = find_conversation(who);
698 678
699 if (a->gc) { 679 if (a->gc) {
700 add_buddy(a->gc, grp, who, whoalias); 680 add_buddy(a->gc, grp, who, whoalias);
701 serv_add_buddy(a->gc, who); 681 serv_add_buddy(a->gc, who);
702 } else if (connections) { 682 } else if (connections) {
703 add_buddy(connections->data, grp, who, whoalias); 683 add_buddy(connections->data, grp, who, whoalias);
704 serv_add_buddy(connections->data, who); 684 serv_add_buddy(connections->data, who);
705 a->gc = connections->data; 685 a->gc = connections->data;
706 } 686 }
707 687
708 if (c != NULL) { 688 if (c != NULL) {
709 update_buttons_by_protocol(c); 689 update_buttons_by_protocol(c);
710 } 690 }
711 691
712 do_export(a->gc); 692 do_export(a->gc);
713 693
714 destroy_dialog(NULL, a->window); 694 destroy_dialog(NULL, a->window);
715 } 695 }
716 696
717 void do_add_group(GtkWidget *w, struct addbuddy *a) 697 void do_add_group(GtkWidget *w, struct addbuddy *a)
718 { 698 {
719 char *grp; 699 char *grp;
720 700
721 grp = gtk_entry_get_text(GTK_ENTRY(a->entry)); 701 grp = gtk_entry_get_text(GTK_ENTRY(a->entry));
722 702
723 if (a->gc) add_group(a->gc, grp); 703 if (a->gc)
704 add_group(a->gc, grp);
724 else if (connections) { 705 else if (connections) {
725 add_group(connections->data, grp); 706 add_group(connections->data, grp);
726 a->gc = connections->data; 707 a->gc = connections->data;
727 } 708 }
728 709
732 } 713 }
733 714
734 715
735 static GList *groups_tree(struct gaim_connection *gc) 716 static GList *groups_tree(struct gaim_connection *gc)
736 { 717 {
737 GList *tmp=NULL; 718 GList *tmp = NULL;
738 char *tmp2; 719 char *tmp2;
739 struct group *g; 720 struct group *g;
740 GSList *grp = gc->groups; 721 GSList *grp = gc->groups;
741 722
742 if (!grp) { 723 if (!grp) {
743 tmp2 = g_strdup(_("Buddies")); 724 tmp2 = g_strdup(_("Buddies"));
744 tmp = g_list_append(tmp, tmp2); 725 tmp = g_list_append(tmp, tmp2);
745 } else { 726 } else {
746 while(grp) { 727 while (grp) {
747 g = (struct group *)grp->data; 728 g = (struct group *)grp->data;
748 tmp2 = g->name; 729 tmp2 = g->name;
749 tmp=g_list_append(tmp, tmp2); 730 tmp = g_list_append(tmp, tmp2);
750 grp = g_slist_next(grp); 731 grp = g_slist_next(grp);
751 } 732 }
752 } 733 }
753 return tmp; 734 return tmp;
754 } 735 }
764 GtkWidget *cancel; 745 GtkWidget *cancel;
765 GtkWidget *add; 746 GtkWidget *add;
766 GtkWidget *label; 747 GtkWidget *label;
767 GtkWidget *bbox; 748 GtkWidget *bbox;
768 GtkWidget *vbox; 749 GtkWidget *vbox;
769 GtkWidget *topbox; 750 GtkWidget *topbox;
770 GtkWidget *frame; 751 GtkWidget *frame;
771 752
772 struct addbuddy *a = g_new0(struct addbuddy, 1); 753 struct addbuddy *a = g_new0(struct addbuddy, 1);
773 a->gc = gc; 754 a->gc = gc;
774 755
775 a->window = gtk_window_new(GTK_WINDOW_DIALOG); 756 a->window = gtk_window_new(GTK_WINDOW_DIALOG);
776 gtk_window_set_wmclass(GTK_WINDOW(a->window), "add_group", "Gaim"); 757 gtk_window_set_wmclass(GTK_WINDOW(a->window), "add_group", "Gaim");
777 gtk_window_set_policy(GTK_WINDOW(a->window), FALSE, FALSE, TRUE); 758 gtk_window_set_policy(GTK_WINDOW(a->window), FALSE, FALSE, TRUE);
778 gtk_widget_realize(a->window); 759 gtk_widget_realize(a->window);
779 dialogwindows = g_list_prepend(dialogwindows, a->window); 760 dialogwindows = g_list_prepend(dialogwindows, a->window);
780 761
781 bbox = gtk_hbox_new(TRUE, 10); 762 bbox = gtk_hbox_new(TRUE, 10);
782 topbox = gtk_hbox_new(FALSE, 5); 763 topbox = gtk_hbox_new(FALSE, 5);
783 vbox = gtk_vbox_new(FALSE, 5); 764 vbox = gtk_vbox_new(FALSE, 5);
784 765
785 a->entry = gtk_entry_new(); 766 a->entry = gtk_entry_new();
786 /* Put the buttons in the box */ 767 /* Put the buttons in the box */
787 768
788 add = picture_button(a->window, _("Add"), add_xpm); 769 add = picture_button(a->window, _("Add"), add_xpm);
789 770
790 cancel = picture_button(a->window, _("Cancel"), cancel_xpm); 771 cancel = picture_button(a->window, _("Cancel"), cancel_xpm);
791 772
792 gtk_box_pack_start(GTK_BOX(bbox), add, FALSE, FALSE, 5); 773 gtk_box_pack_start(GTK_BOX(bbox), add, FALSE, FALSE, 5);
793 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 5); 774 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 5);
794 775
795 frame = gtk_frame_new(NULL); 776 frame = gtk_frame_new(NULL);
796 gtk_frame_set_label(GTK_FRAME(frame), _("Add Group")); 777 gtk_frame_set_label(GTK_FRAME(frame), _("Add Group"));
797 778
798 label = gtk_label_new(_("Group")); 779 label = gtk_label_new(_("Group"));
799 gtk_widget_show(label); 780 gtk_widget_show(label);
800 gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 5); 781 gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 5);
801 gtk_box_pack_start(GTK_BOX(topbox), a->entry, FALSE, FALSE, 5); 782 gtk_box_pack_start(GTK_BOX(topbox), a->entry, FALSE, FALSE, 5);
802 783
803 /* And the boxes in the box */ 784 /* And the boxes in the box */
804 gtk_box_pack_start(GTK_BOX(vbox), topbox, TRUE, TRUE, 5); 785 gtk_box_pack_start(GTK_BOX(vbox), topbox, TRUE, TRUE, 5);
805 gtk_box_pack_start(GTK_BOX(vbox), bbox, TRUE, TRUE, 5); 786 gtk_box_pack_start(GTK_BOX(vbox), bbox, TRUE, TRUE, 5);
806 787
807 /* Handle closes right */ 788 /* Handle closes right */
808 gtk_signal_connect(GTK_OBJECT(a->window), "destroy", 789 gtk_signal_connect(GTK_OBJECT(a->window), "destroy", GTK_SIGNAL_FUNC(destroy_dialog), a->window);
809 GTK_SIGNAL_FUNC(destroy_dialog), a->window); 790 gtk_signal_connect(GTK_OBJECT(a->window), "destroy", GTK_SIGNAL_FUNC(free_dialog), a);
810 gtk_signal_connect(GTK_OBJECT(a->window), "destroy", 791 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), a->window);
811 GTK_SIGNAL_FUNC(free_dialog), a); 792 gtk_signal_connect(GTK_OBJECT(add), "clicked", GTK_SIGNAL_FUNC(do_add_group), a);
812 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", 793 gtk_signal_connect(GTK_OBJECT(a->entry), "activate", GTK_SIGNAL_FUNC(do_add_group), a);
813 GTK_SIGNAL_FUNC(destroy_dialog), a->window); 794 /* Finish up */
814 gtk_signal_connect(GTK_OBJECT(add), "clicked", 795 gtk_widget_show(add);
815 GTK_SIGNAL_FUNC(do_add_group), a); 796 gtk_widget_show(cancel);
816 gtk_signal_connect(GTK_OBJECT(a->entry), "activate", 797 gtk_widget_show(a->entry);
817 GTK_SIGNAL_FUNC(do_add_group), a); 798 gtk_widget_show(topbox);
818 /* Finish up */ 799 gtk_widget_show(bbox);
819 gtk_widget_show(add); 800 gtk_widget_show(vbox);
820 gtk_widget_show(cancel);
821 gtk_widget_show(a->entry);
822 gtk_widget_show(topbox);
823 gtk_widget_show(bbox);
824 gtk_widget_show(vbox);
825 gtk_widget_show(frame); 801 gtk_widget_show(frame);
826 gtk_window_set_title(GTK_WINDOW(a->window), _("Gaim - Add Group")); 802 gtk_window_set_title(GTK_WINDOW(a->window), _("Gaim - Add Group"));
827 gtk_window_set_focus(GTK_WINDOW(a->window), a->entry); 803 gtk_window_set_focus(GTK_WINDOW(a->window), a->entry);
828 gtk_container_add(GTK_CONTAINER(frame), vbox); 804 gtk_container_add(GTK_CONTAINER(frame), vbox);
829 gtk_container_add(GTK_CONTAINER(a->window), frame); 805 gtk_container_add(GTK_CONTAINER(a->window), frame);
830 gtk_container_set_border_width(GTK_CONTAINER(a->window), 5); 806 gtk_container_set_border_width(GTK_CONTAINER(a->window), 5);
831 gtk_widget_realize(a->window); 807 gtk_widget_realize(a->window);
832 aol_icon(a->window->window); 808 aol_icon(a->window->window);
833 809
834 gtk_widget_show(a->window); 810 gtk_widget_show(a->window);
835 } 811 }
836 812
837 void show_add_buddy(struct gaim_connection *gc, char *buddy, char *group) 813 void show_add_buddy(struct gaim_connection *gc, char *buddy, char *group)
838 { 814 {
839 GtkWidget *mainbox; 815 GtkWidget *mainbox;
840 GtkWidget *frame; 816 GtkWidget *frame;
841 GtkWidget *table; 817 GtkWidget *table;
842 GtkWidget *bbox; 818 GtkWidget *bbox;
843 GtkWidget *cancel; 819 GtkWidget *cancel;
844 GtkWidget *add; 820 GtkWidget *add;
845 GtkWidget *label; 821 GtkWidget *label;
846 822
847 struct addbuddy *a = g_new0(struct addbuddy, 1); 823 struct addbuddy *a = g_new0(struct addbuddy, 1);
848 a->gc = gc; 824 a->gc = gc;
849 825
850 a->window = gtk_window_new(GTK_WINDOW_DIALOG); 826 a->window = gtk_window_new(GTK_WINDOW_DIALOG);
851 gtk_window_set_wmclass(GTK_WINDOW(a->window), "add_buddy", "Gaim"); 827 gtk_window_set_wmclass(GTK_WINDOW(a->window), "add_buddy", "Gaim");
852 gtk_window_set_policy(GTK_WINDOW(a->window), FALSE, FALSE, TRUE); 828 gtk_window_set_policy(GTK_WINDOW(a->window), FALSE, FALSE, TRUE);
853 gtk_window_set_title(GTK_WINDOW(a->window), _("Gaim - Add Buddy")); 829 gtk_window_set_title(GTK_WINDOW(a->window), _("Gaim - Add Buddy"));
854 830
855 gtk_widget_realize(a->window); 831 gtk_widget_realize(a->window);
856 aol_icon(a->window->window); 832 aol_icon(a->window->window);
857 gtk_signal_connect(GTK_OBJECT(a->window), "destroy", 833 gtk_signal_connect(GTK_OBJECT(a->window), "destroy", GTK_SIGNAL_FUNC(destroy_dialog), a->window);
858 GTK_SIGNAL_FUNC(destroy_dialog), a->window); 834 gtk_signal_connect(GTK_OBJECT(a->window), "destroy", GTK_SIGNAL_FUNC(free_dialog), a);
859 gtk_signal_connect(GTK_OBJECT(a->window), "destroy",
860 GTK_SIGNAL_FUNC(free_dialog), a);
861 dialogwindows = g_list_prepend(dialogwindows, a->window); 835 dialogwindows = g_list_prepend(dialogwindows, a->window);
862 836
863 mainbox = gtk_vbox_new(FALSE, 5); 837 mainbox = gtk_vbox_new(FALSE, 5);
864 gtk_container_set_border_width(GTK_CONTAINER(mainbox), 5); 838 gtk_container_set_border_width(GTK_CONTAINER(mainbox), 5);
865 gtk_container_add(GTK_CONTAINER(a->window), mainbox); 839 gtk_container_add(GTK_CONTAINER(a->window), mainbox);
866 840
867 frame = gtk_frame_new(_("Add Buddy")); 841 frame = gtk_frame_new(_("Add Buddy"));
868 gtk_box_pack_start(GTK_BOX(mainbox), frame, TRUE, TRUE, 0); 842 gtk_box_pack_start(GTK_BOX(mainbox), frame, TRUE, TRUE, 0);
869 gtk_widget_show(frame); 843 gtk_widget_show(frame);
870 844
871 table = gtk_table_new(3, 2, FALSE); 845 table = gtk_table_new(3, 2, FALSE);
872 gtk_table_set_row_spacings(GTK_TABLE(table), 5); 846 gtk_table_set_row_spacings(GTK_TABLE(table), 5);
873 gtk_table_set_col_spacings(GTK_TABLE(table), 5); 847 gtk_table_set_col_spacings(GTK_TABLE(table), 5);
874 gtk_container_set_border_width(GTK_CONTAINER(table), 5); 848 gtk_container_set_border_width(GTK_CONTAINER(table), 5);
875 gtk_container_add(GTK_CONTAINER(frame), table); 849 gtk_container_add(GTK_CONTAINER(frame), table);
876 850
877 label = gtk_label_new(_("Contact")); 851 label = gtk_label_new(_("Contact"));
878 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); 852 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1);
879 853
880 a->entry = gtk_entry_new(); 854 a->entry = gtk_entry_new();
881 gtk_table_attach_defaults(GTK_TABLE(table), a->entry, 1, 2, 0, 1); 855 gtk_table_attach_defaults(GTK_TABLE(table), a->entry, 1, 2, 0, 1);
882 gtk_window_set_focus(GTK_WINDOW(a->window), a->entry); 856 gtk_window_set_focus(GTK_WINDOW(a->window), a->entry);
883 if (buddy != NULL) 857 if (buddy != NULL)
884 gtk_entry_set_text(GTK_ENTRY(a->entry), buddy); 858 gtk_entry_set_text(GTK_ENTRY(a->entry), buddy);
885 gtk_signal_connect(GTK_OBJECT(a->entry), "activate", 859 gtk_signal_connect(GTK_OBJECT(a->entry), "activate", GTK_SIGNAL_FUNC(do_add_buddy), a);
886 GTK_SIGNAL_FUNC(do_add_buddy), a); 860
887 861 label = gtk_label_new(_("Alias"));
888 label = gtk_label_new(_("Alias")); 862 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2);
889 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); 863
890 864 a->entry_for_alias = gtk_entry_new();
891 a->entry_for_alias = gtk_entry_new(); 865 gtk_table_attach_defaults(GTK_TABLE(table), a->entry_for_alias, 1, 2, 1, 2);
892 gtk_table_attach_defaults(GTK_TABLE(table), a->entry_for_alias, 1, 2, 1, 2); 866
893 867 label = gtk_label_new(_("Group"));
894 label = gtk_label_new(_("Group")); 868 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3);
895 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3); 869
896 870 a->combo = gtk_combo_new();
897 a->combo = gtk_combo_new(); 871 gtk_combo_set_popdown_strings(GTK_COMBO(a->combo), groups_tree(gc ? gc : connections->data));
898 gtk_combo_set_popdown_strings(GTK_COMBO(a->combo), 872 if (group != NULL)
899 groups_tree(gc ? gc : connections->data)); 873 gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(a->combo)->entry), group);
900 if (group != NULL) 874 gtk_table_attach_defaults(GTK_TABLE(table), a->combo, 1, 2, 2, 3);
901 gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(a->combo)->entry), group);
902 gtk_table_attach_defaults(GTK_TABLE(table), a->combo, 1, 2, 2, 3);
903 875
904 bbox = gtk_hbox_new(FALSE, 5); 876 bbox = gtk_hbox_new(FALSE, 5);
905 gtk_box_pack_start(GTK_BOX(mainbox), bbox, TRUE, TRUE, 0); 877 gtk_box_pack_start(GTK_BOX(mainbox), bbox, TRUE, TRUE, 0);
906 878
907 cancel = picture_button(a->window, _("Cancel"), cancel_xpm); 879 cancel = picture_button(a->window, _("Cancel"), cancel_xpm);
908 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 0); 880 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 0);
909 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", 881 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), a->window);
910 GTK_SIGNAL_FUNC(destroy_dialog), a->window);
911 882
912 add = picture_button(a->window, _("Add"), add_xpm); 883 add = picture_button(a->window, _("Add"), add_xpm);
913 gtk_box_pack_end(GTK_BOX(bbox), add, FALSE, FALSE, 0); 884 gtk_box_pack_end(GTK_BOX(bbox), add, FALSE, FALSE, 0);
914 gtk_signal_connect(GTK_OBJECT(add), "clicked", 885 gtk_signal_connect(GTK_OBJECT(add), "clicked", GTK_SIGNAL_FUNC(do_add_buddy), a);
915 GTK_SIGNAL_FUNC(do_add_buddy), a); 886
916
917 gtk_widget_show_all(a->window); 887 gtk_widget_show_all(a->window);
918 } 888 }
919 889
920 890
921 /*------------------------------------------------------------------------*/ 891 /*------------------------------------------------------------------------*/
923 /*------------------------------------------------------------------------*/ 893 /*------------------------------------------------------------------------*/
924 894
925 895
926 void do_new_bp(GtkWidget *w, struct addbp *b) 896 void do_new_bp(GtkWidget *w, struct addbp *b)
927 { 897 {
928 struct buddy_pounce *bp = g_new0(struct buddy_pounce, 1); 898 struct buddy_pounce *bp = g_new0(struct buddy_pounce, 1);
929 899
930 if (strlen(gtk_entry_get_text(GTK_ENTRY(b->nameentry))) == 0) { 900 if (strlen(gtk_entry_get_text(GTK_ENTRY(b->nameentry))) == 0) {
931 do_error_dialog(_("Please enter a buddy to pounce."), _("Buddy Pounce Error")); 901 do_error_dialog(_("Please enter a buddy to pounce."), _("Buddy Pounce Error"));
932 g_free(bp); 902 g_free(bp);
933 return; 903 return;
934 } 904 }
935 905
936 g_snprintf(bp->name, 80, "%s", gtk_entry_get_text(GTK_ENTRY(b->nameentry))); 906 g_snprintf(bp->name, 80, "%s", gtk_entry_get_text(GTK_ENTRY(b->nameentry)));
937 g_snprintf(bp->message, 2048, "%s", gtk_entry_get_text(GTK_ENTRY(b->messentry))); 907 g_snprintf(bp->message, 2048, "%s", gtk_entry_get_text(GTK_ENTRY(b->messentry)));
938 g_snprintf(bp->command, 2048, "%s", gtk_entry_get_text(GTK_ENTRY(b->commentry))); 908 g_snprintf(bp->command, 2048, "%s", gtk_entry_get_text(GTK_ENTRY(b->commentry)));
939 g_snprintf(bp->sound, 2048, "%s", gtk_entry_get_text(GTK_ENTRY(b->soundentry))); 909 g_snprintf(bp->sound, 2048, "%s", gtk_entry_get_text(GTK_ENTRY(b->soundentry)));
940 g_snprintf(bp->pouncer, 80, "%s", b->user->username); 910 g_snprintf(bp->pouncer, 80, "%s", b->user->username);
946 if (GTK_TOGGLE_BUTTON(b->openwindow)->active) 916 if (GTK_TOGGLE_BUTTON(b->openwindow)->active)
947 bp->options |= OPT_POUNCE_POPUP; 917 bp->options |= OPT_POUNCE_POPUP;
948 918
949 if (GTK_TOGGLE_BUTTON(b->sendim)->active) 919 if (GTK_TOGGLE_BUTTON(b->sendim)->active)
950 bp->options |= OPT_POUNCE_SEND_IM; 920 bp->options |= OPT_POUNCE_SEND_IM;
951 921
952 if (GTK_TOGGLE_BUTTON(b->command)->active) 922 if (GTK_TOGGLE_BUTTON(b->command)->active)
953 bp->options |= OPT_POUNCE_COMMAND; 923 bp->options |= OPT_POUNCE_COMMAND;
954 924
955 if (GTK_TOGGLE_BUTTON(b->sound)->active) 925 if (GTK_TOGGLE_BUTTON(b->sound)->active)
956 bp->options |= OPT_POUNCE_SOUND; 926 bp->options |= OPT_POUNCE_SOUND;
957 927
958 if (GTK_TOGGLE_BUTTON(b->p_signon)->active) 928 if (GTK_TOGGLE_BUTTON(b->p_signon)->active)
959 bp->options |= OPT_POUNCE_SIGNON; 929 bp->options |= OPT_POUNCE_SIGNON;
960 930
961 if (GTK_TOGGLE_BUTTON(b->p_unaway)->active) 931 if (GTK_TOGGLE_BUTTON(b->p_unaway)->active)
962 bp->options |= OPT_POUNCE_UNAWAY; 932 bp->options |= OPT_POUNCE_UNAWAY;
963 933
964 if (GTK_TOGGLE_BUTTON(b->p_unidle)->active) 934 if (GTK_TOGGLE_BUTTON(b->p_unidle)->active)
965 bp->options |= OPT_POUNCE_UNIDLE; 935 bp->options |= OPT_POUNCE_UNIDLE;
966 936
967 if (GTK_TOGGLE_BUTTON(b->save)->active) 937 if (GTK_TOGGLE_BUTTON(b->save)->active)
968 bp->options |= OPT_POUNCE_SAVE; 938 bp->options |= OPT_POUNCE_SAVE;
969 939
970 buddy_pounces = g_list_append(buddy_pounces, bp); 940 buddy_pounces = g_list_append(buddy_pounces, bp);
971 941
972 do_bp_menu(); 942 do_bp_menu();
973 943
974 destroy_dialog(NULL, b->window); 944 destroy_dialog(NULL, b->window);
975 945
976 save_prefs(); 946 save_prefs();
977 g_free(b); 947 g_free(b);
978 } 948 }
979 949
980 static void pounce_choose(GtkWidget *opt, struct addbp *b) 950 static void pounce_choose(GtkWidget *opt, struct addbp *b)
981 { 951 {
982 struct aim_user *u = gtk_object_get_user_data(GTK_OBJECT(opt)); 952 struct aim_user *u = gtk_object_get_user_data(GTK_OBJECT(opt));
1023 u = u->next; 993 u = u->next;
1024 } 994 }
1025 995
1026 gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), menu); 996 gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), menu);
1027 gtk_option_menu_set_history(GTK_OPTION_MENU(optmenu), 997 gtk_option_menu_set_history(GTK_OPTION_MENU(optmenu),
1028 g_list_index(aim_users, ((struct gaim_connection *)connections->data)->user)); 998 g_list_index(aim_users,
999 ((struct gaim_connection *)connections->data)->user));
1029 b->user = ((struct gaim_connection *)connections->data)->user; 1000 b->user = ((struct gaim_connection *)connections->data)->user;
1030 1001
1031 b->menu = optmenu; 1002 b->menu = optmenu;
1032 } 1003 }
1033 1004
1038 GtkWidget *bbox; 1009 GtkWidget *bbox;
1039 GtkWidget *vbox; 1010 GtkWidget *vbox;
1040 GtkWidget *hbox; 1011 GtkWidget *hbox;
1041 GtkWidget *button; 1012 GtkWidget *button;
1042 GtkWidget *sep; 1013 GtkWidget *sep;
1043 1014
1044 struct addbp *b = g_new0(struct addbp, 1); 1015 struct addbp *b = g_new0(struct addbp, 1);
1045 1016
1046 b->window = gtk_window_new(GTK_WINDOW_DIALOG); 1017 b->window = gtk_window_new(GTK_WINDOW_DIALOG);
1047 dialogwindows = g_list_prepend(dialogwindows, b->window); 1018 dialogwindows = g_list_prepend(dialogwindows, b->window);
1048 gtk_window_set_policy(GTK_WINDOW(b->window), FALSE, TRUE, TRUE); 1019 gtk_window_set_policy(GTK_WINDOW(b->window), FALSE, TRUE, TRUE);
1049 gtk_window_set_wmclass(GTK_WINDOW(b->window), "new_bp", "Gaim"); 1020 gtk_window_set_wmclass(GTK_WINDOW(b->window), "new_bp", "Gaim");
1050 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - New Buddy Pounce")); 1021 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - New Buddy Pounce"));
1051 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", 1022 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", GTK_SIGNAL_FUNC(destroy_dialog), b->window);
1052 GTK_SIGNAL_FUNC(destroy_dialog), b->window);
1053 gtk_widget_realize(b->window); 1023 gtk_widget_realize(b->window);
1054 aol_icon(b->window->window); 1024 aol_icon(b->window->window);
1055 1025
1056 vbox = gtk_vbox_new(FALSE, 5); 1026 vbox = gtk_vbox_new(FALSE, 5);
1057 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); 1027 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
1058 gtk_container_add(GTK_CONTAINER(b->window), vbox); 1028 gtk_container_add(GTK_CONTAINER(b->window), vbox);
1059 gtk_widget_show(vbox); 1029 gtk_widget_show(vbox);
1060 1030
1061 pounce_user_menu(b, vbox); 1031 pounce_user_menu(b, vbox);
1062 1032
1063 hbox = gtk_hbox_new(FALSE, 5); 1033 hbox = gtk_hbox_new(FALSE, 5);
1064 gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 0); 1034 gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 0);
1065 gtk_widget_show(hbox); 1035 gtk_widget_show(hbox);
1066 1036
1067 label = gtk_label_new(_("Buddy:")); 1037 label = gtk_label_new(_("Buddy:"));
1068 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 1038 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
1069 gtk_widget_show(label); 1039 gtk_widget_show(label);
1070 1040
1071 b->nameentry = gtk_entry_new(); 1041 b->nameentry = gtk_entry_new();
1072 gtk_box_pack_start(GTK_BOX(hbox), b->nameentry, TRUE, TRUE, 0); 1042 gtk_box_pack_start(GTK_BOX(hbox), b->nameentry, TRUE, TRUE, 0);
1073 if (name != NULL) 1043 if (name !=NULL)
1074 gtk_entry_set_text(GTK_ENTRY(b->nameentry), name); 1044 gtk_entry_set_text(GTK_ENTRY(b->nameentry), name);
1075 gtk_window_set_focus(GTK_WINDOW(b->window), b->nameentry); 1045 gtk_window_set_focus(GTK_WINDOW(b->window), b->nameentry);
1076 gtk_widget_show(b->nameentry); 1046 gtk_widget_show(b->nameentry);
1077 1047
1078 sep = gtk_hseparator_new(); 1048 sep = gtk_hseparator_new();
1079 gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0); 1049 gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0);
1080 gtk_widget_show(sep); 1050 gtk_widget_show(sep);
1081 1051
1082 b->p_signon = gtk_check_button_new_with_label(_("Pounce on sign on")); 1052 b->p_signon = gtk_check_button_new_with_label(_("Pounce on sign on"));
1098 1068
1099 b->openwindow = gtk_check_button_new_with_label(_("Open IM window on pounce")); 1069 b->openwindow = gtk_check_button_new_with_label(_("Open IM window on pounce"));
1100 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->openwindow), FALSE); 1070 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->openwindow), FALSE);
1101 gtk_box_pack_start(GTK_BOX(vbox), b->openwindow, FALSE, FALSE, 0); 1071 gtk_box_pack_start(GTK_BOX(vbox), b->openwindow, FALSE, FALSE, 0);
1102 gtk_widget_show(b->openwindow); 1072 gtk_widget_show(b->openwindow);
1103 1073
1104 b->sendim = gtk_check_button_new_with_label(_("Send IM on pounce")); 1074 b->sendim = gtk_check_button_new_with_label(_("Send IM on pounce"));
1105 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->sendim), TRUE); 1075 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->sendim), TRUE);
1106 gtk_box_pack_start(GTK_BOX(vbox), b->sendim, FALSE, FALSE, 0); 1076 gtk_box_pack_start(GTK_BOX(vbox), b->sendim, FALSE, FALSE, 0);
1107 gtk_widget_show(b->sendim); 1077 gtk_widget_show(b->sendim);
1108 1078
1109 hbox = gtk_hbox_new(FALSE, 5); 1079 hbox = gtk_hbox_new(FALSE, 5);
1110 gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 0); 1080 gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 0);
1111 gtk_widget_show(hbox); 1081 gtk_widget_show(hbox);
1112 1082
1113 label = gtk_label_new(_("Message:")); 1083 label = gtk_label_new(_("Message:"));
1114 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 1084 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
1115 gtk_widget_show(label); 1085 gtk_widget_show(label);
1116 1086
1117 b->messentry = gtk_entry_new(); 1087 b->messentry = gtk_entry_new();
1118 gtk_box_pack_start(GTK_BOX(hbox), b->messentry, TRUE, TRUE, 0); 1088 gtk_box_pack_start(GTK_BOX(hbox), b->messentry, TRUE, TRUE, 0);
1119 gtk_signal_connect(GTK_OBJECT(b->messentry), "activate", 1089 gtk_signal_connect(GTK_OBJECT(b->messentry), "activate", GTK_SIGNAL_FUNC(do_new_bp), b);
1120 GTK_SIGNAL_FUNC(do_new_bp), b); 1090 gtk_widget_show(b->messentry);
1121 gtk_widget_show(b->messentry); 1091
1122 1092 gtk_signal_connect(GTK_OBJECT(b->sendim), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive),
1123 gtk_signal_connect(GTK_OBJECT(b->sendim), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), b->messentry); 1093 b->messentry);
1124 1094
1125 b->command = gtk_check_button_new_with_label(_("Execute command on pounce")); 1095 b->command = gtk_check_button_new_with_label(_("Execute command on pounce"));
1126 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->command), FALSE); 1096 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->command), FALSE);
1127 gtk_box_pack_start(GTK_BOX(vbox), b->command, FALSE, FALSE, 0); 1097 gtk_box_pack_start(GTK_BOX(vbox), b->command, FALSE, FALSE, 0);
1128 gtk_widget_show(b->command); 1098 gtk_widget_show(b->command);
1129 1099
1130 hbox = gtk_hbox_new(FALSE, 5); 1100 hbox = gtk_hbox_new(FALSE, 5);
1131 gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 0); 1101 gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 0);
1132 gtk_widget_show(hbox); 1102 gtk_widget_show(hbox);
1133 1103
1134 label = gtk_label_new(_("Command:")); 1104 label = gtk_label_new(_("Command:"));
1135 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 1105 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
1136 gtk_widget_show(label); 1106 gtk_widget_show(label);
1137 1107
1138 b->commentry = gtk_entry_new(); 1108 b->commentry = gtk_entry_new();
1139 gtk_box_pack_start(GTK_BOX(hbox), b->commentry, TRUE, TRUE, 0); 1109 gtk_box_pack_start(GTK_BOX(hbox), b->commentry, TRUE, TRUE, 0);
1140 gtk_signal_connect(GTK_OBJECT(b->commentry), "activate", 1110 gtk_signal_connect(GTK_OBJECT(b->commentry), "activate", GTK_SIGNAL_FUNC(do_new_bp), b);
1141 GTK_SIGNAL_FUNC(do_new_bp), b); 1111 gtk_widget_show(b->commentry);
1142 gtk_widget_show(b->commentry);
1143 1112
1144 gtk_widget_set_sensitive(b->commentry, FALSE); 1113 gtk_widget_set_sensitive(b->commentry, FALSE);
1145 gtk_signal_connect(GTK_OBJECT(b->command), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), b->commentry); 1114 gtk_signal_connect(GTK_OBJECT(b->command), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive),
1146 1115 b->commentry);
1116
1147 b->sound = gtk_check_button_new_with_label(_("Play sound on pounce")); 1117 b->sound = gtk_check_button_new_with_label(_("Play sound on pounce"));
1148 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->sound), FALSE); 1118 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->sound), FALSE);
1149 gtk_box_pack_start(GTK_BOX(vbox), b->sound, FALSE, FALSE, 0); 1119 gtk_box_pack_start(GTK_BOX(vbox), b->sound, FALSE, FALSE, 0);
1150 gtk_widget_show(b->sound); 1120 gtk_widget_show(b->sound);
1151 1121
1153 gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 0); 1123 gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 0);
1154 gtk_widget_show(hbox); 1124 gtk_widget_show(hbox);
1155 1125
1156 label = gtk_label_new(_("Sound:")); 1126 label = gtk_label_new(_("Sound:"));
1157 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 1127 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
1158 gtk_widget_show(label); 1128 gtk_widget_show(label);
1159 1129
1160 b->soundentry = gtk_entry_new(); 1130 b->soundentry = gtk_entry_new();
1161 gtk_box_pack_start(GTK_BOX(hbox), b->soundentry, TRUE, TRUE, 0); 1131 gtk_box_pack_start(GTK_BOX(hbox), b->soundentry, TRUE, TRUE, 0);
1162 gtk_signal_connect(GTK_OBJECT(b->soundentry), "activate", 1132 gtk_signal_connect(GTK_OBJECT(b->soundentry), "activate", GTK_SIGNAL_FUNC(do_new_bp), b);
1163 GTK_SIGNAL_FUNC(do_new_bp), b);
1164 gtk_widget_show(b->soundentry); 1133 gtk_widget_show(b->soundentry);
1165 1134
1166 gtk_widget_set_sensitive(b->soundentry, FALSE); 1135 gtk_widget_set_sensitive(b->soundentry, FALSE);
1167 gtk_signal_connect(GTK_OBJECT(b->sound), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), b->soundentry); 1136 gtk_signal_connect(GTK_OBJECT(b->sound), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive),
1137 b->soundentry);
1168 1138
1169 sep = gtk_hseparator_new(); 1139 sep = gtk_hseparator_new();
1170 gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0); 1140 gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0);
1171 gtk_widget_show(sep); 1141 gtk_widget_show(sep);
1172 1142
1173 b->save = gtk_check_button_new_with_label(_("Save this pounce after activation")); 1143 b->save = gtk_check_button_new_with_label(_("Save this pounce after activation"));
1174 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->save), FALSE); 1144 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->save), FALSE);
1175 gtk_box_pack_start(GTK_BOX(vbox), b->save, FALSE, FALSE, 0); 1145 gtk_box_pack_start(GTK_BOX(vbox), b->save, FALSE, FALSE, 0);
1176 gtk_widget_show(b->save); 1146 gtk_widget_show(b->save);
1177 1147
1178 sep = gtk_hseparator_new(); 1148 sep = gtk_hseparator_new();
1179 gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0); 1149 gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0);
1180 gtk_widget_show(sep); 1150 gtk_widget_show(sep);
1181 1151
1182 bbox = gtk_hbox_new(FALSE, 5); 1152 bbox = gtk_hbox_new(FALSE, 5);
1183 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0); 1153 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
1184 gtk_widget_show(bbox); 1154 gtk_widget_show(bbox);
1185 1155
1186 button = picture_button(b->window, _("Cancel"), cancel_xpm); 1156 button = picture_button(b->window, _("Cancel"), cancel_xpm);
1187 gtk_signal_connect(GTK_OBJECT(button), "clicked", 1157 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), b->window);
1188 GTK_SIGNAL_FUNC(destroy_dialog), b->window);
1189 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0); 1158 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0);
1190 1159
1191 button = picture_button(b->window, _("OK"), ok_xpm); 1160 button = picture_button(b->window, _("OK"), ok_xpm);
1192 gtk_signal_connect(GTK_OBJECT(button), "clicked", 1161 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(do_new_bp), b);
1193 GTK_SIGNAL_FUNC(do_new_bp), b);
1194 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0); 1162 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0);
1195 1163
1196 gtk_widget_show(b->window); 1164 gtk_widget_show(b->window);
1197 } 1165 }
1198 1166
1199 1167
1200 1168
1201 /*------------------------------------------------------------------------*/ 1169 /*------------------------------------------------------------------------*/
1210 junk = gtk_editable_get_chars(GTK_EDITABLE(b->text), 0, -1); 1178 junk = gtk_editable_get_chars(GTK_EDITABLE(b->text), 0, -1);
1211 1179
1212 if (b->user) { 1180 if (b->user) {
1213 strncpy_withhtml(b->user->user_info, junk, sizeof b->user->user_info); 1181 strncpy_withhtml(b->user->user_info, junk, sizeof b->user->user_info);
1214 gc = b->user->gc; 1182 gc = b->user->gc;
1215 1183
1216 save_prefs(); 1184 save_prefs();
1217 1185
1218 if (gc) 1186 if (gc)
1219 serv_set_info(gc, b->user->user_info); 1187 serv_set_info(gc, b->user->user_info);
1220 } 1188 }
1223 g_free(b); 1191 g_free(b);
1224 } 1192 }
1225 1193
1226 void do_set_dir(GtkWidget *widget, struct set_dir_dlg *b) 1194 void do_set_dir(GtkWidget *widget, struct set_dir_dlg *b)
1227 { 1195 {
1228 char *first = gtk_entry_get_text(GTK_ENTRY(b->first)); 1196 char *first = gtk_entry_get_text(GTK_ENTRY(b->first));
1229 int web = GTK_TOGGLE_BUTTON(b->web)->active; 1197 int web = GTK_TOGGLE_BUTTON(b->web)->active;
1230 char *middle = gtk_entry_get_text(GTK_ENTRY(b->middle)); 1198 char *middle = gtk_entry_get_text(GTK_ENTRY(b->middle));
1231 char *last = gtk_entry_get_text(GTK_ENTRY(b->last)); 1199 char *last = gtk_entry_get_text(GTK_ENTRY(b->last));
1232 char *maiden = gtk_entry_get_text(GTK_ENTRY(b->maiden)); 1200 char *maiden = gtk_entry_get_text(GTK_ENTRY(b->maiden));
1233 char *city = gtk_entry_get_text(GTK_ENTRY(b->city)); 1201 char *city = gtk_entry_get_text(GTK_ENTRY(b->city));
1234 char *state = gtk_entry_get_text(GTK_ENTRY(b->state)); 1202 char *state = gtk_entry_get_text(GTK_ENTRY(b->state));
1235 char *country = gtk_entry_get_text(GTK_ENTRY(b->country)); 1203 char *country = gtk_entry_get_text(GTK_ENTRY(b->country));
1236 1204
1237 serv_set_dir(b->gc, first, middle, last, maiden, city, state, country, web); 1205 serv_set_dir(b->gc, first, middle, last, maiden, city, state, country, web);
1238 1206
1239 destroy_dialog(NULL, b->window); 1207 destroy_dialog(NULL, b->window);
1240 g_free(b); 1208 g_free(b);
1241 } 1209 }
1242 1210
1243 void show_set_dir(struct gaim_connection *gc) 1211 void show_set_dir(struct gaim_connection *gc)
1244 { 1212 {
1258 b->window = gtk_window_new(GTK_WINDOW_DIALOG); 1226 b->window = gtk_window_new(GTK_WINDOW_DIALOG);
1259 dialogwindows = g_list_prepend(dialogwindows, b->window); 1227 dialogwindows = g_list_prepend(dialogwindows, b->window);
1260 gtk_window_set_wmclass(GTK_WINDOW(b->window), "set_dir", "Gaim"); 1228 gtk_window_set_wmclass(GTK_WINDOW(b->window), "set_dir", "Gaim");
1261 gtk_window_set_policy(GTK_WINDOW(b->window), FALSE, TRUE, TRUE); 1229 gtk_window_set_policy(GTK_WINDOW(b->window), FALSE, TRUE, TRUE);
1262 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Set Dir Info")); 1230 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Set Dir Info"));
1263 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", 1231 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", GTK_SIGNAL_FUNC(destroy_dialog), b->window);
1264 GTK_SIGNAL_FUNC(destroy_dialog), b->window); 1232 gtk_widget_realize(b->window);
1265 gtk_widget_realize(b->window);
1266 aol_icon(b->window->window); 1233 aol_icon(b->window->window);
1267 1234
1268 fbox = gtk_vbox_new(FALSE, 5); 1235 fbox = gtk_vbox_new(FALSE, 5);
1269 gtk_container_add(GTK_CONTAINER(b->window), fbox); 1236 gtk_container_add(GTK_CONTAINER(b->window), fbox);
1270 gtk_widget_show(fbox); 1237 gtk_widget_show(fbox);
1271 1238
1272 frame = gtk_frame_new(_("Directory Info")); 1239 frame = gtk_frame_new(_("Directory Info"));
1273 gtk_container_set_border_width(GTK_CONTAINER(fbox), 5); 1240 gtk_container_set_border_width(GTK_CONTAINER(fbox), 5);
1274 gtk_box_pack_start(GTK_BOX(fbox), frame, FALSE, FALSE, 0); 1241 gtk_box_pack_start(GTK_BOX(fbox), frame, FALSE, FALSE, 0);
1275 gtk_widget_show(frame); 1242 gtk_widget_show(frame);
1276 1243
1277 vbox = gtk_vbox_new(FALSE, 5); 1244 vbox = gtk_vbox_new(FALSE, 5);
1278 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); 1245 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
1279 gtk_container_add(GTK_CONTAINER(frame), vbox); 1246 gtk_container_add(GTK_CONTAINER(frame), vbox);
1280 gtk_widget_show(vbox); 1247 gtk_widget_show(vbox);
1281 1248
1282 g_snprintf(buf, sizeof(buf), "Setting Dir Info for %s:", gc->username); 1249 g_snprintf(buf, sizeof(buf), "Setting Dir Info for %s:", gc->username);
1283 label = gtk_label_new(buf); 1250 label = gtk_label_new(buf);
1291 b->city = gtk_entry_new(); 1258 b->city = gtk_entry_new();
1292 b->state = gtk_entry_new(); 1259 b->state = gtk_entry_new();
1293 b->country = gtk_entry_new(); 1260 b->country = gtk_entry_new();
1294 b->web = gtk_check_button_new_with_label(_("Allow Web Searches To Find Your Info")); 1261 b->web = gtk_check_button_new_with_label(_("Allow Web Searches To Find Your Info"));
1295 1262
1296 /* Line 1 */ 1263 /* Line 1 */
1297 label = gtk_label_new(_("First Name")); 1264 label = gtk_label_new(_("First Name"));
1298 gtk_widget_show(label); 1265 gtk_widget_show(label);
1299 1266
1300 hbox = gtk_hbox_new(FALSE, 5); 1267 hbox = gtk_hbox_new(FALSE, 5);
1301 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 1268 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
1302 gtk_box_pack_end(GTK_BOX(hbox), b->first, FALSE, FALSE, 0); 1269 gtk_box_pack_end(GTK_BOX(hbox), b->first, FALSE, FALSE, 0);
1303 1270
1304 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); 1271 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
1305 gtk_widget_show(hbox); 1272 gtk_widget_show(hbox);
1306 1273
1307 /* Line 2 */ 1274 /* Line 2 */
1308 label = gtk_label_new(_("Middle Name")); 1275 label = gtk_label_new(_("Middle Name"));
1309 gtk_widget_show(label); 1276 gtk_widget_show(label);
1310 1277
1311 hbox = gtk_hbox_new(FALSE, 5); 1278 hbox = gtk_hbox_new(FALSE, 5);
1312 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 1279 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
1313 gtk_box_pack_end(GTK_BOX(hbox), b->middle, FALSE, FALSE, 0); 1280 gtk_box_pack_end(GTK_BOX(hbox), b->middle, FALSE, FALSE, 0);
1314 1281
1315 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); 1282 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
1316 gtk_widget_show(hbox); 1283 gtk_widget_show(hbox);
1317 1284
1318 1285
1319 /* Line 3 */ 1286 /* Line 3 */
1320 label = gtk_label_new(_("Last Name")); 1287 label = gtk_label_new(_("Last Name"));
1321 gtk_widget_show(label); 1288 gtk_widget_show(label);
1322 1289
1323 hbox = gtk_hbox_new(FALSE, 5); 1290 hbox = gtk_hbox_new(FALSE, 5);
1324 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 1291 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
1325 gtk_box_pack_end(GTK_BOX(hbox), b->last, FALSE, FALSE, 0); 1292 gtk_box_pack_end(GTK_BOX(hbox), b->last, FALSE, FALSE, 0);
1326 1293
1327 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); 1294 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
1328 gtk_widget_show(hbox); 1295 gtk_widget_show(hbox);
1329 1296
1330 /* Line 4 */ 1297 /* Line 4 */
1331 label = gtk_label_new(_("Maiden Name")); 1298 label = gtk_label_new(_("Maiden Name"));
1332 gtk_widget_show(label); 1299 gtk_widget_show(label);
1333 1300
1334 hbox = gtk_hbox_new(FALSE, 5); 1301 hbox = gtk_hbox_new(FALSE, 5);
1335 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 1302 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
1336 gtk_box_pack_end(GTK_BOX(hbox), b->maiden, FALSE, FALSE, 0); 1303 gtk_box_pack_end(GTK_BOX(hbox), b->maiden, FALSE, FALSE, 0);
1337 1304
1338 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); 1305 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
1339 gtk_widget_show(hbox); 1306 gtk_widget_show(hbox);
1340 1307
1341 /* Line 5 */ 1308 /* Line 5 */
1342 label = gtk_label_new(_("City")); 1309 label = gtk_label_new(_("City"));
1343 gtk_widget_show(label); 1310 gtk_widget_show(label);
1344 1311
1345 hbox = gtk_hbox_new(FALSE, 5); 1312 hbox = gtk_hbox_new(FALSE, 5);
1346 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 1313 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
1347 gtk_box_pack_end(GTK_BOX(hbox), b->city, FALSE, FALSE, 0); 1314 gtk_box_pack_end(GTK_BOX(hbox), b->city, FALSE, FALSE, 0);
1348 1315
1349 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); 1316 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
1350 gtk_widget_show(hbox); 1317 gtk_widget_show(hbox);
1351 1318
1352 /* Line 6 */ 1319 /* Line 6 */
1353 label = gtk_label_new(_("State")); 1320 label = gtk_label_new(_("State"));
1354 gtk_widget_show(label); 1321 gtk_widget_show(label);
1355 1322
1356 hbox = gtk_hbox_new(FALSE, 5); 1323 hbox = gtk_hbox_new(FALSE, 5);
1357 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 1324 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
1358 gtk_box_pack_end(GTK_BOX(hbox), b->state, FALSE, FALSE, 0); 1325 gtk_box_pack_end(GTK_BOX(hbox), b->state, FALSE, FALSE, 0);
1359 1326
1360 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); 1327 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
1361 gtk_widget_show(hbox); 1328 gtk_widget_show(hbox);
1362 1329
1363 /* Line 7 */ 1330 /* Line 7 */
1364 label = gtk_label_new(_("Country")); 1331 label = gtk_label_new(_("Country"));
1365 gtk_widget_show(label); 1332 gtk_widget_show(label);
1366 1333
1367 hbox = gtk_hbox_new(FALSE, 5); 1334 hbox = gtk_hbox_new(FALSE, 5);
1368 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 1335 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
1369 gtk_box_pack_end(GTK_BOX(hbox), b->country, FALSE, FALSE, 0); 1336 gtk_box_pack_end(GTK_BOX(hbox), b->country, FALSE, FALSE, 0);
1370 1337
1371 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); 1338 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
1376 hbox = gtk_hbox_new(FALSE, 5); 1343 hbox = gtk_hbox_new(FALSE, 5);
1377 gtk_box_pack_start(GTK_BOX(hbox), b->web, TRUE, TRUE, 0); 1344 gtk_box_pack_start(GTK_BOX(hbox), b->web, TRUE, TRUE, 0);
1378 gtk_widget_show(hbox); 1345 gtk_widget_show(hbox);
1379 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); 1346 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
1380 1347
1381 gtk_widget_show(b->first); 1348 gtk_widget_show(b->first);
1382 gtk_widget_show(b->middle); 1349 gtk_widget_show(b->middle);
1383 gtk_widget_show(b->last); 1350 gtk_widget_show(b->last);
1384 gtk_widget_show(b->maiden); 1351 gtk_widget_show(b->maiden);
1385 gtk_widget_show(b->city); 1352 gtk_widget_show(b->city);
1386 gtk_widget_show(b->state); 1353 gtk_widget_show(b->state);
1387 gtk_widget_show(b->country); 1354 gtk_widget_show(b->country);
1388 gtk_widget_show(b->web); 1355 gtk_widget_show(b->web);
1389 1356
1390 /* And add the buttons */ 1357 /* And add the buttons */
1393 gtk_box_pack_start(GTK_BOX(fbox), bot, FALSE, FALSE, 0); 1360 gtk_box_pack_start(GTK_BOX(fbox), bot, FALSE, FALSE, 0);
1394 gtk_widget_show(bot); 1361 gtk_widget_show(bot);
1395 1362
1396 b->cancel = picture_button(b->window, _("Cancel"), cancel_xpm); 1363 b->cancel = picture_button(b->window, _("Cancel"), cancel_xpm);
1397 gtk_box_pack_end(GTK_BOX(bot), b->cancel, FALSE, FALSE, 0); 1364 gtk_box_pack_end(GTK_BOX(bot), b->cancel, FALSE, FALSE, 0);
1398 gtk_signal_connect(GTK_OBJECT(b->cancel), "clicked", 1365 gtk_signal_connect(GTK_OBJECT(b->cancel), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), b->window);
1399 GTK_SIGNAL_FUNC(destroy_dialog), b->window);
1400 1366
1401 b->save = picture_button(b->window, _("Save"), save_xpm); 1367 b->save = picture_button(b->window, _("Save"), save_xpm);
1402 gtk_box_pack_end(GTK_BOX(bot), b->save, FALSE, FALSE, 0); 1368 gtk_box_pack_end(GTK_BOX(bot), b->save, FALSE, FALSE, 0);
1403 gtk_signal_connect(GTK_OBJECT(b->save), "clicked", GTK_SIGNAL_FUNC(do_set_dir), b); 1369 gtk_signal_connect(GTK_OBJECT(b->save), "clicked", GTK_SIGNAL_FUNC(do_set_dir), b);
1404 1370
1405 gtk_window_set_focus(GTK_WINDOW(b->window), b->first); 1371 gtk_window_set_focus(GTK_WINDOW(b->window), b->first);
1406 1372
1407 gtk_widget_show(b->window); 1373 gtk_widget_show(b->window);
1408 } 1374 }
1409 1375
1410 void do_change_password(GtkWidget *widget, struct passwddlg *b) 1376 void do_change_password(GtkWidget *widget, struct passwddlg *b)
1411 { 1377 {
1412 gchar *orig, *new1, *new2; 1378 gchar *orig, *new1, *new2;
1415 new1 = gtk_entry_get_text(GTK_ENTRY(b->new1)); 1381 new1 = gtk_entry_get_text(GTK_ENTRY(b->new1));
1416 new2 = gtk_entry_get_text(GTK_ENTRY(b->new2)); 1382 new2 = gtk_entry_get_text(GTK_ENTRY(b->new2));
1417 1383
1418 if (g_strcasecmp(new1, new2)) { 1384 if (g_strcasecmp(new1, new2)) {
1419 do_error_dialog(_("New Passwords Do Not Match"), _("Gaim - Change Password Error")); 1385 do_error_dialog(_("New Passwords Do Not Match"), _("Gaim - Change Password Error"));
1420 return ; 1386 return;
1421 } 1387 }
1422 1388
1423 if ((strlen(orig) < 1) || (strlen(new1) < 1) || (strlen(new2) < 1)) { 1389 if ((strlen(orig) < 1) || (strlen(new1) < 1) || (strlen(new2) < 1)) {
1424 do_error_dialog(_("Fill out all fields completely"), _("Gaim - Change Password Error")); 1390 do_error_dialog(_("Fill out all fields completely"), _("Gaim - Change Password Error"));
1425 return; 1391 return;
1426 } 1392 }
1427 1393
1428 serv_change_passwd(b->gc, orig, new1); 1394 serv_change_passwd(b->gc, orig, new1);
1429 1395
1430 destroy_dialog(NULL, b->window); 1396 destroy_dialog(NULL, b->window);
1431 g_free(b); 1397 g_free(b);
1432 } 1398 }
1433 1399
1434 void show_change_passwd(struct gaim_connection *gc) 1400 void show_change_passwd(struct gaim_connection *gc)
1447 1413
1448 b->window = gtk_window_new(GTK_WINDOW_DIALOG); 1414 b->window = gtk_window_new(GTK_WINDOW_DIALOG);
1449 gtk_window_set_policy(GTK_WINDOW(b->window), FALSE, TRUE, TRUE); 1415 gtk_window_set_policy(GTK_WINDOW(b->window), FALSE, TRUE, TRUE);
1450 gtk_window_set_wmclass(GTK_WINDOW(b->window), "change_passwd", "Gaim"); 1416 gtk_window_set_wmclass(GTK_WINDOW(b->window), "change_passwd", "Gaim");
1451 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Password Change")); 1417 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Password Change"));
1452 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", 1418 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", GTK_SIGNAL_FUNC(destroy_dialog), b->window);
1453 GTK_SIGNAL_FUNC(destroy_dialog), b->window);
1454 gtk_widget_realize(b->window); 1419 gtk_widget_realize(b->window);
1455 aol_icon(b->window->window); 1420 aol_icon(b->window->window);
1456 dialogwindows = g_list_prepend(dialogwindows, b->window); 1421 dialogwindows = g_list_prepend(dialogwindows, b->window);
1457 1422
1458 fbox = gtk_vbox_new(FALSE, 5); 1423 fbox = gtk_vbox_new(FALSE, 5);
1486 b->original = gtk_entry_new(); 1451 b->original = gtk_entry_new();
1487 gtk_entry_set_visibility(GTK_ENTRY(b->original), FALSE); 1452 gtk_entry_set_visibility(GTK_ENTRY(b->original), FALSE);
1488 gtk_box_pack_end(GTK_BOX(hbox), b->original, FALSE, FALSE, 0); 1453 gtk_box_pack_end(GTK_BOX(hbox), b->original, FALSE, FALSE, 0);
1489 gtk_widget_show(b->original); 1454 gtk_widget_show(b->original);
1490 1455
1491 /* Next Line */
1492 hbox = gtk_hbox_new(FALSE, 5);
1493 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
1494 gtk_widget_show(hbox);
1495
1496 label = gtk_label_new(_("New Password"));
1497 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
1498 gtk_widget_show(label);
1499
1500 b->new1 = gtk_entry_new();
1501 gtk_entry_set_visibility(GTK_ENTRY(b->new1), FALSE);
1502 gtk_box_pack_end(GTK_BOX(hbox), b->new1, FALSE, FALSE, 0);
1503 gtk_widget_show(b->new1);
1504
1505 /* Next Line */ 1456 /* Next Line */
1506 hbox = gtk_hbox_new(FALSE, 5); 1457 hbox = gtk_hbox_new(FALSE, 5);
1507 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); 1458 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
1508 gtk_widget_show(hbox); 1459 gtk_widget_show(hbox);
1509 1460
1461 label = gtk_label_new(_("New Password"));
1462 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
1463 gtk_widget_show(label);
1464
1465 b->new1 = gtk_entry_new();
1466 gtk_entry_set_visibility(GTK_ENTRY(b->new1), FALSE);
1467 gtk_box_pack_end(GTK_BOX(hbox), b->new1, FALSE, FALSE, 0);
1468 gtk_widget_show(b->new1);
1469
1470 /* Next Line */
1471 hbox = gtk_hbox_new(FALSE, 5);
1472 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
1473 gtk_widget_show(hbox);
1474
1510 label = gtk_label_new(_("New Password (again)")); 1475 label = gtk_label_new(_("New Password (again)"));
1511 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 1476 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
1512 gtk_widget_show(label); 1477 gtk_widget_show(label);
1513 1478
1514 b->new2 = gtk_entry_new(); 1479 b->new2 = gtk_entry_new();
1515 gtk_entry_set_visibility(GTK_ENTRY(b->new2), FALSE); 1480 gtk_entry_set_visibility(GTK_ENTRY(b->new2), FALSE);
1516 gtk_box_pack_end(GTK_BOX(hbox), b->new2, FALSE, FALSE, 0); 1481 gtk_box_pack_end(GTK_BOX(hbox), b->new2, FALSE, FALSE, 0);
1517 gtk_widget_show(b->new2); 1482 gtk_widget_show(b->new2);
1518 1483
1519 /* Now do our row of buttons */ 1484 /* Now do our row of buttons */
1520 hbox = gtk_hbox_new(FALSE, 5); 1485 hbox = gtk_hbox_new(FALSE, 5);
1521 gtk_box_pack_start(GTK_BOX(fbox), hbox, FALSE, FALSE, 0); 1486 gtk_box_pack_start(GTK_BOX(fbox), hbox, FALSE, FALSE, 0);
1522 gtk_widget_show(hbox); 1487 gtk_widget_show(hbox);
1523 1488
1524 b->cancel = picture_button(b->window, _("Cancel"), cancel_xpm); 1489 b->cancel = picture_button(b->window, _("Cancel"), cancel_xpm);
1525 gtk_box_pack_end(GTK_BOX(hbox), b->cancel, FALSE, FALSE, 0); 1490 gtk_box_pack_end(GTK_BOX(hbox), b->cancel, FALSE, FALSE, 0);
1526 gtk_signal_connect(GTK_OBJECT(b->cancel), "clicked", 1491 gtk_signal_connect(GTK_OBJECT(b->cancel), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), b->window);
1527 GTK_SIGNAL_FUNC(destroy_dialog), b->window);
1528 1492
1529 b->ok = picture_button(b->window, _("OK"), ok_xpm); 1493 b->ok = picture_button(b->window, _("OK"), ok_xpm);
1530 gtk_box_pack_end(GTK_BOX(hbox), b->ok, FALSE, FALSE, 0); 1494 gtk_box_pack_end(GTK_BOX(hbox), b->ok, FALSE, FALSE, 0);
1531 gtk_signal_connect(GTK_OBJECT(b->ok), "clicked", 1495 gtk_signal_connect(GTK_OBJECT(b->ok), "clicked", GTK_SIGNAL_FUNC(do_change_password), b);
1532 GTK_SIGNAL_FUNC(do_change_password), b);
1533 1496
1534 1497
1535 gtk_widget_show(b->window); 1498 gtk_widget_show(b->window);
1536 } 1499 }
1537 1500
1555 } 1518 }
1556 1519
1557 void show_icon_dialog(GtkWidget *w, gpointer data) 1520 void show_icon_dialog(GtkWidget *w, gpointer data)
1558 { 1521 {
1559 struct set_icon_dlg *b = (struct set_icon_dlg *)data; 1522 struct set_icon_dlg *b = (struct set_icon_dlg *)data;
1560 char *buf = g_malloc(BUF_LEN); 1523 char *buf = g_malloc(BUF_LEN);
1561 1524
1562 if (!icondlg) { 1525 if (!icondlg) {
1563 icondlg = gtk_file_selection_new(_("Gaim - Load User Icon")); 1526 icondlg = gtk_file_selection_new(_("Gaim - Load User Icon"));
1564 1527
1565 gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(icondlg)); 1528 gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(icondlg));
1566 1529
1567 g_snprintf(buf, BUF_LEN - 1, "%s/", getenv("HOME")); 1530 g_snprintf(buf, BUF_LEN - 1, "%s/", getenv("HOME"));
1568 1531
1569 gtk_file_selection_set_filename(GTK_FILE_SELECTION(icondlg), buf); 1532 gtk_file_selection_set_filename(GTK_FILE_SELECTION(icondlg), buf);
1570 gtk_signal_connect(GTK_OBJECT(icondlg), "destroy", 1533 gtk_signal_connect(GTK_OBJECT(icondlg), "destroy",
1571 GTK_SIGNAL_FUNC(destroy_dialog), icondlg); 1534 GTK_SIGNAL_FUNC(destroy_dialog), icondlg);
1572 1535
1573 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(icondlg)->ok_button), 1536 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(icondlg)->ok_button),
1574 "clicked", GTK_SIGNAL_FUNC(do_user_icon), b); 1537 "clicked", GTK_SIGNAL_FUNC(do_user_icon), b);
1575 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(icondlg)->cancel_button), 1538 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(icondlg)->cancel_button),
1576 "clicked", GTK_SIGNAL_FUNC(destroy_dialog), icondlg); 1539 "clicked", GTK_SIGNAL_FUNC(destroy_dialog), icondlg);
1577 1540
1578 1541
1579 } 1542 }
1580 1543
1581 g_free(buf); 1544 g_free(buf);
1582 gtk_widget_show(icondlg); 1545 gtk_widget_show(icondlg);
1583 gdk_window_raise(icondlg->window); 1546 gdk_window_raise(icondlg->window);
1584 } 1547 }
1585 1548
1586 void do_save_icon(GtkWidget *w, struct set_icon_dlg *b) 1549 void do_save_icon(GtkWidget *w, struct set_icon_dlg *b)
1587 { 1550 {
1588 char *file = gtk_entry_get_text(GTK_ENTRY(b->entry)); 1551 char *file = gtk_entry_get_text(GTK_ENTRY(b->entry));
1625 1588
1626 b->window = gtk_window_new(GTK_WINDOW_DIALOG); 1589 b->window = gtk_window_new(GTK_WINDOW_DIALOG);
1627 gtk_container_set_border_width(GTK_CONTAINER(b->window), 5); 1590 gtk_container_set_border_width(GTK_CONTAINER(b->window), 5);
1628 gtk_window_set_wmclass(GTK_WINDOW(b->window), "set_icon", "Gaim"); 1591 gtk_window_set_wmclass(GTK_WINDOW(b->window), "set_icon", "Gaim");
1629 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Set User Icon")); 1592 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Set User Icon"));
1630 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", 1593 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", GTK_SIGNAL_FUNC(destroy_dialog), b->window);
1631 GTK_SIGNAL_FUNC(destroy_dialog), b->window);
1632 gtk_widget_realize(b->window); 1594 gtk_widget_realize(b->window);
1633 aol_icon(b->window->window); 1595 aol_icon(b->window->window);
1634 dialogwindows = g_list_prepend(dialogwindows, b->window); 1596 dialogwindows = g_list_prepend(dialogwindows, b->window);
1635 1597
1636 /* the box that holds everything */ 1598 /* the box that holds everything */
1648 hbox = gtk_hbox_new(FALSE, 0); 1610 hbox = gtk_hbox_new(FALSE, 0);
1649 gtk_widget_show(hbox); 1611 gtk_widget_show(hbox);
1650 gtk_container_add(GTK_CONTAINER(frame), hbox); 1612 gtk_container_add(GTK_CONTAINER(frame), hbox);
1651 1613
1652 /* 1614 /*
1653 sep = gtk_vseparator_new(); 1615 sep = gtk_vseparator_new();
1654 gtk_widget_show(sep); 1616 gtk_widget_show(sep);
1655 gtk_box_pack_start(GTK_BOX(hbox), sep, FALSE, FALSE, 5); 1617 gtk_box_pack_start(GTK_BOX(hbox), sep, FALSE, FALSE, 5);
1656 */ 1618 */
1657 1619
1658 /* A boxy */ 1620 /* A boxy */
1659 rbox = gtk_vbox_new(FALSE, 5); 1621 rbox = gtk_vbox_new(FALSE, 5);
1660 gtk_widget_show(rbox); 1622 gtk_widget_show(rbox);
1661 gtk_box_pack_start(GTK_BOX(hbox), rbox, FALSE, FALSE, 5); 1623 gtk_box_pack_start(GTK_BOX(hbox), rbox, FALSE, FALSE, 5);
1666 gtk_box_pack_start(GTK_BOX(rbox), label, FALSE, FALSE, 5); 1628 gtk_box_pack_start(GTK_BOX(rbox), label, FALSE, FALSE, 5);
1667 1629
1668 hbox2 = gtk_hbox_new(FALSE, 5); 1630 hbox2 = gtk_hbox_new(FALSE, 5);
1669 gtk_widget_show(hbox2); 1631 gtk_widget_show(hbox2);
1670 gtk_box_pack_start(GTK_BOX(rbox), hbox2, FALSE, FALSE, 5); 1632 gtk_box_pack_start(GTK_BOX(rbox), hbox2, FALSE, FALSE, 5);
1671 1633
1672 b->entry = gtk_entry_new(); 1634 b->entry = gtk_entry_new();
1673 1635
1674 if (strlen(gc->user->iconfile)) { 1636 if (strlen(gc->user->iconfile)) {
1675 gtk_entry_set_text(GTK_ENTRY(b->entry), gc->user->iconfile); 1637 gtk_entry_set_text(GTK_ENTRY(b->entry), gc->user->iconfile);
1676 } 1638 }
1677 1639
1678 gtk_widget_show(b->entry); 1640 gtk_widget_show(b->entry);
1679 gtk_box_pack_start(GTK_BOX(hbox2), b->entry, TRUE, TRUE, 5); 1641 gtk_box_pack_start(GTK_BOX(hbox2), b->entry, TRUE, TRUE, 5);
1680 1642
1681 button = gtk_button_new_with_label(_("Browse")); 1643 button = gtk_button_new_with_label(_("Browse"));
1682 gtk_box_pack_start(GTK_BOX(hbox2), button, FALSE, FALSE, 5); 1644 gtk_box_pack_start(GTK_BOX(hbox2), button, FALSE, FALSE, 5);
1683 gtk_signal_connect(GTK_OBJECT(button), "clicked", 1645 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(show_icon_dialog), b);
1684 GTK_SIGNAL_FUNC(show_icon_dialog), b); 1646 gtk_widget_show(button);
1685 gtk_widget_show(button); 1647
1686
1687 button = gtk_button_new_with_label(_("Clear")); 1648 button = gtk_button_new_with_label(_("Clear"));
1688 gtk_box_pack_start(GTK_BOX(hbox2), button, FALSE, FALSE, 5); 1649 gtk_box_pack_start(GTK_BOX(hbox2), button, FALSE, FALSE, 5);
1689 gtk_signal_connect(GTK_OBJECT(button), "clicked", 1650 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(do_clear_icon), b);
1690 GTK_SIGNAL_FUNC(do_clear_icon), b); 1651
1691 1652 gtk_widget_show(button);
1692 gtk_widget_show(button); 1653
1693
1694 /* button buttons */ 1654 /* button buttons */
1695 buttons = gtk_hbox_new(FALSE, 5); 1655 buttons = gtk_hbox_new(FALSE, 5);
1696 gtk_box_pack_start(GTK_BOX(vbox), buttons, FALSE, FALSE, 0); 1656 gtk_box_pack_start(GTK_BOX(vbox), buttons, FALSE, FALSE, 0);
1697 gtk_widget_show(buttons); 1657 gtk_widget_show(buttons);
1698 1658
1699 b->cancel = picture_button(b->window, _("Cancel"), cancel_xpm); 1659 b->cancel = picture_button(b->window, _("Cancel"), cancel_xpm);
1700 gtk_box_pack_end(GTK_BOX(buttons), b->cancel, FALSE, FALSE, 0); 1660 gtk_box_pack_end(GTK_BOX(buttons), b->cancel, FALSE, FALSE, 0);
1701 gtk_signal_connect(GTK_OBJECT(b->cancel), "clicked", 1661 gtk_signal_connect(GTK_OBJECT(b->cancel), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), b->window);
1702 GTK_SIGNAL_FUNC(destroy_dialog), b->window);
1703 1662
1704 b->ok = picture_button(b->window, _("Ok"), ok_xpm); 1663 b->ok = picture_button(b->window, _("Ok"), ok_xpm);
1705 gtk_box_pack_end(GTK_BOX(buttons), b->ok, FALSE, FALSE, 0); 1664 gtk_box_pack_end(GTK_BOX(buttons), b->ok, FALSE, FALSE, 0);
1706 1665
1707 gtk_signal_connect(GTK_OBJECT(b->ok), "clicked", 1666 gtk_signal_connect(GTK_OBJECT(b->ok), "clicked", GTK_SIGNAL_FUNC(do_save_icon), b);
1708 GTK_SIGNAL_FUNC(do_save_icon), b);
1709 1667
1710 /* Show it */ 1668 /* Show it */
1711 gtk_widget_show(b->window); 1669 gtk_widget_show(b->window);
1712 1670
1713 } 1671 }
1714 1672
1715 void show_set_info(struct gaim_connection *gc) 1673 void show_set_info(struct gaim_connection *gc)
1716 { 1674 {
1717 GtkWidget *buttons; 1675 GtkWidget *buttons;
1725 gc = connections->data; 1683 gc = connections->data;
1726 tmp = gc->user; 1684 tmp = gc->user;
1727 b->user = tmp; 1685 b->user = tmp;
1728 1686
1729 b->window = gtk_window_new(GTK_WINDOW_DIALOG); 1687 b->window = gtk_window_new(GTK_WINDOW_DIALOG);
1730 gtk_window_set_wmclass(GTK_WINDOW(b->window), "set_info", "Gaim"); 1688 gtk_window_set_wmclass(GTK_WINDOW(b->window), "set_info", "Gaim");
1731 dialogwindows = g_list_prepend(dialogwindows, b->window); 1689 dialogwindows = g_list_prepend(dialogwindows, b->window);
1732 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Set User Info")); 1690 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Set User Info"));
1733 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", 1691 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", GTK_SIGNAL_FUNC(destroy_dialog), b->window);
1734 GTK_SIGNAL_FUNC(destroy_dialog), b->window);
1735 gtk_widget_realize(b->window); 1692 gtk_widget_realize(b->window);
1736 aol_icon(b->window->window); 1693 aol_icon(b->window->window);
1737 1694
1738 vbox = gtk_vbox_new(FALSE, 5); 1695 vbox = gtk_vbox_new(FALSE, 5);
1739 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); 1696 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
1740 gtk_container_add(GTK_CONTAINER(b->window), vbox); 1697 gtk_container_add(GTK_CONTAINER(b->window), vbox);
1741 gtk_widget_show(vbox); 1698 gtk_widget_show(vbox);
1742 1699
1743 buf = g_malloc(256); 1700 buf = g_malloc(256);
1744 g_snprintf(buf, 256, "Changing info for %s:", tmp->username); 1701 g_snprintf(buf, 256, "Changing info for %s:", tmp->username);
1745 label = gtk_label_new(buf); 1702 label = gtk_label_new(buf);
1746 g_free(buf); 1703 g_free(buf);
1747 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5); 1704 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5);
1748 gtk_widget_show(label); 1705 gtk_widget_show(label);
1749 1706
1750 b->text = gtk_text_new(NULL, NULL); 1707 b->text = gtk_text_new(NULL, NULL);
1751 gtk_text_set_word_wrap(GTK_TEXT(b->text), TRUE); 1708 gtk_text_set_word_wrap(GTK_TEXT(b->text), TRUE);
1752 gtk_text_set_editable(GTK_TEXT(b->text), TRUE); 1709 gtk_text_set_editable(GTK_TEXT(b->text), TRUE);
1753 gtk_widget_set_usize(b->text, 300, 200); 1710 gtk_widget_set_usize(b->text, 300, 200);
1754 buf = g_malloc(strlen(tmp->user_info)+1); 1711 buf = g_malloc(strlen(tmp->user_info) + 1);
1755 strncpy_nohtml(buf, tmp->user_info, strlen(tmp->user_info)+1); 1712 strncpy_nohtml(buf, tmp->user_info, strlen(tmp->user_info) + 1);
1756 gtk_text_insert(GTK_TEXT(b->text), NULL, NULL, NULL, buf, -1); 1713 gtk_text_insert(GTK_TEXT(b->text), NULL, NULL, NULL, buf, -1);
1757 g_free(buf); 1714 g_free(buf);
1758 gtk_box_pack_start(GTK_BOX(vbox), b->text, TRUE, TRUE, 0); 1715 gtk_box_pack_start(GTK_BOX(vbox), b->text, TRUE, TRUE, 0);
1759 gtk_widget_show(b->text); 1716 gtk_widget_show(b->text);
1760 gtk_window_set_focus(GTK_WINDOW(b->window), b->text); 1717 gtk_window_set_focus(GTK_WINDOW(b->window), b->text);
1763 gtk_box_pack_start(GTK_BOX(vbox), buttons, FALSE, FALSE, 0); 1720 gtk_box_pack_start(GTK_BOX(vbox), buttons, FALSE, FALSE, 0);
1764 gtk_widget_show(buttons); 1721 gtk_widget_show(buttons);
1765 1722
1766 b->cancel = picture_button(b->window, _("Cancel"), cancel_xpm); 1723 b->cancel = picture_button(b->window, _("Cancel"), cancel_xpm);
1767 gtk_box_pack_end(GTK_BOX(buttons), b->cancel, FALSE, FALSE, 0); 1724 gtk_box_pack_end(GTK_BOX(buttons), b->cancel, FALSE, FALSE, 0);
1768 gtk_signal_connect(GTK_OBJECT(b->cancel), "clicked", 1725 gtk_signal_connect(GTK_OBJECT(b->cancel), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), b->window);
1769 GTK_SIGNAL_FUNC(destroy_dialog), b->window);
1770 1726
1771 b->save = picture_button(b->window, _("Save"), save_xpm); 1727 b->save = picture_button(b->window, _("Save"), save_xpm);
1772 gtk_box_pack_end(GTK_BOX(buttons), b->save, FALSE, FALSE, 0); 1728 gtk_box_pack_end(GTK_BOX(buttons), b->save, FALSE, FALSE, 0);
1773 gtk_signal_connect(GTK_OBJECT(b->save), "clicked", 1729 gtk_signal_connect(GTK_OBJECT(b->save), "clicked", GTK_SIGNAL_FUNC(do_save_info), b);
1774 GTK_SIGNAL_FUNC(do_save_info), b);
1775 1730
1776 gtk_widget_show(b->window); 1731 gtk_widget_show(b->window);
1777 1732
1778 } 1733 }
1779 1734
1780 /*------------------------------------------------------------------------*/ 1735 /*------------------------------------------------------------------------*/
1781 /* The dialog for the info requests */ 1736 /* The dialog for the info requests */
1782 /*------------------------------------------------------------------------*/ 1737 /*------------------------------------------------------------------------*/
1783 1738
1784 static void info_dlg_free(GtkWidget *b, struct info_dlg *d) { 1739 static void info_dlg_free(GtkWidget *b, struct info_dlg *d)
1740 {
1785 g_free(d); 1741 g_free(d);
1786 } 1742 }
1787 1743
1788 gchar **info_img_handler(gchar *url) 1744 gchar **info_img_handler(gchar *url)
1789 { 1745 {
1798 return NULL; 1754 return NULL;
1799 } 1755 }
1800 1756
1801 void g_show_info_text(char *info, ...) 1757 void g_show_info_text(char *info, ...)
1802 { 1758 {
1803 GtkWidget *ok; 1759 GtkWidget *ok;
1804 GtkWidget *label; 1760 GtkWidget *label;
1805 GtkWidget *text; 1761 GtkWidget *text;
1806 GtkWidget *bbox; 1762 GtkWidget *bbox;
1807 GtkWidget *sw; 1763 GtkWidget *sw;
1808 gint options = 0; 1764 gint options = 0;
1809 char *more_info; 1765 char *more_info;
1810 va_list ap; 1766 va_list ap;
1811 1767
1812 struct info_dlg *b = g_new0(struct info_dlg, 1); 1768 struct info_dlg *b = g_new0(struct info_dlg, 1);
1813 1769
1814 va_start(ap, info); 1770 va_start(ap, info);
1815 1771
1816 b->window = gtk_window_new(GTK_WINDOW_DIALOG); 1772 b->window = gtk_window_new(GTK_WINDOW_DIALOG);
1817 gtk_window_set_title(GTK_WINDOW(b->window), "Gaim"); 1773 gtk_window_set_title(GTK_WINDOW(b->window), "Gaim");
1818 gtk_container_border_width(GTK_CONTAINER(b->window), 5); 1774 gtk_container_border_width(GTK_CONTAINER(b->window), 5);
1819 bbox = gtk_vbox_new(FALSE, 5); 1775 bbox = gtk_vbox_new(FALSE, 5);
1820 gtk_container_add(GTK_CONTAINER(b->window), bbox); 1776 gtk_container_add(GTK_CONTAINER(b->window), bbox);
1821 gtk_widget_realize(GTK_WIDGET(b->window)); 1777 gtk_widget_realize(GTK_WIDGET(b->window));
1822 ok = picture_button(b->window, _("OK"), ok_xpm); 1778 ok = picture_button(b->window, _("OK"), ok_xpm);
1823 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", 1779 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", GTK_SIGNAL_FUNC(destroy_dialog), b->window);
1824 GTK_SIGNAL_FUNC(destroy_dialog), b->window); 1780 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", GTK_SIGNAL_FUNC(info_dlg_free), b);
1825 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", 1781 gtk_signal_connect(GTK_OBJECT(ok), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), b->window);
1826 GTK_SIGNAL_FUNC(info_dlg_free), b); 1782
1827 gtk_signal_connect(GTK_OBJECT(ok), "clicked", 1783 label = gtk_label_new(_("Below are the results of your search: "));
1828 GTK_SIGNAL_FUNC(destroy_dialog), b->window); 1784
1829 1785 sw = gtk_scrolled_window_new(NULL, NULL);
1830 label = gtk_label_new(_("Below are the results of your search: ")); 1786 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
1831
1832 sw = gtk_scrolled_window_new (NULL, NULL);
1833 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
1834 GTK_POLICY_NEVER,
1835 GTK_POLICY_ALWAYS);
1836 text = gtk_imhtml_new(NULL, NULL); 1787 text = gtk_imhtml_new(NULL, NULL);
1837 b->text = text; 1788 b->text = text;
1838 gtk_container_add(GTK_CONTAINER(sw), text); 1789 gtk_container_add(GTK_CONTAINER(sw), text);
1839 1790
1840 GTK_LAYOUT(text)->hadjustment->step_increment = 10.0; 1791 GTK_LAYOUT(text)->hadjustment->step_increment = 10.0;
1860 options ^= GTK_IMHTML_NO_TITLE; 1811 options ^= GTK_IMHTML_NO_TITLE;
1861 options ^= GTK_IMHTML_NO_NEWLINE; 1812 options ^= GTK_IMHTML_NO_NEWLINE;
1862 options ^= GTK_IMHTML_NO_SCROLL; 1813 options ^= GTK_IMHTML_NO_SCROLL;
1863 gtk_imhtml_append_text(GTK_IMHTML(b->text), info, options); 1814 gtk_imhtml_append_text(GTK_IMHTML(b->text), info, options);
1864 while ((more_info = va_arg(ap, char *)) != NULL) 1815 while ((more_info = va_arg(ap, char *)) != NULL)
1865 gtk_imhtml_append_text(GTK_IMHTML(b->text), more_info, options); 1816 gtk_imhtml_append_text(GTK_IMHTML(b->text), more_info, options);
1866 va_end(ap); 1817 va_end(ap);
1867 gtk_imhtml_append_text(GTK_IMHTML(b->text), "<BR>", 0); 1818 gtk_imhtml_append_text(GTK_IMHTML(b->text), "<BR>", 0);
1868 1819
1869 gtk_adjustment_set_value(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(sw)), 0); 1820 gtk_adjustment_set_value(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(sw)), 0);
1870 } 1821 }
1875 1826
1876 1827
1877 static void do_add_perm(GtkWidget *w, struct addperm *p) 1828 static void do_add_perm(GtkWidget *w, struct addperm *p)
1878 { 1829 {
1879 1830
1880 char *who; 1831 char *who;
1881 char *name; 1832 char *name;
1882 1833
1883 1834
1884 who = gtk_entry_get_text(GTK_ENTRY(p->entry)); 1835 who = gtk_entry_get_text(GTK_ENTRY(p->entry));
1885 1836
1886 name = g_malloc(strlen(who) + 2); 1837 name = g_malloc(strlen(who) + 2);
1887 g_snprintf(name, strlen(who) + 2, "%s", who); 1838 g_snprintf(name, strlen(who) + 2, "%s", who);
1888 1839
1889 if (!p->permit) { 1840 if (!p->permit) {
1890 GSList *d = p->gc->deny; 1841 GSList *d = p->gc->deny;
1891 char *n; 1842 char *n;
1892 n = g_strdup(normalize(name)); 1843 n = g_strdup(normalize(name));
1893 while (d) { 1844 while (d) {
1894 if (!g_strcasecmp(n, normalize(d->data))) 1845 if (!g_strcasecmp(n, normalize(d->data)))
1901 build_block_list(); 1852 build_block_list();
1902 serv_add_deny(p->gc, name); 1853 serv_add_deny(p->gc, name);
1903 do_export(p->gc); 1854 do_export(p->gc);
1904 } else 1855 } else
1905 g_free(name); 1856 g_free(name);
1906 } else { 1857 } else {
1907 GSList *d = p->gc->permit; 1858 GSList *d = p->gc->permit;
1908 char *n; 1859 char *n;
1909 n = g_strdup(normalize(name)); 1860 n = g_strdup(normalize(name));
1910 while (d) { 1861 while (d) {
1911 if (!g_strcasecmp(n, normalize(d->data))) 1862 if (!g_strcasecmp(n, normalize(d->data)))
1918 build_allow_list(); 1869 build_allow_list();
1919 serv_add_permit(p->gc, name); 1870 serv_add_permit(p->gc, name);
1920 do_export(p->gc); 1871 do_export(p->gc);
1921 } else 1872 } else
1922 g_free(name); 1873 g_free(name);
1923 } 1874 }
1924 1875
1925 destroy_dialog(NULL, p->window); 1876 destroy_dialog(NULL, p->window);
1926 } 1877 }
1927 1878
1928 1879
1929 1880
1930 void show_add_perm(struct gaim_connection *gc, char *who, gboolean permit) 1881 void show_add_perm(struct gaim_connection *gc, char *who, gboolean permit)
1931 { 1882 {
1932 GtkWidget *cancel; 1883 GtkWidget *cancel;
1933 GtkWidget *add; 1884 GtkWidget *add;
1934 GtkWidget *label; 1885 GtkWidget *label;
1935 GtkWidget *bbox; 1886 GtkWidget *bbox;
1936 GtkWidget *vbox; 1887 GtkWidget *vbox;
1937 GtkWidget *topbox; 1888 GtkWidget *topbox;
1938 GtkWidget *frame; 1889 GtkWidget *frame;
1939 1890
1940 struct addperm *p = g_new0(struct addperm, 1); 1891 struct addperm *p = g_new0(struct addperm, 1);
1941 p->gc = gc; 1892 p->gc = gc;
1942 p->permit = permit; 1893 p->permit = permit;
1943 1894
1944 p->window = gtk_window_new(GTK_WINDOW_DIALOG); 1895 p->window = gtk_window_new(GTK_WINDOW_DIALOG);
1945 gtk_container_set_border_width(GTK_CONTAINER(p->window), 5); 1896 gtk_container_set_border_width(GTK_CONTAINER(p->window), 5);
1946 gtk_window_set_policy(GTK_WINDOW(p->window), FALSE, FALSE, TRUE); 1897 gtk_window_set_policy(GTK_WINDOW(p->window), FALSE, FALSE, TRUE);
1947 gtk_widget_realize(p->window); 1898 gtk_widget_realize(p->window);
1948 1899
1949 dialogwindows = g_list_prepend(dialogwindows, p->window); 1900 dialogwindows = g_list_prepend(dialogwindows, p->window);
1950 1901
1951 bbox = gtk_hbox_new(TRUE, 10); 1902 bbox = gtk_hbox_new(TRUE, 10);
1952 topbox = gtk_hbox_new(FALSE, 5); 1903 topbox = gtk_hbox_new(FALSE, 5);
1953 vbox = gtk_vbox_new(FALSE, 5); 1904 vbox = gtk_vbox_new(FALSE, 5);
1954 p->entry = gtk_entry_new(); 1905 p->entry = gtk_entry_new();
1955 1906
1956 if (permit) 1907 if (permit)
1957 frame = gtk_frame_new(_("Permit")); 1908 frame = gtk_frame_new(_("Permit"));
1958 else 1909 else
1959 frame = gtk_frame_new(_("Deny")); 1910 frame = gtk_frame_new(_("Deny"));
1963 if (permit) 1914 if (permit)
1964 add = picture_button(p->window, _("Permit"), add_xpm); 1915 add = picture_button(p->window, _("Permit"), add_xpm);
1965 else 1916 else
1966 add = picture_button(p->window, _("Deny"), add_xpm); 1917 add = picture_button(p->window, _("Deny"), add_xpm);
1967 cancel = picture_button(p->window, _("Cancel"), cancel_xpm); 1918 cancel = picture_button(p->window, _("Cancel"), cancel_xpm);
1968 1919
1969 /* End of Cancel Button */ 1920 /* End of Cancel Button */
1970 if (who != NULL) 1921 if (who != NULL)
1971 gtk_entry_set_text(GTK_ENTRY(p->entry), who); 1922 gtk_entry_set_text(GTK_ENTRY(p->entry), who);
1972 1923
1973 /* Put the buttons in the box */ 1924 /* Put the buttons in the box */
1974 1925
1975 gtk_box_pack_start(GTK_BOX(bbox), add, FALSE, FALSE, 5); 1926 gtk_box_pack_start(GTK_BOX(bbox), add, FALSE, FALSE, 5);
1976 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 5); 1927 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 5);
1977 1928
1978 label = gtk_label_new(_("Add")); 1929 label = gtk_label_new(_("Add"));
1979 gtk_widget_show(label); 1930 gtk_widget_show(label);
1980 gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 5); 1931 gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 5);
1981 gtk_box_pack_start(GTK_BOX(topbox), p->entry, FALSE, FALSE, 5); 1932 gtk_box_pack_start(GTK_BOX(topbox), p->entry, FALSE, FALSE, 5);
1982 /* And the boxes in the box */ 1933 /* And the boxes in the box */
1983 gtk_box_pack_start(GTK_BOX(vbox), topbox, TRUE, TRUE, 5); 1934 gtk_box_pack_start(GTK_BOX(vbox), topbox, TRUE, TRUE, 5);
1984 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5); 1935 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5);
1985 gtk_container_add(GTK_CONTAINER(frame), vbox); 1936 gtk_container_add(GTK_CONTAINER(frame), vbox);
1986 1937
1987 1938
1988 /* Handle closes right */ 1939 /* Handle closes right */
1989 gtk_signal_connect(GTK_OBJECT(p->window), "destroy", 1940 gtk_signal_connect(GTK_OBJECT(p->window), "destroy", GTK_SIGNAL_FUNC(destroy_dialog), p->window);
1990 GTK_SIGNAL_FUNC(destroy_dialog), p->window); 1941 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), p->window);
1991 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", 1942 gtk_signal_connect(GTK_OBJECT(add), "clicked", GTK_SIGNAL_FUNC(do_add_perm), p);
1992 GTK_SIGNAL_FUNC(destroy_dialog), p->window); 1943 gtk_signal_connect(GTK_OBJECT(p->entry), "activate", GTK_SIGNAL_FUNC(do_add_perm), p);
1993 gtk_signal_connect(GTK_OBJECT(add), "clicked", 1944
1994 GTK_SIGNAL_FUNC(do_add_perm), p); 1945 /* Finish up */
1995 gtk_signal_connect(GTK_OBJECT(p->entry), "activate", 1946 gtk_widget_show(add);
1996 GTK_SIGNAL_FUNC(do_add_perm), p); 1947 gtk_widget_show(cancel);
1997 1948 gtk_widget_show(p->entry);
1998 /* Finish up */ 1949 gtk_widget_show(topbox);
1999 gtk_widget_show(add); 1950 gtk_widget_show(bbox);
2000 gtk_widget_show(cancel); 1951 gtk_widget_show(vbox);
2001 gtk_widget_show(p->entry);
2002 gtk_widget_show(topbox);
2003 gtk_widget_show(bbox);
2004 gtk_widget_show(vbox);
2005 gtk_widget_show(frame); 1952 gtk_widget_show(frame);
2006 if (permit) 1953 if (permit)
2007 gtk_window_set_title(GTK_WINDOW(p->window), _("Gaim - Add Permit")); 1954 gtk_window_set_title(GTK_WINDOW(p->window), _("Gaim - Add Permit"));
2008 else 1955 else
2009 gtk_window_set_title(GTK_WINDOW(p->window), _("Gaim - Add Deny")); 1956 gtk_window_set_title(GTK_WINDOW(p->window), _("Gaim - Add Deny"));
2010 gtk_window_set_focus(GTK_WINDOW(p->window), p->entry); 1957 gtk_window_set_focus(GTK_WINDOW(p->window), p->entry);
2011 gtk_container_add(GTK_CONTAINER(p->window), frame); 1958 gtk_container_add(GTK_CONTAINER(p->window), frame);
2012 gtk_widget_realize(p->window); 1959 gtk_widget_realize(p->window);
2013 aol_icon(p->window->window); 1960 aol_icon(p->window->window);
2014 1961
2015 gtk_widget_show(p->window); 1962 gtk_widget_show(p->window);
2016 } 1963 }
2017 1964
2018 1965
2019 /*------------------------------------------------------------------------*/ 1966 /*------------------------------------------------------------------------*/
2020 /* Functions Called To Add A Log */ 1967 /* Functions Called To Add A Log */
2021 /*------------------------------------------------------------------------*/ 1968 /*------------------------------------------------------------------------*/
2022 1969
2023 void cancel_log(GtkWidget *widget, struct conversation *c) 1970 void cancel_log(GtkWidget *widget, struct conversation *c)
2024 { 1971 {
2025 if (c->wood) 1972 if (c->wood) {
2026 {
2027 set_state_lock(1); 1973 set_state_lock(1);
2028 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(c->wood), FALSE); 1974 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(c->wood), FALSE);
2029 set_state_lock(0); 1975 set_state_lock(0);
2030 } 1976 }
2031 dialogwindows = g_list_remove(dialogwindows, c->log_dialog); 1977 dialogwindows = g_list_remove(dialogwindows, c->log_dialog);
2032 gtk_widget_destroy(c->log_dialog); 1978 gtk_widget_destroy(c->log_dialog);
2033 c->log_dialog = NULL; 1979 c->log_dialog = NULL;
2034 } 1980 }
2035 1981
2036 void do_log(GtkWidget *w, struct conversation *c) 1982 void do_log(GtkWidget *w, struct conversation *c)
2037 { 1983 {
2038 struct log_conversation *l; 1984 struct log_conversation *l;
2039 char buf[128]; 1985 char buf[128];
2040 char *file; 1986 char *file;
2041 char path[PATHSIZE]; 1987 char path[PATHSIZE];
2042 1988
2043 if (!find_log_info(c->name)) { 1989 if (!find_log_info(c->name)) {
2044 file = gtk_file_selection_get_filename(GTK_FILE_SELECTION(c->log_dialog)); 1990 file = gtk_file_selection_get_filename(GTK_FILE_SELECTION(c->log_dialog));
2045 strncpy( path, file, PATHSIZE - 1 ); 1991 strncpy(path, file, PATHSIZE - 1);
2046 if (file_is_dir(path, c->log_dialog)) { 1992 if (file_is_dir(path, c->log_dialog)) {
2047 return; 1993 return;
2048 } 1994 }
2049 1995
2050 l = (struct log_conversation *)g_new0(struct log_conversation, 1); 1996 l = (struct log_conversation *)g_new0(struct log_conversation, 1);
2051 strcpy(l->name, c->name); 1997 strcpy(l->name, c->name);
2052 strcpy(l->filename, file); 1998 strcpy(l->filename, file);
2053 log_conversations = g_list_append(log_conversations, l); 1999 log_conversations = g_list_append(log_conversations, l);
2054 2000
2055 if (c != NULL) 2001 if (c != NULL) {
2056 { 2002 g_snprintf(buf, sizeof(buf), LOG_CONVERSATION_TITLE, c->name);
2057 g_snprintf(buf, sizeof(buf), LOG_CONVERSATION_TITLE, c->name); 2003 gtk_window_set_title(GTK_WINDOW(c->window), buf);
2058 gtk_window_set_title(GTK_WINDOW(c->window), buf); 2004 }
2059 } 2005 }
2060 } 2006
2061 2007 save_prefs();
2062 save_prefs(); 2008 cancel_log(NULL, c);
2063 cancel_log(NULL, c); 2009 }
2064 }
2065 2010
2066 void show_log_dialog(struct conversation *c) 2011 void show_log_dialog(struct conversation *c)
2067 { 2012 {
2068 char *buf = g_malloc(BUF_LEN); 2013 char *buf = g_malloc(BUF_LEN);
2069 2014
2070 if (!c->log_dialog) { 2015 if (!c->log_dialog) {
2071 c->log_dialog = gtk_file_selection_new(_("Gaim - Log Conversation")); 2016 c->log_dialog = gtk_file_selection_new(_("Gaim - Log Conversation"));
2072 2017
2073 gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(c->log_dialog)); 2018 gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(c->log_dialog));
2074 2019
2075 g_snprintf(buf, BUF_LEN - 1, "%s/%s.log", getenv("HOME"), c->name); 2020 g_snprintf(buf, BUF_LEN - 1, "%s/%s.log", getenv("HOME"), c->name);
2076 gtk_object_set_user_data(GTK_OBJECT(c->log_dialog), "log dialog"); 2021 gtk_object_set_user_data(GTK_OBJECT(c->log_dialog), "log dialog");
2077 gtk_file_selection_set_filename(GTK_FILE_SELECTION(c->log_dialog), buf); 2022 gtk_file_selection_set_filename(GTK_FILE_SELECTION(c->log_dialog), buf);
2078 gtk_signal_connect(GTK_OBJECT(c->log_dialog), "delete_event", GTK_SIGNAL_FUNC(delete_event_dialog), c); 2023 gtk_signal_connect(GTK_OBJECT(c->log_dialog), "delete_event",
2079 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(c->log_dialog)->ok_button), "clicked", GTK_SIGNAL_FUNC(do_log), c); 2024 GTK_SIGNAL_FUNC(delete_event_dialog), c);
2080 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(c->log_dialog)->cancel_button), "clicked", GTK_SIGNAL_FUNC(cancel_log), c); 2025 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(c->log_dialog)->ok_button), "clicked",
2026 GTK_SIGNAL_FUNC(do_log), c);
2027 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(c->log_dialog)->cancel_button),
2028 "clicked", GTK_SIGNAL_FUNC(cancel_log), c);
2081 } 2029 }
2082 2030
2083 g_free(buf); 2031 g_free(buf);
2084 2032
2085 gtk_widget_show(c->log_dialog); 2033 gtk_widget_show(c->log_dialog);
2090 /* Find Buddy By Email */ 2038 /* Find Buddy By Email */
2091 /*------------------------------------------------------*/ 2039 /*------------------------------------------------------*/
2092 2040
2093 void do_find_info(GtkWidget *w, struct findbyinfo *b) 2041 void do_find_info(GtkWidget *w, struct findbyinfo *b)
2094 { 2042 {
2095 char *first; 2043 char *first;
2096 char *middle; 2044 char *middle;
2097 char *last; 2045 char *last;
2098 char *maiden; 2046 char *maiden;
2099 char *city; 2047 char *city;
2100 char *state; 2048 char *state;
2101 char *country; 2049 char *country;
2102 2050
2103 first = gtk_entry_get_text(GTK_ENTRY(b->firstentry)); 2051 first = gtk_entry_get_text(GTK_ENTRY(b->firstentry));
2104 middle = gtk_entry_get_text(GTK_ENTRY(b->middleentry)); 2052 middle = gtk_entry_get_text(GTK_ENTRY(b->middleentry));
2105 last = gtk_entry_get_text(GTK_ENTRY(b->lastentry)); 2053 last = gtk_entry_get_text(GTK_ENTRY(b->lastentry));
2106 maiden = gtk_entry_get_text(GTK_ENTRY(b->maidenentry)); 2054 maiden = gtk_entry_get_text(GTK_ENTRY(b->maidenentry));
2107 city = gtk_entry_get_text(GTK_ENTRY(b->cityentry)); 2055 city = gtk_entry_get_text(GTK_ENTRY(b->cityentry));
2108 state = gtk_entry_get_text(GTK_ENTRY(b->stateentry)); 2056 state = gtk_entry_get_text(GTK_ENTRY(b->stateentry));
2109 country = gtk_entry_get_text(GTK_ENTRY(b->countryentry)); 2057 country = gtk_entry_get_text(GTK_ENTRY(b->countryentry));
2110 2058
2111 /* FIXME : dir search. not sure if even works; not important */ 2059 /* FIXME : dir search. not sure if even works; not important */
2112 if (connections) 2060 if (connections)
2113 serv_dir_search(connections->data, first, middle, last, maiden, city, state, country, ""); 2061 serv_dir_search(connections->data, first, middle, last, maiden, city, state, country,
2114 destroy_dialog(NULL, b->window); 2062 "");
2115 } 2063 destroy_dialog(NULL, b->window);
2064 }
2116 2065
2117 void do_find_email(GtkWidget *w, struct findbyemail *b) 2066 void do_find_email(GtkWidget *w, struct findbyemail *b)
2118 { 2067 {
2119 char *email; 2068 char *email;
2120 2069
2121 email = gtk_entry_get_text(GTK_ENTRY(b->emailentry)); 2070 email = gtk_entry_get_text(GTK_ENTRY(b->emailentry));
2122 2071
2123 if (b->gc) 2072 if (b->gc)
2124 serv_dir_search(b->gc, "","","","","","","", email); 2073 serv_dir_search(b->gc, "", "", "", "", "", "", "", email);
2125 else 2074 else
2126 serv_dir_search(connections->data, "","","","","","","", email); 2075 serv_dir_search(connections->data, "", "", "", "", "", "", "", email);
2127 2076
2128 destroy_dialog(NULL, b->window); 2077 destroy_dialog(NULL, b->window);
2129 } 2078 }
2130 2079
2131 void show_find_info() 2080 void show_find_info()
2132 { 2081 {
2133 GtkWidget *cancel; 2082 GtkWidget *cancel;
2134 GtkWidget *ok; 2083 GtkWidget *ok;
2135 GtkWidget *label; 2084 GtkWidget *label;
2136 GtkWidget *bbox; 2085 GtkWidget *bbox;
2137 GtkWidget *vbox; 2086 GtkWidget *vbox;
2138 GtkWidget *hbox; 2087 GtkWidget *hbox;
2139 GtkWidget *fbox; 2088 GtkWidget *fbox;
2140 GtkWidget *frame; 2089 GtkWidget *frame;
2141 2090
2142 struct findbyinfo *b = g_new0(struct findbyinfo, 1); 2091 struct findbyinfo *b = g_new0(struct findbyinfo, 1);
2143 b->window = gtk_window_new(GTK_WINDOW_DIALOG); 2092 b->window = gtk_window_new(GTK_WINDOW_DIALOG);
2144 gtk_window_set_policy(GTK_WINDOW(b->window), FALSE, TRUE, TRUE); 2093 gtk_window_set_policy(GTK_WINDOW(b->window), FALSE, TRUE, TRUE);
2145 gtk_window_set_wmclass(GTK_WINDOW(b->window), "find_info", "Gaim"); 2094 gtk_window_set_wmclass(GTK_WINDOW(b->window), "find_info", "Gaim");
2146 gtk_widget_show(b->window); 2095 gtk_widget_show(b->window);
2147 2096
2148 dialogwindows = g_list_prepend(dialogwindows, b->window); 2097 dialogwindows = g_list_prepend(dialogwindows, b->window);
2153 /* Build OK Button */ 2102 /* Build OK Button */
2154 2103
2155 ok = picture_button(b->window, _("OK"), ok_xpm); 2104 ok = picture_button(b->window, _("OK"), ok_xpm);
2156 cancel = picture_button(b->window, _("Cancel"), cancel_xpm); 2105 cancel = picture_button(b->window, _("Cancel"), cancel_xpm);
2157 2106
2158 bbox = gtk_hbox_new(FALSE, 5); 2107 bbox = gtk_hbox_new(FALSE, 5);
2159 vbox = gtk_vbox_new(FALSE, 5); 2108 vbox = gtk_vbox_new(FALSE, 5);
2160 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); 2109 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
2161 2110
2162 b->firstentry = gtk_entry_new(); 2111 b->firstentry = gtk_entry_new();
2163 b->middleentry = gtk_entry_new(); 2112 b->middleentry = gtk_entry_new();
2164 b->lastentry = gtk_entry_new(); 2113 b->lastentry = gtk_entry_new();
2165 b->maidenentry = gtk_entry_new(); 2114 b->maidenentry = gtk_entry_new();
2166 b->cityentry = gtk_entry_new(); 2115 b->cityentry = gtk_entry_new();
2167 b->stateentry = gtk_entry_new(); 2116 b->stateentry = gtk_entry_new();
2168 b->countryentry = gtk_entry_new(); 2117 b->countryentry = gtk_entry_new();
2169 2118
2170 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 0); 2119 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 0);
2171 gtk_box_pack_end(GTK_BOX(bbox), ok, FALSE, FALSE, 0); 2120 gtk_box_pack_end(GTK_BOX(bbox), ok, FALSE, FALSE, 0);
2172 2121
2173 /* Line 1 */ 2122 /* Line 1 */
2174 label = gtk_label_new(_("First Name")); 2123 label = gtk_label_new(_("First Name"));
2175 gtk_widget_show(label); 2124 gtk_widget_show(label);
2176 2125
2177 hbox = gtk_hbox_new(FALSE, 5); 2126 hbox = gtk_hbox_new(FALSE, 5);
2178 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 2127 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
2179 gtk_box_pack_end(GTK_BOX(hbox), b->firstentry, FALSE, FALSE, 0); 2128 gtk_box_pack_end(GTK_BOX(hbox), b->firstentry, FALSE, FALSE, 0);
2180 2129
2181 gtk_widget_show(hbox); 2130 gtk_widget_show(hbox);
2182 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); 2131 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
2183 2132
2184 /* Line 2 */ 2133 /* Line 2 */
2185 2134
2186 label = gtk_label_new(_("Middle Name")); 2135 label = gtk_label_new(_("Middle Name"));
2187 gtk_widget_show(label); 2136 gtk_widget_show(label);
2188 2137
2189 hbox = gtk_hbox_new(FALSE, 5); 2138 hbox = gtk_hbox_new(FALSE, 5);
2190 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 2139 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
2191 gtk_box_pack_end(GTK_BOX(hbox), b->middleentry, FALSE, FALSE, 0); 2140 gtk_box_pack_end(GTK_BOX(hbox), b->middleentry, FALSE, FALSE, 0);
2192 2141
2193 gtk_widget_show(hbox); 2142 gtk_widget_show(hbox);
2194 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); 2143 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
2195 2144
2196 /* Line 3 */ 2145 /* Line 3 */
2197 2146
2198 label = gtk_label_new(_("Last Name")); 2147 label = gtk_label_new(_("Last Name"));
2199 gtk_widget_show(label); 2148 gtk_widget_show(label);
2200 2149
2201 hbox = gtk_hbox_new(FALSE, 5); 2150 hbox = gtk_hbox_new(FALSE, 5);
2202 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 2151 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
2203 gtk_box_pack_end(GTK_BOX(hbox), b->lastentry, FALSE, FALSE, 0); 2152 gtk_box_pack_end(GTK_BOX(hbox), b->lastentry, FALSE, FALSE, 0);
2204 2153
2205 gtk_widget_show(hbox); 2154 gtk_widget_show(hbox);
2206 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); 2155 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
2207 2156
2208 /* Line 4 */ 2157 /* Line 4 */
2209 2158
2210 label = gtk_label_new(_("Maiden Name")); 2159 label = gtk_label_new(_("Maiden Name"));
2211 gtk_widget_show(label); 2160 gtk_widget_show(label);
2212 2161
2213 hbox = gtk_hbox_new(FALSE, 5); 2162 hbox = gtk_hbox_new(FALSE, 5);
2214 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 2163 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
2215 gtk_box_pack_end(GTK_BOX(hbox), b->maidenentry, FALSE, FALSE, 0); 2164 gtk_box_pack_end(GTK_BOX(hbox), b->maidenentry, FALSE, FALSE, 0);
2216 2165
2217 gtk_widget_show(hbox); 2166 gtk_widget_show(hbox);
2218 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); 2167 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
2219 2168
2220 /* Line 5 */ 2169 /* Line 5 */
2221 2170
2222 label = gtk_label_new(_("City")); 2171 label = gtk_label_new(_("City"));
2223 gtk_widget_show(label); 2172 gtk_widget_show(label);
2224 2173
2225 hbox = gtk_hbox_new(FALSE, 5); 2174 hbox = gtk_hbox_new(FALSE, 5);
2226 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 2175 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
2227 gtk_box_pack_end(GTK_BOX(hbox), b->cityentry, FALSE, FALSE, 0); 2176 gtk_box_pack_end(GTK_BOX(hbox), b->cityentry, FALSE, FALSE, 0);
2228 2177
2229 gtk_widget_show(hbox); 2178 gtk_widget_show(hbox);
2230 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); 2179 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
2231 2180
2232 /* Line 6 */ 2181 /* Line 6 */
2233 label = gtk_label_new(_("State")); 2182 label = gtk_label_new(_("State"));
2234 gtk_widget_show(label); 2183 gtk_widget_show(label);
2235 2184
2236 hbox = gtk_hbox_new(FALSE, 5); 2185 hbox = gtk_hbox_new(FALSE, 5);
2237 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 2186 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
2238 gtk_box_pack_end(GTK_BOX(hbox), b->stateentry, FALSE, FALSE, 0); 2187 gtk_box_pack_end(GTK_BOX(hbox), b->stateentry, FALSE, FALSE, 0);
2239 2188
2240 gtk_widget_show(hbox); 2189 gtk_widget_show(hbox);
2241 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); 2190 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
2242 2191
2243 /* Line 7 */ 2192 /* Line 7 */
2244 label = gtk_label_new(_("Country")); 2193 label = gtk_label_new(_("Country"));
2245 gtk_widget_show(label); 2194 gtk_widget_show(label);
2246 2195
2247 hbox = gtk_hbox_new(FALSE, 5); 2196 hbox = gtk_hbox_new(FALSE, 5);
2248 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 2197 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
2249 gtk_box_pack_end(GTK_BOX(hbox), b->countryentry, FALSE, FALSE, 0); 2198 gtk_box_pack_end(GTK_BOX(hbox), b->countryentry, FALSE, FALSE, 0);
2250 2199
2251 gtk_widget_show(hbox); 2200 gtk_widget_show(hbox);
2252 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); 2201 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
2253 2202
2254 /* Merge The Boxes */ 2203 /* Merge The Boxes */
2255 2204
2256 gtk_container_add(GTK_CONTAINER(frame), vbox); 2205 gtk_container_add(GTK_CONTAINER(frame), vbox);
2257 gtk_box_pack_start(GTK_BOX(fbox), frame, FALSE, FALSE, 0); 2206 gtk_box_pack_start(GTK_BOX(fbox), frame, FALSE, FALSE, 0);
2258 gtk_box_pack_start(GTK_BOX(fbox), bbox, FALSE, FALSE, 0); 2207 gtk_box_pack_start(GTK_BOX(fbox), bbox, FALSE, FALSE, 0);
2259 2208
2260 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", 2209 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", GTK_SIGNAL_FUNC(destroy_dialog), b->window);
2261 GTK_SIGNAL_FUNC(destroy_dialog), b->window); 2210 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), b->window);
2262 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", 2211 gtk_signal_connect(GTK_OBJECT(ok), "clicked", GTK_SIGNAL_FUNC(do_find_info), b);
2263 GTK_SIGNAL_FUNC(destroy_dialog), b->window); 2212
2264 gtk_signal_connect(GTK_OBJECT(ok), "clicked", 2213 gtk_widget_show(ok);
2265 GTK_SIGNAL_FUNC(do_find_info), b); 2214 gtk_widget_show(cancel);
2266 2215 gtk_widget_show(b->firstentry);
2267 gtk_widget_show(ok);
2268 gtk_widget_show(cancel);
2269 gtk_widget_show(b->firstentry);
2270 gtk_widget_show(b->middleentry); 2216 gtk_widget_show(b->middleentry);
2271 gtk_widget_show(b->lastentry); 2217 gtk_widget_show(b->lastentry);
2272 gtk_widget_show(b->maidenentry); 2218 gtk_widget_show(b->maidenentry);
2273 gtk_widget_show(b->cityentry); 2219 gtk_widget_show(b->cityentry);
2274 gtk_widget_show(b->stateentry); 2220 gtk_widget_show(b->stateentry);
2275 gtk_widget_show(b->countryentry); 2221 gtk_widget_show(b->countryentry);
2276 gtk_widget_show(bbox); 2222 gtk_widget_show(bbox);
2277 gtk_widget_show(vbox); 2223 gtk_widget_show(vbox);
2278 gtk_widget_show(frame); 2224 gtk_widget_show(frame);
2279 gtk_widget_show(fbox); 2225 gtk_widget_show(fbox);
2280 2226
2281 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Find Buddy By Info")); 2227 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Find Buddy By Info"));
2282 gtk_window_set_focus(GTK_WINDOW(b->window), b->firstentry); 2228 gtk_window_set_focus(GTK_WINDOW(b->window), b->firstentry);
2283 gtk_container_add(GTK_CONTAINER(b->window), fbox); 2229 gtk_container_add(GTK_CONTAINER(b->window), fbox);
2284 gtk_container_border_width(GTK_CONTAINER(b->window), 5); 2230 gtk_container_border_width(GTK_CONTAINER(b->window), 5);
2285 gtk_widget_realize(b->window); 2231 gtk_widget_realize(b->window);
2286 aol_icon(b->window->window); 2232 aol_icon(b->window->window);
2287 2233
2288 gtk_widget_show(b->window); 2234 gtk_widget_show(b->window);
2289 } 2235 }
2290 2236
2291 void show_find_email(struct gaim_connection *gc) 2237 void show_find_email(struct gaim_connection *gc)
2292 { 2238 {
2293 GtkWidget *label; 2239 GtkWidget *label;
2294 GtkWidget *bbox; 2240 GtkWidget *bbox;
2295 GtkWidget *vbox; 2241 GtkWidget *vbox;
2296 GtkWidget *frame; 2242 GtkWidget *frame;
2297 GtkWidget *topbox; 2243 GtkWidget *topbox;
2298 GtkWidget *button; 2244 GtkWidget *button;
2299 2245
2300 struct findbyemail *b = g_new0(struct findbyemail, 1); 2246 struct findbyemail *b = g_new0(struct findbyemail, 1);
2301 if (g_slist_find(connections, gc)) 2247 if (g_slist_find(connections, gc))
2302 b->gc = gc; 2248 b->gc = gc;
2303 b->window = gtk_window_new(GTK_WINDOW_DIALOG); 2249 b->window = gtk_window_new(GTK_WINDOW_DIALOG);
2304 gtk_window_set_policy(GTK_WINDOW(b->window), FALSE, TRUE, TRUE); 2250 gtk_window_set_policy(GTK_WINDOW(b->window), FALSE, TRUE, TRUE);
2305 gtk_window_set_wmclass(GTK_WINDOW(b->window), "find_email", "Gaim"); 2251 gtk_window_set_wmclass(GTK_WINDOW(b->window), "find_email", "Gaim");
2306 gtk_widget_realize(b->window); 2252 gtk_widget_realize(b->window);
2307 aol_icon(b->window->window); 2253 aol_icon(b->window->window);
2308 dialogwindows = g_list_prepend(dialogwindows, b->window); 2254 dialogwindows = g_list_prepend(dialogwindows, b->window);
2309 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", 2255 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", GTK_SIGNAL_FUNC(destroy_dialog), b->window);
2310 GTK_SIGNAL_FUNC(destroy_dialog), b->window); 2256 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Find Buddy By Email"));
2311 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Find Buddy By Email")); 2257
2312 2258 vbox = gtk_vbox_new(FALSE, 5);
2313 vbox = gtk_vbox_new(FALSE, 5); 2259 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
2314 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); 2260 gtk_container_add(GTK_CONTAINER(b->window), vbox);
2315 gtk_container_add(GTK_CONTAINER(b->window), vbox);
2316 2261
2317 frame = gtk_frame_new(_("Search for Buddy")); 2262 frame = gtk_frame_new(_("Search for Buddy"));
2318 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); 2263 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0);
2319 2264
2320 topbox = gtk_hbox_new(FALSE, 5); 2265 topbox = gtk_hbox_new(FALSE, 5);
2321 gtk_container_add(GTK_CONTAINER(frame), topbox); 2266 gtk_container_add(GTK_CONTAINER(frame), topbox);
2322 gtk_container_set_border_width(GTK_CONTAINER(topbox), 5); 2267 gtk_container_set_border_width(GTK_CONTAINER(topbox), 5);
2323 2268
2324 label = gtk_label_new(_("Email")); 2269 label = gtk_label_new(_("Email"));
2325 gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 0); 2270 gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 0);
2326 2271
2327 b->emailentry = gtk_entry_new(); 2272 b->emailentry = gtk_entry_new();
2328 gtk_box_pack_start(GTK_BOX(topbox), b->emailentry, TRUE, TRUE, 0); 2273 gtk_box_pack_start(GTK_BOX(topbox), b->emailentry, TRUE, TRUE, 0);
2329 gtk_signal_connect(GTK_OBJECT(b->emailentry), "activate", 2274 gtk_signal_connect(GTK_OBJECT(b->emailentry), "activate", GTK_SIGNAL_FUNC(do_find_email), b);
2330 GTK_SIGNAL_FUNC(do_find_email), b); 2275 gtk_window_set_focus(GTK_WINDOW(b->window), b->emailentry);
2331 gtk_window_set_focus(GTK_WINDOW(b->window), b->emailentry);
2332 2276
2333 bbox = gtk_hbox_new(FALSE, 5); 2277 bbox = gtk_hbox_new(FALSE, 5);
2334 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0); 2278 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
2335 2279
2336 button = picture_button(b->window, _("Cancel"), cancel_xpm); 2280 button = picture_button(b->window, _("Cancel"), cancel_xpm);
2337 gtk_signal_connect(GTK_OBJECT(button), "clicked", 2281 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), b->window);
2338 GTK_SIGNAL_FUNC(destroy_dialog), b->window);
2339 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0); 2282 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0);
2340 2283
2341 button = picture_button(b->window, _("OK"), ok_xpm); 2284 button = picture_button(b->window, _("OK"), ok_xpm);
2342 gtk_signal_connect(GTK_OBJECT(button), "clicked", 2285 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(do_find_email), b);
2343 GTK_SIGNAL_FUNC(do_find_email), b);
2344 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0); 2286 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0);
2345 2287
2346 gtk_widget_show_all(b->window); 2288 gtk_widget_show_all(b->window);
2347 } 2289 }
2348 2290
2349 /*------------------------------------------------------*/ 2291 /*------------------------------------------------------*/
2350 /* Link Dialog */ 2292 /* Link Dialog */
2351 /*------------------------------------------------------*/ 2293 /*------------------------------------------------------*/
2354 { 2296 {
2355 if (c->link) { 2297 if (c->link) {
2356 set_state_lock(1); 2298 set_state_lock(1);
2357 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(c->link), FALSE); 2299 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(c->link), FALSE);
2358 set_state_lock(0); 2300 set_state_lock(0);
2359 } 2301 }
2360 destroy_dialog(NULL, c->link_dialog); 2302 destroy_dialog(NULL, c->link_dialog);
2361 c->link_dialog = NULL; 2303 c->link_dialog = NULL;
2362 } 2304 }
2363 2305
2364 void do_add_link(GtkWidget *widget, struct linkdlg *b) 2306 void do_add_link(GtkWidget *widget, struct linkdlg *b)
2365 { 2307 {
2366 char *open_tag; 2308 char *open_tag;
2367 char *urltext, *showtext; 2309 char *urltext, *showtext;
2368 open_tag = g_malloc(2048); 2310 open_tag = g_malloc(2048);
2369 2311
2370 2312
2371 urltext = gtk_entry_get_text(GTK_ENTRY(b->url)); 2313 urltext = gtk_entry_get_text(GTK_ENTRY(b->url));
2372 showtext = gtk_entry_get_text(GTK_ENTRY(b->text)); 2314 showtext = gtk_entry_get_text(GTK_ENTRY(b->text));
2373 2315
2374 g_snprintf(open_tag, 2048, "<A HREF=\"%s\">%s", urltext, showtext); 2316 g_snprintf(open_tag, 2048, "<A HREF=\"%s\">%s", urltext, showtext);
2375 surround(b->entry, open_tag, "</A>"); 2317 surround(b->entry, open_tag, "</A>");
2376 2318
2377 g_free(open_tag); 2319 g_free(open_tag);
2378 destroy_dialog(NULL, b->window); 2320 destroy_dialog(NULL, b->window);
2389 GtkWidget *fbox; 2331 GtkWidget *fbox;
2390 2332
2391 if (!c->link_dialog) { 2333 if (!c->link_dialog) {
2392 struct linkdlg *b = g_new0(struct linkdlg, 1); 2334 struct linkdlg *b = g_new0(struct linkdlg, 1);
2393 c->link_dialog = gtk_window_new(GTK_WINDOW_DIALOG); 2335 c->link_dialog = gtk_window_new(GTK_WINDOW_DIALOG);
2394 gtk_window_set_wmclass(GTK_WINDOW(c->link_dialog), 2336 gtk_window_set_wmclass(GTK_WINDOW(c->link_dialog), "add_link", "Gaim");
2395 "add_link", "Gaim");
2396 dialogwindows = g_list_prepend(dialogwindows, c->link_dialog); 2337 dialogwindows = g_list_prepend(dialogwindows, c->link_dialog);
2397 2338
2398 gtk_widget_set_usize(c->link_dialog, 270, 165); 2339 gtk_widget_set_usize(c->link_dialog, 270, 165);
2399 gtk_window_set_policy(GTK_WINDOW(c->link_dialog), FALSE, FALSE, TRUE); 2340 gtk_window_set_policy(GTK_WINDOW(c->link_dialog), FALSE, FALSE, TRUE);
2400 gtk_widget_show(c->link_dialog); 2341 gtk_widget_show(c->link_dialog);
2424 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); 2365 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
2425 gtk_box_pack_end(GTK_BOX(hbox), b->url, FALSE, FALSE, 5); 2366 gtk_box_pack_end(GTK_BOX(hbox), b->url, FALSE, FALSE, 5);
2426 gtk_widget_show(label); 2367 gtk_widget_show(label);
2427 gtk_widget_show(hbox); 2368 gtk_widget_show(hbox);
2428 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); 2369 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);
2429 2370
2430 hbox = gtk_hbox_new(FALSE, 5); 2371 hbox = gtk_hbox_new(FALSE, 5);
2431 label = gtk_label_new(_("Description")); 2372 label = gtk_label_new(_("Description"));
2432 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); 2373 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
2433 gtk_box_pack_end(GTK_BOX(hbox), b->text, FALSE, FALSE, 5); 2374 gtk_box_pack_end(GTK_BOX(hbox), b->text, FALSE, FALSE, 5);
2434 gtk_widget_show(label); 2375 gtk_widget_show(label);
2435 gtk_widget_show(hbox); 2376 gtk_widget_show(hbox);
2436 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); 2377 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);
2437 2378
2438 gtk_widget_show(b->url); 2379 gtk_widget_show(b->url);
2439 gtk_widget_show(b->text); 2380 gtk_widget_show(b->text);
2440 gtk_widget_show(frame); 2381 gtk_widget_show(frame);
2441 gtk_widget_show(fbox); 2382 gtk_widget_show(fbox);
2442 2383
2445 gtk_box_pack_start(GTK_BOX(fbox), bbox, TRUE, TRUE, 5); 2386 gtk_box_pack_start(GTK_BOX(fbox), bbox, TRUE, TRUE, 5);
2446 gtk_widget_show(vbox); 2387 gtk_widget_show(vbox);
2447 2388
2448 gtk_signal_connect(GTK_OBJECT(c->link_dialog), "destroy", 2389 gtk_signal_connect(GTK_OBJECT(c->link_dialog), "destroy",
2449 GTK_SIGNAL_FUNC(cancel_link), c); 2390 GTK_SIGNAL_FUNC(cancel_link), c);
2450 gtk_signal_connect(GTK_OBJECT(b->cancel), "clicked", 2391 gtk_signal_connect(GTK_OBJECT(b->cancel), "clicked", GTK_SIGNAL_FUNC(cancel_link), c);
2451 GTK_SIGNAL_FUNC(cancel_link), c); 2392 gtk_signal_connect(GTK_OBJECT(b->ok), "clicked", GTK_SIGNAL_FUNC(do_add_link), b);
2452 gtk_signal_connect(GTK_OBJECT(b->ok), "clicked", 2393
2453 GTK_SIGNAL_FUNC(do_add_link), b); 2394 gtk_container_add(GTK_CONTAINER(c->link_dialog), fbox);
2454 2395 gtk_container_border_width(GTK_CONTAINER(c->link_dialog), 10);
2455 gtk_container_add(GTK_CONTAINER(c->link_dialog ), fbox); 2396 gtk_window_set_title(GTK_WINDOW(c->link_dialog), _("GAIM - Add URL"));
2456 gtk_container_border_width(GTK_CONTAINER(c->link_dialog ), 10); 2397 gtk_window_set_focus(GTK_WINDOW(c->link_dialog), b->url);
2457 gtk_window_set_title(GTK_WINDOW(c->link_dialog ), _("GAIM - Add URL"));
2458 gtk_window_set_focus(GTK_WINDOW(c->link_dialog ), b->url);
2459 b->window = c->link_dialog; 2398 b->window = c->link_dialog;
2460 b->toggle = linky; 2399 b->toggle = linky;
2461 b->entry = c->entry; 2400 b->entry = c->entry;
2462 gtk_widget_realize(c->link_dialog); 2401 gtk_widget_realize(c->link_dialog);
2463 aol_icon(c->link_dialog->window); 2402 aol_icon(c->link_dialog->window);
2464 2403
2465 } 2404 }
2466 2405
2467 gtk_widget_show(c->link_dialog); 2406 gtk_widget_show(c->link_dialog);
2476 static GtkWidget *fgcseld = NULL; 2415 static GtkWidget *fgcseld = NULL;
2477 static GtkWidget *bgcseld = NULL; 2416 static GtkWidget *bgcseld = NULL;
2478 2417
2479 void cancel_fgcolor(GtkWidget *widget, struct conversation *c) 2418 void cancel_fgcolor(GtkWidget *widget, struct conversation *c)
2480 { 2419 {
2481 if (c->fgcolorbtn && widget) 2420 if (c->fgcolorbtn && widget) {
2482 {
2483 set_state_lock(1); 2421 set_state_lock(1);
2484 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(c->fgcolorbtn), FALSE); 2422 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(c->fgcolorbtn), FALSE);
2485 set_state_lock(0); 2423 set_state_lock(0);
2486 } 2424 }
2487 dialogwindows = g_list_remove(dialogwindows, c->fg_color_dialog); 2425 dialogwindows = g_list_remove(dialogwindows, c->fg_color_dialog);
2489 c->fg_color_dialog = NULL; 2427 c->fg_color_dialog = NULL;
2490 } 2428 }
2491 2429
2492 void cancel_bgcolor(GtkWidget *widget, struct conversation *c) 2430 void cancel_bgcolor(GtkWidget *widget, struct conversation *c)
2493 { 2431 {
2494 if (c->bgcolorbtn && widget) 2432 if (c->bgcolorbtn && widget) {
2495 {
2496 set_state_lock(1); 2433 set_state_lock(1);
2497 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(c->bgcolorbtn), FALSE); 2434 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(c->bgcolorbtn), FALSE);
2498 set_state_lock(0); 2435 set_state_lock(0);
2499 } 2436 }
2500 dialogwindows = g_list_remove(dialogwindows, c->bg_color_dialog); 2437 dialogwindows = g_list_remove(dialogwindows, c->bg_color_dialog);
2509 struct conversation *c; 2446 struct conversation *c;
2510 char *open_tag; 2447 char *open_tag;
2511 2448
2512 open_tag = g_malloc(30); 2449 open_tag = g_malloc(30);
2513 2450
2514 gtk_color_selection_get_color (colorsel, color); 2451 gtk_color_selection_get_color(colorsel, color);
2515 2452
2516 c = gtk_object_get_user_data(GTK_OBJECT(colorsel)); 2453 c = gtk_object_get_user_data(GTK_OBJECT(colorsel));
2517 /* GTK_IS_EDITABLE(c->entry); huh? */ 2454 /* GTK_IS_EDITABLE(c->entry); huh? */
2518 2455
2519 text_color.red = ((guint16)(color[0]*65535))>>8; 2456 text_color.red = ((guint16)(color[0] * 65535)) >> 8;
2520 text_color.green = ((guint16)(color[1]*65535))>>8; 2457 text_color.green = ((guint16)(color[1] * 65535)) >> 8;
2521 text_color.blue = ((guint16)(color[2]*65535))>>8; 2458 text_color.blue = ((guint16)(color[2] * 65535)) >> 8;
2522 2459
2523 c->fgcol = text_color; 2460 c->fgcol = text_color;
2524 c->hasfg = 1; 2461 c->hasfg = 1;
2525 g_snprintf(open_tag, 23, "<FONT COLOR=\"#%02X%02X%02X\">", text_color.red, text_color.green, text_color.blue); 2462 g_snprintf(open_tag, 23, "<FONT COLOR=\"#%02X%02X%02X\">", text_color.red, text_color.green,
2463 text_color.blue);
2526 surround(c->entry, open_tag, "</FONT>"); 2464 surround(c->entry, open_tag, "</FONT>");
2527 debug_printf("#%02X%02X%02X\n", text_color.red, text_color.green, text_color.blue); 2465 debug_printf("#%02X%02X%02X\n", text_color.red, text_color.green, text_color.blue);
2528 g_free(open_tag); 2466 g_free(open_tag);
2529 cancel_fgcolor(NULL, c); 2467 cancel_fgcolor(NULL, c);
2530 } 2468 }
2536 struct conversation *c; 2474 struct conversation *c;
2537 char *open_tag; 2475 char *open_tag;
2538 2476
2539 open_tag = g_malloc(30); 2477 open_tag = g_malloc(30);
2540 2478
2541 gtk_color_selection_get_color (colorsel, color); 2479 gtk_color_selection_get_color(colorsel, color);
2542 2480
2543 c = gtk_object_get_user_data(GTK_OBJECT(colorsel)); 2481 c = gtk_object_get_user_data(GTK_OBJECT(colorsel));
2544 /* GTK_IS_EDITABLE(c->entry); huh? */ 2482 /* GTK_IS_EDITABLE(c->entry); huh? */
2545 2483
2546 text_color.red = ((guint16)(color[0]*65535))>>8; 2484 text_color.red = ((guint16)(color[0] * 65535)) >> 8;
2547 text_color.green = ((guint16)(color[1]*65535))>>8; 2485 text_color.green = ((guint16)(color[1] * 65535)) >> 8;
2548 text_color.blue = ((guint16)(color[2]*65535))>>8; 2486 text_color.blue = ((guint16)(color[2] * 65535)) >> 8;
2549 2487
2550 c->bgcol = text_color; 2488 c->bgcol = text_color;
2551 c->hasbg = 1; 2489 c->hasbg = 1;
2552 g_snprintf(open_tag, 25, "<BODY BGCOLOR=\"#%02X%02X%02X\">", text_color.red, text_color.green, text_color.blue); 2490 g_snprintf(open_tag, 25, "<BODY BGCOLOR=\"#%02X%02X%02X\">", text_color.red, text_color.green,
2491 text_color.blue);
2553 surround(c->entry, open_tag, "</BODY>"); 2492 surround(c->entry, open_tag, "</BODY>");
2554 debug_printf("#%02X%02X%02X\n", text_color.red, text_color.green, text_color.blue); 2493 debug_printf("#%02X%02X%02X\n", text_color.red, text_color.green, text_color.blue);
2555 g_free(open_tag); 2494 g_free(open_tag);
2556 cancel_bgcolor(NULL, c); 2495 cancel_bgcolor(NULL, c);
2557 } 2496 }
2569 2508
2570 static void apply_color_dlg(GtkWidget *w, gpointer d) 2509 static void apply_color_dlg(GtkWidget *w, gpointer d)
2571 { 2510 {
2572 gdouble color[3]; 2511 gdouble color[3];
2573 if ((int)d == 1) { 2512 if ((int)d == 1) {
2574 gtk_color_selection_get_color(GTK_COLOR_SELECTION(GTK_COLOR_SELECTION_DIALOG(fgcseld)->colorsel), color); 2513 gtk_color_selection_get_color(GTK_COLOR_SELECTION
2514 (GTK_COLOR_SELECTION_DIALOG(fgcseld)->colorsel), color);
2575 destroy_colorsel(NULL, (void *)1); 2515 destroy_colorsel(NULL, (void *)1);
2576 2516
2577 fgcolor.red = ((guint16)(color[0]*65535))>>8; 2517 fgcolor.red = ((guint16)(color[0] * 65535)) >> 8;
2578 fgcolor.green = ((guint16)(color[1]*65535))>>8; 2518 fgcolor.green = ((guint16)(color[1] * 65535)) >> 8;
2579 fgcolor.blue = ((guint16)(color[2]*65535))>>8; 2519 fgcolor.blue = ((guint16)(color[2] * 65535)) >> 8;
2580 update_color(NULL, pref_fg_picture); 2520 update_color(NULL, pref_fg_picture);
2581 update_convo_color(TRUE); 2521 update_convo_color(TRUE);
2582 } else { 2522 } else {
2583 gtk_color_selection_get_color(GTK_COLOR_SELECTION(GTK_COLOR_SELECTION_DIALOG(bgcseld)->colorsel), color); 2523 gtk_color_selection_get_color(GTK_COLOR_SELECTION
2524 (GTK_COLOR_SELECTION_DIALOG(bgcseld)->colorsel), color);
2584 destroy_colorsel(NULL, (void *)0); 2525 destroy_colorsel(NULL, (void *)0);
2585 2526
2586 bgcolor.red = ((guint16)(color[0]*65535))>>8; 2527 bgcolor.red = ((guint16)(color[0] * 65535)) >> 8;
2587 bgcolor.green = ((guint16)(color[1]*65535))>>8; 2528 bgcolor.green = ((guint16)(color[1] * 65535)) >> 8;
2588 bgcolor.blue = ((guint16)(color[2]*65535))>>8; 2529 bgcolor.blue = ((guint16)(color[2] * 65535)) >> 8;
2589 update_color(NULL, pref_bg_picture); 2530 update_color(NULL, pref_bg_picture);
2590 update_convo_color(FALSE); 2531 update_convo_color(FALSE);
2591 } 2532 }
2592 } 2533 }
2593 2534
2594 void show_fgcolor_dialog(struct conversation *c, GtkWidget *color) 2535 void show_fgcolor_dialog(struct conversation *c, GtkWidget *color)
2595 { 2536 {
2596 GtkWidget *colorsel; 2537 GtkWidget *colorsel;
2597 gdouble fgclr[3]; 2538 gdouble fgclr[3];
2598 2539
2599 if (color == NULL) { /* we came from the prefs */ 2540 if (color == NULL) { /* we came from the prefs */
2600 if (fgcseld) return; 2541 if (fgcseld)
2601 fgclr[0]=(gdouble)(fgcolor.red)/255; 2542 return;
2602 fgclr[1]=(gdouble)(fgcolor.green)/255; 2543 fgclr[0] = (gdouble)(fgcolor.red) / 255;
2603 fgclr[2]=(gdouble)(fgcolor.blue)/255; 2544 fgclr[1] = (gdouble)(fgcolor.green) / 255;
2545 fgclr[2] = (gdouble)(fgcolor.blue) / 255;
2604 2546
2605 fgcseld = gtk_color_selection_dialog_new(_("Select Text Color")); 2547 fgcseld = gtk_color_selection_dialog_new(_("Select Text Color"));
2606 gtk_color_selection_set_color (GTK_COLOR_SELECTION(GTK_COLOR_SELECTION_DIALOG(fgcseld)->colorsel), fgclr); 2548 gtk_color_selection_set_color(GTK_COLOR_SELECTION
2607 gtk_signal_connect(GTK_OBJECT(fgcseld), "delete_event", GTK_SIGNAL_FUNC(destroy_colorsel), (void *)1); 2549 (GTK_COLOR_SELECTION_DIALOG(fgcseld)->colorsel), fgclr);
2608 gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(fgcseld)->cancel_button), "clicked", GTK_SIGNAL_FUNC(destroy_colorsel), (void *)1); 2550 gtk_signal_connect(GTK_OBJECT(fgcseld), "delete_event",
2609 gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(fgcseld)->ok_button), "clicked", GTK_SIGNAL_FUNC(apply_color_dlg), (void *)1); 2551 GTK_SIGNAL_FUNC(destroy_colorsel), (void *)1);
2552 gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(fgcseld)->cancel_button),
2553 "clicked", GTK_SIGNAL_FUNC(destroy_colorsel), (void *)1);
2554 gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(fgcseld)->ok_button), "clicked",
2555 GTK_SIGNAL_FUNC(apply_color_dlg), (void *)1);
2610 gtk_widget_realize(fgcseld); 2556 gtk_widget_realize(fgcseld);
2611 aol_icon(fgcseld->window); 2557 aol_icon(fgcseld->window);
2612 gtk_widget_show(fgcseld); 2558 gtk_widget_show(fgcseld);
2613 gdk_window_raise(fgcseld->window); 2559 gdk_window_raise(fgcseld->window);
2614 return; 2560 return;
2615 } 2561 }
2616 2562
2617 if (!c->fg_color_dialog) { 2563 if (!c->fg_color_dialog) {
2618 fgclr[0]=(gdouble)(c->fgcol.red)/255; 2564 fgclr[0] = (gdouble)(c->fgcol.red) / 255;
2619 fgclr[1]=(gdouble)(c->fgcol.green)/255; 2565 fgclr[1] = (gdouble)(c->fgcol.green) / 255;
2620 fgclr[2]=(gdouble)(c->fgcol.blue)/255; 2566 fgclr[2] = (gdouble)(c->fgcol.blue) / 255;
2621 2567
2622 c->fg_color_dialog = gtk_color_selection_dialog_new(_("Select Text Color")); 2568 c->fg_color_dialog = gtk_color_selection_dialog_new(_("Select Text Color"));
2623 colorsel = GTK_COLOR_SELECTION_DIALOG(c->fg_color_dialog)->colorsel; 2569 colorsel = GTK_COLOR_SELECTION_DIALOG(c->fg_color_dialog)->colorsel;
2624 gtk_color_selection_set_color (GTK_COLOR_SELECTION(colorsel), fgclr); 2570 gtk_color_selection_set_color(GTK_COLOR_SELECTION(colorsel), fgclr);
2625 gtk_object_set_user_data(GTK_OBJECT(colorsel), c); 2571 gtk_object_set_user_data(GTK_OBJECT(colorsel), c);
2626 2572
2627 gtk_signal_connect(GTK_OBJECT(c->fg_color_dialog), "delete_event", GTK_SIGNAL_FUNC(delete_event_dialog), c); 2573 gtk_signal_connect(GTK_OBJECT(c->fg_color_dialog), "delete_event",
2628 gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(c->fg_color_dialog)->ok_button), "clicked", GTK_SIGNAL_FUNC(do_fgcolor), colorsel); 2574 GTK_SIGNAL_FUNC(delete_event_dialog), c);
2629 gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(c->fg_color_dialog)->cancel_button), "clicked", GTK_SIGNAL_FUNC(cancel_fgcolor), c); 2575 gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(c->fg_color_dialog)->ok_button),
2576 "clicked", GTK_SIGNAL_FUNC(do_fgcolor), colorsel);
2577 gtk_signal_connect(GTK_OBJECT
2578 (GTK_COLOR_SELECTION_DIALOG(c->fg_color_dialog)->cancel_button),
2579 "clicked", GTK_SIGNAL_FUNC(cancel_fgcolor), c);
2630 2580
2631 gtk_widget_realize(c->fg_color_dialog); 2581 gtk_widget_realize(c->fg_color_dialog);
2632 aol_icon(c->fg_color_dialog->window); 2582 aol_icon(c->fg_color_dialog->window);
2633 } 2583 }
2634 2584
2639 void show_bgcolor_dialog(struct conversation *c, GtkWidget *color) 2589 void show_bgcolor_dialog(struct conversation *c, GtkWidget *color)
2640 { 2590 {
2641 GtkWidget *colorsel; 2591 GtkWidget *colorsel;
2642 gdouble bgclr[3]; 2592 gdouble bgclr[3];
2643 2593
2644 if (color == NULL) { /* we came from the prefs */ 2594 if (color == NULL) { /* we came from the prefs */
2645 if (bgcseld) return; 2595 if (bgcseld)
2646 bgclr[0]=(gdouble)(bgcolor.red)/255; 2596 return;
2647 bgclr[1]=(gdouble)(bgcolor.green)/255; 2597 bgclr[0] = (gdouble)(bgcolor.red) / 255;
2648 bgclr[2]=(gdouble)(bgcolor.blue)/255; 2598 bgclr[1] = (gdouble)(bgcolor.green) / 255;
2599 bgclr[2] = (gdouble)(bgcolor.blue) / 255;
2649 2600
2650 bgcseld = gtk_color_selection_dialog_new(_("Select Background Color")); 2601 bgcseld = gtk_color_selection_dialog_new(_("Select Background Color"));
2651 gtk_color_selection_set_color (GTK_COLOR_SELECTION(GTK_COLOR_SELECTION_DIALOG(bgcseld)->colorsel), bgclr); 2602 gtk_color_selection_set_color(GTK_COLOR_SELECTION
2652 gtk_signal_connect(GTK_OBJECT(bgcseld), "delete_event", GTK_SIGNAL_FUNC(destroy_colorsel), NULL); 2603 (GTK_COLOR_SELECTION_DIALOG(bgcseld)->colorsel), bgclr);
2653 gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(bgcseld)->cancel_button), "clicked", GTK_SIGNAL_FUNC(destroy_colorsel), NULL); 2604 gtk_signal_connect(GTK_OBJECT(bgcseld), "delete_event",
2654 gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(bgcseld)->ok_button), "clicked", GTK_SIGNAL_FUNC(apply_color_dlg), (void *)2); 2605 GTK_SIGNAL_FUNC(destroy_colorsel), NULL);
2606 gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(bgcseld)->cancel_button),
2607 "clicked", GTK_SIGNAL_FUNC(destroy_colorsel), NULL);
2608 gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(bgcseld)->ok_button), "clicked",
2609 GTK_SIGNAL_FUNC(apply_color_dlg), (void *)2);
2655 gtk_widget_realize(bgcseld); 2610 gtk_widget_realize(bgcseld);
2656 aol_icon(bgcseld->window); 2611 aol_icon(bgcseld->window);
2657 gtk_widget_show(bgcseld); 2612 gtk_widget_show(bgcseld);
2658 gdk_window_raise(bgcseld->window); 2613 gdk_window_raise(bgcseld->window);
2659 return; 2614 return;
2660 } 2615 }
2661 2616
2662 if (!c->bg_color_dialog) { 2617 if (!c->bg_color_dialog) {
2663 bgclr[0]=(gdouble)(c->bgcol.red)/255; 2618 bgclr[0] = (gdouble)(c->bgcol.red) / 255;
2664 bgclr[1]=(gdouble)(c->bgcol.green)/255; 2619 bgclr[1] = (gdouble)(c->bgcol.green) / 255;
2665 bgclr[2]=(gdouble)(c->bgcol.blue)/255; 2620 bgclr[2] = (gdouble)(c->bgcol.blue) / 255;
2666 2621
2667 c->bg_color_dialog = gtk_color_selection_dialog_new(_("Select Text Color")); 2622 c->bg_color_dialog = gtk_color_selection_dialog_new(_("Select Text Color"));
2668 colorsel = GTK_COLOR_SELECTION_DIALOG(c->bg_color_dialog)->colorsel; 2623 colorsel = GTK_COLOR_SELECTION_DIALOG(c->bg_color_dialog)->colorsel;
2669 gtk_color_selection_set_color (GTK_COLOR_SELECTION(colorsel), bgclr); 2624 gtk_color_selection_set_color(GTK_COLOR_SELECTION(colorsel), bgclr);
2670 gtk_object_set_user_data(GTK_OBJECT(colorsel), c); 2625 gtk_object_set_user_data(GTK_OBJECT(colorsel), c);
2671 2626
2672 gtk_signal_connect(GTK_OBJECT(c->bg_color_dialog), "delete_event", GTK_SIGNAL_FUNC(delete_event_dialog), c); 2627 gtk_signal_connect(GTK_OBJECT(c->bg_color_dialog), "delete_event",
2673 gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(c->bg_color_dialog)->ok_button), "clicked", GTK_SIGNAL_FUNC(do_bgcolor), colorsel); 2628 GTK_SIGNAL_FUNC(delete_event_dialog), c);
2674 gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(c->bg_color_dialog)->cancel_button), "clicked", GTK_SIGNAL_FUNC(cancel_bgcolor), c); 2629 gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(c->bg_color_dialog)->ok_button),
2630 "clicked", GTK_SIGNAL_FUNC(do_bgcolor), colorsel);
2631 gtk_signal_connect(GTK_OBJECT
2632 (GTK_COLOR_SELECTION_DIALOG(c->bg_color_dialog)->cancel_button),
2633 "clicked", GTK_SIGNAL_FUNC(cancel_bgcolor), c);
2675 2634
2676 gtk_widget_realize(c->bg_color_dialog); 2635 gtk_widget_realize(c->bg_color_dialog);
2677 aol_icon(c->bg_color_dialog->window); 2636 aol_icon(c->bg_color_dialog->window);
2678 } 2637 }
2679 2638
2684 /*------------------------------------------------------------------------*/ 2643 /*------------------------------------------------------------------------*/
2685 /* Font Selection Dialog */ 2644 /* Font Selection Dialog */
2686 /*------------------------------------------------------------------------*/ 2645 /*------------------------------------------------------------------------*/
2687 2646
2688 void cancel_font(GtkWidget *widget, struct conversation *c) 2647 void cancel_font(GtkWidget *widget, struct conversation *c)
2689 { 2648 {
2690 if (c->font && widget) 2649 if (c->font && widget) {
2691 {
2692 set_state_lock(1); 2650 set_state_lock(1);
2693 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(c->font), FALSE); 2651 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(c->font), FALSE);
2694 set_state_lock(0); 2652 set_state_lock(0);
2695 } 2653 }
2696 dialogwindows = g_list_remove(dialogwindows, c->font_dialog); 2654 dialogwindows = g_list_remove(dialogwindows, c->font_dialog);
2697 gtk_widget_destroy(c->font_dialog); 2655 gtk_widget_destroy(c->font_dialog);
2698 c->font_dialog = NULL; 2656 c->font_dialog = NULL;
2699 } 2657 }
2700 2658
2701 void apply_font(GtkWidget *widget, GtkFontSelection *fontsel) 2659 void apply_font(GtkWidget *widget, GtkFontSelection *fontsel)
2702 { 2660 {
2703 /* this could be expanded to include font size, weight, etc. 2661 /* this could be expanded to include font size, weight, etc.
2704 but for now only works with font face */ 2662 but for now only works with font face */
2705 int i, j = 0, k = 0; 2663 int i, j = 0, k = 0;
2706 char *fontname; 2664 char *fontname;
2707 char font[64]; 2665 char font[64];
2708 struct conversation *c = gtk_object_get_user_data(GTK_OBJECT(fontsel)); 2666 struct conversation *c = gtk_object_get_user_data(GTK_OBJECT(fontsel));
2709 2667
2710 if (c) 2668 if (c) {
2711 {
2712 fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontsel)); 2669 fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontsel));
2713 2670
2714 for (i = 0; i < strlen(fontname); i++) 2671 for (i = 0; i < strlen(fontname); i++) {
2715 { 2672 if (fontname[i] == '-') {
2716 if (fontname[i] == '-')
2717 {
2718 if (++j > 2) 2673 if (++j > 2)
2719 break; 2674 break;
2720 } 2675 } else if (j == 2)
2721 else if (j == 2)
2722 font[k++] = fontname[i]; 2676 font[k++] = fontname[i];
2723 } 2677 }
2724 font[k] = '\0'; 2678 font[k] = '\0';
2725 2679
2726 debug_printf("Setting font face %s\n", font); 2680 debug_printf("Setting font face %s\n", font);
2727 2681
2728 set_font_face(font, c); 2682 set_font_face(font, c);
2729 } 2683 } else {
2730 else
2731 {
2732 fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontsel)); 2684 fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontsel));
2733 2685
2734 for (i = 0; i < strlen(fontname); i++) 2686 for (i = 0; i < strlen(fontname); i++) {
2735 { 2687 if (fontname[i] == '-') {
2736 if (fontname[i] == '-')
2737 {
2738 if (++j > 2) 2688 if (++j > 2)
2739 break; 2689 break;
2740 } 2690 } else if (j == 2)
2741 else if (j == 2)
2742 fontface[k++] = fontname[i]; 2691 fontface[k++] = fontname[i];
2743 } 2692 }
2744 fontface[k] = '\0'; 2693 fontface[k] = '\0';
2745 } 2694 }
2746 2695
2747 cancel_font(NULL, c); 2696 cancel_font(NULL, c);
2748 } 2697 }
2749 2698
2750 static GtkWidget *fontseld; 2699 static GtkWidget *fontseld;
2751 2700
2752 void destroy_fontsel(GtkWidget *w, gpointer d) { 2701 void destroy_fontsel(GtkWidget *w, gpointer d)
2702 {
2753 gtk_widget_destroy(fontseld); 2703 gtk_widget_destroy(fontseld);
2754 fontseld = NULL; 2704 fontseld = NULL;
2755 } 2705 }
2756 2706
2757 void apply_font_dlg(GtkWidget *w, GtkWidget *f) { 2707 void apply_font_dlg(GtkWidget *w, GtkWidget *f)
2708 {
2758 int i, j = 0, k = 0; 2709 int i, j = 0, k = 0;
2759 char *fontname; 2710 char *fontname;
2760 2711
2761 fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontseld)); 2712 fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontseld));
2762 destroy_fontsel(0, 0); 2713 destroy_fontsel(0, 0);
2763 for (i = 0; i < strlen(fontname); i++) { 2714 for (i = 0; i < strlen(fontname); i++) {
2764 if (fontname[i] == '-') { 2715 if (fontname[i] == '-') {
2765 if (++j > 2) break; 2716 if (++j > 2)
2717 break;
2766 } else if (j == 2) 2718 } else if (j == 2)
2767 fontface[k++] = fontname[i]; 2719 fontface[k++] = fontname[i];
2768 } 2720 }
2769 fontface[k] = '\0'; 2721 fontface[k] = '\0';
2770 update_convo_font(); 2722 update_convo_font();
2771 } 2723 }
2772 2724
2773 void show_font_dialog(struct conversation *c, GtkWidget *font) 2725 void show_font_dialog(struct conversation *c, GtkWidget *font)
2774 { 2726 {
2775 2727
2776 if (!font) { /* we came from the prefs dialog */ 2728 if (!font) { /* we came from the prefs dialog */
2777 if (fontseld) return; 2729 if (fontseld)
2730 return;
2778 fontseld = gtk_font_selection_dialog_new(_("Select Font")); 2731 fontseld = gtk_font_selection_dialog_new(_("Select Font"));
2779 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(fontseld), DEFAULT_FONT_NAME); 2732 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(fontseld),
2733 DEFAULT_FONT_NAME);
2780 2734
2781 gtk_object_set_user_data(GTK_OBJECT(fontseld), NULL); 2735 gtk_object_set_user_data(GTK_OBJECT(fontseld), NULL);
2782 gtk_signal_connect(GTK_OBJECT(fontseld), "delete_event", GTK_SIGNAL_FUNC(destroy_fontsel), NULL); 2736 gtk_signal_connect(GTK_OBJECT(fontseld), "delete_event",
2783 gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontseld)->cancel_button), "clicked", GTK_SIGNAL_FUNC(destroy_fontsel), NULL); 2737 GTK_SIGNAL_FUNC(destroy_fontsel), NULL);
2784 gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontseld)->ok_button), "clicked", GTK_SIGNAL_FUNC(apply_font_dlg), NULL); 2738 gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontseld)->cancel_button),
2739 "clicked", GTK_SIGNAL_FUNC(destroy_fontsel), NULL);
2740 gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontseld)->ok_button), "clicked",
2741 GTK_SIGNAL_FUNC(apply_font_dlg), NULL);
2785 gtk_widget_realize(fontseld); 2742 gtk_widget_realize(fontseld);
2786 aol_icon(fontseld->window); 2743 aol_icon(fontseld->window);
2787 gtk_widget_show(fontseld); 2744 gtk_widget_show(fontseld);
2788 gdk_window_raise(fontseld->window); 2745 gdk_window_raise(fontseld->window);
2789 return; 2746 return;
2790 } 2747 }
2791 2748
2792 if (!c->font_dialog) 2749 if (!c->font_dialog) {
2793 {
2794 c->font_dialog = gtk_font_selection_dialog_new(_("Select Font")); 2750 c->font_dialog = gtk_font_selection_dialog_new(_("Select Font"));
2795 2751
2796 if (font) 2752 if (font)
2797 gtk_object_set_user_data(GTK_OBJECT(c->font_dialog), c); 2753 gtk_object_set_user_data(GTK_OBJECT(c->font_dialog), c);
2798 else 2754 else
2799 gtk_object_set_user_data(GTK_OBJECT(c->font_dialog), NULL); 2755 gtk_object_set_user_data(GTK_OBJECT(c->font_dialog), NULL);
2800 2756
2801 gtk_font_selection_dialog_set_font_name((GtkFontSelectionDialog *)c->font_dialog, DEFAULT_FONT_NAME); 2757 gtk_font_selection_dialog_set_font_name((GtkFontSelectionDialog *) c->font_dialog,
2802 2758 DEFAULT_FONT_NAME);
2803 gtk_signal_connect(GTK_OBJECT(c->font_dialog), "delete_event", GTK_SIGNAL_FUNC(delete_event_dialog), c); 2759
2804 gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(c->font_dialog)->ok_button), "clicked", GTK_SIGNAL_FUNC(apply_font), c->font_dialog); 2760 gtk_signal_connect(GTK_OBJECT(c->font_dialog), "delete_event",
2805 gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(c->font_dialog)->cancel_button), "clicked", GTK_SIGNAL_FUNC(cancel_font), c); 2761 GTK_SIGNAL_FUNC(delete_event_dialog), c);
2806 2762 gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(c->font_dialog)->ok_button),
2807 gtk_font_selection_dialog_set_font_name((GtkFontSelectionDialog *)c->font_dialog, DEFAULT_FONT_NAME); 2763 "clicked", GTK_SIGNAL_FUNC(apply_font), c->font_dialog);
2808 2764 gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(c->font_dialog)->cancel_button),
2765 "clicked", GTK_SIGNAL_FUNC(cancel_font), c);
2766
2767 gtk_font_selection_dialog_set_font_name((GtkFontSelectionDialog *) c->font_dialog,
2768 DEFAULT_FONT_NAME);
2769
2809 gtk_widget_realize(c->font_dialog); 2770 gtk_widget_realize(c->font_dialog);
2810 2771
2811 aol_icon(c->font_dialog->window); 2772 aol_icon(c->font_dialog->window);
2812 } 2773 }
2813 gtk_widget_show(c->font_dialog); 2774 gtk_widget_show(c->font_dialog);
2814 gdk_window_raise(c->font_dialog->window); 2775 gdk_window_raise(c->font_dialog->window);
2815 } 2776 }
2816 2777
2817 /*------------------------------------------------------------------------*/ 2778 /*------------------------------------------------------------------------*/
2834 return good; 2795 return good;
2835 } 2796 }
2836 2797
2837 /* see if a buddy list cache file for this user exists */ 2798 /* see if a buddy list cache file for this user exists */
2838 2799
2839 gboolean 2800 gboolean bud_list_cache_exists(struct gaim_connection *gc)
2840 bud_list_cache_exists(struct gaim_connection *gc)
2841 { 2801 {
2842 gboolean ret = FALSE; 2802 gboolean ret = FALSE;
2843 char path[PATHSIZE]; 2803 char path[PATHSIZE];
2844 char *file; 2804 char *file;
2845 struct stat sbuf; 2805 struct stat sbuf;
2846 char *g_screenname; 2806 char *g_screenname;
2847 2807
2848 g_screenname = get_screenname_filename(gc->username); 2808 g_screenname = get_screenname_filename(gc->username);
2849 2809
2850 file = gaim_user_dir(); 2810 file = gaim_user_dir();
2851 if ( file != (char *) NULL ) { 2811 if (file != (char *)NULL) {
2852 g_snprintf(path, sizeof path, "%s/%s.%d.blist", file, g_screenname, 2812 g_snprintf(path, sizeof path, "%s/%s.%d.blist", file, g_screenname,
2853 (gc->protocol == PROTO_OSCAR) ? PROTO_TOC : gc->protocol); 2813 (gc->protocol == PROTO_OSCAR) ? PROTO_TOC : gc->protocol);
2854 if ( !stat(path, &sbuf) ) { 2814 if (!stat(path, &sbuf)) {
2855 debug_printf("%s exists.\n", path); 2815 debug_printf("%s exists.\n", path);
2856 ret = TRUE; 2816 ret = TRUE;
2857 } else { 2817 } else {
2858 char path2[PATHSIZE]; 2818 char path2[PATHSIZE];
2859 debug_printf("%s does not exist.\n", path); 2819 debug_printf("%s does not exist.\n", path);
2876 * signed in user. Else, let user choose */ 2836 * signed in user. Else, let user choose */
2877 2837
2878 void do_export(struct gaim_connection *g) 2838 void do_export(struct gaim_connection *g)
2879 { 2839 {
2880 FILE *dir; 2840 FILE *dir;
2881 FILE *f; 2841 FILE *f;
2882 char buf[32 * 1024]; 2842 char buf[32 * 1024];
2883 char *file; 2843 char *file;
2884 char path[PATHSIZE]; 2844 char path[PATHSIZE];
2885 char *g_screenname; 2845 char *g_screenname;
2886 2846
2887 /* 2847 /*
2888 if ( show_dialog == 1 ) { 2848 if ( show_dialog == 1 ) {
2889 file = gtk_file_selection_get_filename(GTK_FILE_SELECTION(exportdialog)); 2849 file = gtk_file_selection_get_filename(GTK_FILE_SELECTION(exportdialog));
2890 strncpy( path, file, PATHSIZE - 1 ); 2850 strncpy( path, file, PATHSIZE - 1 );
2891 if (file_is_dir(path, exportdialog)) { 2851 if (file_is_dir(path, exportdialog)) {
2892 return; 2852 return;
2893 } 2853 }
2894 if ((f = fopen(path,"w"))) { 2854 if ((f = fopen(path,"w"))) {
2895 toc_build_config(connections->data, buf, 8192 - 1, TRUE); 2855 toc_build_config(connections->data, buf, 8192 - 1, TRUE);
2896 fprintf(f, "%s\n", buf); 2856 fprintf(f, "%s\n", buf);
2897 fclose(f); 2857 fclose(f);
2898 chmod(buf, S_IRUSR | S_IWUSR); 2858 chmod(buf, S_IRUSR | S_IWUSR);
2899 } else { 2859 } else {
2900 g_snprintf(buf, BUF_LONG / 2, _("Error writing file %s"), file); 2860 g_snprintf(buf, BUF_LONG / 2, _("Error writing file %s"), file);
2901 do_error_dialog(buf, _("Error")); 2861 do_error_dialog(buf, _("Error"));
2902 } 2862 }
2903 destroy_dialog(NULL, exportdialog); 2863 destroy_dialog(NULL, exportdialog);
2904 exportdialog = NULL; 2864 exportdialog = NULL;
2905 } else { 2865 } else {
2906 */ 2866 */
2907 2867
2908 file = gaim_user_dir(); 2868 file = gaim_user_dir();
2909 if (!file) return; 2869 if (!file)
2870 return;
2910 2871
2911 strcpy(buf, file); 2872 strcpy(buf, file);
2912 dir = fopen(buf, "r"); 2873 dir = fopen(buf, "r");
2913 if (!dir) 2874 if (!dir)
2914 mkdir(buf, S_IRUSR | S_IWUSR | S_IXUSR); 2875 mkdir(buf, S_IRUSR | S_IWUSR | S_IXUSR);
2916 fclose(dir); 2877 fclose(dir);
2917 2878
2918 g_screenname = get_screenname_filename(g->username); 2879 g_screenname = get_screenname_filename(g->username);
2919 2880
2920 sprintf(path, "%s/%s.%d.blist", file, g_screenname, 2881 sprintf(path, "%s/%s.%d.blist", file, g_screenname,
2921 (g->protocol == PROTO_OSCAR) ? PROTO_TOC : g->protocol); 2882 (g->protocol == PROTO_OSCAR) ? PROTO_TOC : g->protocol);
2922 if ((f = fopen(path,"w"))) { 2883 if ((f = fopen(path, "w"))) {
2923 debug_printf("writing %s\n", path); 2884 debug_printf("writing %s\n", path);
2924 toc_build_config(g, buf, 8192 - 1, TRUE); 2885 toc_build_config(g, buf, 8192 - 1, TRUE);
2925 fprintf(f, "%s\n", buf); 2886 fprintf(f, "%s\n", buf);
2926 fclose(f); 2887 fclose(f);
2927 chmod(buf, S_IRUSR | S_IWUSR); 2888 chmod(buf, S_IRUSR | S_IWUSR);
2968 /* if gc is non-NULL, then import from ~/.gaim/gc->username.blist, else let user 2929 /* if gc is non-NULL, then import from ~/.gaim/gc->username.blist, else let user
2969 choose */ 2930 choose */
2970 2931
2971 void do_import(GtkWidget *w, struct gaim_connection *gc) 2932 void do_import(GtkWidget *w, struct gaim_connection *gc)
2972 { 2933 {
2973 char *buf = g_malloc(BUF_LONG * 2); 2934 char *buf = g_malloc(BUF_LONG * 2);
2974 char *buf2; 2935 char *buf2;
2975 char *first = g_malloc(64); 2936 char *first = g_malloc(64);
2976 char *file; 2937 char *file;
2977 char path[PATHSIZE]; 2938 char path[PATHSIZE];
2978 char *g_screenname; 2939 char *g_screenname;
2979 int len; 2940 int len;
2980 FILE *f; 2941 FILE *f;
2981 gboolean from_dialog = FALSE; 2942 gboolean from_dialog = FALSE;
2982 2943
2983 if ( !gc ) { 2944 if (!gc) {
2984 debug_printf("want to import file "); 2945 debug_printf("want to import file ");
2985 file = gtk_file_selection_get_filename(GTK_FILE_SELECTION(importdialog)); 2946 file = gtk_file_selection_get_filename(GTK_FILE_SELECTION(importdialog));
2986 debug_printf("%s", file); 2947 debug_printf("%s", file);
2987 if (file_is_dir(file, importdialog)) { 2948 if (file_is_dir(file, importdialog)) {
2988 debug_printf(" but it is a directory\n"); 2949 debug_printf(" but it is a directory\n");
2989 g_free (buf); 2950 g_free(buf);
2990 g_free (first); 2951 g_free(first);
2991 return; 2952 return;
2992 } 2953 }
2993 strncpy( path, file, PATHSIZE - 1 ); 2954 strncpy(path, file, PATHSIZE - 1);
2994 /* FIXME : import buddy list file. moderately important */ 2955 /* FIXME : import buddy list file. moderately important */
2995 gc = connections->data; 2956 gc = connections->data;
2996 from_dialog = TRUE; 2957 from_dialog = TRUE;
2997 } else { 2958 } else {
2998 g_screenname = get_screenname_filename(gc->username); 2959 g_screenname = get_screenname_filename(gc->username);
2999 2960
3000 file = gaim_user_dir(); 2961 file = gaim_user_dir();
3001 if ( file != (char *) NULL ) { 2962 if (file != (char *)NULL) {
3002 sprintf( path, "%s/%s.%d.blist", file, g_screenname, 2963 sprintf(path, "%s/%s.%d.blist", file, g_screenname,
3003 (gc->protocol == PROTO_OSCAR) ? PROTO_TOC : gc->protocol); 2964 (gc->protocol == PROTO_OSCAR) ? PROTO_TOC : gc->protocol);
3004 g_free(file); 2965 g_free(file);
3005 g_free(g_screenname); 2966 g_free(g_screenname);
3006 } else { 2967 } else {
3007 g_free(g_screenname); 2968 g_free(g_screenname);
3008 g_free(buf); 2969 g_free(buf);
3009 g_free(first); 2970 g_free(first);
3010 return; 2971 return;
3011 } 2972 }
3012 } 2973 }
3013 2974
3014 if (!(f = fopen(path,"r"))) { 2975 if (!(f = fopen(path, "r"))) {
3015 if (from_dialog) { 2976 if (from_dialog) {
3016 debug_printf(" but it can't be opened\n"); 2977 debug_printf(" but it can't be opened\n");
3017 g_snprintf(buf, BUF_LONG / 2, _("Error reading file %s"), path); 2978 g_snprintf(buf, BUF_LONG / 2, _("Error reading file %s"), path);
3018 do_error_dialog(buf, _("Error")); 2979 do_error_dialog(buf, _("Error"));
3019 destroy_dialog(NULL, importdialog); 2980 destroy_dialog(NULL, importdialog);
3020 importdialog = NULL; 2981 importdialog = NULL;
3021 } 2982 }
3022 debug_printf("Unable to open %s.\n", path); 2983 debug_printf("Unable to open %s.\n", path);
3023 g_free(buf); 2984 g_free(buf);
3024 g_free(first); 2985 g_free(first);
3025 return; 2986 return;
3026 } 2987 }
3027 2988
3028 fgets(first, 64, f); 2989 fgets(first, 64, f);
3029 2990
3030 /* AIM 4 buddy list */ 2991 /* AIM 4 buddy list */
3031 if (!g_strncasecmp(first, "Config {", strlen("Config {"))) { 2992 if (!g_strncasecmp(first, "Config {", strlen("Config {"))) {
3032 debug_printf("aim 4\n"); 2993 debug_printf("aim 4\n");
3033 rewind(f); 2994 rewind(f);
3034 translate_blt (f, buf); 2995 translate_blt(f, buf);
3035 debug_printf("%s\n", buf); 2996 debug_printf("%s\n", buf);
3036 buf2 = buf; 2997 buf2 = buf;
3037 buf = g_malloc(8193); 2998 buf = g_malloc(8193);
3038 g_snprintf(buf, 8192, "toc_set_config {%s}\n", buf2); 2999 g_snprintf(buf, 8192, "toc_set_config {%s}\n", buf2);
3039 g_free(buf2); 3000 g_free(buf2);
3040 /* AIM 3 buddy list */ 3001 /* AIM 3 buddy list */
3041 } else if (strstr(first, "group") != NULL) { 3002 } else if (strstr(first, "group") != NULL) {
3042 debug_printf("aim 3\n"); 3003 debug_printf("aim 3\n");
3043 rewind(f); 3004 rewind(f);
3044 translate_lst (f, buf); 3005 translate_lst(f, buf);
3045 debug_printf("%s\n", buf); 3006 debug_printf("%s\n", buf);
3046 buf2 = buf; 3007 buf2 = buf;
3047 buf = g_malloc(8193); 3008 buf = g_malloc(8193);
3048 g_snprintf(buf, 8192, "toc_set_config {%s}\n", buf2); 3009 g_snprintf(buf, 8192, "toc_set_config {%s}\n", buf2);
3049 g_free(buf2); 3010 g_free(buf2);
3050 /* GAIM buddy list - no translation */ 3011 /* GAIM buddy list - no translation */
3051 } else if (first[0] == 'm') { 3012 } else if (first[0] == 'm') {
3052 rewind(f); 3013 rewind(f);
3053 len = fread(buf, 1, BUF_LONG * 2, f); 3014 len = fread(buf, 1, BUF_LONG * 2, f);
3054 buf[len] = '\0'; 3015 buf[len] = '\0';
3055 buf2 = buf; 3016 buf2 = buf;
3056 buf = g_malloc(8193); 3017 buf = g_malloc(8193);
3057 g_snprintf(buf, 8192, "toc_set_config {%s}\n", buf2); 3018 g_snprintf(buf, 8192, "toc_set_config {%s}\n", buf2);
3058 g_free(buf2); 3019 g_free(buf2);
3059 /* Something else */ 3020 /* Something else */
3060 } else { 3021 } else {
3061 if (from_dialog) { 3022 if (from_dialog) {
3062 debug_printf(" but I don't recognize the format\n"); 3023 debug_printf(" but I don't recognize the format\n");
3063 destroy_dialog(NULL, importdialog); 3024 destroy_dialog(NULL, importdialog);
3064 importdialog = NULL; 3025 importdialog = NULL;
3065 } 3026 }
3066 g_free(buf); 3027 g_free(buf);
3067 g_free(first); 3028 g_free(first);
3068 fclose( f ); 3029 fclose(f);
3069 return; 3030 return;
3070 } 3031 }
3071 3032
3072 if (from_dialog) 3033 if (from_dialog)
3073 debug_printf("\n"); 3034 debug_printf("\n");
3074 3035
3075 parse_toc_buddy_list(gc, buf, 1); 3036 parse_toc_buddy_list(gc, buf, 1);
3076 3037
3077 fclose( f ); 3038 fclose(f);
3078 3039
3079 if ( from_dialog ) { 3040 if (from_dialog) {
3080 /* save what we just did to cache */ 3041 /* save what we just did to cache */
3081 3042
3082 do_export(gc); 3043 do_export(gc);
3083 destroy_dialog(NULL, importdialog); 3044 destroy_dialog(NULL, importdialog);
3084 importdialog = NULL; 3045 importdialog = NULL;
3085 } 3046 }
3086 3047
3087 g_free(buf); 3048 g_free(buf);
3088 g_free(first); 3049 g_free(first);
3089 } 3050 }
3090 3051
3091 void show_import_dialog() 3052 void show_import_dialog()
3092 { 3053 {
3093 char *buf = g_malloc(BUF_LEN); 3054 char *buf = g_malloc(BUF_LEN);
3094 if (!importdialog) { 3055 if (!importdialog) {
3095 importdialog = gtk_file_selection_new(_("Gaim - Import Buddy List")); 3056 importdialog = gtk_file_selection_new(_("Gaim - Import Buddy List"));
3096 3057
3097 gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(importdialog)); 3058 gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(importdialog));
3098 3059
3099 g_snprintf(buf, BUF_LEN - 1, "%s/", getenv("HOME")); 3060 g_snprintf(buf, BUF_LEN - 1, "%s/", getenv("HOME"));
3100 3061
3101 gtk_file_selection_set_filename(GTK_FILE_SELECTION(importdialog), buf); 3062 gtk_file_selection_set_filename(GTK_FILE_SELECTION(importdialog), buf);
3102 gtk_signal_connect(GTK_OBJECT(importdialog), "destroy", 3063 gtk_signal_connect(GTK_OBJECT(importdialog), "destroy",
3103 GTK_SIGNAL_FUNC(destroy_dialog), importdialog); 3064 GTK_SIGNAL_FUNC(destroy_dialog), importdialog);
3104 3065
3105 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(importdialog)->ok_button), 3066 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(importdialog)->ok_button),
3106 "clicked", GTK_SIGNAL_FUNC(do_import), NULL); 3067 "clicked", GTK_SIGNAL_FUNC(do_import), NULL);
3107 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(importdialog)->cancel_button), 3068 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(importdialog)->cancel_button),
3108 "clicked", GTK_SIGNAL_FUNC(destroy_dialog), importdialog); 3069 "clicked", GTK_SIGNAL_FUNC(destroy_dialog), importdialog);
3109 3070
3110 3071
3111 } 3072 }
3112 3073
3113 g_free(buf); 3074 g_free(buf);
3114 gtk_widget_show(importdialog); 3075 gtk_widget_show(importdialog);
3115 gdk_window_raise(importdialog->window); 3076 gdk_window_raise(importdialog->window);
3116 } 3077 }
3117 3078
3118 3079
3119 /*------------------------------------------------------------------------*/ 3080 /*------------------------------------------------------------------------*/
3120 /* The dialog for new away messages */ 3081 /* The dialog for new away messages */
3123 static struct away_message *save_away_message(struct create_away *ca) 3084 static struct away_message *save_away_message(struct create_away *ca)
3124 { 3085 {
3125 struct away_message *am; 3086 struct away_message *am;
3126 guint text_len; 3087 guint text_len;
3127 gchar *away_message; 3088 gchar *away_message;
3128 3089
3129 if (!ca->mess) 3090 if (!ca->mess)
3130 am = g_new0(struct away_message, 1); 3091 am = g_new0(struct away_message, 1);
3131 else 3092 else
3132 am = ca->mess; 3093 am = ca->mess;
3133 3094
3141 if (!ca->mess) { 3102 if (!ca->mess) {
3142 away_messages = g_slist_insert_sorted(away_messages, am, sort_awaymsg_list); 3103 away_messages = g_slist_insert_sorted(away_messages, am, sort_awaymsg_list);
3143 } 3104 }
3144 3105
3145 save_prefs(); 3106 save_prefs();
3146 do_away_menu(); 3107 do_away_menu();
3147 if (prefs_away_list != NULL) 3108 if (prefs_away_list != NULL)
3148 gtk_list_select_item(GTK_LIST(prefs_away_list), g_slist_index(away_messages, am)); 3109 gtk_list_select_item(GTK_LIST(prefs_away_list), g_slist_index(away_messages, am));
3149 3110
3150 return am; 3111 return am;
3151 } 3112 }
3152 3113
3153 int check_away_mess(struct create_away *ca, int type) 3114 int check_away_mess(struct create_away *ca, int type)
3154 { 3115 {
3155 if ((strlen(gtk_entry_get_text(GTK_ENTRY(ca->entry))) == 0) && (type == 1)) 3116 if ((strlen(gtk_entry_get_text(GTK_ENTRY(ca->entry))) == 0) && (type == 1)) {
3156 {
3157 /* We shouldn't allow a blank title */ 3117 /* We shouldn't allow a blank title */
3158 do_error_dialog(_("You cannot create an away message with a blank title"), _("Gaim - Error")); 3118 do_error_dialog(_("You cannot create an away message with a blank title"),
3119 _("Gaim - Error"));
3159 return 0; 3120 return 0;
3160 } 3121 }
3161 3122
3162 if ((gtk_text_get_length(GTK_TEXT(ca->text)) == 0) && (type <= 1)) 3123 if ((gtk_text_get_length(GTK_TEXT(ca->text)) == 0) && (type <= 1)) {
3163 {
3164 /* We shouldn't allow a blank message */ 3124 /* We shouldn't allow a blank message */
3165 do_error_dialog(_("You cannot create an empty away message"), _("Gaim - Error")); 3125 do_error_dialog(_("You cannot create an empty away message"), _("Gaim - Error"));
3166 return 0; 3126 return 0;
3167 } 3127 }
3168 3128
3182 void use_away_mess(GtkWidget *widget, struct create_away *ca) 3142 void use_away_mess(GtkWidget *widget, struct create_away *ca)
3183 { 3143 {
3184 static struct away_message am; 3144 static struct away_message am;
3185 guint text_len; 3145 guint text_len;
3186 gchar *away_message; 3146 gchar *away_message;
3187 3147
3188 if (!check_away_mess(ca, 0)) 3148 if (!check_away_mess(ca, 0))
3189 return; 3149 return;
3190 3150
3191 g_snprintf(am.name, sizeof(am.name), "%s", gtk_entry_get_text(GTK_ENTRY(ca->entry))); 3151 g_snprintf(am.name, sizeof(am.name), "%s", gtk_entry_get_text(GTK_ENTRY(ca->entry)));
3192 text_len = gtk_text_get_length(GTK_TEXT(ca->text)); 3152 text_len = gtk_text_get_length(GTK_TEXT(ca->text));
3193 if (text_len < 0) return; 3153 if (text_len < 0)
3154 return;
3194 away_message = gtk_editable_get_chars(GTK_EDITABLE(ca->text), 0, text_len); 3155 away_message = gtk_editable_get_chars(GTK_EDITABLE(ca->text), 0, text_len);
3195 3156
3196 g_snprintf(am.message, sizeof(am.message), "%s", away_message); 3157 g_snprintf(am.message, sizeof(am.message), "%s", away_message);
3197 g_free(away_message); 3158 g_free(away_message);
3198 3159
3208 return; 3169 return;
3209 do_away_message(NULL, save_away_message(ca)); 3170 do_away_message(NULL, save_away_message(ca));
3210 destroy_dialog(NULL, ca->window); 3171 destroy_dialog(NULL, ca->window);
3211 g_free(ca); 3172 g_free(ca);
3212 } 3173 }
3213 3174
3214 void create_away_mess(GtkWidget *widget, void *dummy) 3175 void create_away_mess(GtkWidget *widget, void *dummy)
3215 { 3176 {
3216 GtkWidget *hbox; 3177 GtkWidget *hbox;
3217 GtkWidget *titlebox; 3178 GtkWidget *titlebox;
3218 GtkWidget *tbox; 3179 GtkWidget *tbox;
3220 GtkWidget *label; 3181 GtkWidget *label;
3221 GtkWidget *frame; 3182 GtkWidget *frame;
3222 GtkWidget *fbox; 3183 GtkWidget *fbox;
3223 GtkWidget *button; 3184 GtkWidget *button;
3224 3185
3225 struct create_away *ca = g_new0(struct create_away, 1); 3186 struct create_away *ca = g_new0(struct create_away, 1);
3226 3187
3227 /* Set up window */ 3188 /* Set up window */
3228 ca->window = gtk_window_new(GTK_WINDOW_DIALOG); 3189 ca->window = gtk_window_new(GTK_WINDOW_DIALOG);
3229 gtk_widget_set_usize(ca->window, -1, 250); 3190 gtk_widget_set_usize(ca->window, -1, 250);
3230 gtk_container_border_width(GTK_CONTAINER(ca->window), 5); 3191 gtk_container_border_width(GTK_CONTAINER(ca->window), 5);
3231 gtk_window_set_wmclass(GTK_WINDOW(ca->window), "away_mess", "Gaim"); 3192 gtk_window_set_wmclass(GTK_WINDOW(ca->window), "away_mess", "Gaim");
3232 gtk_window_set_title(GTK_WINDOW(ca->window), _("Gaim - New away message")); 3193 gtk_window_set_title(GTK_WINDOW(ca->window), _("Gaim - New away message"));
3233 gtk_signal_connect(GTK_OBJECT(ca->window),"delete_event", 3194 gtk_signal_connect(GTK_OBJECT(ca->window), "delete_event",
3234 GTK_SIGNAL_FUNC(destroy_dialog), ca->window); 3195 GTK_SIGNAL_FUNC(destroy_dialog), ca->window);
3235 gtk_widget_realize(ca->window); 3196 gtk_widget_realize(ca->window);
3236 aol_icon(ca->window->window); 3197 aol_icon(ca->window->window);
3237 3198
3238 tbox = gtk_vbox_new(FALSE, 5); 3199 tbox = gtk_vbox_new(FALSE, 5);
3239 gtk_container_add(GTK_CONTAINER(ca->window), tbox); 3200 gtk_container_add(GTK_CONTAINER(ca->window), tbox);
3261 gtk_widget_grab_focus(ca->entry); 3222 gtk_widget_grab_focus(ca->entry);
3262 gtk_widget_show(ca->entry); 3223 gtk_widget_show(ca->entry);
3263 3224
3264 sw = gtk_scrolled_window_new(NULL, NULL); 3225 sw = gtk_scrolled_window_new(NULL, NULL);
3265 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), 3226 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
3266 GTK_POLICY_AUTOMATIC, 3227 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
3267 GTK_POLICY_AUTOMATIC);
3268 gtk_box_pack_start(GTK_BOX(fbox), sw, TRUE, TRUE, 0); 3228 gtk_box_pack_start(GTK_BOX(fbox), sw, TRUE, TRUE, 0);
3269 gtk_widget_show(sw); 3229 gtk_widget_show(sw);
3270 3230
3271 ca->text = gtk_text_new(NULL, NULL); 3231 ca->text = gtk_text_new(NULL, NULL);
3272 gtk_text_set_word_wrap(GTK_TEXT(ca->text), TRUE); 3232 gtk_text_set_word_wrap(GTK_TEXT(ca->text), TRUE);
3278 GtkWidget *item = GTK_LIST(prefs_away_list)->selection->data; 3238 GtkWidget *item = GTK_LIST(prefs_away_list)->selection->data;
3279 struct away_message *amt = gtk_object_get_user_data(GTK_OBJECT(item)); 3239 struct away_message *amt = gtk_object_get_user_data(GTK_OBJECT(item));
3280 int pos = 0; 3240 int pos = 0;
3281 gtk_entry_set_text(GTK_ENTRY(ca->entry), amt->name); 3241 gtk_entry_set_text(GTK_ENTRY(ca->entry), amt->name);
3282 gtk_editable_insert_text(GTK_EDITABLE(ca->text), amt->message, 3242 gtk_editable_insert_text(GTK_EDITABLE(ca->text), amt->message,
3283 strlen(amt->message), &pos); 3243 strlen(amt->message), &pos);
3284 ca->mess = amt; 3244 ca->mess = amt;
3285 } 3245 }
3286 3246
3287 hbox = gtk_hbox_new(FALSE, 5); 3247 hbox = gtk_hbox_new(FALSE, 5);
3288 gtk_box_pack_start(GTK_BOX(tbox), hbox, FALSE, FALSE, 0); 3248 gtk_box_pack_start(GTK_BOX(tbox), hbox, FALSE, FALSE, 0);
3289 gtk_widget_show(hbox); 3249 gtk_widget_show(hbox);
3290 3250
3291 button = picture_button(ca->window, _("Cancel"), cancel_xpm); 3251 button = picture_button(ca->window, _("Cancel"), cancel_xpm);
3292 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), ca->window); 3252 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), ca->window);
3293 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); 3253 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
3294 3254
3295 button = picture_button(ca->window, _("Use"), gnome_preferences_xpm); 3255 button = picture_button(ca->window, _("Use"), gnome_preferences_xpm);
3296 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(use_away_mess), ca); 3256 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(use_away_mess), ca);
3297 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); 3257 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
3298 3258
3299 button = picture_button(ca->window, _("Save & Use"), add_xpm); 3259 button = picture_button(ca->window, _("Save & Use"), add_xpm);
3300 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(su_away_mess), ca); 3260 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(su_away_mess), ca);
3301 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); 3261 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
3302 3262
3303 button = picture_button(ca->window, _("Save"), ok_xpm); 3263 button = picture_button(ca->window, _("Save"), ok_xpm);
3304 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(save_away_mess), ca); 3264 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(save_away_mess), ca);
3305 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); 3265 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
3306 3266
3307 gtk_widget_show(ca->window); 3267 gtk_widget_show(ca->window);
3308 } 3268 }
3309 3269
3310 /* smiley dialog */ 3270 /* smiley dialog */
3311 3271
3312 void close_smiley_dialog(GtkWidget *widget, struct conversation *c) 3272 void close_smiley_dialog(GtkWidget *widget, struct conversation *c)
3313 { 3273 {
3314 if (c->smiley) 3274 if (c->smiley) {
3315 {
3316 set_state_lock(1); 3275 set_state_lock(1);
3317 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(c->smiley), FALSE); 3276 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(c->smiley), FALSE);
3318 set_state_lock(0); 3277 set_state_lock(0);
3319 } 3278 }
3320 dialogwindows = g_list_remove(dialogwindows, c->smiley_dialog); 3279 dialogwindows = g_list_remove(dialogwindows, c->smiley_dialog);
3321 gtk_widget_destroy(c->smiley_dialog); 3280 gtk_widget_destroy(c->smiley_dialog);
3322 c->smiley_dialog = NULL; 3281 c->smiley_dialog = NULL;
3323 } 3282 }
3324 3283
3325 void set_smiley_array(GtkWidget *widget, int smiley_type) 3284 void set_smiley_array(GtkWidget *widget, int smiley_type)
3326 { 3285 {
3327 int i; 3286 int i;
3328 3287
3329 for (i = 0; i < FACE_TOTAL; i++) 3288 for (i = 0; i < FACE_TOTAL; i++)
3330 smiley_array[i] = 0; 3289 smiley_array[i] = 0;
3331 3290
3332 smiley_array[smiley_type] = 1; 3291 smiley_array[smiley_type] = 1;
3333 3292
3334 return; 3293 return;
3335 } 3294 }
3336 3295
3337 void insert_smiley_text(GtkWidget *widget, struct conversation *c) 3296 void insert_smiley_text(GtkWidget *widget, struct conversation *c)
3338 { 3297 {
3339 char *smiley_text; 3298 char *smiley_text;
3340 int i; 3299 int i;
3341 3300
3342 for (i = 0; i < FACE_TOTAL; i++) 3301 for (i = 0; i < FACE_TOTAL; i++)
3343 if (smiley_array[i] == 1) 3302 if (smiley_array[i] == 1)
3344 break; 3303 break;
3345 3304
3346 switch (i) 3305 switch (i) {
3347 { 3306 case (FACE_ANGEL):
3348 case (FACE_ANGEL): smiley_text = g_strndup("O:-)", strlen("O:-)")); break; 3307 smiley_text = g_strndup("O:-)", strlen("O:-)"));
3349 case (FACE_BIGSMILE): smiley_text = g_strndup(":-D", strlen(":-D")); break; 3308 break;
3350 case (FACE_BURP): smiley_text = g_strndup(":-!", strlen(":-!")); break; 3309 case (FACE_BIGSMILE):
3351 case (FACE_CROSSEDLIPS): smiley_text = g_strndup(":-X", strlen(":-X")); break; 3310 smiley_text = g_strndup(":-D", strlen(":-D"));
3352 case (FACE_CRY): smiley_text = g_strndup(":'(", strlen(":'(")); break; 3311 break;
3353 case (FACE_EMBARRASSED): smiley_text = g_strndup(":-[", strlen(":-[")); break; 3312 case (FACE_BURP):
3354 case (FACE_KISS): smiley_text = g_strndup(":-*", strlen(":-*")); break; 3313 smiley_text = g_strndup(":-!", strlen(":-!"));
3355 case (FACE_MONEYMOUTH): smiley_text = g_strndup(":-$", strlen(":-$")); break; 3314 break;
3356 case (FACE_SAD): smiley_text = g_strndup(":-(", strlen(":-(")); break; 3315 case (FACE_CROSSEDLIPS):
3357 case (FACE_SCREAM): smiley_text = g_strndup("=-O", strlen("=-O")); break; 3316 smiley_text = g_strndup(":-X", strlen(":-X"));
3358 case (FACE_SMILE): smiley_text = g_strndup(":-)", strlen(":-)")); break; 3317 break;
3359 case (FACE_SMILE8): smiley_text = g_strndup("8-)", strlen("8-)")); break; 3318 case (FACE_CRY):
3360 case (FACE_THINK): smiley_text = g_strndup(":-/", strlen(":-/")); break; 3319 smiley_text = g_strndup(":'(", strlen(":'("));
3361 case (FACE_TONGUE): smiley_text = g_strndup(":-P", strlen(":-p")); break; 3320 break;
3362 case (FACE_WINK): smiley_text = g_strndup(";-)", strlen(";-)")); break; 3321 case (FACE_EMBARRASSED):
3363 case (FACE_YELL): smiley_text = g_strndup(">:o", strlen(">:o")); break; 3322 smiley_text = g_strndup(":-[", strlen(":-["));
3364 default: smiley_text = g_strndup(":-)", strlen(":-)")); break; 3323 break;
3365 } 3324 case (FACE_KISS):
3366 3325 smiley_text = g_strndup(":-*", strlen(":-*"));
3326 break;
3327 case (FACE_MONEYMOUTH):
3328 smiley_text = g_strndup(":-$", strlen(":-$"));
3329 break;
3330 case (FACE_SAD):
3331 smiley_text = g_strndup(":-(", strlen(":-("));
3332 break;
3333 case (FACE_SCREAM):
3334 smiley_text = g_strndup("=-O", strlen("=-O"));
3335 break;
3336 case (FACE_SMILE):
3337 smiley_text = g_strndup(":-)", strlen(":-)"));
3338 break;
3339 case (FACE_SMILE8):
3340 smiley_text = g_strndup("8-)", strlen("8-)"));
3341 break;
3342 case (FACE_THINK):
3343 smiley_text = g_strndup(":-/", strlen(":-/"));
3344 break;
3345 case (FACE_TONGUE):
3346 smiley_text = g_strndup(":-P", strlen(":-p"));
3347 break;
3348 case (FACE_WINK):
3349 smiley_text = g_strndup(";-)", strlen(";-)"));
3350 break;
3351 case (FACE_YELL):
3352 smiley_text = g_strndup(">:o", strlen(">:o"));
3353 break;
3354 default:
3355 smiley_text = g_strndup(":-)", strlen(":-)"));
3356 break;
3357 }
3358
3367 /* surround(c->entry, smiley_text, ""); */ 3359 /* surround(c->entry, smiley_text, ""); */
3368 3360
3369 if (GTK_EDITABLE(c->entry)->has_selection) { 3361 if (GTK_EDITABLE(c->entry)->has_selection) {
3370 int finish = GTK_EDITABLE(c->entry)->selection_end_pos; 3362 int finish = GTK_EDITABLE(c->entry)->selection_end_pos;
3371 gtk_editable_insert_text(GTK_EDITABLE(c->entry), 3363 gtk_editable_insert_text(GTK_EDITABLE(c->entry),
3372 smiley_text, strlen(smiley_text), &finish); 3364 smiley_text, strlen(smiley_text), &finish);
3373 } else { 3365 } else {
3374 int pos = GTK_EDITABLE(c->entry)->current_pos; 3366 int pos = GTK_EDITABLE(c->entry)->current_pos;
3375 gtk_editable_insert_text(GTK_EDITABLE(c->entry), 3367 gtk_editable_insert_text(GTK_EDITABLE(c->entry), smiley_text, strlen(smiley_text), &pos);
3376 smiley_text, strlen(smiley_text), &pos);
3377 } 3368 }
3378 3369
3379 g_free(smiley_text); 3370 g_free(smiley_text);
3380 3371
3381 close_smiley_dialog(NULL, c); 3372 close_smiley_dialog(NULL, c);
3382 3373
3383 return; 3374 return;
3384 } 3375 }
3385 3376
3386 static void toolbar_add_smiley(struct conversation *c, GtkWidget *bar, char **xpm, GtkWidget *win, int face) 3377 static void toolbar_add_smiley(struct conversation *c, GtkWidget *bar, char **xpm, GtkWidget *win,
3378 int face)
3387 { 3379 {
3388 GtkWidget *tpm; 3380 GtkWidget *tpm;
3389 GdkBitmap *mask; 3381 GdkBitmap *mask;
3390 GdkPixmap *dpm; 3382 GdkPixmap *dpm;
3391 GtkWidget *button; 3383 GtkWidget *button;
3393 dpm = gdk_pixmap_create_from_xpm_d(win->window, &mask, &win->style->white, xpm); 3385 dpm = gdk_pixmap_create_from_xpm_d(win->window, &mask, &win->style->white, xpm);
3394 tpm = gtk_pixmap_new(dpm, mask); 3386 tpm = gtk_pixmap_new(dpm, mask);
3395 gtk_widget_show(tpm); 3387 gtk_widget_show(tpm);
3396 gdk_pixmap_unref(dpm); 3388 gdk_pixmap_unref(dpm);
3397 gdk_bitmap_unref(mask); 3389 gdk_bitmap_unref(mask);
3398 button = gtk_toolbar_append_element(GTK_TOOLBAR(bar), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, NULL, NULL, tpm, GTK_SIGNAL_FUNC(set_smiley_array), (int *)face); 3390 button =
3391 gtk_toolbar_append_element(GTK_TOOLBAR(bar), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, NULL,
3392 NULL, tpm, GTK_SIGNAL_FUNC(set_smiley_array), (int *)face);
3399 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(insert_smiley_text), c); 3393 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(insert_smiley_text), c);
3400 3394
3401 /* these look really weird with borders */ 3395 /* these look really weird with borders */
3402 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); 3396 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
3403 } 3397 }
3404 3398
3405 void show_smiley_dialog(struct conversation *c, GtkWidget *widget) 3399 void show_smiley_dialog(struct conversation *c, GtkWidget *widget)
3406 { 3400 {
3407 GtkWidget *dialog; 3401 GtkWidget *dialog;
3408 GtkWidget *vbox, *smiley_box_1, *smiley_box_2, *smiley_box_3, *smiley_box_4; 3402 GtkWidget *vbox, *smiley_box_1, *smiley_box_2, *smiley_box_3, *smiley_box_4;
3409 GtkWidget *win; 3403 GtkWidget *win;
3411 3405
3412 if (c->smiley_dialog) 3406 if (c->smiley_dialog)
3413 return; 3407 return;
3414 3408
3415 win = c->window; 3409 win = c->window;
3416 3410
3417 dialog = gtk_window_new(GTK_WINDOW_DIALOG); 3411 dialog = gtk_window_new(GTK_WINDOW_DIALOG);
3418 gtk_window_set_policy(GTK_WINDOW(dialog), FALSE, FALSE, TRUE); 3412 gtk_window_set_policy(GTK_WINDOW(dialog), FALSE, FALSE, TRUE);
3419 gtk_window_set_wmclass(GTK_WINDOW(dialog), "smiley_dialog", "Gaim"); 3413 gtk_window_set_wmclass(GTK_WINDOW(dialog), "smiley_dialog", "Gaim");
3420 gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); 3414 gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE);
3421 3415
3461 gtk_container_set_border_width(GTK_CONTAINER(dialog), 5); 3455 gtk_container_set_border_width(GTK_CONTAINER(dialog), 5);
3462 3456
3463 /* connect signals */ 3457 /* connect signals */
3464 gtk_object_set_user_data(GTK_OBJECT(dialog), "smiley dialog"); 3458 gtk_object_set_user_data(GTK_OBJECT(dialog), "smiley dialog");
3465 gtk_signal_connect(GTK_OBJECT(dialog), "delete_event", GTK_SIGNAL_FUNC(delete_event_dialog), c); 3459 gtk_signal_connect(GTK_OBJECT(dialog), "delete_event", GTK_SIGNAL_FUNC(delete_event_dialog), c);
3466 3460
3467 /* show everything */ 3461 /* show everything */
3468 gtk_window_set_title(GTK_WINDOW(dialog), _("Smile!")); 3462 gtk_window_set_title(GTK_WINDOW(dialog), _("Smile!"));
3469 gtk_widget_show_all(dialog); 3463 gtk_widget_show_all(dialog);
3470 3464
3471 c->smiley_dialog = dialog; 3465 c->smiley_dialog = dialog;
3472 3466
3473 return; 3467 return;
3474 } 3468 }
3475 3469
3476 static void do_alias_bud(GtkWidget *w, struct buddy *b) 3470 static void do_alias_bud(GtkWidget *w, struct buddy *b)
3477 { 3471 {
3488 GtkWidget *vbox; 3482 GtkWidget *vbox;
3489 GtkWidget *bbox; 3483 GtkWidget *bbox;
3490 GtkWidget *cancel; 3484 GtkWidget *cancel;
3491 static GtkWidget *add = NULL; 3485 static GtkWidget *add = NULL;
3492 GtkWidget *label; 3486 GtkWidget *label;
3493 GtkWidget *topbox; 3487 GtkWidget *topbox;
3494 static int a, c; 3488 static int a, c;
3495 3489
3496 if (aliasdlg) 3490 if (aliasdlg)
3497 gtk_widget_destroy(aliasdlg); 3491 gtk_widget_destroy(aliasdlg);
3498 3492
3499 aliasdlg = gtk_window_new(GTK_WINDOW_DIALOG); 3493 aliasdlg = gtk_window_new(GTK_WINDOW_DIALOG);
3500 gtk_window_set_policy(GTK_WINDOW(aliasdlg), FALSE, FALSE, TRUE); 3494 gtk_window_set_policy(GTK_WINDOW(aliasdlg), FALSE, FALSE, TRUE);
3501 gtk_window_set_wmclass(GTK_WINDOW(aliasdlg), "alias_dialog", "Gaim"); 3495 gtk_window_set_wmclass(GTK_WINDOW(aliasdlg), "alias_dialog", "Gaim");
3502 gtk_widget_realize(aliasdlg); 3496 gtk_widget_realize(aliasdlg);
3503 dialogwindows = g_list_prepend(dialogwindows, aliasdlg); 3497 dialogwindows = g_list_prepend(dialogwindows, aliasdlg);
3504 3498
3505 bbox = gtk_hbox_new(TRUE, 10); 3499 bbox = gtk_hbox_new(TRUE, 10);
3506 topbox = gtk_hbox_new(FALSE, 5); 3500 topbox = gtk_hbox_new(FALSE, 5);
3507 vbox = gtk_vbox_new(FALSE, 5); 3501 vbox = gtk_vbox_new(FALSE, 5);
3508 3502
3509 aliasentry = gtk_entry_new(); 3503 aliasentry = gtk_entry_new();
3510 aliasname = gtk_entry_new(); 3504 aliasname = gtk_entry_new();
3511 /* Put the buttons in the box */ 3505 /* Put the buttons in the box */
3512 3506
3513 add = picture_button(aliasdlg, _("Alias"), add_xpm); 3507 add = picture_button(aliasdlg, _("Alias"), add_xpm);
3514 3508
3515 cancel = picture_button(aliasdlg, _("Cancel"), cancel_xpm); 3509 cancel = picture_button(aliasdlg, _("Cancel"), cancel_xpm);
3516 3510
3517 gtk_box_pack_start(GTK_BOX(bbox), add, FALSE, FALSE, 5); 3511 gtk_box_pack_start(GTK_BOX(bbox), add, FALSE, FALSE, 5);
3518 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 5); 3512 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 5);
3519 3513
3520 frame = gtk_frame_new(NULL); 3514 frame = gtk_frame_new(NULL);
3521 gtk_frame_set_label(GTK_FRAME(frame), _("Alias Buddy")); 3515 gtk_frame_set_label(GTK_FRAME(frame), _("Alias Buddy"));
3522 3516
3523 label = gtk_label_new(_("Buddy")); 3517 label = gtk_label_new(_("Buddy"));
3524 gtk_widget_show(label); 3518 gtk_widget_show(label);
3525 gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 5); 3519 gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 5);
3526 gtk_box_pack_start(GTK_BOX(topbox), aliasentry, FALSE, FALSE, 5); 3520 gtk_box_pack_start(GTK_BOX(topbox), aliasentry, FALSE, FALSE, 5);
3527 gtk_entry_set_editable(GTK_ENTRY(aliasentry), FALSE); 3521 gtk_entry_set_editable(GTK_ENTRY(aliasentry), FALSE);
3528 label = gtk_label_new(_("Alias")); 3522 label = gtk_label_new(_("Alias"));
3529 gtk_widget_show(label); 3523 gtk_widget_show(label);
3530 gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 5); 3524 gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 5);
3531 gtk_box_pack_start(GTK_BOX(topbox), aliasname, FALSE, FALSE, 5); 3525 gtk_box_pack_start(GTK_BOX(topbox), aliasname, FALSE, FALSE, 5);
3532 3526
3533 gtk_entry_set_text(GTK_ENTRY(aliasentry), b->name); 3527 gtk_entry_set_text(GTK_ENTRY(aliasentry), b->name);
3534 gtk_entry_set_text(GTK_ENTRY(aliasname), b->show); 3528 gtk_entry_set_text(GTK_ENTRY(aliasname), b->show);
3535 3529
3536 /* And the boxes in the box */ 3530 /* And the boxes in the box */
3537 gtk_box_pack_start(GTK_BOX(vbox), topbox, TRUE, TRUE, 5); 3531 gtk_box_pack_start(GTK_BOX(vbox), topbox, TRUE, TRUE, 5);
3538 gtk_box_pack_start(GTK_BOX(vbox), bbox, TRUE, TRUE, 5); 3532 gtk_box_pack_start(GTK_BOX(vbox), bbox, TRUE, TRUE, 5);
3539 3533
3540 /* Handle closes right */ 3534 /* Handle closes right */
3541 gtk_signal_connect(GTK_OBJECT(aliasdlg), "destroy", 3535 gtk_signal_connect(GTK_OBJECT(aliasdlg), "destroy", GTK_SIGNAL_FUNC(destroy_dialog), aliasdlg);
3542 GTK_SIGNAL_FUNC(destroy_dialog), aliasdlg); 3536 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), aliasdlg);
3543 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", 3537 a = gtk_signal_connect(GTK_OBJECT(add), "clicked", GTK_SIGNAL_FUNC(do_alias_bud), b);
3544 GTK_SIGNAL_FUNC(destroy_dialog), aliasdlg); 3538 c = gtk_signal_connect(GTK_OBJECT(aliasname), "activate", GTK_SIGNAL_FUNC(do_alias_bud), b);
3545 a = gtk_signal_connect(GTK_OBJECT(add), "clicked", 3539 /* Finish up */
3546 GTK_SIGNAL_FUNC(do_alias_bud), b); 3540 gtk_widget_show(add);
3547 c = gtk_signal_connect(GTK_OBJECT(aliasname), "activate", 3541 gtk_widget_show(cancel);
3548 GTK_SIGNAL_FUNC(do_alias_bud), b); 3542 gtk_widget_show(aliasentry);
3549 /* Finish up */ 3543 gtk_widget_show(aliasname);
3550 gtk_widget_show(add); 3544 gtk_widget_show(topbox);
3551 gtk_widget_show(cancel); 3545 gtk_widget_show(bbox);
3552 gtk_widget_show(aliasentry); 3546 gtk_widget_show(vbox);
3553 gtk_widget_show(aliasname);
3554 gtk_widget_show(topbox);
3555 gtk_widget_show(bbox);
3556 gtk_widget_show(vbox);
3557 gtk_widget_show(frame); 3547 gtk_widget_show(frame);
3558 gtk_window_set_title(GTK_WINDOW(aliasdlg), _("Gaim - Alias Buddy")); 3548 gtk_window_set_title(GTK_WINDOW(aliasdlg), _("Gaim - Alias Buddy"));
3559 gtk_window_set_focus(GTK_WINDOW(aliasdlg), aliasentry); 3549 gtk_window_set_focus(GTK_WINDOW(aliasdlg), aliasentry);
3560 gtk_container_add(GTK_CONTAINER(frame), vbox); 3550 gtk_container_add(GTK_CONTAINER(frame), vbox);
3561 gtk_container_add(GTK_CONTAINER(aliasdlg), frame); 3551 gtk_container_add(GTK_CONTAINER(aliasdlg), frame);
3562 gtk_container_set_border_width(GTK_CONTAINER(aliasdlg), 5); 3552 gtk_container_set_border_width(GTK_CONTAINER(aliasdlg), 5);
3563 gtk_widget_realize(aliasdlg); 3553 gtk_widget_realize(aliasdlg);
3564 aol_icon(aliasdlg->window); 3554 aol_icon(aliasdlg->window);
3565 3555
3566 gtk_widget_show(aliasdlg); 3556 gtk_widget_show(aliasdlg);
3567 } 3557 }
3568 3558
3569 3559
3570 static gboolean dont_destroy(gpointer a, gpointer b, gpointer c) 3560 static gboolean dont_destroy(gpointer a, gpointer b, gpointer c)
3571 { 3561 {
3572 return TRUE; 3562 return TRUE;
3573 } 3563 }
3574 3564
3575 static void do_save_log(GtkWidget *w, GtkWidget *filesel) 3565 static void do_save_log(GtkWidget *w, GtkWidget *filesel)
3584 char *tmp; 3574 char *tmp;
3585 3575
3586 name = gtk_object_get_user_data(GTK_OBJECT(filesel)); 3576 name = gtk_object_get_user_data(GTK_OBJECT(filesel));
3587 tmp = gaim_user_dir(); 3577 tmp = gaim_user_dir();
3588 g_snprintf(filename, PATHSIZE, "%s/logs/%s%s", tmp, 3578 g_snprintf(filename, PATHSIZE, "%s/logs/%s%s", tmp,
3589 name ? normalize(name) : "system", 3579 name ? normalize(name) : "system", name ? ".log" : "");
3590 name ? ".log" : "");
3591 g_free(tmp); 3580 g_free(tmp);
3592 3581
3593 file = gtk_file_selection_get_filename(GTK_FILE_SELECTION(filesel)); 3582 file = gtk_file_selection_get_filename(GTK_FILE_SELECTION(filesel));
3594 strncpy(path, file, PATHSIZE-1); 3583 strncpy(path, file, PATHSIZE - 1);
3595 if (file_is_dir(path, filesel)) 3584 if (file_is_dir(path, filesel))
3596 return; 3585 return;
3597 3586
3598 if ((fp_new = fopen(path, "w")) == NULL) { 3587 if ((fp_new = fopen(path, "w")) == NULL) {
3599 g_snprintf(error, BUF_LONG, 3588 g_snprintf(error, BUF_LONG,
3600 "Can't open file %s for writing - %s", 3589 "Can't open file %s for writing - %s", path, strerror(errno));
3601 path, strerror(errno));
3602 do_error_dialog(error, "Error"); 3590 do_error_dialog(error, "Error");
3603 return; 3591 return;
3604 } 3592 }
3605 3593
3606 if ((fp_old = fopen(filename, "r")) == NULL) { 3594 if ((fp_old = fopen(filename, "r")) == NULL) {
3607 g_snprintf(error, BUF_LONG, 3595 g_snprintf(error, BUF_LONG,
3608 "Can't open file %s for reading - %s", 3596 "Can't open file %s for reading - %s", filename, strerror(errno));
3609 filename, strerror(errno));
3610 do_error_dialog(error, "Error"); 3597 do_error_dialog(error, "Error");
3611 fclose(fp_new); 3598 fclose(fp_new);
3612 return; 3599 return;
3613 } 3600 }
3614 3601
3621 gtk_widget_destroy(filesel); 3608 gtk_widget_destroy(filesel);
3622 3609
3623 return; 3610 return;
3624 } 3611 }
3625 3612
3626 static void show_save_log(GtkWidget *w, gchar *name) 3613 static void show_save_log(GtkWidget *w, gchar *name)
3627 { 3614 {
3628 GtkWidget *filesel; 3615 GtkWidget *filesel;
3629 gchar buf[BUF_LEN]; 3616 gchar buf[BUF_LEN];
3630 3617
3631 g_snprintf(buf, BUF_LEN - 1, "%s/%s%s", getenv("HOME"), 3618 g_snprintf(buf, BUF_LEN - 1, "%s/%s%s", getenv("HOME"),
3632 name ? normalize(name) : "system", 3619 name ? normalize(name) : "system", name ? ".log" : "");
3633 name ? ".log" : "");
3634 3620
3635 filesel = gtk_file_selection_new(_("Gaim - Save Log File")); 3621 filesel = gtk_file_selection_new(_("Gaim - Save Log File"));
3636 dialogwindows = g_list_prepend(dialogwindows, filesel); 3622 dialogwindows = g_list_prepend(dialogwindows, filesel);
3637 gtk_signal_connect(GTK_OBJECT(filesel), "delete_event", 3623 gtk_signal_connect(GTK_OBJECT(filesel), "delete_event",
3638 GTK_SIGNAL_FUNC(destroy_dialog), filesel); 3624 GTK_SIGNAL_FUNC(destroy_dialog), filesel);
3639 3625
3640 gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(filesel)); 3626 gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(filesel));
3641 gtk_file_selection_set_filename(GTK_FILE_SELECTION(filesel), buf); 3627 gtk_file_selection_set_filename(GTK_FILE_SELECTION(filesel), buf);
3642 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filesel)->ok_button), 3628 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filesel)->ok_button),
3643 "clicked", GTK_SIGNAL_FUNC(do_save_log), filesel); 3629 "clicked", GTK_SIGNAL_FUNC(do_save_log), filesel);
3644 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filesel)->cancel_button), 3630 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filesel)->cancel_button),
3645 "clicked", GTK_SIGNAL_FUNC(destroy_dialog), 3631 "clicked", GTK_SIGNAL_FUNC(destroy_dialog), filesel);
3646 filesel);
3647 gtk_object_set_user_data(GTK_OBJECT(filesel), name); 3632 gtk_object_set_user_data(GTK_OBJECT(filesel), name);
3648 3633
3649 gtk_widget_realize(filesel); 3634 gtk_widget_realize(filesel);
3650 aol_icon(filesel->window); 3635 aol_icon(filesel->window);
3651 gtk_widget_show(filesel); 3636 gtk_widget_show(filesel);
3652 3637
3653 return; 3638 return;
3654 } 3639 }
3655 3640
3656 static void do_clear_log_file(GtkWidget *w, gchar *name) 3641 static void do_clear_log_file(GtkWidget *w, gchar *name)
3657 { 3642 {
3658 gchar buf[256]; 3643 gchar buf[256];
3659 gchar filename[256]; 3644 gchar filename[256];
3660 GtkWidget *window; 3645 GtkWidget *window;
3661 char *tmp; 3646 char *tmp;
3662 3647
3663 tmp = gaim_user_dir(); 3648 tmp = gaim_user_dir();
3664 g_snprintf(filename, 256, "%s/logs/%s%s", tmp, 3649 g_snprintf(filename, 256, "%s/logs/%s%s", tmp,
3665 name ? normalize(name) : "system", 3650 name ? normalize(name) : "system", name ? ".log" : "");
3666 name ? ".log" : "");
3667 g_free(tmp); 3651 g_free(tmp);
3668 3652
3669 if ((remove(filename)) == -1) { 3653 if ((remove(filename)) == -1) {
3670 g_snprintf(buf, 256, _("Unable to remove file %s - %s"), 3654 g_snprintf(buf, 256, _("Unable to remove file %s - %s"), filename, strerror(errno));
3671 filename, strerror(errno));
3672 do_error_dialog(buf, _("Error")); 3655 do_error_dialog(buf, _("Error"));
3673 } 3656 }
3674 3657
3675 window = gtk_object_get_user_data(GTK_OBJECT(w)); 3658 window = gtk_object_get_user_data(GTK_OBJECT(w));
3676 destroy_dialog(NULL, window); 3659 destroy_dialog(NULL, window);
3677 } 3660 }
3678 3661
3679 static void show_clear_log(GtkWidget *w, gchar *name) 3662 static void show_clear_log(GtkWidget *w, gchar *name)
3680 { 3663 {
3681 GtkWidget *window; 3664 GtkWidget *window;
3682 GtkWidget *box; 3665 GtkWidget *box;
3683 GtkWidget *hbox; 3666 GtkWidget *hbox;
3684 GtkWidget *button; 3667 GtkWidget *button;
3688 window = gtk_window_new(GTK_WINDOW_DIALOG); 3671 window = gtk_window_new(GTK_WINDOW_DIALOG);
3689 dialogwindows = g_list_prepend(dialogwindows, window); 3672 dialogwindows = g_list_prepend(dialogwindows, window);
3690 gtk_window_set_wmclass(GTK_WINDOW(window), "dialog", "Gaim"); 3673 gtk_window_set_wmclass(GTK_WINDOW(window), "dialog", "Gaim");
3691 gtk_container_set_border_width(GTK_CONTAINER(window), 10); 3674 gtk_container_set_border_width(GTK_CONTAINER(window), 10);
3692 gtk_window_set_policy(GTK_WINDOW(window), TRUE, TRUE, TRUE); 3675 gtk_window_set_policy(GTK_WINDOW(window), TRUE, TRUE, TRUE);
3693 gtk_signal_connect(GTK_OBJECT(window), "delete_event", 3676 gtk_signal_connect(GTK_OBJECT(window), "delete_event", GTK_SIGNAL_FUNC(destroy_dialog), window);
3694 GTK_SIGNAL_FUNC(destroy_dialog), window);
3695 gtk_widget_realize(window); 3677 gtk_widget_realize(window);
3696 aol_icon(window->window); 3678 aol_icon(window->window);
3697 3679
3698 box = gtk_vbox_new(FALSE, 5); 3680 box = gtk_vbox_new(FALSE, 5);
3699 gtk_container_add(GTK_CONTAINER(window), box); 3681 gtk_container_add(GTK_CONTAINER(window), box);
3703 3685
3704 hsep = gtk_hseparator_new(); 3686 hsep = gtk_hseparator_new();
3705 gtk_box_pack_start(GTK_BOX(box), hsep, FALSE, FALSE, 0); 3687 gtk_box_pack_start(GTK_BOX(box), hsep, FALSE, FALSE, 0);
3706 3688
3707 hbox = gtk_hbox_new(FALSE, 0); 3689 hbox = gtk_hbox_new(FALSE, 0);
3708 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0); 3690 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0);
3709 gtk_widget_show(hbox); 3691 gtk_widget_show(hbox);
3710 3692
3711 button = picture_button(window, _("Cancel"), cancel_xpm); 3693 button = picture_button(window, _("Cancel"), cancel_xpm);
3712 gtk_signal_connect(GTK_OBJECT(button), "clicked", 3694 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), window);
3713 GTK_SIGNAL_FUNC(destroy_dialog), window);
3714 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5); 3695 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5);
3715 gtk_widget_show(button); 3696 gtk_widget_show(button);
3716 3697
3717 button = picture_button(window, _("Okay"), ok_xpm); 3698 button = picture_button(window, _("Okay"), ok_xpm);
3718 gtk_object_set_user_data(GTK_OBJECT(button), 3699 gtk_object_set_user_data(GTK_OBJECT(button), gtk_object_get_user_data(GTK_OBJECT(w)));
3719 gtk_object_get_user_data(GTK_OBJECT(w))); 3700 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(do_clear_log_file), name);
3720 gtk_signal_connect(GTK_OBJECT(button), "clicked", 3701 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), window);
3721 GTK_SIGNAL_FUNC(do_clear_log_file), name);
3722 gtk_signal_connect(GTK_OBJECT(button), "clicked",
3723 GTK_SIGNAL_FUNC(destroy_dialog), window);
3724 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5); 3702 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5);
3725 gtk_widget_show(button); 3703 gtk_widget_show(button);
3726 3704
3727 gtk_widget_show_all(window); 3705 gtk_widget_show_all(window);
3728 3706
3729 return; 3707 return;
3730 } 3708 }
3731 3709
3732 void 3710 void show_log(char *name)
3733 show_log (char *name)
3734 { 3711 {
3735 gchar filename[256]; 3712 gchar filename[256];
3736 gchar buf[BUF_LONG]; 3713 gchar buf[BUF_LONG];
3737 GString *string; 3714 GString *string;
3738 FILE *fp; 3715 FILE *fp;
3776 dialogwindows = g_list_prepend(dialogwindows, window); 3753 dialogwindows = g_list_prepend(dialogwindows, window);
3777 gtk_window_set_wmclass(GTK_WINDOW(window), "log", "Gaim"); 3754 gtk_window_set_wmclass(GTK_WINDOW(window), "log", "Gaim");
3778 if (name) 3755 if (name)
3779 g_snprintf(buf, BUF_LONG, "Gaim - Conversations with %s", name); 3756 g_snprintf(buf, BUF_LONG, "Gaim - Conversations with %s", name);
3780 else 3757 else
3781 g_snprintf(buf, BUF_LONG, "Gaim - System Log" ); 3758 g_snprintf(buf, BUF_LONG, "Gaim - System Log");
3782 gtk_window_set_title(GTK_WINDOW(window), buf); 3759 gtk_window_set_title(GTK_WINDOW(window), buf);
3783 gtk_container_set_border_width(GTK_CONTAINER(window), 10); 3760 gtk_container_set_border_width(GTK_CONTAINER(window), 10);
3784 gtk_window_set_policy(GTK_WINDOW(window), TRUE, TRUE, TRUE); 3761 gtk_window_set_policy(GTK_WINDOW(window), TRUE, TRUE, TRUE);
3785 block = gtk_signal_connect(GTK_OBJECT(window), "delete_event", 3762 block = gtk_signal_connect(GTK_OBJECT(window), "delete_event",
3786 GTK_SIGNAL_FUNC(dont_destroy), window); 3763 GTK_SIGNAL_FUNC(dont_destroy), window);
3817 gtk_box_pack_end(GTK_BOX(hbox), save_button, FALSE, FALSE, 5); 3794 gtk_box_pack_end(GTK_BOX(hbox), save_button, FALSE, FALSE, 5);
3818 gtk_widget_set_sensitive(save_button, FALSE); 3795 gtk_widget_set_sensitive(save_button, FALSE);
3819 3796
3820 gtk_widget_show_all(window); 3797 gtk_widget_show_all(window);
3821 3798
3822 while (fgets (buf, BUF_LONG, fp)) { 3799 while (fgets(buf, BUF_LONG, fp)) {
3823 if (strlen (buf) >= 5 && (!strncmp (buf+strlen(buf)-5, "<BR>\n", 5))) 3800 if (strlen(buf) >= 5 && (!strncmp(buf + strlen(buf) - 5, "<BR>\n", 5)))
3824 /* take off the \n */ 3801 /* take off the \n */
3825 buf[strlen(buf)-1] = '\0'; 3802 buf[strlen(buf) - 1] = '\0';
3826 if (!name || (strlen (buf) >= 21 && strstr (buf, "---- New C"))) { 3803 if (!name ||(strlen(buf) >= 21 && strstr(buf, "---- New C"))) {
3827 gtk_imhtml_append_text (GTK_IMHTML(layout), string->str, options); 3804 gtk_imhtml_append_text(GTK_IMHTML(layout), string->str, options);
3828 g_string_free (string, TRUE); 3805 g_string_free(string, TRUE);
3829 string = g_string_new (buf); 3806 string = g_string_new(buf);
3830 } else { 3807 } else {
3831 string = g_string_append (string, buf); 3808 string = g_string_append(string, buf);
3832 } 3809 }
3833 while (gtk_events_pending()) 3810 while (gtk_events_pending())
3834 gtk_main_iteration(); 3811 gtk_main_iteration();
3835 } 3812 }
3836 gtk_imhtml_append_text (GTK_IMHTML(layout), string->str, options); 3813 gtk_imhtml_append_text(GTK_IMHTML(layout), string->str, options);
3837 gtk_imhtml_append_text (GTK_IMHTML(layout), "<BR>", options); 3814 gtk_imhtml_append_text(GTK_IMHTML(layout), "<BR>", options);
3838 3815
3839 gtk_signal_disconnect(GTK_OBJECT(window), block); 3816 gtk_signal_disconnect(GTK_OBJECT(window), block);
3840 gtk_signal_connect(GTK_OBJECT(window), "delete_event", 3817 gtk_signal_connect(GTK_OBJECT(window), "delete_event", GTK_SIGNAL_FUNC(destroy_dialog), window);
3841 GTK_SIGNAL_FUNC(destroy_dialog), window); 3818 gtk_signal_connect(GTK_OBJECT(close_button), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), window);
3842 gtk_signal_connect(GTK_OBJECT(close_button), "clicked", 3819 gtk_signal_connect(GTK_OBJECT(clear_button), "clicked", GTK_SIGNAL_FUNC(show_clear_log), name);
3843 GTK_SIGNAL_FUNC(destroy_dialog), window); 3820 gtk_signal_connect(GTK_OBJECT(save_button), "clicked", GTK_SIGNAL_FUNC(show_save_log), name);
3844 gtk_signal_connect(GTK_OBJECT(clear_button), "clicked",
3845 GTK_SIGNAL_FUNC(show_clear_log), name);
3846 gtk_signal_connect(GTK_OBJECT(save_button), "clicked",
3847 GTK_SIGNAL_FUNC(show_save_log), name);
3848 gtk_widget_set_sensitive(close_button, TRUE); 3821 gtk_widget_set_sensitive(close_button, TRUE);
3849 gtk_widget_set_sensitive(clear_button, TRUE); 3822 gtk_widget_set_sensitive(clear_button, TRUE);
3850 gtk_widget_set_sensitive(save_button, TRUE); 3823 gtk_widget_set_sensitive(save_button, TRUE);
3851 3824
3852 fclose(fp); 3825 fclose(fp);
3853 g_string_free (string, TRUE); 3826 g_string_free(string, TRUE);
3854 3827
3855 return; 3828 return;
3856 } 3829 }
3857 3830
3858 /*------------------------------------------------------------------------*/ 3831 /*------------------------------------------------------------------------*/
3900 GtkWidget *name_entry; 3873 GtkWidget *name_entry;
3901 GtkWidget *label; 3874 GtkWidget *label;
3902 3875
3903 if (!rename_dialog) { 3876 if (!rename_dialog) {
3904 rename_dialog = gtk_window_new(GTK_WINDOW_DIALOG); 3877 rename_dialog = gtk_window_new(GTK_WINDOW_DIALOG);
3905 gtk_window_set_wmclass(GTK_WINDOW(rename_dialog), "rename_dialog", 3878 gtk_window_set_wmclass(GTK_WINDOW(rename_dialog), "rename_dialog", "Gaim");
3906 "Gaim");
3907 gtk_window_set_policy(GTK_WINDOW(rename_dialog), FALSE, TRUE, TRUE); 3879 gtk_window_set_policy(GTK_WINDOW(rename_dialog), FALSE, TRUE, TRUE);
3908 gtk_window_set_title(GTK_WINDOW(rename_dialog), 3880 gtk_window_set_title(GTK_WINDOW(rename_dialog), _("Gaim - Rename Group"));
3909 _("Gaim - Rename Group"));
3910 gtk_signal_connect(GTK_OBJECT(rename_dialog), "destroy", 3881 gtk_signal_connect(GTK_OBJECT(rename_dialog), "destroy",
3911 GTK_SIGNAL_FUNC(destroy_dialog), rename_dialog); 3882 GTK_SIGNAL_FUNC(destroy_dialog), rename_dialog);
3912 gtk_widget_realize(rename_dialog); 3883 gtk_widget_realize(rename_dialog);
3913 aol_icon(rename_dialog->window); 3884 aol_icon(rename_dialog->window);
3914 3885
3966 3937
3967 if (new_name && (strlen(new_name) != 0) && strcmp(new_name, b->name)) { 3938 if (new_name && (strlen(new_name) != 0) && strcmp(new_name, b->name)) {
3968 char *prevname = g_strdup(b->name); 3939 char *prevname = g_strdup(b->name);
3969 serv_remove_buddy(b->gc, b->name); 3940 serv_remove_buddy(b->gc, b->name);
3970 if (!strcmp(b->name, b->show)) 3941 if (!strcmp(b->name, b->show))
3971 g_snprintf(b->show, sizeof(b->show), "%s", new_name); 3942 g_snprintf(b->show, sizeof(b->show), "%s", new_name);
3972 g_snprintf(b->name, sizeof(b->name), "%s", new_name); 3943 g_snprintf(b->name, sizeof(b->name), "%s", new_name);
3973 serv_add_buddy(b->gc, b->name); 3944 serv_add_buddy(b->gc, b->name);
3974 handle_buddy_rename(b, prevname); 3945 handle_buddy_rename(b, prevname);
3975 g_free(prevname); 3946 g_free(prevname);
3976 } 3947 }
3988 GtkWidget *name_entry; 3959 GtkWidget *name_entry;
3989 GtkWidget *label; 3960 GtkWidget *label;
3990 3961
3991 if (!rename_bud_dialog) { 3962 if (!rename_bud_dialog) {
3992 rename_bud_dialog = gtk_window_new(GTK_WINDOW_DIALOG); 3963 rename_bud_dialog = gtk_window_new(GTK_WINDOW_DIALOG);
3993 gtk_window_set_wmclass(GTK_WINDOW(rename_bud_dialog), "rename_bud_dialog", 3964 gtk_window_set_wmclass(GTK_WINDOW(rename_bud_dialog), "rename_bud_dialog", "Gaim");
3994 "Gaim");
3995 gtk_window_set_policy(GTK_WINDOW(rename_bud_dialog), FALSE, TRUE, TRUE); 3965 gtk_window_set_policy(GTK_WINDOW(rename_bud_dialog), FALSE, TRUE, TRUE);
3996 gtk_window_set_title(GTK_WINDOW(rename_bud_dialog), 3966 gtk_window_set_title(GTK_WINDOW(rename_bud_dialog), _("Gaim - Rename Buddy"));
3997 _("Gaim - Rename Buddy"));
3998 gtk_signal_connect(GTK_OBJECT(rename_bud_dialog), "destroy", 3967 gtk_signal_connect(GTK_OBJECT(rename_bud_dialog), "destroy",
3999 GTK_SIGNAL_FUNC(destroy_dialog), rename_bud_dialog); 3968 GTK_SIGNAL_FUNC(destroy_dialog), rename_bud_dialog);
4000 gtk_widget_realize(rename_bud_dialog); 3969 gtk_widget_realize(rename_bud_dialog);
4001 aol_icon(rename_bud_dialog->window); 3970 aol_icon(rename_bud_dialog->window);
4002 3971
4038 } 4007 }
4039 4008
4040 gtk_widget_show_all(rename_bud_dialog); 4009 gtk_widget_show_all(rename_bud_dialog);
4041 } 4010 }
4042 4011
4043 static GtkWidget *perl_config = NULL; 4012 static GtkWidget *perl_config = NULL;
4044 static char *perl_last_dir = NULL; 4013 static char *perl_last_dir = NULL;
4045 4014
4046 static void cfdes(GtkWidget *m, gpointer n) { 4015 static void cfdes(GtkWidget *m, gpointer n)
4047 if (perl_config) gtk_widget_destroy(perl_config); 4016 {
4017 if (perl_config)
4018 gtk_widget_destroy(perl_config);
4048 perl_config = NULL; 4019 perl_config = NULL;
4049 } 4020 }
4050 4021
4051 static void do_load(GtkWidget *m, gpointer n) { 4022 static void do_load(GtkWidget *m, gpointer n)
4023 {
4052 const char *file = gtk_file_selection_get_filename(GTK_FILE_SELECTION(perl_config)); 4024 const char *file = gtk_file_selection_get_filename(GTK_FILE_SELECTION(perl_config));
4053 gchar *f = NULL; 4025 gchar *f = NULL;
4054 if (!file || !strlen(file)) { 4026 if (!file || !strlen(file)) {
4055 return; 4027 return;
4056 } 4028 }
4057 4029
4058 if (file_is_dir(file, perl_config)) { 4030 if (file_is_dir(file, perl_config)) {
4059 return; 4031 return;
4060 } 4032 }
4061 4033
4062 if (perl_last_dir) { 4034 if (perl_last_dir) {
4063 g_free(perl_last_dir); 4035 g_free(perl_last_dir);
4064 } 4036 }
4065 perl_last_dir = g_dirname(file); 4037 perl_last_dir = g_dirname(file);
4066 4038
4067 debug_printf("Loading perl script: %s\n", file); 4039 debug_printf("Loading perl script: %s\n", file);
4068 4040
4069 f = g_strdup(file); 4041 f = g_strdup(file);
4070 perl_load_file(f); 4042 perl_load_file(f);
4071 g_free(f); 4043 g_free(f);
4072 cfdes(perl_config, NULL); 4044 cfdes(perl_config, NULL);
4073 } 4045 }
4094 } else { 4066 } else {
4095 buf = g_strconcat(perl_last_dir, G_DIR_SEPARATOR_S, NULL); 4067 buf = g_strconcat(perl_last_dir, G_DIR_SEPARATOR_S, NULL);
4096 } 4068 }
4097 4069
4098 gtk_file_selection_set_filename(GTK_FILE_SELECTION(perl_config), buf); 4070 gtk_file_selection_set_filename(GTK_FILE_SELECTION(perl_config), buf);
4099 gtk_file_selection_complete(GTK_FILE_SELECTION(perl_config), "*.pl"); 4071 gtk_file_selection_complete(GTK_FILE_SELECTION(perl_config), "*.pl");
4100 gtk_signal_connect(GTK_OBJECT(perl_config), "destroy", GTK_SIGNAL_FUNC(cfdes), 4072 gtk_signal_connect(GTK_OBJECT(perl_config), "destroy", GTK_SIGNAL_FUNC(cfdes), perl_config);
4101 perl_config);
4102 4073
4103 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(perl_config)->ok_button), 4074 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(perl_config)->ok_button),
4104 "clicked", GTK_SIGNAL_FUNC(do_load), NULL); 4075 "clicked", GTK_SIGNAL_FUNC(do_load), NULL);
4105 4076
4106 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(perl_config)->cancel_button), 4077 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(perl_config)->cancel_button),
4107 "clicked", GTK_SIGNAL_FUNC(cfdes), NULL); 4078 "clicked", GTK_SIGNAL_FUNC(cfdes), NULL);
4108 4079
4109 g_free(buf); 4080 g_free(buf);
4110 gtk_widget_show(perl_config); 4081 gtk_widget_show(perl_config);
4111 gdk_window_raise(perl_config->window); 4082 gdk_window_raise(perl_config->window);
4112 } 4083 }