Revision 1053 src/prefs_common_dialog.c

prefs_common_dialog.c (revision 1053)
80 80
	GtkWidget *checkbtn_filter_sent;
81 81

  
82 82
	GtkWidget *optmenu_encoding_method;
83
	GtkWidget *optmenu_mime_fencoding_method;
83 84
} p_send;
84 85

  
85 86
static struct Compose {
......
243 244

  
244 245
static void prefs_common_charset_set_data_from_optmenu	   (PrefParam *pparam);
245 246
static void prefs_common_charset_set_optmenu		   (PrefParam *pparam);
246
static void prefs_common_encoding_set_data_from_optmenu    (PrefParam *pparam);
247
static void prefs_common_encoding_set_optmenu		   (PrefParam *pparam);
248
static void prefs_common_recv_dialog_set_data_from_optmenu (PrefParam *pparam);
249 247
static void prefs_common_recv_dialog_set_optmenu	   (PrefParam *pparam);
250 248
static void prefs_common_uri_set_data_from_entry	   (PrefParam *pparam);
251 249
static void prefs_common_uri_set_entry			   (PrefParam *pparam);
......
281 279
	 prefs_set_data_from_toggle, prefs_set_toggle},
282 280

  
283 281
	{"encoding_method", &p_send.optmenu_encoding_method,
284
	 prefs_common_encoding_set_data_from_optmenu,
285
	 prefs_common_encoding_set_optmenu},
282
	 prefs_set_data_from_optmenu, prefs_set_optmenu},
283
	{"mime_filename_encoding_method", &p_send.optmenu_mime_fencoding_method,
284
	 prefs_set_data_from_optmenu, prefs_set_optmenu},
286 285

  
287 286
	/* {"allow_jisx0201_kana", NULL, NULL, NULL}, */
288 287

  
......
461 460

  
462 461
	/* Other */
463 462
	{"receive_dialog_mode", &other.optmenu_recvdialog,
464
	 prefs_common_recv_dialog_set_data_from_optmenu,
465
	 prefs_common_recv_dialog_set_optmenu},
463
	 prefs_set_data_from_optmenu, prefs_common_recv_dialog_set_optmenu},
466 464
	{"no_receive_error_panel", &other.checkbtn_no_recv_err_panel,
467 465
	 prefs_set_data_from_toggle, prefs_set_toggle},
468 466
	{"close_receive_dialog", &other.checkbtn_close_recv_dialog,
......
835 833
	GtkWidget *optmenu_trencoding;
836 834
	GtkWidget *optmenu_menu;
837 835
	GtkWidget *menuitem;
836
	GtkWidget *optmenu_fencoding;
838 837
	GtkWidget *label_encoding;
839 838
	GtkWidget *label_encoding_desc;
839
	GtkWidget *label_fencoding;
840
	GtkWidget *label_fencoding_desc;
840 841

  
841 842
	vbox1 = gtk_vbox_new (FALSE, VSPACING);
842 843
	gtk_widget_show (vbox1);
......
876 877
	SET_MENUITEM("quoted-printable", CTE_QUOTED_PRINTABLE);
877 878
	SET_MENUITEM("8bit",		 CTE_8BIT);
878 879

  
879
#undef SET_MENUITEM
880

  
881 880
	gtk_option_menu_set_menu (GTK_OPTION_MENU (optmenu_trencoding),
882 881
				  optmenu_menu);
883 882

  
......
885 884
			  _("Specify Content-Transfer-Encoding used when "
886 885
			    "message body contains non-ASCII characters."));
887 886

  
887
	hbox1 = gtk_hbox_new (FALSE, 8);
888
	gtk_widget_show (hbox1);
889
	gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, FALSE, 0);
890

  
891
	label_fencoding = gtk_label_new (_("MIME filename encoding"));
892
	gtk_widget_show (label_fencoding);
893
	gtk_box_pack_start (GTK_BOX (hbox1), label_fencoding, FALSE, FALSE, 0);
894

  
895
	optmenu_fencoding = gtk_option_menu_new ();
896
	gtk_widget_show (optmenu_fencoding);
897
	gtk_box_pack_start (GTK_BOX (hbox1), optmenu_fencoding,
898
			    FALSE, FALSE, 0);
899

  
900
	optmenu_menu = gtk_menu_new ();
901

  
902
	SET_MENUITEM(_("MIME header"), FENC_MIME);
