comparison src/prefs.c @ 2313:bd9d403fb15b

[gaim-migrate @ 2323] more room committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Thu, 20 Sep 2001 01:23:04 +0000
parents 0dea5214d63f
children 64b4c69c1c5e
comparison
equal deleted inserted replaced
2312:766603034af8 2313:bd9d403fb15b
47 #include "proxy.h" 47 #include "proxy.h"
48 48
49 struct debug_window *dw = NULL; 49 struct debug_window *dw = NULL;
50 static GtkWidget *prefs = NULL; 50 static GtkWidget *prefs = NULL;
51 51
52 static GtkWidget *gaim_button(const char *, int *, int, GtkWidget *); 52 static GtkWidget *gaim_button(const char *, guint *, int, GtkWidget *);
53 static void prefs_build_general(); 53 static void prefs_build_general();
54 static void prefs_build_buddy(); 54 static void prefs_build_buddy();
55 static void prefs_build_convo(); 55 static void prefs_build_convo();
56 static void prefs_build_sound(); 56 static void prefs_build_sound();
57 static void prefs_build_away(); 57 static void prefs_build_away();
58 static void prefs_build_deny(); 58 static void prefs_build_deny();
59 static gint handle_delete(GtkWidget *, GdkEvent *, void *); 59 static gint handle_delete(GtkWidget *, GdkEvent *, void *);
60 static void delete_prefs(GtkWidget *, void *); 60 static void delete_prefs(GtkWidget *, void *);
61 void set_default_away(GtkWidget *, gpointer); 61 void set_default_away(GtkWidget *, gpointer);
62 void set_font_option(GtkWidget *w, int *option); 62 static void set_font_option(GtkWidget *w, int option);
63 63
64 static GtkWidget *sounddialog = NULL; 64 static GtkWidget *sounddialog = NULL;
65 static GtkWidget *prefdialog = NULL; 65 static GtkWidget *prefdialog = NULL;
66 static GtkWidget *debugbutton = NULL; 66 static GtkWidget *debugbutton = NULL;
67 static GtkWidget *tickerbutton = NULL; 67 static GtkWidget *tickerbutton = NULL;
213 213
214 mbox = gtk_vbox_new(TRUE, 5); 214 mbox = gtk_vbox_new(TRUE, 5);
215 gtk_container_add(GTK_CONTAINER(frame), mbox); 215 gtk_container_add(GTK_CONTAINER(frame), mbox);
216 gtk_widget_show(mbox); 216 gtk_widget_show(mbox);
217 217
218 gaim_button(_("Use borderless buttons"), &display_options, 218 gaim_button(_("Use borderless buttons"), &misc_options,
219 OPT_DISP_COOL_LOOK, mbox); 219 OPT_MISC_COOL_LOOK, mbox);
220 220
221 if (!tickerwindow && (display_options & OPT_DISP_SHOW_BUDDYTICKER)) 221 if (!tickerwindow && (misc_options & OPT_MISC_BUDDY_TICKER))
222 display_options = display_options ^ OPT_DISP_SHOW_BUDDYTICKER; 222 misc_options ^= OPT_MISC_BUDDY_TICKER;
223 tickerbutton = gaim_button(_("Show Buddy Ticker"), &display_options, OPT_DISP_SHOW_BUDDYTICKER, mbox); 223 tickerbutton = gaim_button(_("Show Buddy Ticker"), &misc_options, OPT_MISC_BUDDY_TICKER, mbox);
224 gtk_signal_connect_object(GTK_OBJECT(tickerbutton), "clicked", GTK_SIGNAL_FUNC(BuddyTickerShow), 0);
225 gtk_signal_connect(GTK_OBJECT(tickerbutton), "destroy", GTK_SIGNAL_FUNC(desttkr), 0); 224 gtk_signal_connect(GTK_OBJECT(tickerbutton), "destroy", GTK_SIGNAL_FUNC(desttkr), 0);
226 225
227 if (!dw && (general_options & OPT_GEN_DEBUG)) 226 if (!dw && (misc_options & OPT_MISC_DEBUG))
228 general_options = general_options ^ OPT_GEN_DEBUG; 227 misc_options ^= OPT_MISC_DEBUG;
229 debugbutton = gaim_button(_("Show Debug Window"), &general_options, OPT_GEN_DEBUG, mbox); 228 debugbutton = gaim_button(_("Show Debug Window"), &misc_options, OPT_MISC_DEBUG, mbox);
230 gtk_signal_connect_object(GTK_OBJECT(debugbutton), "clicked", GTK_SIGNAL_FUNC(show_debug), 0);
231 gtk_signal_connect(GTK_OBJECT(debugbutton), "destroy", GTK_SIGNAL_FUNC(destdeb), 0); 229 gtk_signal_connect(GTK_OBJECT(debugbutton), "destroy", GTK_SIGNAL_FUNC(destdeb), 0);
232 230
233 frame = gtk_frame_new(_("Report Idle Times")); 231 frame = gtk_frame_new(_("Report Idle Times"));
234 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 5); 232 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 5);
235 gtk_widget_show(frame); 233 gtk_widget_show(frame);
279 277
280 opt = browser_radio(_("KFM"), BROWSER_KFM, vbox, NULL); 278 opt = browser_radio(_("KFM"), BROWSER_KFM, vbox, NULL);
281 opt = browser_radio(_("Netscape"), BROWSER_NETSCAPE, vbox, opt); 279 opt = browser_radio(_("Netscape"), BROWSER_NETSCAPE, vbox, opt);
282 280
283 new_window = 281 new_window =
284 gaim_button(_("Pop up new window by default"), &general_options, OPT_GEN_BROWSER_POPUP, vbox); 282 gaim_button(_("Pop up new window by default"), &misc_options, OPT_MISC_BROWSER_POPUP, vbox);
285 283
286 vbox = gtk_vbox_new(FALSE, 5); 284 vbox = gtk_vbox_new(FALSE, 5);
287 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5); 285 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5);
288 gtk_widget_show(vbox); 286 gtk_widget_show(vbox);
289 287
543 541
544 vbox = gtk_vbox_new(FALSE, 5); 542 vbox = gtk_vbox_new(FALSE, 5);
545 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5); 543 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5);
546 gtk_widget_show(vbox); 544 gtk_widget_show(vbox);
547 545
548 button = gaim_button(_("Hide IM/Info/Chat buttons"), &display_options, OPT_DISP_NO_BUTTONS, vbox); 546 button = gaim_button(_("Hide IM/Info/Chat buttons"), &blist_options, OPT_BLIST_NO_BUTTONS, vbox);
549 #ifdef USE_APPLET 547 #ifdef USE_APPLET
550 gaim_button(_("Automatically show buddy list on sign on"), &general_options, 548 gaim_button(_("Automatically show buddy list on sign on"), &blist_options,
551 OPT_GEN_APP_BUDDY_SHOW, vbox); 549 OPT_BLIST_APP_BUDDY_SHOW, vbox);
552 #endif 550 #endif
553 gaim_button(_("Save Window Size/Position"), &general_options, OPT_GEN_SAVED_WINDOWS, vbox); 551 gaim_button(_("Save Window Size/Position"), &blist_options, OPT_BLIST_SAVED_WINDOWS, vbox);
554 552
555 vbox = gtk_vbox_new(FALSE, 5); 553 vbox = gtk_vbox_new(FALSE, 5);
556 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5); 554 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5);
557 gtk_widget_show(vbox); 555 gtk_widget_show(vbox);
558 556
559 button2 = gaim_button(_("Show pictures on buttons"), &display_options, OPT_DISP_SHOW_BUTTON_XPM, vbox); 557 button2 = gaim_button(_("Show pictures on buttons"), &blist_options, OPT_BLIST_SHOW_BUTTON_XPM, vbox);
560 if (display_options & OPT_DISP_NO_BUTTONS) 558 if (blist_options & OPT_BLIST_NO_BUTTONS)
561 gtk_widget_set_sensitive(button2, FALSE); 559 gtk_widget_set_sensitive(button2, FALSE);
562 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), button2); 560 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), button2);
563 #ifdef USE_APPLET 561 #ifdef USE_APPLET
564 gaim_button(_("Display Buddy List near applet"), &general_options, OPT_GEN_NEAR_APPLET, vbox); 562 gaim_button(_("Display Buddy List near applet"), &blist_options, OPT_BLSIT_NEAR_APPLET, vbox);
565 #endif 563 #endif
566 564
567 frame = gtk_frame_new(_("Group Displays")); 565 frame = gtk_frame_new(_("Group Displays"));
568 gtk_box_pack_start(GTK_BOX(box), frame, FALSE, FALSE, 5); 566 gtk_box_pack_start(GTK_BOX(box), frame, FALSE, FALSE, 5);
569 gtk_widget_show(frame); 567 gtk_widget_show(frame);
574 572
575 vbox = gtk_vbox_new(FALSE, 5); 573 vbox = gtk_vbox_new(FALSE, 5);
576 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5); 574 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5);
577 gtk_widget_show(vbox); 575 gtk_widget_show(vbox);
578 576
579 gaim_button(_("Hide groups with no online buddies"), &display_options, OPT_DISP_NO_MT_GRP, vbox); 577 gaim_button(_("Hide groups with no online buddies"), &blist_options, OPT_BLIST_NO_MT_GRP, vbox);
580 578
581 vbox = gtk_vbox_new(FALSE, 5); 579 vbox = gtk_vbox_new(FALSE, 5);
582 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5); 580 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5);
583 gtk_widget_show(vbox); 581 gtk_widget_show(vbox);
584 582
585 gaim_button(_("Show numbers in groups"), &display_options, OPT_DISP_SHOW_GRPNUM, vbox); 583 gaim_button(_("Show numbers in groups"), &blist_options, OPT_BLIST_SHOW_GRPNUM, vbox);
586 584
587 frame = gtk_frame_new(_("Buddy Displays")); 585 frame = gtk_frame_new(_("Buddy Displays"));
588 gtk_box_pack_start(GTK_BOX(box), frame, FALSE, FALSE, 5); 586 gtk_box_pack_start(GTK_BOX(box), frame, FALSE, FALSE, 5);
589 gtk_widget_show(frame); 587 gtk_widget_show(frame);
590 588
594 592
595 vbox = gtk_vbox_new(FALSE, 5); 593 vbox = gtk_vbox_new(FALSE, 5);
596 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5); 594 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5);
597 gtk_widget_show(vbox); 595 gtk_widget_show(vbox);
598 596
599 gaim_button(_("Show buddy type icons"), &display_options, OPT_DISP_SHOW_PIXMAPS, vbox); 597 gaim_button(_("Show buddy type icons"), &blist_options, OPT_BLIST_SHOW_PIXMAPS, vbox);
600 gaim_button(_("Show warning levels"), &display_options, OPT_DISP_SHOW_WARN, vbox); 598 gaim_button(_("Show warning levels"), &blist_options, OPT_BLIST_SHOW_WARN, vbox);
601 599
602 vbox = gtk_vbox_new(FALSE, 5); 600 vbox = gtk_vbox_new(FALSE, 5);
603 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5); 601 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5);
604 gtk_widget_show(vbox); 602 gtk_widget_show(vbox);
605 603
606 gaim_button(_("Show idle times"), &display_options, OPT_DISP_SHOW_IDLETIME, vbox); 604 gaim_button(_("Show idle times"), &blist_options, OPT_BLIST_SHOW_IDLETIME, vbox);
607 605
608 gtk_widget_show(prefdialog); 606 gtk_widget_show(prefdialog);
609 } 607 }
610 608
611 static void convo_page() 609 static void convo_page()
642 640
643 vbox = gtk_vbox_new(TRUE, 5); 641 vbox = gtk_vbox_new(TRUE, 5);
644 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5); 642 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5);
645 gtk_widget_show(vbox); 643 gtk_widget_show(vbox);
646 644
647 gaim_button(_("Enter sends message"), &general_options, OPT_GEN_ENTER_SENDS, vbox); 645 gaim_button(_("Enter sends message"), &convo_options, OPT_CONVO_ENTER_SENDS, vbox);
648 gaim_button(_("Control-Enter sends message"), &general_options, OPT_GEN_CTL_ENTER, vbox); 646 gaim_button(_("Control-Enter sends message"), &convo_options, OPT_CONVO_CTL_ENTER, vbox);
649 gaim_button(_("Escape closes window"), &general_options, OPT_GEN_ESC_CAN_CLOSE, vbox); 647 gaim_button(_("Escape closes window"), &convo_options, OPT_CONVO_ESC_CAN_CLOSE, vbox);
650 648
651 vbox = gtk_vbox_new(TRUE, 5); 649 vbox = gtk_vbox_new(TRUE, 5);
652 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5); 650 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5);
653 gtk_widget_show(vbox); 651 gtk_widget_show(vbox);
654 652
655 gaim_button(_("Control-{B/I/U/S} inserts HTML tags"), &general_options, OPT_GEN_CTL_CHARS, vbox); 653 gaim_button(_("Control-{B/I/U/S} inserts HTML tags"), &convo_options, OPT_CONVO_CTL_CHARS, vbox);
656 gaim_button(_("Control-(number) inserts smileys"), &general_options, OPT_GEN_CTL_SMILEYS, vbox); 654 gaim_button(_("Control-(number) inserts smileys"), &convo_options, OPT_CONVO_CTL_SMILEYS, vbox);
657 gaim_button(_("F2 toggles timestamp display"), &general_options, OPT_GEN_F2_TOGGLES, vbox); 655 gaim_button(_("F2 toggles timestamp display"), &convo_options, OPT_CONVO_F2_TOGGLES, vbox);
658 656
659 frame = gtk_frame_new(_("Display and General Options")); 657 frame = gtk_frame_new(_("Display and General Options"));
660 gtk_box_pack_start(GTK_BOX(box), frame, FALSE, FALSE, 5); 658 gtk_box_pack_start(GTK_BOX(box), frame, FALSE, FALSE, 5);
661 gtk_widget_show(frame); 659 gtk_widget_show(frame);
662 660
666 664
667 vbox = gtk_vbox_new(FALSE, 5); 665 vbox = gtk_vbox_new(FALSE, 5);
668 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5); 666 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5);
669 gtk_widget_show(vbox); 667 gtk_widget_show(vbox);
670 668
671 gaim_button(_("Show graphical smileys"), &display_options, OPT_DISP_SHOW_SMILEY, vbox); 669 gaim_button(_("Show graphical smileys"), &convo_options, OPT_CONVO_SHOW_SMILEY, vbox);
672 gaim_button(_("Show timestamp on messages"), &display_options, OPT_DISP_SHOW_TIME, vbox); 670 gaim_button(_("Show timestamp on messages"), &convo_options, OPT_CONVO_SHOW_TIME, vbox);
673 gaim_button(_("Show URLs as links"), &general_options, OPT_GEN_SEND_LINKS, vbox); 671 gaim_button(_("Show URLs as links"), &convo_options, OPT_CONVO_SEND_LINKS, vbox);
674 gaim_button(_("Highlight misspelled words"), &general_options, OPT_GEN_CHECK_SPELLING, vbox); 672 gaim_button(_("Highlight misspelled words"), &convo_options, OPT_CONVO_CHECK_SPELLING, vbox);
675 gaim_button(_("Sending messages removes away status"), &general_options, OPT_GEN_BACK_ON_IM, vbox); 673 gaim_button(_("Sending messages removes away status"), &away_options, OPT_AWAY_BACK_ON_IM, vbox);
676 gaim_button(_("Queue new messages when away"), &general_options, OPT_GEN_QUEUE_WHEN_AWAY, vbox); 674 gaim_button(_("Queue new messages when away"), &away_options, OPT_AWAY_QUEUE, vbox);
677 675
678 vbox = gtk_vbox_new(FALSE, 5); 676 vbox = gtk_vbox_new(FALSE, 5);
679 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5); 677 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5);
680 gtk_widget_show(vbox); 678 gtk_widget_show(vbox);
681 679
682 gaim_button(_("Ignore colors"), &display_options, OPT_DISP_IGNORE_COLOUR, vbox); 680 gaim_button(_("Ignore colors"), &convo_options, OPT_CONVO_IGNORE_COLOUR, vbox);
683 gaim_button(_("Ignore font faces"), &display_options, OPT_DISP_IGNORE_FONTS, vbox); 681 gaim_button(_("Ignore font faces"), &convo_options, OPT_CONVO_IGNORE_FONTS, vbox);
684 gaim_button(_("Ignore font sizes"), &display_options, OPT_DISP_IGNORE_SIZES, vbox); 682 gaim_button(_("Ignore font sizes"), &convo_options, OPT_CONVO_IGNORE_SIZES, vbox);
685 gaim_button(_("Ignore TiK Automated Messages"), &general_options, OPT_GEN_TIK_HACK, vbox); 683 gaim_button(_("Ignore TiK Automated Messages"), &away_options, OPT_AWAY_TIK_HACK, vbox);
686 gaim_button(_("Ignore new conversations when away"), &general_options, OPT_GEN_DISCARD_WHEN_AWAY, vbox); 684 gaim_button(_("Ignore new conversations when away"), &away_options, OPT_AWAY_DISCARD, vbox);
687 685
688 gtk_widget_show(prefdialog); 686 gtk_widget_show(prefdialog);
689 } 687 }
690 688
691 static void set_buttons_opt(GtkWidget *w, int data) 689 static void set_buttons_opt(GtkWidget *w, int data)
692 { 690 {
693 int mask; 691 int mask;
694 if (data & 0x1) /* set the first bit if we're affecting chat buttons */ 692 if (data & 0x1) { /* set the first bit if we're affecting chat buttons */
695 mask = (OPT_DISP_CHAT_BUTTON_TEXT | OPT_DISP_CHAT_BUTTON_XPM); 693 mask = (OPT_CHAT_BUTTON_TEXT | OPT_CHAT_BUTTON_XPM);
696 else 694 chat_options &= ~(mask);
697 mask = (OPT_DISP_CONV_BUTTON_TEXT | OPT_DISP_CONV_BUTTON_XPM); 695 chat_options |= (data & mask);
698 display_options &= ~(mask);
699 display_options |= (data & mask);
700
701 if (data & 0x1)
702 update_chat_button_pix(); 696 update_chat_button_pix();
703 else 697 } else {
698 mask = (OPT_IM_BUTTON_TEXT | OPT_IM_BUTTON_XPM);
699 im_options &= ~(mask);
700 im_options |= (data & mask);
704 update_im_button_pix(); 701 update_im_button_pix();
702 }
705 703
706 save_prefs(); 704 save_prefs();
707 } 705 }
708 706
709 /* i like everclear */ 707 /* i like everclear */
719 label); 717 label);
720 gtk_box_pack_start(GTK_BOX(box), opt, FALSE, FALSE, 0); 718 gtk_box_pack_start(GTK_BOX(box), opt, FALSE, FALSE, 0);
721 gtk_signal_connect(GTK_OBJECT(opt), "clicked", GTK_SIGNAL_FUNC(set_buttons_opt), (void *)which); 719 gtk_signal_connect(GTK_OBJECT(opt), "clicked", GTK_SIGNAL_FUNC(set_buttons_opt), (void *)which);
722 gtk_widget_show(opt); 720 gtk_widget_show(opt);
723 if (which & 1) { 721 if (which & 1) {
724 if (which == (OPT_DISP_CHAT_BUTTON_TEXT | 1)) { 722 if (which == (OPT_CHAT_BUTTON_TEXT | 1)) {
725 if ( (display_options & OPT_DISP_CHAT_BUTTON_TEXT) && 723 if ( (chat_options & OPT_CHAT_BUTTON_TEXT) &&
726 !(display_options & OPT_DISP_CHAT_BUTTON_XPM)) 724 !(chat_options & OPT_CHAT_BUTTON_XPM))
727 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE); 725 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE);
728 } else if (which == (OPT_DISP_CHAT_BUTTON_XPM | 1)) { 726 } else if (which == (OPT_CHAT_BUTTON_XPM | 1)) {
729 if (!(display_options & OPT_DISP_CHAT_BUTTON_TEXT) && 727 if (!(chat_options & OPT_CHAT_BUTTON_TEXT) &&
730 (display_options & OPT_DISP_CHAT_BUTTON_XPM)) 728 (chat_options & OPT_CHAT_BUTTON_XPM))
731 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE); 729 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE);
732 } else { 730 } else {
733 if (((display_options & OPT_DISP_CHAT_BUTTON_TEXT) && 731 if (((chat_options & OPT_CHAT_BUTTON_TEXT) &&
734 (display_options & OPT_DISP_CHAT_BUTTON_XPM)) || 732 (chat_options & OPT_CHAT_BUTTON_XPM)) ||
735 (!(display_options & OPT_DISP_CHAT_BUTTON_TEXT) && 733 (!(chat_options & OPT_CHAT_BUTTON_TEXT) &&
736 !(display_options & OPT_DISP_CHAT_BUTTON_XPM))) 734 !(chat_options & OPT_CHAT_BUTTON_XPM)))
737 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE); 735 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE);
738 } 736 }
739 } else { 737 } else {
740 if (which == OPT_DISP_CONV_BUTTON_TEXT) { 738 if (which == OPT_IM_BUTTON_TEXT) {
741 if ( (display_options & OPT_DISP_CONV_BUTTON_TEXT) && 739 if ( (im_options & OPT_IM_BUTTON_TEXT) &&
742 !(display_options & OPT_DISP_CONV_BUTTON_XPM)) 740 !(im_options & OPT_IM_BUTTON_XPM))
743 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE); 741 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE);
744 } else if (which == OPT_DISP_CONV_BUTTON_XPM) { 742 } else if (which == OPT_IM_BUTTON_XPM) {
745 if (!(display_options & OPT_DISP_CONV_BUTTON_TEXT) && 743 if (!(im_options & OPT_IM_BUTTON_TEXT) &&
746 (display_options & OPT_DISP_CONV_BUTTON_XPM)) 744 (im_options & OPT_IM_BUTTON_XPM))
747 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE); 745 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE);
748 } else { 746 } else {
749 if (((display_options & OPT_DISP_CONV_BUTTON_TEXT) && 747 if (((im_options & OPT_IM_BUTTON_TEXT) &&
750 (display_options & OPT_DISP_CONV_BUTTON_XPM)) || 748 (im_options & OPT_IM_BUTTON_XPM)) ||
751 (!(display_options & OPT_DISP_CONV_BUTTON_TEXT) && 749 (!(im_options & OPT_IM_BUTTON_TEXT) &&
752 !(display_options & OPT_DISP_CONV_BUTTON_XPM))) 750 !(im_options & OPT_IM_BUTTON_XPM)))
753 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE); 751 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE);
754 } 752 }
755 } 753 }
756 754
757 return opt; 755 return opt;
758 } 756 }
759 757
760 static void set_tab_opt(GtkWidget *w, int data) 758 static void set_tab_opt(GtkWidget *w, int data)
761 { 759 {
762 int mask; 760 int mask;
763 if (data & 0x1) /* set the first bit if we're affecting chat buttons */ 761 if (data & 0x1) { /* set the first bit if we're affecting chat buttons */
764 mask = (OPT_DISP_CHAT_SIDE_TAB | OPT_DISP_CHAT_BR_TAB); 762 mask = (OPT_CHAT_SIDE_TAB | OPT_CHAT_BR_TAB);
765 else 763 chat_options &= ~(mask);
766 mask = (OPT_DISP_CONV_SIDE_TAB | OPT_DISP_CONV_BR_TAB); 764 chat_options |= (data & mask);
767 display_options &= ~(mask);
768 display_options |= (data & mask);
769
770 if (data & 0x1)
771 update_chat_tabs(); 765 update_chat_tabs();
772 else 766 } else {
767 mask = (OPT_IM_SIDE_TAB | OPT_IM_BR_TAB);
768 im_options &= ~(mask);
769 im_options |= (data & mask);
773 update_im_tabs(); 770 update_im_tabs();
771 }
774 772
775 save_prefs(); 773 save_prefs();
776 } 774 }
777 775
778 static GtkWidget *tab_radio(char *label, int which, GtkWidget *box, GtkWidget *set) 776 static GtkWidget *tab_radio(char *label, int which, GtkWidget *box, GtkWidget *set)
787 label); 785 label);
788 gtk_box_pack_start(GTK_BOX(box), opt, FALSE, FALSE, 0); 786 gtk_box_pack_start(GTK_BOX(box), opt, FALSE, FALSE, 0);
789 gtk_signal_connect(GTK_OBJECT(opt), "clicked", GTK_SIGNAL_FUNC(set_tab_opt), (void *)which); 787 gtk_signal_connect(GTK_OBJECT(opt), "clicked", GTK_SIGNAL_FUNC(set_tab_opt), (void *)which);
790 gtk_widget_show(opt); 788 gtk_widget_show(opt);
791 if (which & 1) { 789 if (which & 1) {
792 if ((display_options & (OPT_DISP_CHAT_SIDE_TAB | OPT_DISP_CHAT_BR_TAB)) == (which ^ 1)) 790 if ((chat_options & (OPT_CHAT_SIDE_TAB | OPT_CHAT_BR_TAB)) == (which ^ 1))
793 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE); 791 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE);
794 if (!(display_options & OPT_DISP_ONE_CHAT_WINDOW)) 792 if (!(chat_options & OPT_CHAT_ONE_WINDOW))
795 gtk_widget_set_sensitive(opt, FALSE); 793 gtk_widget_set_sensitive(opt, FALSE);
796 } else { 794 } else {
797 if ((display_options & (OPT_DISP_CONV_SIDE_TAB | OPT_DISP_CONV_BR_TAB)) == which) 795 if ((im_options & (OPT_IM_SIDE_TAB | OPT_IM_BR_TAB)) == which)
798 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE); 796 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE);
799 if (!(display_options & OPT_DISP_ONE_WINDOW)) 797 if (!(im_options & OPT_IM_ONE_WINDOW))
800 gtk_widget_set_sensitive(opt, FALSE); 798 gtk_widget_set_sensitive(opt, FALSE);
801 } 799 }
802 800
803 return opt; 801 return opt;
804 } 802 }
882 880
883 label = gtk_label_new(_("Show buttons as: ")); 881 label = gtk_label_new(_("Show buttons as: "));
884 gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, FALSE, 5); 882 gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, FALSE, 5);
885 gtk_widget_show(label); 883 gtk_widget_show(label);
886 884
887 opt = am_radio(_("Pictures And Text"), OPT_DISP_CONV_BUTTON_TEXT | OPT_DISP_CONV_BUTTON_XPM, vbox2, NULL); 885 opt = am_radio(_("Pictures And Text"), OPT_IM_BUTTON_TEXT | OPT_IM_BUTTON_XPM, vbox2, NULL);
888 opt = am_radio(_("Pictures"), OPT_DISP_CONV_BUTTON_XPM, vbox2, opt); 886 opt = am_radio(_("Pictures"), OPT_IM_BUTTON_XPM, vbox2, opt);
889 opt = am_radio(_("Text"), OPT_DISP_CONV_BUTTON_TEXT, vbox2, opt); 887 opt = am_radio(_("Text"), OPT_IM_BUTTON_TEXT, vbox2, opt);
890 888
891 sep = gtk_vseparator_new(); 889 sep = gtk_vseparator_new();
892 gtk_box_pack_start(GTK_BOX(hbox), sep, FALSE, FALSE, 5); 890 gtk_box_pack_start(GTK_BOX(hbox), sep, FALSE, FALSE, 5);
893 gtk_widget_show(sep); 891 gtk_widget_show(sep);
894 892
895 vbox2 = gtk_vbox_new(TRUE, 5); 893 vbox2 = gtk_vbox_new(TRUE, 5);
896 gtk_box_pack_start(GTK_BOX(hbox), vbox2, TRUE, TRUE, 5); 894 gtk_box_pack_start(GTK_BOX(hbox), vbox2, TRUE, TRUE, 5);
897 gtk_widget_show(vbox2); 895 gtk_widget_show(vbox2);
898 896
899 button = gaim_button(_("Show all conversations in one tabbed window"), &display_options, OPT_DISP_ONE_WINDOW, vbox2); 897 button = gaim_button(_("Show all conversations in one tabbed window"), &im_options, OPT_IM_ONE_WINDOW, vbox2);
900 gaim_button(_("Raise windows on events"), &general_options, OPT_GEN_POPUP_WINDOWS, vbox2); 898 gaim_button(_("Raise windows on events"), &im_options, OPT_IM_POPUP, vbox2);
901 gaim_button(_("Show logins in window"), &display_options, OPT_DISP_SHOW_LOGON, vbox2); 899 gaim_button(_("Show logins in window"), &im_options, OPT_IM_LOGON, vbox2);
902 900
903 frame = gtk_frame_new(_("Window Sizes")); 901 frame = gtk_frame_new(_("Window Sizes"));
904 gtk_box_pack_start(GTK_BOX(box), frame, FALSE, FALSE, 5); 902 gtk_box_pack_start(GTK_BOX(box), frame, FALSE, FALSE, 5);
905 gtk_widget_show(frame); 903 gtk_widget_show(frame);
906 904
932 gtk_box_pack_start(GTK_BOX(hbox2), vbox3, TRUE, TRUE, 5); 930 gtk_box_pack_start(GTK_BOX(hbox2), vbox3, TRUE, TRUE, 5);
933 gtk_widget_show(vbox3); 931 gtk_widget_show(vbox3);
934 932
935 opt = tab_radio(_("Top"), 0, vbox3, NULL); 933 opt = tab_radio(_("Top"), 0, vbox3, NULL);
936 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), opt); 934 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), opt);
937 opt = tab_radio(_("Bottom"), OPT_DISP_CONV_BR_TAB, vbox3, opt); 935 opt = tab_radio(_("Bottom"), OPT_IM_BR_TAB, vbox3, opt);
938 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), opt); 936 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), opt);
939 937
940 vbox3 = gtk_vbox_new(TRUE, 5); 938 vbox3 = gtk_vbox_new(TRUE, 5);
941 gtk_box_pack_start(GTK_BOX(hbox2), vbox3, TRUE, TRUE, 5); 939 gtk_box_pack_start(GTK_BOX(hbox2), vbox3, TRUE, TRUE, 5);
942 gtk_widget_show(vbox3); 940 gtk_widget_show(vbox3);
943 941
944 opt = tab_radio(_("Left"), OPT_DISP_CONV_SIDE_TAB, vbox3, opt); 942 opt = tab_radio(_("Left"), OPT_IM_SIDE_TAB, vbox3, opt);
945 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), opt); 943 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), opt);
946 opt = tab_radio(_("Right"), OPT_DISP_CONV_SIDE_TAB | OPT_DISP_CONV_BR_TAB, vbox3, opt); 944 opt = tab_radio(_("Right"), OPT_IM_SIDE_TAB | OPT_IM_BR_TAB, vbox3, opt);
947 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), opt); 945 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), opt);
948 946
949 gtk_widget_show(prefdialog); 947 gtk_widget_show(prefdialog);
950 } 948 }
951 949
997 995
998 label = gtk_label_new(_("Show buttons as: ")); 996 label = gtk_label_new(_("Show buttons as: "));
999 gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, FALSE, 5); 997 gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, FALSE, 5);
1000 gtk_widget_show(label); 998 gtk_widget_show(label);
1001 999
1002 opt = am_radio(_("Pictures And Text"), OPT_DISP_CHAT_BUTTON_TEXT | OPT_DISP_CHAT_BUTTON_XPM | 1, vbox2, NULL); 1000 opt = am_radio(_("Pictures And Text"), OPT_CHAT_BUTTON_TEXT | OPT_CHAT_BUTTON_XPM | 1, vbox2, NULL);
1003 opt = am_radio(_("Pictures"), OPT_DISP_CHAT_BUTTON_XPM | 1, vbox2, opt); 1001 opt = am_radio(_("Pictures"), OPT_CHAT_BUTTON_XPM | 1, vbox2, opt);
1004 opt = am_radio(_("Text"), OPT_DISP_CHAT_BUTTON_TEXT | 1, vbox2, opt); 1002 opt = am_radio(_("Text"), OPT_CHAT_BUTTON_TEXT | 1, vbox2, opt);
1005 1003
1006 sep = gtk_vseparator_new(); 1004 sep = gtk_vseparator_new();
1007 gtk_box_pack_start(GTK_BOX(hbox), sep, FALSE, FALSE, 5); 1005 gtk_box_pack_start(GTK_BOX(hbox), sep, FALSE, FALSE, 5);
1008 gtk_widget_show(sep); 1006 gtk_widget_show(sep);
1009 1007
1010 vbox2 = gtk_vbox_new(TRUE, 5); 1008 vbox2 = gtk_vbox_new(TRUE, 5);
1011 gtk_box_pack_start(GTK_BOX(hbox), vbox2, TRUE, TRUE, 5); 1009 gtk_box_pack_start(GTK_BOX(hbox), vbox2, TRUE, TRUE, 5);
1012 gtk_widget_show(vbox2); 1010 gtk_widget_show(vbox2);
1013 1011
1014 button = gaim_button(_("Show all chats in one tabbed window"), &display_options, OPT_DISP_ONE_CHAT_WINDOW, vbox2); 1012 button = gaim_button(_("Show all chats in one tabbed window"), &chat_options, OPT_CHAT_ONE_WINDOW, vbox2);
1015 gaim_button(_("Raise windows on events"), &general_options, OPT_GEN_POPUP_CHAT, vbox2); 1013 gaim_button(_("Raise windows on events"), &chat_options, OPT_CHAT_POPUP, vbox2);
1016 gaim_button(_("Show people joining/leaving in window"), &display_options, OPT_DISP_CHAT_LOGON, vbox2); 1014 gaim_button(_("Show people joining/leaving in window"), &chat_options, OPT_CHAT_LOGON, vbox2);
1017 1015
1018 frame = gtk_frame_new(_("Window Sizes")); 1016 frame = gtk_frame_new(_("Window Sizes"));
1019 gtk_box_pack_start(GTK_BOX(box), frame, FALSE, FALSE, 5); 1017 gtk_box_pack_start(GTK_BOX(box), frame, FALSE, FALSE, 5);
1020 gtk_widget_show(frame); 1018 gtk_widget_show(frame);
1021 1019
1047 gtk_box_pack_start(GTK_BOX(hbox2), vbox3, TRUE, TRUE, 5); 1045 gtk_box_pack_start(GTK_BOX(hbox2), vbox3, TRUE, TRUE, 5);
1048 gtk_widget_show(vbox3); 1046 gtk_widget_show(vbox3);
1049 1047
1050 opt = tab_radio(_("Top"), 1, vbox3, NULL); 1048 opt = tab_radio(_("Top"), 1, vbox3, NULL);
1051 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), opt); 1049 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), opt);
1052 opt = tab_radio(_("Bottom"), OPT_DISP_CHAT_BR_TAB | 1, vbox3, opt); 1050 opt = tab_radio(_("Bottom"), OPT_CHAT_BR_TAB | 1, vbox3, opt);
1053 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), opt); 1051 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), opt);
1054 1052
1055 vbox3 = gtk_vbox_new(TRUE, 5); 1053 vbox3 = gtk_vbox_new(TRUE, 5);
1056 gtk_box_pack_start(GTK_BOX(hbox2), vbox3, TRUE, TRUE, 5); 1054 gtk_box_pack_start(GTK_BOX(hbox2), vbox3, TRUE, TRUE, 5);
1057 gtk_widget_show(vbox3); 1055 gtk_widget_show(vbox3);
1058 1056
1059 opt = tab_radio(_("Left"), OPT_DISP_CHAT_SIDE_TAB | 1, vbox3, opt); 1057 opt = tab_radio(_("Left"), OPT_CHAT_SIDE_TAB | 1, vbox3, opt);
1060 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), opt); 1058 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), opt);
1061 opt = tab_radio(_("Right"), OPT_DISP_CHAT_SIDE_TAB | OPT_DISP_CHAT_BR_TAB | 1, vbox3, opt); 1059 opt = tab_radio(_("Right"), OPT_CHAT_SIDE_TAB | OPT_CHAT_BR_TAB | 1, vbox3, opt);
1062 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), opt); 1060 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), opt);
1063 1061
1064 gtk_widget_show(prefdialog); 1062 gtk_widget_show(prefdialog);
1065 } 1063 }
1066 1064
1675 1673
1676 vbox2 = gtk_vbox_new(FALSE, 5); 1674 vbox2 = gtk_vbox_new(FALSE, 5);
1677 gtk_box_pack_start(GTK_BOX(hbox), vbox2, TRUE, TRUE, 5); 1675 gtk_box_pack_start(GTK_BOX(hbox), vbox2, TRUE, TRUE, 5);
1678 gtk_widget_show(vbox2); 1676 gtk_widget_show(vbox2);
1679 1677
1680 gaim_button(_("Ignore new conversations when away"), &general_options, OPT_GEN_DISCARD_WHEN_AWAY, vbox2); 1678 gaim_button(_("Ignore new conversations when away"), &away_options, OPT_AWAY_DISCARD, vbox2);
1681 gaim_button(_("Sounds while away"), &sound_options, OPT_SOUND_WHEN_AWAY, vbox2); 1679 gaim_button(_("Sounds while away"), &sound_options, OPT_SOUND_WHEN_AWAY, vbox2);
1682 gaim_button(_("Sending messages removes away status"), &general_options, OPT_GEN_BACK_ON_IM, vbox2); 1680 gaim_button(_("Sending messages removes away status"), &away_options, OPT_AWAY_BACK_ON_IM, vbox2);
1683 1681
1684 vbox2 = gtk_vbox_new(FALSE, 5); 1682 vbox2 = gtk_vbox_new(FALSE, 5);
1685 gtk_box_pack_start(GTK_BOX(hbox), vbox2, TRUE, TRUE, 5); 1683 gtk_box_pack_start(GTK_BOX(hbox), vbox2, TRUE, TRUE, 5);
1686 gtk_widget_show(vbox2); 1684 gtk_widget_show(vbox2);
1687 1685
1688 gaim_button(_("Don't send auto-response"), &general_options, OPT_GEN_NO_AUTO_RESP, vbox2); 1686 gaim_button(_("Don't send auto-response"), &away_options, OPT_AWAY_NO_AUTO_RESP, vbox2);
1689 gaim_button(_("Queue new messages when away"), &general_options, OPT_GEN_QUEUE_WHEN_AWAY, vbox2); 1687 gaim_button(_("Queue new messages when away"), &away_options, OPT_AWAY_QUEUE, vbox2);
1690 1688
1691 sep = gtk_hseparator_new(); 1689 sep = gtk_hseparator_new();
1692 gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0); 1690 gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0);
1693 gtk_widget_show(sep); 1691 gtk_widget_show(sep);
1694 1692
1695 hbox = gtk_hbox_new(FALSE, 5); 1693 hbox = gtk_hbox_new(FALSE, 5);
1696 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); 1694 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
1697 gtk_widget_show(hbox); 1695 gtk_widget_show(hbox);
1698 1696
1699 button = gaim_button(_("Auto Away after"), &general_options, OPT_GEN_AUTO_AWAY, hbox); 1697 button = gaim_button(_("Auto Away after"), &away_options, OPT_AWAY_AUTO, hbox);
1700 1698
1701 adjust = gtk_adjustment_new(auto_away, 1, 1440, 1, 10, 10); 1699 adjust = gtk_adjustment_new(auto_away, 1, 1440, 1, 10, 10);
1702 spin = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0); 1700 spin = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0);
1703 gtk_widget_set_usize(spin, 50, -1); 1701 gtk_widget_set_usize(spin, 50, -1);
1704 gtk_object_set_user_data(GTK_OBJECT(spin), &auto_away); 1702 gtk_object_set_user_data(GTK_OBJECT(spin), &auto_away);
1705 if (!(general_options & OPT_GEN_AUTO_AWAY)) 1703 if (!(away_options & OPT_AWAY_AUTO))
1706 gtk_widget_set_sensitive(GTK_WIDGET(spin), FALSE); 1704 gtk_widget_set_sensitive(GTK_WIDGET(spin), FALSE);
1707 gtk_box_pack_start(GTK_BOX(hbox), spin, FALSE, FALSE, 0); 1705 gtk_box_pack_start(GTK_BOX(hbox), spin, FALSE, FALSE, 0);
1708 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), spin); 1706 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), spin);
1709 gtk_signal_connect(GTK_OBJECT(adjust), "value-changed", GTK_SIGNAL_FUNC(update_spin_value), 1707 gtk_signal_connect(GTK_OBJECT(adjust), "value-changed", GTK_SIGNAL_FUNC(update_spin_value),
1710 GTK_WIDGET(spin)); 1708 GTK_WIDGET(spin));
1715 gtk_widget_show(label); 1713 gtk_widget_show(label);
1716 1714
1717 prefs_away_menu = gtk_option_menu_new(); 1715 prefs_away_menu = gtk_option_menu_new();
1718 gtk_box_pack_start(GTK_BOX(hbox), prefs_away_menu, FALSE, FALSE, 0); 1716 gtk_box_pack_start(GTK_BOX(hbox), prefs_away_menu, FALSE, FALSE, 0);
1719 default_away_menu_init(prefs_away_menu); 1717 default_away_menu_init(prefs_away_menu);
1720 if (!(general_options & OPT_GEN_AUTO_AWAY)) 1718 if (!(away_options & OPT_AWAY_AUTO))
1721 gtk_widget_set_sensitive(GTK_WIDGET(prefs_away_menu), FALSE); 1719 gtk_widget_set_sensitive(GTK_WIDGET(prefs_away_menu), FALSE);
1722 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), 1720 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive),
1723 prefs_away_menu); 1721 prefs_away_menu);
1724 gtk_widget_show(prefs_away_menu); 1722 gtk_widget_show(prefs_away_menu);
1725 1723
2283 2281
2284 static gint debug_delete(GtkWidget *w, GdkEvent *event, void *dummy) 2282 static gint debug_delete(GtkWidget *w, GdkEvent *event, void *dummy)
2285 { 2283 {
2286 if (debugbutton) 2284 if (debugbutton)
2287 gtk_button_clicked(GTK_BUTTON(debugbutton)); 2285 gtk_button_clicked(GTK_BUTTON(debugbutton));
2288 if (general_options & OPT_GEN_DEBUG) { 2286 if (misc_options & OPT_MISC_DEBUG) {
2289 general_options = general_options ^ (int)OPT_GEN_DEBUG; 2287 misc_options ^= OPT_MISC_DEBUG;
2290 save_prefs(); 2288 save_prefs();
2291 } 2289 }
2292 g_free(dw); 2290 g_free(dw);
2293 dw = NULL; 2291 dw = NULL;
2294 return FALSE; 2292 return FALSE;
2323 gtk_widget_show(scroll); 2321 gtk_widget_show(scroll);
2324 2322
2325 gtk_widget_show(dw->window); 2323 gtk_widget_show(dw->window);
2326 } 2324 }
2327 2325
2328 void show_debug(GtkObject * obj) 2326 void show_debug()
2329 { 2327 {
2330 if ((general_options & OPT_GEN_DEBUG)) { 2328 if ((misc_options & OPT_MISC_DEBUG)) {
2331 if (!dw || !dw->window) 2329 if (!dw || !dw->window)
2332 build_debug(); 2330 build_debug();
2333 gtk_widget_show(dw->window); 2331 gtk_widget_show(dw->window);
2334 } else { 2332 } else {
2335 if (!dw) 2333 if (!dw)
2346 2344
2347 va_start(ap, fmt); 2345 va_start(ap, fmt);
2348 s = g_strdup_vprintf(fmt, ap); 2346 s = g_strdup_vprintf(fmt, ap);
2349 va_end(ap); 2347 va_end(ap);
2350 2348
2351 if (general_options & OPT_GEN_DEBUG && dw) { 2349 if (misc_options & OPT_MISC_DEBUG && dw) {
2352 GtkAdjustment *adj = GTK_TEXT(dw->entry)->vadj; 2350 GtkAdjustment *adj = GTK_TEXT(dw->entry)->vadj;
2353 gboolean scroll = (adj->value == adj->upper - adj->lower - adj->page_size); 2351 gboolean scroll = (adj->value == adj->upper - adj->lower - adj->page_size);
2354 2352
2355 gtk_text_freeze(GTK_TEXT(dw->entry)); 2353 gtk_text_freeze(GTK_TEXT(dw->entry));
2356 gtk_text_insert(GTK_TEXT(dw->entry), NULL, NULL, NULL, s, -1); 2354 gtk_text_insert(GTK_TEXT(dw->entry), NULL, NULL, NULL, s, -1);
2396 void set_option(GtkWidget *w, int *option) 2394 void set_option(GtkWidget *w, int *option)
2397 { 2395 {
2398 *option = !(*option); 2396 *option = !(*option);
2399 } 2397 }
2400 2398
2401 void set_general_option(GtkWidget *w, int *option) 2399 static void set_misc_option(GtkWidget *w, int option)
2402 { 2400 {
2403 general_options = general_options ^ (int)option; 2401 misc_options ^= option;
2404 2402
2405 if ((int)option == OPT_GEN_CHECK_SPELLING) 2403 if (option == OPT_MISC_DEBUG)
2404 show_debug();
2405
2406 if (option == OPT_MISC_BUDDY_TICKER)
2407 BuddyTickerShow();
2408
2409 save_prefs();
2410 }
2411
2412 static void set_logging_option(GtkWidget *w, int option)
2413 {
2414 logging_options ^= option;
2415
2416 if (option == OPT_LOG_ALL)
2417 update_log_convs();
2418
2419 save_prefs();
2420 }
2421
2422 static void set_blist_option(GtkWidget *w, int option)
2423 {
2424 blist_options ^= option;
2425
2426 save_prefs();
2427
2428 if (!blist)
2429 return;
2430
2431 if (option == OPT_BLIST_NO_BUTTONS) {
2432 build_imchat_box(!(blist_options & OPT_BLIST_NO_BUTTONS));
2433 update_button_pix();
2434 }
2435
2436 if (option == OPT_BLIST_SHOW_GRPNUM)
2437 update_num_groups();
2438
2439 if (option == OPT_BLIST_NO_MT_GRP)
2440 toggle_show_empty_groups();
2441
2442 if (option == OPT_BLIST_SHOW_BUTTON_XPM)
2443 update_button_pix();
2444
2445 if (option == OPT_BLIST_SHOW_PIXMAPS)
2446 toggle_buddy_pixmaps();
2447 }
2448
2449 static void set_convo_option(GtkWidget *w, int option)
2450 {
2451 convo_options ^= option;
2452
2453 if (option == OPT_CONVO_SHOW_SMILEY)
2454 toggle_smileys();
2455
2456 if (option == OPT_CONVO_SHOW_TIME)
2457 toggle_timestamps();
2458
2459 if (option == OPT_CONVO_CHECK_SPELLING)
2406 toggle_spellchk(); 2460 toggle_spellchk();
2407 2461
2408 if ((int)option == OPT_GEN_QUEUE_WHEN_AWAY) 2462 save_prefs();
2463 }
2464
2465 static void set_im_option(GtkWidget *w, int option)
2466 {
2467 im_options ^= option;
2468
2469 if (option == OPT_IM_ONE_WINDOW)
2470 tabize();
2471
2472 save_prefs();
2473 }
2474
2475 static void set_chat_option(GtkWidget *w, int option)
2476 {
2477 chat_options ^= option;
2478
2479 if (option == OPT_CHAT_ONE_WINDOW)
2480 chat_tabize();
2481
2482 save_prefs();
2483 }
2484
2485 void set_sound_option(GtkWidget *w, int option)
2486 {
2487 sound_options ^= option;
2488
2489 save_prefs();
2490 }
2491
2492 static void set_font_option(GtkWidget *w, int option)
2493 {
2494 font_options ^= option;
2495
2496 update_font_buttons();
2497
2498 save_prefs();
2499 }
2500
2501 static void set_away_option(GtkWidget *w, int option)
2502 {
2503 away_options ^= option;
2504
2505 if (option == OPT_AWAY_QUEUE)
2409 toggle_away_queue(); 2506 toggle_away_queue();
2410 2507
2411 save_prefs(); 2508 save_prefs();
2412 } 2509 }
2413 2510
2414 void set_display_option(GtkWidget *w, int *option) 2511 GtkWidget *gaim_button(const char *text, guint *options, int option, GtkWidget *page)
2415 {
2416 display_options = display_options ^ (int)option;
2417
2418 if (blist && ((int)option == OPT_DISP_NO_BUTTONS)) {
2419 build_imchat_box(!(display_options & OPT_DISP_NO_BUTTONS));
2420 update_button_pix();
2421 }
2422
2423 if (blist && ((int)option == OPT_DISP_SHOW_GRPNUM))
2424 update_num_groups();
2425
2426 if (blist && ((int)option == OPT_DISP_NO_MT_GRP))
2427 toggle_show_empty_groups();
2428
2429 if (blist && ((int)option == OPT_DISP_SHOW_BUTTON_XPM))
2430 update_button_pix();
2431
2432 if ((int)option == OPT_DISP_SHOW_SMILEY)
2433 toggle_smileys();
2434
2435 if ((int)option == OPT_DISP_SHOW_TIME)
2436 toggle_timestamps();
2437
2438 if ((int)option == OPT_DISP_ONE_WINDOW)
2439 tabize();
2440
2441 if ((int)option == OPT_DISP_ONE_CHAT_WINDOW)
2442 chat_tabize();
2443
2444 if ((int)option == OPT_DISP_SHOW_PIXMAPS)
2445 toggle_buddy_pixmaps();
2446
2447 #ifdef USE_APPLET
2448 update_pixmaps();
2449 #endif
2450
2451 save_prefs();
2452 }
2453
2454 void set_sound_option(GtkWidget *w, int *option)
2455 {
2456 sound_options = sound_options ^ (int)option;
2457 save_prefs();
2458 }
2459
2460 void set_font_option(GtkWidget *w, int *option)
2461 {
2462 font_options = font_options ^ (int)option;
2463
2464 update_font_buttons();
2465
2466 save_prefs();
2467 }
2468
2469 void set_logging_option(GtkWidget *w, int *option)
2470 {
2471 logging_options = logging_options ^ (int)option;
2472
2473 if ((int)option == OPT_LOG_ALL)
2474 update_log_convs();
2475
2476 save_prefs();
2477 }
2478
2479 GtkWidget *gaim_button(const char *text, int *options, int option, GtkWidget *page)
2480 { 2512 {
2481 GtkWidget *button; 2513 GtkWidget *button;
2482 button = gtk_check_button_new_with_label(text); 2514 button = gtk_check_button_new_with_label(text);
2483 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(button), (*options & option)); 2515 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(button), (*options & option));
2484 gtk_box_pack_start(GTK_BOX(page), button, FALSE, FALSE, 0); 2516 gtk_box_pack_start(GTK_BOX(page), button, FALSE, FALSE, 0);
2485 2517
2518 if (options == &misc_options)
2519 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(set_misc_option),
2520 (int *)option);
2521 if (options == &logging_options)
2522 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(set_logging_option),
2523 (int *)option);
2524 if (options == &blist_options)
2525 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(set_blist_option),
2526 (int *)option);
2527 if (options == &convo_options)
2528 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(set_convo_option),
2529 (int *)option);
2530 if (options == &im_options)
2531 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(set_im_option),
2532 (int *)option);
2533 if (options == &chat_options)
2534 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(set_chat_option),
2535 (int *)option);
2486 if (options == &font_options) 2536 if (options == &font_options)
2487 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(set_font_option), 2537 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(set_font_option),
2488 (int *)option); 2538 (int *)option);
2489 if (options == &sound_options) 2539 if (options == &sound_options)
2490 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(set_sound_option), 2540 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(set_sound_option),
2491 (int *)option); 2541 (int *)option);
2492 if (options == &display_options) 2542 if (options == &away_options)
2493 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(set_display_option), 2543 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(set_away_option),
2494 (int *)option); 2544 (int *)option);
2495 if (options == &general_options) 2545
2496 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(set_general_option),
2497 (int *)option);
2498 if (options == &logging_options)
2499 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(set_logging_option),
2500 (int *)option);
2501 gtk_widget_show(button); 2546 gtk_widget_show(button);
2502 2547
2503 return button; 2548 return button;
2504 } 2549 }
2505 2550