Mercurial > pidgin.yaz
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(); |