903
	SET_MENUITEM(_("RFC 2231"), FENC_RFC2231);
904

  
905
	gtk_option_menu_set_menu (GTK_OPTION_MENU (optmenu_fencoding),
906
				  optmenu_menu);
907

  
908
#undef SET_MENUITEM
909

  
910
	PACK_SMALL_LABEL
911
		(vbox1, label_fencoding_desc,
912
		 _("Specify encoding method for MIME filename with "
913
		   "non-ASCII characters.\n"
914
		   "MIME header: most popular, but violates RFC 2047\n"
915
		   "RFC 2231: conforms to standard, but not popular"));
916

  
888 917
	p_send.checkbtn_savemsg     = checkbtn_savemsg;
889 918
	p_send.checkbtn_filter_sent = checkbtn_filter_sent;
890 919

  
891 920
	p_send.optmenu_encoding_method = optmenu_trencoding;
921
	p_send.optmenu_mime_fencoding_method = optmenu_fencoding;
892 922
}
893 923

  
894 924
static void prefs_compose_create(void)
......
3671 3701
	}
3672 3702
}
3673 3703

  
3674
static void prefs_common_encoding_set_data_from_optmenu(PrefParam *pparam)
3675
{
3676
	PrefsUIData *ui_data;
3677
	GtkWidget *menu;
3678
	GtkWidget *menuitem;
3679

  
3680
	ui_data = (PrefsUIData *)pparam->ui_data;
3681
	g_return_if_fail(ui_data != NULL);
3682
	g_return_if_fail(*ui_data->widget != NULL);
3683

  
3684
	menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(*ui_data->widget));
3685
	menuitem = gtk_menu_get_active(GTK_MENU(menu));
3686
	*((TransferEncodingMethod *)pparam->data) = GPOINTER_TO_INT
3687
		(g_object_get_data(G_OBJECT(menuitem), MENU_VAL_ID));
3688
}
3689

  
3690
static void prefs_common_encoding_set_optmenu(PrefParam *pparam)
3691
{
3692
	PrefsUIData *ui_data;
3693
	TransferEncodingMethod method =
3694
		*((TransferEncodingMethod *)pparam->data);
3695
	GtkOptionMenu *optmenu;
3696
	gint index;
3697

  
3698
	ui_data = (PrefsUIData *)pparam->ui_data;
3699
	g_return_if_fail(ui_data != NULL);
3700
	g_return_if_fail(*ui_data->widget != NULL);
3701

  
3702
	optmenu = GTK_OPTION_MENU(*ui_data->widget);
3703
	g_return_if_fail(optmenu != NULL);
3704

  
3705
	index = menu_find_option_menu_index(optmenu, GINT_TO_POINTER(method),
3706
					    NULL);
3707
	if (index >= 0)
3708
		gtk_option_menu_set_history(optmenu, index);
3709
	else {
3710
		gtk_option_menu_set_history(optmenu, 0);
3711
		prefs_common_encoding_set_data_from_optmenu(pparam);
3712
	}
3713
}
3714

  
3715
static void prefs_common_recv_dialog_set_data_from_optmenu(PrefParam *pparam)
3716
{
3717
	PrefsUIData *ui_data;
3718
	GtkWidget *menu;
3719
	GtkWidget *menuitem;
3720

  
3721
	ui_data = (PrefsUIData *)pparam->ui_data;
3722
	g_return_if_fail(ui_data != NULL);
3723
	g_return_if_fail(*ui_data->widget != NULL);
3724

  
3725
	menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(*ui_data->widget));
3726
	menuitem = gtk_menu_get_active(GTK_MENU(menu));
3727
	*((RecvDialogMode *)pparam->data) = GPOINTER_TO_INT
3728
		(g_object_get_data(G_OBJECT(menuitem), MENU_VAL_ID));
3729
}
3730

  
3731 3704
static void prefs_common_recv_dialog_set_optmenu(PrefParam *pparam)
3732 3705
{
3733 3706
	PrefsUIData *ui_data;
......
3750 3723
		gtk_option_menu_set_history(optmenu, index);
3751 3724
	else {
3752 3725
		gtk_option_menu_set_history(optmenu, 0);
3753
		prefs_common_recv_dialog_set_data_from_optmenu(pparam);
3726
		prefs_set_data_from_optmenu(pparam);
3754 3727
	}
3755 3728

  
3756 3729
	menu = gtk_option_menu_get_menu(optmenu);

Also available in: Unified diff