aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/misc/e-web-view-gtkhtml.h
diff options
context:
space:
mode:
authorDan Vrátil <dvratil@redhat.com>2012-03-29 00:37:35 +0800
committerDan Vrátil <dvratil@redhat.com>2012-03-29 00:37:35 +0800
commit6bd1c6833a2c51898ac45865767dd01ba66a95c5 (patch)
tree51f9cc360c49e71c455f74f72f1605965e73a932 /widgets/misc/e-web-view-gtkhtml.h
parent038e0eccec595ce1cc39fe95262272e29d5a6fbf (diff)
downloadgsoc2013-evolution-6bd1c6833a2c51898ac45865767dd01ba66a95c5.tar
gsoc2013-evolution-6bd1c6833a2c51898ac45865767dd01ba66a95c5.tar.gz
gsoc2013-evolution-6bd1c6833a2c51898ac45865767dd01ba66a95c5.tar.bz2
gsoc2013-evolution-6bd1c6833a2c51898ac45865767dd01ba66a95c5.tar.lz
gsoc2013-evolution-6bd1c6833a2c51898ac45865767dd01ba66a95c5.tar.xz
gsoc2013-evolution-6bd1c6833a2c51898ac45865767dd01ba66a95c5.tar.zst
gsoc2013-evolution-6bd1c6833a2c51898ac45865767dd01ba66a95c5.zip
WebKit port - port widgets
Diffstat (limited to 'widgets/misc/e-web-view-gtkhtml.h')
-rw-r--r--widgets/misc/e-web-view-gtkhtml.h173
1 files changed, 173 insertions, 0 deletions
diff --git a/widgets/misc/e-web-view-gtkhtml.h b/widgets/misc/e-web-view-gtkhtml.h
new file mode 100644
index 0000000000..aab06e8b54
--- /dev/null
+++ b/widgets/misc/e-web-view-gtkhtml.h
@@ -0,0 +1,173 @@
+/*
+ * e-web-view-gtkhtml.h
+ *
+ * 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 <http://www.gnu.org/licenses/>
+ *
+ */
+
+/* This is intended to serve as a common base class for all HTML viewing
+ * needs in Evolution. Currently based on GtkHTML, the idea is to wrap
+ * the GtkHTML API enough that we no longer have to make direct calls to
+ * it. This should help smooth the transition to WebKit/GTK+.
+ *
+ * This class handles basic tasks like mouse hovers over links, clicked
+ * links, and servicing URI requests asynchronously via GIO. */
+
+#ifndef E_WEB_VIEW_GTKHTML_H
+#define E_WEB_VIEW_GTKHTML_H
+
+#include <gtkhtml/gtkhtml.h>
+
+/* Standard GObject macros */
+#define E_TYPE_WEB_VIEW_GTKHTML \
+ (e_web_view_gtkhtml_get_type ())
+#define E_WEB_VIEW_GTKHTML(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST \
+ ((obj), E_TYPE_WEB_VIEW_GTKHTML, EWebViewGtkHTML))
+#define E_WEB_VIEW_GTKHTML_CLASS(cls) \
+ (G_TYPE_CHECK_CLASS_CAST \
+ ((cls), E_TYPE_WEB_VIEW_GTKHTML, EWebViewGtkHTMLClass))
+#define E_IS_WEB_VIEW_GTKHTML(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE \
+ ((obj), E_TYPE_WEB_VIEW_GTKHTML))
+#define E_IS_WEB_VIEW_GTKHTML_CLASS(cls) \
+ (G_TYPE_CHECK_CLASS_TYPE \
+ ((cls), E_TYPE_WEB_VIEW_GTKHTML))
+#define E_WEB_VIEW_GTKHTML_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS \
+ ((obj), E_TYPE_WEB_VIEW_GTKHTML, EWebViewGtkHTMLClass))
+
+G_BEGIN_DECLS
+
+typedef struct _EWebViewGtkHTML EWebViewGtkHTML;
+typedef struct _EWebViewGtkHTMLClass EWebViewGtkHTMLClass;
+typedef struct _EWebViewGtkHTMLPrivate EWebViewGtkHTMLPrivate;
+
+struct _EWebViewGtkHTML {
+ GtkHTML parent;
+ EWebViewGtkHTMLPrivate *priv;
+};
+
+struct _EWebViewGtkHTMLClass {
+ GtkHTMLClass parent_class;
+
+ /* Methods */
+ gchar * (*extract_uri) (EWebViewGtkHTML *web_view,
+ GdkEventButton *event,
+ GtkHTML *frame);
+ void (*hovering_over_link) (EWebViewGtkHTML *web_view,
+ const gchar *title,
+ const gchar *uri);
+ void (*link_clicked) (EWebViewGtkHTML *web_view,
+ const gchar *uri);
+ void (*load_string) (EWebViewGtkHTML *web_view,
+ const gchar *load_string);
+
+ /* Signals */
+ void (*copy_clipboard) (EWebViewGtkHTML *web_view);
+ void (*cut_clipboard) (EWebViewGtkHTML *web_view);
+ void (*paste_clipboard) (EWebViewGtkHTML *web_view);
+ gboolean (*popup_event) (EWebViewGtkHTML *web_view,
+ GdkEventButton *event,
+ const gchar *uri);
+ void (*status_message) (EWebViewGtkHTML *web_view,
+ const gchar *status_message);
+ void (*stop_loading) (EWebViewGtkHTML *web_view);
+ void (*update_actions) (EWebViewGtkHTML *web_view);
+ gboolean (*process_mailto) (EWebViewGtkHTML *web_view,
+ const gchar *mailto_uri);
+};
+
+GType e_web_view_gtkhtml_get_type (void);
+GtkWidget * e_web_view_gtkhtml_new (void);
+void e_web_view_gtkhtml_clear (EWebViewGtkHTML *web_view);
+void e_web_view_gtkhtml_load_string (EWebViewGtkHTML *web_view,
+ const gchar *string);
+gboolean e_web_view_gtkhtml_get_animate (EWebViewGtkHTML *web_view);
+void e_web_view_gtkhtml_set_animate (EWebViewGtkHTML *web_view,
+ gboolean animate);
+gboolean e_web_view_gtkhtml_get_caret_mode (EWebViewGtkHTML *web_view);
+void e_web_view_gtkhtml_set_caret_mode (EWebViewGtkHTML *web_view,
+ gboolean caret_mode);
+GtkTargetList * e_web_view_gtkhtml_get_copy_target_list (EWebViewGtkHTML *web_view);
+gboolean e_web_view_gtkhtml_get_disable_printing (EWebViewGtkHTML *web_view);
+void e_web_view_gtkhtml_set_disable_printing (EWebViewGtkHTML *web_view,
+ gboolean disable_printing);
+gboolean e_web_view_gtkhtml_get_disable_save_to_disk
+ (EWebViewGtkHTML *web_view);
+void e_web_view_gtkhtml_set_disable_save_to_disk
+ (EWebViewGtkHTML *web_view,
+ gboolean disable_save_to_disk);
+gboolean e_web_view_gtkhtml_get_editable (EWebViewGtkHTML *web_view);
+void e_web_view_gtkhtml_set_editable (EWebViewGtkHTML *web_view,
+ gboolean editable);
+gboolean e_web_view_gtkhtml_get_inline_spelling (EWebViewGtkHTML *web_view);
+void e_web_view_gtkhtml_set_inline_spelling (EWebViewGtkHTML *web_view,
+ gboolean inline_spelling);
+gboolean e_web_view_gtkhtml_get_magic_links (EWebViewGtkHTML *web_view);
+void e_web_view_gtkhtml_set_magic_links (EWebViewGtkHTML *web_view,
+ gboolean magic_links);
+gboolean e_web_view_gtkhtml_get_magic_smileys (EWebViewGtkHTML *web_view);
+void e_web_view_gtkhtml_set_magic_smileys (EWebViewGtkHTML *web_view,
+ gboolean magic_smileys);
+const gchar * e_web_view_gtkhtml_get_selected_uri (EWebViewGtkHTML *web_view);
+void e_web_view_gtkhtml_set_selected_uri (EWebViewGtkHTML *web_view,
+ const gchar *selected_uri);
+GdkPixbufAnimation *
+ e_web_view_gtkhtml_get_cursor_image (EWebViewGtkHTML *web_view);
+void e_web_view_gtkhtml_set_cursor_image (EWebViewGtkHTML *web_view,
+ GdkPixbufAnimation *animation);
+GtkAction * e_web_view_gtkhtml_get_open_proxy (EWebViewGtkHTML *web_view);
+void e_web_view_gtkhtml_set_open_proxy (EWebViewGtkHTML *web_view,
+ GtkAction *open_proxy);
+GtkTargetList * e_web_view_gtkhtml_get_paste_target_list
+ (EWebViewGtkHTML *web_view);
+GtkAction * e_web_view_gtkhtml_get_print_proxy (EWebViewGtkHTML *web_view);
+void e_web_view_gtkhtml_set_print_proxy (EWebViewGtkHTML *web_view,
+ GtkAction *print_proxy);
+GtkAction * e_web_view_gtkhtml_get_save_as_proxy (EWebViewGtkHTML *web_view);
+void e_web_view_gtkhtml_set_save_as_proxy (EWebViewGtkHTML *web_view,
+ GtkAction *save_as_proxy);
+GtkAction * e_web_view_gtkhtml_get_action (EWebViewGtkHTML *web_view,
+ const gchar *action_name);
+GtkActionGroup *e_web_view_gtkhtml_get_action_group (EWebViewGtkHTML *web_view,
+ const gchar *group_name);
+gchar * e_web_view_gtkhtml_extract_uri (EWebViewGtkHTML *web_view,
+ GdkEventButton *event,
+ GtkHTML *frame);
+void e_web_view_gtkhtml_copy_clipboard (EWebViewGtkHTML *web_view);
+void e_web_view_gtkhtml_cut_clipboard (EWebViewGtkHTML *web_view);
+gboolean e_web_view_gtkhtml_is_selection_active (EWebViewGtkHTML *web_view);
+void e_web_view_gtkhtml_paste_clipboard (EWebViewGtkHTML *web_view);
+gboolean e_web_view_gtkhtml_scroll_forward (EWebViewGtkHTML *web_view);
+gboolean e_web_view_gtkhtml_scroll_backward (EWebViewGtkHTML *web_view);
+void e_web_view_gtkhtml_select_all (EWebViewGtkHTML *web_view);
+void e_web_view_gtkhtml_unselect_all (EWebViewGtkHTML *web_view);
+void e_web_view_gtkhtml_zoom_100 (EWebViewGtkHTML *web_view);
+void e_web_view_gtkhtml_zoom_in (EWebViewGtkHTML *web_view);
+void e_web_view_gtkhtml_zoom_out (EWebViewGtkHTML *web_view);
+GtkUIManager * e_web_view_gtkhtml_get_ui_manager (EWebViewGtkHTML *web_view);
+GtkWidget * e_web_view_gtkhtml_get_popup_menu (EWebViewGtkHTML *web_view);
+void e_web_view_gtkhtml_show_popup_menu (EWebViewGtkHTML *web_view,
+ GdkEventButton *event,
+ GtkMenuPositionFunc func,
+ gpointer user_data);
+void e_web_view_gtkhtml_status_message (EWebViewGtkHTML *web_view,
+ const gchar *status_message);
+void e_web_view_gtkhtml_stop_loading (EWebViewGtkHTML *web_view);
+void e_web_view_gtkhtml_update_actions (EWebViewGtkHTML *web_view);
+
+G_END_DECLS
+
+#endif /* E_WEB_VIEW_GTKHTML_H */