comparison src/prefs.c @ 915:378c862a2381

[gaim-migrate @ 925] bmiller is damn cool. he did everything i asked for, the next day even. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Fri, 15 Sep 2000 18:24:32 +0000
parents 568bb0f5c921
children a88af4cc626a
comparison
equal deleted inserted replaced
914:215fe9039ae1 915:378c862a2381
55 static void prefs_build_convo(GtkWidget *); 55 static void prefs_build_convo(GtkWidget *);
56 static void prefs_build_sound(GtkWidget *); 56 static void prefs_build_sound(GtkWidget *);
57 static void prefs_build_away(GtkWidget *); 57 static void prefs_build_away(GtkWidget *);
58 static void prefs_build_browser(GtkWidget *); 58 static void prefs_build_browser(GtkWidget *);
59 static gint handle_delete(GtkWidget *, GdkEvent *, void *); 59 static gint handle_delete(GtkWidget *, GdkEvent *, void *);
60 static void delete_prefs(GtkWidget *, void *);
60 61
61 static GtkWidget *prefdialog = NULL; 62 static GtkWidget *prefdialog = NULL;
62 static GtkWidget *debugbutton = NULL; 63 static GtkWidget *debugbutton = NULL;
63 static GtkWidget *prefrem = NULL; 64 static GtkWidget *prefrem = NULL;
64 GtkWidget *prefs_away_list = NULL; 65 GtkWidget *prefs_away_list = NULL;
691 gaim_button(_("Sending messages removes away status"), &general_options, OPT_GEN_BACK_ON_IM, box); 692 gaim_button(_("Sending messages removes away status"), &general_options, OPT_GEN_BACK_ON_IM, box);
692 693
693 gtk_widget_show(prefdialog); 694 gtk_widget_show(prefdialog);
694 } 695 }
695 696
697 static void set_buttons_opt(GtkWidget *w, int data)
698 {
699 int mask;
700 if (data & 0x1) /* set the first bit if we're affecting chat buttons */
701 mask = (OPT_DISP_CHAT_BUTTON_TEXT | OPT_DISP_CHAT_BUTTON_XPM);
702 else
703 mask = (OPT_DISP_CONV_BUTTON_TEXT | OPT_DISP_CONV_BUTTON_XPM);
704 display_options &= ~(mask);
705 display_options |= (data & mask);
706
707 if (data & 0x1)
708 update_chat_button_pix();
709 else
710 update_im_button_pix();
711 }
712
713 static void im_buttons_menu_init(GtkWidget *omenu)
714 {
715 GtkWidget *menu, *opt;
716 int index;
717
718 switch (display_options &
719 (OPT_DISP_CONV_BUTTON_TEXT | OPT_DISP_CONV_BUTTON_XPM)) {
720 case OPT_DISP_CONV_BUTTON_TEXT:
721 index = 2;
722 break;
723 case OPT_DISP_CONV_BUTTON_XPM:
724 index = 1;
725 break;
726 default: /* both or neither */
727 index = 0;
728 break;
729 }
730
731 menu = gtk_menu_new();
732
733 opt = gtk_menu_item_new_with_label(_("Pictures and Text"));
734 gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(set_buttons_opt), (void *)(OPT_DISP_CONV_BUTTON_TEXT | OPT_DISP_CONV_BUTTON_XPM));
735 gtk_widget_show(opt);
736 gtk_menu_append(GTK_MENU(menu), opt);
737
738 opt = gtk_menu_item_new_with_label(_("Pictures Only"));
739 gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(set_buttons_opt), (void *)OPT_DISP_CONV_BUTTON_XPM);
740 gtk_widget_show(opt);
741 gtk_menu_append(GTK_MENU(menu), opt);
742
743 opt = gtk_menu_item_new_with_label(_("Text Only"));
744 gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(set_buttons_opt), (void *)OPT_DISP_CONV_BUTTON_TEXT);
745 gtk_widget_show(opt);
746 gtk_menu_append(GTK_MENU(menu), opt);
747
748 gtk_option_menu_remove_menu(GTK_OPTION_MENU(omenu));
749 gtk_option_menu_set_menu(GTK_OPTION_MENU(omenu), menu);
750 gtk_option_menu_set_history(GTK_OPTION_MENU(omenu), index);
751 }
752
696 static void im_page() 753 static void im_page()
697 { 754 {
698 GtkWidget *parent; 755 GtkWidget *parent;
699 GtkWidget *box; 756 GtkWidget *box;
757 GtkWidget *hbox;
700 GtkWidget *label; 758 GtkWidget *label;
759 GtkWidget *opt;
701 760
702 parent = prefdialog->parent; 761 parent = prefdialog->parent;
703 gtk_widget_destroy(prefdialog); 762 gtk_widget_destroy(prefdialog);
704 763
705 prefdialog = gtk_frame_new(_("IM Options")); 764 prefdialog = gtk_frame_new(_("IM Options"));
712 label = gtk_label_new(_("All options take effect immediately unless otherwise noted.")); 771 label = gtk_label_new(_("All options take effect immediately unless otherwise noted."));
713 gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 5); 772 gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 5);
714 gtk_widget_show(label); 773 gtk_widget_show(label);
715 774
716 gaim_button(_("Show logins in window"), &display_options, OPT_DISP_SHOW_LOGON, box); 775 gaim_button(_("Show logins in window"), &display_options, OPT_DISP_SHOW_LOGON, box);
717 gaim_button(_("Show buttons with text"), &display_options, OPT_DISP_CONV_SHOW_TEXT, box); 776
777 hbox = gtk_hbox_new(FALSE, 0);
778 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 5);
779 gtk_widget_show(hbox);
780
781 label = gtk_label_new(_("Show buttons as "));
782 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
783 gtk_widget_show(label);
784
785 opt = gtk_option_menu_new();
786 gtk_box_pack_start(GTK_BOX(hbox), opt, FALSE, FALSE, 5);
787 im_buttons_menu_init(opt);
788 gtk_widget_show(opt);
789
718 gaim_button(_("Show larger entry box on new windows"), &display_options, OPT_DISP_CONV_BIG_ENTRY, box); 790 gaim_button(_("Show larger entry box on new windows"), &display_options, OPT_DISP_CONV_BIG_ENTRY, box);
719 gaim_button(_("Raise windows on events"), &general_options, OPT_GEN_POPUP_WINDOWS, box); 791 gaim_button(_("Raise windows on events"), &general_options, OPT_GEN_POPUP_WINDOWS, box);
720 gaim_button(_("Ignore new conversations when away"), &general_options, OPT_GEN_DISCARD_WHEN_AWAY, box); 792 gaim_button(_("Ignore new conversations when away"), &general_options, OPT_GEN_DISCARD_WHEN_AWAY, box);
721 gaim_button(_("Ignore TiK Automated Messages"), &general_options, OPT_GEN_TIK_HACK, box); 793 gaim_button(_("Ignore TiK Automated Messages"), &general_options, OPT_GEN_TIK_HACK, box);
722 794
723 gtk_widget_show(prefdialog); 795 gtk_widget_show(prefdialog);
724 } 796 }
725 797
798 static void chat_buttons_menu_init(GtkWidget *omenu)
799 {
800 GtkWidget *menu, *opt;
801 int index;
802
803 switch (display_options &
804 (OPT_DISP_CHAT_BUTTON_TEXT | OPT_DISP_CHAT_BUTTON_XPM)) {
805 case OPT_DISP_CHAT_BUTTON_TEXT:
806 index = 2;
807 break;
808 case OPT_DISP_CHAT_BUTTON_XPM:
809 index = 1;
810 break;
811 default: /* both or neither */
812 index = 0;
813 break;
814 }
815
816 menu = gtk_menu_new();
817
818 opt = gtk_menu_item_new_with_label(_("Pictures and Text"));
819 gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(set_buttons_opt), (void *)(OPT_DISP_CHAT_BUTTON_TEXT | OPT_DISP_CHAT_BUTTON_XPM | 1));
820 gtk_widget_show(opt);
821 gtk_menu_append(GTK_MENU(menu), opt);
822
823 opt = gtk_menu_item_new_with_label(_("Pictures Only"));
824 gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(set_buttons_opt), (void *)(OPT_DISP_CHAT_BUTTON_XPM | 1));
825 gtk_widget_show(opt);
826 gtk_menu_append(GTK_MENU(menu), opt);
827
828 opt = gtk_menu_item_new_with_label(_("Text Only"));
829 gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(set_buttons_opt), (void *)(OPT_DISP_CHAT_BUTTON_TEXT | 1));
830 gtk_widget_show(opt);
831 gtk_menu_append(GTK_MENU(menu), opt);
832
833 gtk_option_menu_remove_menu(GTK_OPTION_MENU(omenu));
834 gtk_option_menu_set_menu(GTK_OPTION_MENU(omenu), menu);
835 gtk_option_menu_set_history(GTK_OPTION_MENU(omenu), index);
836 }
837
726 static void chat_page() 838 static void chat_page()
727 { 839 {
728 GtkWidget *parent; 840 GtkWidget *parent;
729 GtkWidget *box; 841 GtkWidget *box;
842 GtkWidget *hbox;
730 GtkWidget *label; 843 GtkWidget *label;
844 GtkWidget *opt;
731 845
732 parent = prefdialog->parent; 846 parent = prefdialog->parent;
733 gtk_widget_destroy(prefdialog); 847 gtk_widget_destroy(prefdialog);
734 848
735 prefdialog = gtk_frame_new(_("Chat Options")); 849 prefdialog = gtk_frame_new(_("Chat Options"));
742 label = gtk_label_new(_("All options take effect immediately unless otherwise noted.")); 856 label = gtk_label_new(_("All options take effect immediately unless otherwise noted."));
743 gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 5); 857 gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 5);
744 gtk_widget_show(label); 858 gtk_widget_show(label);
745 859
746 gaim_button(_("Show people joining/leaving in window"), &display_options, OPT_DISP_CHAT_LOGON, box); 860 gaim_button(_("Show people joining/leaving in window"), &display_options, OPT_DISP_CHAT_LOGON, box);
747 gaim_button(_("Show buttons with text"), &display_options, OPT_DISP_CHAT_SHOW_TEXT, box); 861
862 hbox = gtk_hbox_new(FALSE, 0);
863 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 5);
864 gtk_widget_show(hbox);
865
866 label = gtk_label_new(_("Show buttons as "));
867 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
868 gtk_widget_show(label);
869
870 opt = gtk_option_menu_new();
871 gtk_box_pack_start(GTK_BOX(hbox), opt, FALSE, FALSE, 5);
872 chat_buttons_menu_init(opt);
873 gtk_widget_show(opt);
874
875
748 gaim_button(_("Show larger entry box on new windows"), &display_options, OPT_DISP_CHAT_BIG_ENTRY, box); 876 gaim_button(_("Show larger entry box on new windows"), &display_options, OPT_DISP_CHAT_BIG_ENTRY, box);
749 gaim_button(_("Raise windows on events"), &general_options, OPT_GEN_POPUP_CHAT, box); 877 gaim_button(_("Raise windows on events"), &general_options, OPT_GEN_POPUP_CHAT, box);
750 878
751 gtk_widget_show(prefdialog); 879 gtk_widget_show(prefdialog);
752 } 880 }
1585 gtk_widget_realize(prefs); 1713 gtk_widget_realize(prefs);
1586 aol_icon(prefs->window); 1714 aol_icon(prefs->window);
1587 gtk_container_border_width(GTK_CONTAINER(prefs), 10); 1715 gtk_container_border_width(GTK_CONTAINER(prefs), 10);
1588 gtk_window_set_title(GTK_WINDOW(prefs), _("Gaim - Preferences")); 1716 gtk_window_set_title(GTK_WINDOW(prefs), _("Gaim - Preferences"));
1589 gtk_widget_set_usize(prefs, 600, 550); 1717 gtk_widget_set_usize(prefs, 600, 550);
1718 gtk_signal_connect(GTK_OBJECT(prefs), "destroy",
1719 GTK_SIGNAL_FUNC(delete_prefs), NULL);
1590 1720
1591 vbox = gtk_vbox_new(FALSE, 5); 1721 vbox = gtk_vbox_new(FALSE, 5);
1592 gtk_container_add(GTK_CONTAINER(prefs), vbox); 1722 gtk_container_add(GTK_CONTAINER(prefs), vbox);
1593 gtk_widget_show(vbox); 1723 gtk_widget_show(vbox);
1594 1724
1721 debugbutton = NULL; 1851 debugbutton = NULL;
1722 1852
1723 return FALSE; 1853 return FALSE;
1724 } 1854 }
1725 1855
1856 static void delete_prefs(GtkWidget *w, void *data)
1857 {
1858 if (prefs) {
1859 save_prefs();
1860 gtk_widget_destroy(prefs);
1861 }
1862 prefs = NULL;
1863 }
1864
1865
1726 void set_option(GtkWidget *w, int *option) 1866 void set_option(GtkWidget *w, int *option)
1727 { 1867 {
1728 *option = !(*option); 1868 *option = !(*option);
1729 } 1869 }
1730 1870
1762 1902
1763 if (blist) build_imchat_box(!(display_options & OPT_DISP_NO_BUTTONS)); 1903 if (blist) build_imchat_box(!(display_options & OPT_DISP_NO_BUTTONS));
1764 1904
1765 if (blist) update_button_pix(); 1905 if (blist) update_button_pix();
1766 1906
1767 if ((int)option == OPT_DISP_CHAT_SHOW_TEXT) update_chat_button_pix();
1768 if ((int)option == OPT_DISP_CONV_SHOW_TEXT) update_im_button_pix();
1769
1770 #ifdef USE_APPLET 1907 #ifdef USE_APPLET
1771 update_pixmaps(); 1908 update_pixmaps();
1772 #endif 1909 #endif
1773 1910
1774 save_prefs(); 1911 save_prefs();