2013-02-20 [colin] 3.9.0cvs85
[claws.git] / src / plugins / fancy / fancy_viewer.h
1 /*
2  * Claws Mail -- a GTK+ based, lightweight, and fast e-mail client
3  * == Fancy Plugin ==
4  * Copyright (C) 1999-2013 Hiroyuki Yamamoto and the Claws Mail Team
5  * This file Copyright (C) 2009-2013 Salvatore De Paolis <iwkse@claws-mail.org>
6  *  and the Claws Mail Team
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 3 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21  */
22
23 #ifndef FANCY_VIEWER_H
24 #define FANCY_VIEWER_H
25
26 #include <unistd.h>
27 #include <stdio.h>
28
29 #include <glib.h>
30 #include <glib/gi18n.h>
31 #include <gtk/gtk.h>
32 #include <gdk/gdkx.h>
33 #include <webkit/webkitwebview.h>
34 #include <webkit/webkitversion.h>
35 #include <webkit/webkitwebframe.h>
36 #include <webkit/webkitnetworkrequest.h>
37 #if WEBKIT_CHECK_VERSION (1,3,13)
38 #include <webkit/webkitglobals.h>
39 #endif
40 #include <prefs_common.h>
41 #include "common/claws.h"
42 #include "common/version.h"
43 #include "common/utils.h"
44 #include "mimeview.h"
45 #include "gdk/gdkkeysyms.h"
46 #include "main.h"
47 #include "plugin.h"
48 #include "menu.h"
49 #include "defs.h"
50 #include "utils.h"
51 #include "folder.h"
52 #ifdef USE_PTHREAD
53 #include <pthread.h>
54 #endif
55
56 #include <curl/curl.h>
57 #include <curl/curlver.h>
58 #include "filesel.h"
59
60 #ifdef HAVE_LIBSOUP_GNOME
61 #include <libsoup/soup-gnome.h>
62 #endif
63
64 typedef struct _FancyViewer FancyViewer;
65 struct _FancyViewer
66 {
67         MimeViewer        mimeviewer;
68         GtkWidget         *scrollwin;
69         WebKitWebView     *view;
70         GtkWidget         *vbox;  
71         GtkWidget         *l_link;
72         /* Zoom Widgets  */
73         GtkWidget         *zoom_100;
74         GtkWidget         *ev_zoom_100;
75         GtkWidget         *zoom_in;
76         GtkWidget         *ev_zoom_in;
77         GtkWidget         *zoom_out;
78         GtkWidget         *ev_zoom_out;
79         GtkWidget         *stop_loading;
80         GtkWidget         *ev_stop_loading;
81         /* Preferences Widgets  */
82         GtkWidget         *fancy_prefs;
83         GtkWidget         *ev_fancy_prefs;
84         GtkWidget         *fancy_prefs_menu;
85         /* Menu Items */
86         GtkWidget         *auto_load_images;
87         GtkWidget         *enable_scripts;
88         GtkWidget         *enable_plugins;
89         GtkWidget                 *enable_java;
90         GtkWidget         *block_extern_content;
91         GtkWidget         *open_external;
92
93         GtkWidget         *progress;
94         WebKitWebSettings *settings;    
95         gboolean          load_page;
96         gboolean          printing;
97         gboolean          override_prefs_images;
98         gboolean          override_prefs_block_extern_content;
99         gboolean          override_prefs_scripts;
100         gboolean          override_prefs_plugins;
101         gboolean          override_prefs_external;
102         gboolean                  override_prefs_java;
103
104 #ifdef HAVE_LIBCURL
105         const gchar       *curlfile;
106         FILE              *stream;
107 #endif
108         gchar             *cur_link;
109         gchar             *filename;
110         MimeInfo          *to_load;
111         gulong            doc_handle;
112         gint              tag;
113         gint              loading;
114         gint              stop_previous;
115
116         /* DOM Objects */
117 #if WEBKIT_CHECK_VERSION(1,5,1)
118         WebKitDOMDocument         *doc;
119         WebKitDOMDOMWindow    *window;
120         WebKitDOMDOMSelection *selection;
121         WebKitDOMRange            *range;
122 #endif
123 };
124 #define OPEN_INTERNAL FALSE
125 #define OPEN_EXTERNAL TRUE
126 #define CTRL_KEY 4
127 #define GOOGLE_SEARCH "http://www.google.com/search?hl=en&q="
128
129 #endif
130