From cd28010b326d9f212759a4f4de6cd9b67ac4f0db Mon Sep 17 00:00:00 2001 From: Jeffrey Stedfast Date: Tue, 9 Oct 2001 22:01:49 +0000 Subject: Create a chaqrset picker submenu in the View menu. 2001-10-09 Jeffrey Stedfast * folder-browser-ui.c (folder_browser_ui_add_message): Create a chaqrset picker submenu in the View menu. * mail-format.c (mail_format_raw_message): Pass the mail-display to get_data_wrapper_text. (get_data_wrapper_text): Use the user's override charset if one is provided, otherwise user the user's default charset. (handle_text_plain): Pass along the mail-display to get_data_wrapper_text. (handle_application_pgp): Same. (handle_text_enriched): Here too. (mail_get_message_body): Pass NULL as the mail-display to get_data_wrapper_text since we don't have access to a mail-display. * mail-display.c (mail_display_set_charset): New function to set a charset on the maildisplay. Once set, the message is redisplayed using the new charset. (mail_display_destroy): Free the charset. * folder-browser.c (folder_browser_charset_changed): New callback for when a user overrides the message charset. svn path=/trunk/; revision=13530 --- mail/folder-browser.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'mail/folder-browser.c') diff --git a/mail/folder-browser.c b/mail/folder-browser.c index c435b3c281..126ec20a01 100644 --- a/mail/folder-browser.c +++ b/mail/folder-browser.c @@ -138,7 +138,7 @@ folder_browser_finalise (GtkObject *object) g_free (folder_browser->uri); folder_browser->uri = NULL; - + if (folder_browser->folder) { camel_object_unhook_event(CAMEL_OBJECT(folder_browser->folder), "folder_changed", folder_changed, folder_browser); @@ -1171,6 +1171,29 @@ folder_browser_set_message_display_style (BonoboUIComponent *component } } +void +folder_browser_charset_changed (BonoboUIComponent *component, + const char *path, + Bonobo_UIComponent_EventType type, + const char *state, + gpointer user_data) +{ + FolderBrowser *fb = FOLDER_BROWSER (user_data); + const char *charset; + + if (type != Bonobo_UIComponent_STATE_CHANGED) + return; + + if (atoi (state)) { + /* Charset menu names are "Charset-%s" where %s is the charset name */ + charset = path + strlen ("Charset-"); + if (!strcmp (charset, FB_DEFAULT_CHARSET)) + charset = NULL; + + mail_display_set_charset (fb->mail_display, charset); + } +} + void vfolder_subject (GtkWidget *w, FolderBrowser *fb) { -- cgit v1.2.3