| 677:9bbc9387ba61 | 678:6e2cb341573a |
|---|---|
| 57 | 57 |
| 58 static GtkWidget *prefdialog = NULL; | 58 static GtkWidget *prefdialog = NULL; |
| 59 static GtkWidget *debugbutton = NULL; | 59 static GtkWidget *debugbutton = NULL; |
| 60 GtkWidget *prefs_away_list = NULL; | 60 GtkWidget *prefs_away_list = NULL; |
| 61 | 61 |
| 62 static void destdeb(GtkWidget *m, gpointer n) | |
| 63 { | |
| 64 gtk_widget_destroy(debugbutton); | |
| 65 debugbutton = NULL; | |
| 66 } | |
| 67 | |
| 62 static void general_page() | 68 static void general_page() |
| 63 { | 69 { |
| 64 GtkWidget *parent; | 70 GtkWidget *parent; |
| 65 GtkWidget *box; | 71 GtkWidget *box; |
| 66 GtkWidget *label; | 72 GtkWidget *label; |
| 67 GtkWidget *sep; | 73 GtkWidget *sep; |
| 68 GtkWidget *idle; | 74 GtkWidget *idle; |
| 69 | 75 |
| 70 parent = prefdialog->parent; | 76 parent = prefdialog->parent; |
| 71 gtk_widget_destroy(prefdialog); | 77 gtk_widget_destroy(prefdialog); |
| 72 debugbutton = NULL; | |
| 73 prefs_away_list = NULL; | |
| 74 | 78 |
| 75 prefdialog = gtk_frame_new(_("General Options")); | 79 prefdialog = gtk_frame_new(_("General Options")); |
| 76 gtk_container_add(GTK_CONTAINER(parent), prefdialog); | 80 gtk_container_add(GTK_CONTAINER(parent), prefdialog); |
| 77 | 81 |
| 78 box = gtk_vbox_new(FALSE, 5); | 82 box = gtk_vbox_new(FALSE, 5); |
| 94 gaim_button(_("Show Buddy Ticker after restart"), &display_options, OPT_DISP_SHOW_BUDDYTICKER, box); | 98 gaim_button(_("Show Buddy Ticker after restart"), &display_options, OPT_DISP_SHOW_BUDDYTICKER, box); |
| 95 if (!dw && (general_options & OPT_GEN_DEBUG)) | 99 if (!dw && (general_options & OPT_GEN_DEBUG)) |
| 96 general_options = general_options ^ OPT_GEN_DEBUG; | 100 general_options = general_options ^ OPT_GEN_DEBUG; |
| 97 debugbutton = gaim_button(_("Show Debug Window"), &general_options, OPT_GEN_DEBUG, box); | 101 debugbutton = gaim_button(_("Show Debug Window"), &general_options, OPT_GEN_DEBUG, box); |
| 98 gtk_signal_connect_object(GTK_OBJECT(debugbutton), "clicked", GTK_SIGNAL_FUNC(show_debug), 0); | 102 gtk_signal_connect_object(GTK_OBJECT(debugbutton), "clicked", GTK_SIGNAL_FUNC(show_debug), 0); |
| 103 gtk_signal_connect(GTK_OBJECT(debugbutton), "destroy", GTK_SIGNAL_FUNC(destdeb), 0); | |
| 99 | 104 |
| 100 sep = gtk_hseparator_new(); | 105 sep = gtk_hseparator_new(); |
| 101 gtk_box_pack_start(GTK_BOX(box), sep, FALSE, FALSE, 5); | 106 gtk_box_pack_start(GTK_BOX(box), sep, FALSE, FALSE, 5); |
| 102 gtk_widget_show(sep); | 107 gtk_widget_show(sep); |
| 103 | 108 |
| 179 GtkWidget *opt; | 184 GtkWidget *opt; |
| 180 char buffer[1024]; | 185 char buffer[1024]; |
| 181 | 186 |
| 182 parent = prefdialog->parent; | 187 parent = prefdialog->parent; |
| 183 gtk_widget_destroy(prefdialog); | 188 gtk_widget_destroy(prefdialog); |
| 184 debugbutton = NULL; | |
| 185 prefs_away_list = NULL; | |
| 186 | 189 |
| 187 prefdialog = gtk_frame_new(_("Connection Options")); | 190 prefdialog = gtk_frame_new(_("Connection Options")); |
| 188 gtk_container_add(GTK_CONTAINER(parent), prefdialog); | 191 gtk_container_add(GTK_CONTAINER(parent), prefdialog); |
| 189 gtk_signal_connect(GTK_OBJECT(prefdialog), "destroy", GTK_SIGNAL_FUNC(connect_destroy), 0); | 192 gtk_signal_connect(GTK_OBJECT(prefdialog), "destroy", GTK_SIGNAL_FUNC(connect_destroy), 0); |
| 190 | 193 |
| 307 GtkWidget *box; | 310 GtkWidget *box; |
| 308 GtkWidget *label; | 311 GtkWidget *label; |
| 309 | 312 |
| 310 parent = prefdialog->parent; | 313 parent = prefdialog->parent; |
| 311 gtk_widget_destroy(prefdialog); | 314 gtk_widget_destroy(prefdialog); |
| 312 debugbutton = NULL; | |
| 313 prefs_away_list = NULL; | |
| 314 | 315 |
| 315 prefdialog = gtk_frame_new(_("Buddy List Options")); | 316 prefdialog = gtk_frame_new(_("Buddy List Options")); |
| 316 gtk_container_add(GTK_CONTAINER(parent), prefdialog); | 317 gtk_container_add(GTK_CONTAINER(parent), prefdialog); |
| 317 | 318 |
| 318 box = gtk_vbox_new(FALSE, 5); | 319 box = gtk_vbox_new(FALSE, 5); |
| 330 gaim_button(_("Use Daemon pictures"), &display_options, OPT_DISP_DEVIL_PIXMAPS, box); | 331 gaim_button(_("Use Daemon pictures"), &display_options, OPT_DISP_DEVIL_PIXMAPS, box); |
| 331 | 332 |
| 332 gtk_widget_show(prefdialog); | 333 gtk_widget_show(prefdialog); |
| 333 } | 334 } |
| 334 | 335 |
| 335 static void convo_page() | 336 static GtkWidget *permtree = NULL; |
| 337 | |
| 338 void build_permit_tree() | |
| 339 { | |
| 340 GtkWidget *ti; | |
| 341 GtkWidget *sub; | |
| 342 GList *plist = permit; | |
| 343 GList *dlist = deny; | |
| 344 | |
| 345 if (!permtree) return; | |
| 346 | |
| 347 gtk_tree_clear_items(GTK_TREE(permtree), 0, -1); | |
| 348 | |
| 349 ti = gtk_tree_item_new_with_label(_("Permit")); | |
| 350 sub = gtk_tree_new(); | |
| 351 gtk_widget_show(ti); | |
| 352 gtk_widget_show(sub); | |
| 353 gtk_tree_prepend(GTK_TREE(permtree), ti); | |
| 354 gtk_tree_item_set_subtree(GTK_TREE_ITEM(ti), sub); | |
| 355 gtk_tree_item_expand(GTK_TREE_ITEM(ti)); | |
| 356 | |
| 357 while(plist) { | |
| 358 ti = gtk_tree_item_new_with_label((char *)plist->data); | |
| 359 gtk_widget_show(ti); | |
| 360 gtk_tree_prepend(GTK_TREE(sub), ti); | |
| 361 plist = plist->next; | |
| 362 } | |
| 363 | |
| 364 | |
| 365 ti = gtk_tree_item_new_with_label(_("Deny")); | |
| 366 sub = gtk_tree_new(); | |
| 367 gtk_widget_show(ti); | |
| 368 gtk_widget_show(sub); | |
| 369 gtk_tree_prepend(GTK_TREE(permtree), ti); | |
| 370 gtk_tree_item_set_subtree(GTK_TREE_ITEM(ti), sub); | |
| 371 gtk_tree_item_expand(GTK_TREE_ITEM(ti)); | |
| 372 | |
| 373 while(dlist) { | |
| 374 ti = gtk_tree_item_new_with_label((char *)dlist->data); | |
| 375 gtk_widget_show(ti); | |
| 376 gtk_tree_prepend(GTK_TREE(sub), ti); | |
| 377 dlist = dlist->next; | |
| 378 } | |
| 379 } | |
| 380 | |
| 381 static void do_del_perm(GtkWidget *w, GtkTree *ptree) | |
| 382 { | |
| 383 GtkLabel *label, *plabel; | |
| 384 GtkWidget *item, *pitem; | |
| 385 char *c, *d; | |
| 386 GList *i; | |
| 387 | |
| 388 GList *plist; | |
| 389 GList *dlist; | |
| 390 int level; | |
| 391 | |
| 392 plist = permit; | |
| 393 dlist = deny; | |
| 394 | |
| 395 i = GTK_TREE_SELECTION(ptree); | |
| 396 if (i) { | |
| 397 item = GTK_WIDGET(i->data); | |
| 398 gtk_tree_unselect_child(GTK_TREE(ptree), item); | |
| 399 label = GTK_LABEL(GTK_BIN(item)->child); | |
| 400 gtk_label_get(label, &c); | |
| 401 level = GTK_TREE(item->parent)->level; | |
| 402 if (level > 0) { | |
| 403 pitem = GTK_WIDGET(GTK_TREE(item->parent)->tree_owner); | |
| 404 plabel = GTK_LABEL(GTK_BIN(pitem)->child); | |
| 405 gtk_label_get(plabel, &d); | |
| 406 if (!strcasecmp(d, _("Permit"))) { | |
| 407 while(plist) { | |
| 408 if (!strcasecmp((char *)(plist->data), c)) { | |
| 409 permit = g_list_remove(permit, plist->data); | |
| 410 break; | |
| 411 } | |
| 412 | |
| 413 plist = plist->next; | |
| 414 } | |
| 415 | |
| 416 } else { | |
| 417 while(dlist) { | |
| 418 if (!strcasecmp((char *)(dlist->data), c)) { | |
| 419 deny = g_list_remove(deny, dlist->data); | |
| 420 | |
| 421 break; | |
| 422 } | |
| 423 dlist = dlist->next; | |
| 424 } | |
| 425 | |
| 426 } | |
| 427 | |
| 428 | |
| 429 } else { | |
| 430 /* Can't delete groups here! :) */ | |
| 431 return; | |
| 432 } | |
| 433 serv_set_permit_deny(); | |
| 434 gtk_tree_clear_items(GTK_TREE(ptree), 0, -1); | |
| 435 build_permit_tree(); | |
| 436 serv_save_config(); | |
| 437 } | |
| 438 } | |
| 439 | |
| 440 | |
| 441 static void set_permit(GtkWidget *w, int *data) | |
| 442 { | |
| 443 permdeny = (int)data; | |
| 444 if (blist) { | |
| 445 /* We don't save this 'at home', it's on the server. | |
| 446 * So, we gotta resend the config to the server. */ | |
| 447 serv_save_config(); | |
| 448 /* we do this here because we can :) */ | |
| 449 serv_set_permit_deny(); | |
| 450 } | |
| 451 } | |
| 452 | |
| 453 static GtkWidget *deny_radio(char *label, int which, GtkWidget *box, GtkWidget *set) | |
| 454 { | |
| 455 GtkWidget *opt; | |
| 456 | |
| 457 if (!set) | |
| 458 opt = gtk_radio_button_new_with_label(NULL, label); | |
| 459 else | |
| 460 opt = gtk_radio_button_new_with_label(gtk_radio_button_group(GTK_RADIO_BUTTON(set)), label); | |
| 461 gtk_box_pack_start(GTK_BOX(box), opt, FALSE, FALSE, 0); | |
| 462 gtk_signal_connect(GTK_OBJECT(opt), "clicked", GTK_SIGNAL_FUNC(set_permit), (void *)which); | |
| 463 gtk_widget_show(opt); | |
| 464 if (permdeny == which) | |
| 465 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE); | |
| 466 | |
| 467 return opt; | |
| 468 } | |
| 469 | |
| 470 static void permdest(GtkWidget *m, gpointer n) | |
| 471 { | |
| 472 gtk_widget_destroy(permtree); | |
| 473 permtree = NULL; | |
| 474 } | |
| 475 | |
| 476 static void add_perm_callback(GtkWidget *widget, void *dummy) | |
| 477 { | |
| 478 if (!blist) | |
| 479 do_error_dialog(_("Please sign on before editing the permit/deny lists."), | |
| 480 _("Please sign on")); | |
| 481 else | |
| 482 show_add_perm(NULL); | |
| 483 } | |
| 484 | |
| 485 static void deny_page() | |
| 336 { | 486 { |
| 337 GtkWidget *parent; | 487 GtkWidget *parent; |
| 338 GtkWidget *box; | 488 GtkWidget *box; |
| 339 GtkWidget *label; | 489 GtkWidget *label; |
| 340 GtkWidget *sep; | 490 GtkWidget *sep; |
| 491 GtkWidget *hbox; | |
| 492 GtkWidget *vbox; | |
| 493 GtkWidget *xbox; | |
| 494 GtkWidget *opt; | |
| 495 GtkWidget *button; | |
| 341 | 496 |
| 342 parent = prefdialog->parent; | 497 parent = prefdialog->parent; |
| 343 gtk_widget_destroy(prefdialog); | 498 gtk_widget_destroy(prefdialog); |
| 344 debugbutton = NULL; | 499 |
| 345 prefs_away_list = NULL; | 500 prefdialog = gtk_frame_new(_("Permit/Deny List Options")); |
| 501 gtk_container_add(GTK_CONTAINER(parent), prefdialog); | |
| 502 | |
| 503 box = gtk_vbox_new(FALSE, 5); | |
| 504 gtk_container_add(GTK_CONTAINER(prefdialog), box); | |
| 505 gtk_widget_show(box); | |
| 506 | |
| 507 label = gtk_label_new(_("All options take effect immediately unless otherwise noted.")); | |
| 508 gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 5); | |
| 509 gtk_widget_show(label); | |
| 510 | |
| 511 sep = gtk_hseparator_new(); | |
| 512 gtk_box_pack_start(GTK_BOX(box), sep, FALSE, FALSE, 5); | |
| 513 gtk_widget_show(sep); | |
| 514 | |
| 515 label = gtk_label_new(_("The permit/deny configuration will change between users,\n" | |
| 516 "and changes while you are signed off will not be saved.")); | |
| 517 gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 5); | |
| 518 gtk_widget_show(label); | |
| 519 | |
| 520 hbox = gtk_hbox_new(FALSE, 0); | |
| 521 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 5); | |
| 522 gtk_widget_show(hbox); | |
| 523 | |
| 524 vbox = gtk_vbox_new(FALSE, 0); | |
| 525 gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 5); | |
| 526 gtk_widget_show(vbox); | |
| 527 | |
| 528 opt = deny_radio(_("Allow Anyone"), PERMIT_ALL, vbox, NULL); | |
| 529 #if 0 | |
| 530 /* This doesn't work because TOC doesn't have a PERMIT_BUDDY setting | |
| 531 * and merging the two would be very difficult at best, most likely | |
| 532 * impossible. If we can guarantee only Oscar than this is easy */ | |
| 533 opt = deny_radio(_("Allow only users on Buddy List"), PERMIT_BUDDY, vbox, opt); | |
| 534 #endif | |
| 535 opt = deny_radio(_("Allow only the users in \"Permit\""), PERMIT_SOME, vbox, opt); | |
| 536 | |
| 537 vbox = gtk_vbox_new(FALSE, 0); | |
| 538 gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 5); | |
| 539 gtk_widget_show(vbox); | |
| 540 | |
| 541 opt = deny_radio(_("Block all users"), PERMIT_NONE, vbox, opt); | |
| 542 opt = deny_radio(_("Block the users in \"Deny\""), DENY_SOME, vbox, opt); | |
| 543 | |
| 544 xbox = gtk_scrolled_window_new(NULL, NULL); | |
| 545 gtk_box_pack_start(GTK_BOX(box), xbox, TRUE, TRUE, 5); | |
| 546 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(xbox), | |
| 547 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | |
| 548 gtk_widget_show(xbox); | |
| 549 | |
| 550 permtree = gtk_tree_new(); | |
| 551 build_permit_tree(); | |
| 552 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(xbox), permtree); | |
| 553 gtk_signal_connect(GTK_OBJECT(permtree), "destroy", GTK_SIGNAL_FUNC(permdest), 0); | |
| 554 gtk_widget_show(permtree); | |
| 555 | |
| 556 hbox = gtk_hbox_new(TRUE, 10); | |
| 557 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 5); | |
| 558 gtk_widget_show(hbox); | |
| 559 | |
| 560 button = picture_button(prefs, _("Add"), gnome_add_xpm); | |
| 561 gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 10); | |
| 562 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(add_perm_callback), NULL); | |
| 563 | |
| 564 button = picture_button(prefs, _("Remove"), gnome_remove_xpm); | |
| 565 gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 10); | |
| 566 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(do_del_perm), permtree); | |
| 567 | |
| 568 gtk_widget_show(prefdialog); | |
| 569 } | |
| 570 | |
| 571 static void convo_page() | |
| 572 { | |
| 573 GtkWidget *parent; | |
| 574 GtkWidget *box; | |
| 575 GtkWidget *label; | |
| 576 GtkWidget *sep; | |
| 577 | |
| 578 parent = prefdialog->parent; | |
| 579 gtk_widget_destroy(prefdialog); | |
| 346 | 580 |
| 347 prefdialog = gtk_frame_new(_("Conversation Window Options")); | 581 prefdialog = gtk_frame_new(_("Conversation Window Options")); |
| 348 gtk_container_add(GTK_CONTAINER(parent), prefdialog); | 582 gtk_container_add(GTK_CONTAINER(parent), prefdialog); |
| 349 | 583 |
| 350 box = gtk_vbox_new(FALSE, 5); | 584 box = gtk_vbox_new(FALSE, 5); |
| 384 GtkWidget *box; | 618 GtkWidget *box; |
| 385 GtkWidget *label; | 619 GtkWidget *label; |
| 386 | 620 |
| 387 parent = prefdialog->parent; | 621 parent = prefdialog->parent; |
| 388 gtk_widget_destroy(prefdialog); | 622 gtk_widget_destroy(prefdialog); |
| 389 debugbutton = NULL; | |
| 390 prefs_away_list = NULL; | |
| 391 | 623 |
| 392 prefdialog = gtk_frame_new(_("IM Options")); | 624 prefdialog = gtk_frame_new(_("IM Options")); |
| 393 gtk_container_add(GTK_CONTAINER(parent), prefdialog); | 625 gtk_container_add(GTK_CONTAINER(parent), prefdialog); |
| 394 | 626 |
| 395 box = gtk_vbox_new(FALSE, 5); | 627 box = gtk_vbox_new(FALSE, 5); |
| 413 GtkWidget *box; | 645 GtkWidget *box; |
| 414 GtkWidget *label; | 646 GtkWidget *label; |
| 415 | 647 |
| 416 parent = prefdialog->parent; | 648 parent = prefdialog->parent; |
| 417 gtk_widget_destroy(prefdialog); | 649 gtk_widget_destroy(prefdialog); |
| 418 debugbutton = NULL; | |
| 419 prefs_away_list = NULL; | |
| 420 | 650 |
| 421 prefdialog = gtk_frame_new(_("Chat Options")); | 651 prefdialog = gtk_frame_new(_("Chat Options")); |
| 422 gtk_container_add(GTK_CONTAINER(parent), prefdialog); | 652 gtk_container_add(GTK_CONTAINER(parent), prefdialog); |
| 423 | 653 |
| 424 box = gtk_vbox_new(FALSE, 5); | 654 box = gtk_vbox_new(FALSE, 5); |
| 601 g_free(cp); | 831 g_free(cp); |
| 602 cp = g_new0(struct chat_page, 1); | 832 cp = g_new0(struct chat_page, 1); |
| 603 | 833 |
| 604 parent = prefdialog->parent; | 834 parent = prefdialog->parent; |
| 605 gtk_widget_destroy(prefdialog); | 835 gtk_widget_destroy(prefdialog); |
| 606 debugbutton = NULL; | |
| 607 prefs_away_list = NULL; | |
| 608 | 836 |
| 609 prefdialog = gtk_frame_new(_("Chat Options")); | 837 prefdialog = gtk_frame_new(_("Chat Options")); |
| 610 gtk_container_add(GTK_CONTAINER(parent), prefdialog); | 838 gtk_container_add(GTK_CONTAINER(parent), prefdialog); |
| 611 | 839 |
| 612 box = gtk_vbox_new(FALSE, 5); | 840 box = gtk_vbox_new(FALSE, 5); |
| 711 GtkWidget *button; | 939 GtkWidget *button; |
| 712 GtkWidget *select; | 940 GtkWidget *select; |
| 713 | 941 |
| 714 parent = prefdialog->parent; | 942 parent = prefdialog->parent; |
| 715 gtk_widget_destroy(prefdialog); | 943 gtk_widget_destroy(prefdialog); |
| 716 debugbutton = NULL; | |
| 717 prefs_away_list = NULL; | |
| 718 | 944 |
| 719 prefdialog = gtk_frame_new(_("Font Options")); | 945 prefdialog = gtk_frame_new(_("Font Options")); |
| 720 gtk_container_add(GTK_CONTAINER(parent), prefdialog); | 946 gtk_container_add(GTK_CONTAINER(parent), prefdialog); |
| 721 | 947 |
| 722 box = gtk_vbox_new(FALSE, 5); | 948 box = gtk_vbox_new(FALSE, 5); |
| 794 GtkWidget *box; | 1020 GtkWidget *box; |
| 795 GtkWidget *label; | 1021 GtkWidget *label; |
| 796 | 1022 |
| 797 parent = prefdialog->parent; | 1023 parent = prefdialog->parent; |
| 798 gtk_widget_destroy(prefdialog); | 1024 gtk_widget_destroy(prefdialog); |
| 799 debugbutton = NULL; | |
| 800 prefs_away_list = NULL; | |
| 801 | 1025 |
| 802 prefdialog = gtk_frame_new(_("Sound Options")); | 1026 prefdialog = gtk_frame_new(_("Sound Options")); |
| 803 gtk_container_add(GTK_CONTAINER(parent), prefdialog); | 1027 gtk_container_add(GTK_CONTAINER(parent), prefdialog); |
| 804 | 1028 |
| 805 box = gtk_vbox_new(FALSE, 5); | 1029 box = gtk_vbox_new(FALSE, 5); |
| 826 GtkWidget *label; | 1050 GtkWidget *label; |
| 827 GtkWidget *sep; | 1051 GtkWidget *sep; |
| 828 | 1052 |
| 829 parent = prefdialog->parent; | 1053 parent = prefdialog->parent; |
| 830 gtk_widget_destroy(prefdialog); | 1054 gtk_widget_destroy(prefdialog); |
| 831 debugbutton = NULL; | |
| 832 prefs_away_list = NULL; | |
| 833 | 1055 |
| 834 prefdialog = gtk_frame_new(_("Sound Events")); | 1056 prefdialog = gtk_frame_new(_("Sound Events")); |
| 835 gtk_container_add(GTK_CONTAINER(parent), prefdialog); | 1057 gtk_container_add(GTK_CONTAINER(parent), prefdialog); |
| 836 | 1058 |
| 837 box = gtk_vbox_new(FALSE, 5); | 1059 box = gtk_vbox_new(FALSE, 5); |
| 898 i = GTK_LIST(prefs_away_list)->selection; | 1120 i = GTK_LIST(prefs_away_list)->selection; |
| 899 | 1121 |
| 900 a = gtk_object_get_user_data(GTK_OBJECT(i->data)); | 1122 a = gtk_object_get_user_data(GTK_OBJECT(i->data)); |
| 901 | 1123 |
| 902 rem_away_mess(NULL, a); | 1124 rem_away_mess(NULL, a); |
| 1125 } | |
| 1126 | |
| 1127 static void paldest(GtkWidget *m, gpointer n) | |
| 1128 { | |
| 1129 gtk_widget_destroy(prefs_away_list); | |
| 1130 prefs_away_list = NULL; | |
| 903 } | 1131 } |
| 904 | 1132 |
| 905 static void away_page() | 1133 static void away_page() |
| 906 { | 1134 { |
| 907 GtkWidget *parent; | 1135 GtkWidget *parent; |
| 917 struct away_message *a; | 1145 struct away_message *a; |
| 918 char buffer[BUF_LONG]; | 1146 char buffer[BUF_LONG]; |
| 919 | 1147 |
| 920 parent = prefdialog->parent; | 1148 parent = prefdialog->parent; |
| 921 gtk_widget_destroy(prefdialog); | 1149 gtk_widget_destroy(prefdialog); |
| 922 debugbutton = NULL; | |
| 923 prefs_away_list = NULL; | |
| 924 | 1150 |
| 925 prefdialog = gtk_frame_new(_("Away Messages")); | 1151 prefdialog = gtk_frame_new(_("Away Messages")); |
| 926 gtk_container_add(GTK_CONTAINER(parent), prefdialog); | 1152 gtk_container_add(GTK_CONTAINER(parent), prefdialog); |
| 927 | 1153 |
| 928 box = gtk_vbox_new(FALSE, 5); | 1154 box = gtk_vbox_new(FALSE, 5); |
| 939 gtk_box_pack_start(GTK_BOX(top), sw, TRUE, TRUE, 0); | 1165 gtk_box_pack_start(GTK_BOX(top), sw, TRUE, TRUE, 0); |
| 940 gtk_widget_show(sw); | 1166 gtk_widget_show(sw); |
| 941 | 1167 |
| 942 prefs_away_list = gtk_list_new(); | 1168 prefs_away_list = gtk_list_new(); |
| 943 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), prefs_away_list); | 1169 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), prefs_away_list); |
| 1170 gtk_signal_connect(GTK_OBJECT(prefs_away_list), "destroy", GTK_SIGNAL_FUNC(paldest), 0); | |
| 944 gtk_widget_show(prefs_away_list); | 1171 gtk_widget_show(prefs_away_list); |
| 945 | 1172 |
| 946 sw2 = gtk_scrolled_window_new(NULL, NULL); | 1173 sw2 = gtk_scrolled_window_new(NULL, NULL); |
| 947 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw2), | 1174 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw2), |
| 948 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | 1175 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); |
| 1049 GtkWidget *label; | 1276 GtkWidget *label; |
| 1050 GtkWidget *opt; | 1277 GtkWidget *opt; |
| 1051 | 1278 |
| 1052 parent = prefdialog->parent; | 1279 parent = prefdialog->parent; |
| 1053 gtk_widget_destroy(prefdialog); | 1280 gtk_widget_destroy(prefdialog); |
| 1054 debugbutton = NULL; | |
| 1055 prefs_away_list = NULL; | 1281 prefs_away_list = NULL; |
| 1056 | 1282 |
| 1057 prefdialog = gtk_frame_new(_("Browser Options")); | 1283 prefdialog = gtk_frame_new(_("Browser Options")); |
| 1058 gtk_container_add(GTK_CONTAINER(parent), prefdialog); | 1284 gtk_container_add(GTK_CONTAINER(parent), prefdialog); |
| 1059 | 1285 |
| 1342 gtk_ctree_node_set_row_data(GTK_CTREE(preftree), parent, connect_page); | 1568 gtk_ctree_node_set_row_data(GTK_CTREE(preftree), parent, connect_page); |
| 1343 } | 1569 } |
| 1344 | 1570 |
| 1345 void prefs_build_buddy(GtkWidget *preftree) | 1571 void prefs_build_buddy(GtkWidget *preftree) |
| 1346 { | 1572 { |
| 1347 GtkCTreeNode *parent; | 1573 GtkCTreeNode *parent, *node; |
| 1348 char *text[1]; | 1574 char *text[1]; |
| 1349 | 1575 |
| 1350 text[0] = _("Buddy List"); | 1576 text[0] = _("Buddy List"); |
| 1351 parent = gtk_ctree_insert_node(GTK_CTREE(preftree), NULL, NULL, | 1577 parent = gtk_ctree_insert_node(GTK_CTREE(preftree), NULL, NULL, |
| 1352 text, 5, NULL, NULL, NULL, NULL, 0, 1); | 1578 text, 5, NULL, NULL, NULL, NULL, 0, 1); |
| 1353 gtk_ctree_node_set_row_data(GTK_CTREE(preftree), parent, buddy_page); | 1579 gtk_ctree_node_set_row_data(GTK_CTREE(preftree), parent, buddy_page); |
| 1580 | |
| 1581 /* FIXME ! We shouldn't be showing this if we're not signed on */ | |
| 1582 text[0] = _("Permit/Deny"); | |
| 1583 node = gtk_ctree_insert_node(GTK_CTREE(preftree), parent, NULL, | |
| 1584 text, 5, NULL, NULL, NULL, NULL, 0, 1); | |
| 1585 gtk_ctree_node_set_row_data(GTK_CTREE(preftree), node, deny_page); | |
| 1354 } | 1586 } |
| 1355 | 1587 |
| 1356 void prefs_build_convo(GtkWidget *preftree) | 1588 void prefs_build_convo(GtkWidget *preftree) |
| 1357 { | 1589 { |
| 1358 GtkCTreeNode *parent, *node, *node2; | 1590 GtkCTreeNode *parent, *node, *node2; |