/*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) version 3.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with the program; if not, see
*/
#ifdef HAVE_CONFIG_H
#include
#endif
#include "e-mail-display-popup-prefer-plain.h"
#include "mail/e-mail-display-popup-extension.h"
#include "mail/e-mail-display.h"
#include
#include
#include "mail/e-mail-browser.h"
#include
#include
#define d(x)
typedef struct _EMailDisplayPopupPreferPlain EMailDisplayPopupPreferPlain;
typedef struct _EMailDisplayPopupPreferPlainClass EMailDisplayPopupPreferPlainClass;
struct _EMailDisplayPopupPreferPlain {
EExtension parent;
WebKitDOMDocument *document;
gchar *text_plain_id;
gchar *text_html_id;
GtkActionGroup *action_group;
};
struct _EMailDisplayPopupPreferPlainClass {
EExtensionClass parent_class;
};
#define E_TYPE_MAIL_DISPLAY_POPUP_PREFER_PLAIN \
(e_mail_display_popup_prefer_plain_get_type ())
#define E_MAIL_DISPLAY_POPUP_PREFER_PLAIN(obj) \
(G_TYPE_CHECK_INSTANCE_CAST \
((obj), E_TYPE_MAIL_DISPLAY_POPUP_PREFER_PLAIN, EMailDisplayPopupPreferPlain))
GType e_mail_display_popup_prefer_plain_get_type (void);
static void e_mail_display_popup_extension_interface_init (EMailDisplayPopupExtensionInterface *iface);
G_DEFINE_DYNAMIC_TYPE_EXTENDED (
EMailDisplayPopupPreferPlain,
e_mail_display_popup_prefer_plain,
E_TYPE_EXTENSION,
0,
G_IMPLEMENT_INTERFACE_DYNAMIC (
E_TYPE_MAIL_DISPLAY_POPUP_EXTENSION,
e_mail_display_popup_extension_interface_init));
static const gchar *ui_webview =
""
" "
" "
" "
" "
" "
" "
" "
" "
"";
static const gchar *ui_reader =
""
" "
" "
" "
" "
" "
" "
" "
" "
"";
static void
toggle_part (GtkAction *action,
EMailDisplayPopupExtension *extension)
{
EMailDisplayPopupPreferPlain *pp_extension = (EMailDisplayPopupPreferPlain *) extension;
WebKitDOMDocument *doc = pp_extension->document;
WebKitDOMDOMWindow *window;
WebKitDOMElement *frame_element;
SoupURI *soup_uri;
GHashTable *query;
gchar *uri;
uri = webkit_dom_document_get_document_uri (doc);
soup_uri = soup_uri_new (uri);
g_free (uri);
query = soup_form_decode (soup_uri->query);
g_hash_table_replace (
query, g_strdup ("part_id"),
pp_extension->text_html_id ?
pp_extension->text_html_id :
pp_extension->text_plain_id);
g_hash_table_replace (
query, g_strdup ("mime_type"),
pp_extension->text_html_id ?
(gpointer) "text/html" :
(gpointer) "text/plain");
soup_uri_set_query_from_form (soup_uri, query);
g_hash_table_destroy (query);
uri = soup_uri_to_string (soup_uri, FALSE);
soup_uri_free (soup_uri);
/* Get frame's window and from the window the actual