From fa9051e04051156a9e11e2af72a0d7342f4ea2e4 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sun, 6 Sep 2009 19:23:57 -0400 Subject: Finish killing Bonobo. --- widgets/misc/e-web-view.h | 119 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 widgets/misc/e-web-view.h (limited to 'widgets/misc/e-web-view.h') diff --git a/widgets/misc/e-web-view.h b/widgets/misc/e-web-view.h new file mode 100644 index 0000000000..3bce2b4887 --- /dev/null +++ b/widgets/misc/e-web-view.h @@ -0,0 +1,119 @@ +/* + * e-web-view.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 + * + * + * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) + * + */ + +/* 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_H +#define E_WEB_VIEW_H + +#include + +/* Standard GObject macros */ +#define E_TYPE_WEB_VIEW \ + (e_web_view_get_type ()) +#define E_WEB_VIEW(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST \ + ((obj), E_TYPE_WEB_VIEW, EWebView)) +#define E_WEB_VIEW_CLASS(cls) \ + (G_TYPE_CHECK_CLASS_CAST \ + ((cls), E_TYPE_WEB_VIEW, EWebViewClass)) +#define E_IS_WEB_VIEW(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE \ + ((obj), E_TYPE_WEB_VIEW)) +#define E_IS_WEB_VIEW_CLASS(cls) \ + (G_TYPE_CHECK_CLASS_TYPE \ + ((cls), E_TYPE_WEB_VIEW)) +#define E_WEB_VIEW_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS \ + ((obj), E_TYPE_WEB_VIEW, EWebViewClass)) + +G_BEGIN_DECLS + +typedef struct _EWebView EWebView; +typedef struct _EWebViewClass EWebViewClass; +typedef struct _EWebViewPrivate EWebViewPrivate; + +struct _EWebView { + GtkHTML parent; + EWebViewPrivate *priv; +}; + +struct _EWebViewClass { + GtkHTMLClass parent_class; + + /* Methods */ + gchar * (*extract_uri) (EWebView *web_view, + GdkEventButton *event, + GtkHTML *frame); + + /* Signals */ + gboolean (*popup_event) (EWebView *web_view, + GdkEventButton *event, + const gchar *uri); + void (*status_message) (EWebView *web_view, + const gchar *status_message); + void (*stop_loading) (EWebView *web_view); + void (*update_actions) (EWebView *web_view); +}; + +GType e_web_view_get_type (void); +GtkWidget * e_web_view_new (void); +void e_web_view_clear (EWebView *web_view); +void e_web_view_load_string (EWebView *web_view, + const gchar *string); +gboolean e_web_view_get_animate (EWebView *web_view); +void e_web_view_set_animate (EWebView *web_view, + gboolean animate); +gboolean e_web_view_get_caret_mode (EWebView *web_view); +void e_web_view_set_caret_mode (EWebView *web_view, + gboolean caret_mode); +const gchar * e_web_view_get_selected_uri (EWebView *web_view); +void e_web_view_set_selected_uri (EWebView *web_view, + const gchar *selected_uri); +GtkAction * e_web_view_get_action (EWebView *web_view, + const gchar *action_name); +GtkActionGroup *e_web_view_get_action_group (EWebView *web_view, + const gchar *group_name); +gchar * e_web_view_extract_uri (EWebView *web_view, + GdkEventButton *event, + GtkHTML *frame); +gboolean e_web_view_scroll_forward (EWebView *web_view); +gboolean e_web_view_scroll_backward (EWebView *web_view); +GtkUIManager * e_web_view_get_ui_manager (EWebView *web_view); +GtkWidget * e_web_view_get_popup_menu (EWebView *web_view); +void e_web_view_show_popup_menu (EWebView *web_view, + GdkEventButton *event, + GtkMenuPositionFunc func, + gpointer user_data); +void e_web_view_status_message (EWebView *web_view, + const gchar *status_message); +void e_web_view_stop_loading (EWebView *web_view); +void e_web_view_update_actions (EWebView *web_view); + +G_END_DECLS + +#endif /* E_WEB_VIEW_H */ -- cgit v1.2.3