/*
 * 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 <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_H
#define E_WEB_VIEW_H

#include <gtkhtml/gtkhtml.h>

/* 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);
	void		(*hovering_over_link)	(EWebView *web_view,
						 const gchar *title,
						 const gchar *uri);
	void		(*link_clicked)		(EWebView *web_view,
						 const gchar *uri);
	void		(*load_string)		(EWebView *web_view,
						 const gchar *load_string);

	/* Signals */
	void		(*copy_clipboard)	(EWebView *web_view);
	void		(*cut_clipboard)	(EWebView *web_view);
	void		(*paste_clipboard)	(EWebView *web_view);
	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);
	gboolean	(*process_mailto)	(EWebView *web_view,
						 const gchar *mailto_uri);
};

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);
GtkTargetList *	e_web_view_get_copy_target_list	(EWebView *web_view);
gboolean	e_web_view_get_disable_printing	(EWebView *web_view);
void		e_web_view_set_disable_printing	(EWebView *web_view,
						 gboolean disable_printing);
gboolean	e_web_view_get_disable_save_to_disk
						(EWebView *web_view);
void		e_web_view_set_disable_save_to_disk
						(EWebView *web_view,
						 gboolean disable_save_to_disk);
gboolean	e_web_view_get_editable		(EWebView *web_view);
void		e_web_view_set_editable		(EWebView *web_view,
						 gboolean editable);
gboolean	e_web_view_get_inline_spelling	(EWebView *web_view);
void		e_web_view_set_inline_spelling	(EWebView *web_view,
						 gboolean inline_spelling);
gboolean	e_web_view_get_magic_links	(EWebView *web_view);
void		e_web_view_set_magic_links	(EWebView *web_view,
						 gboolean magic_links);
gboolean	e_web_view_get_magic_smileys	(EWebView *web_view);
void		e_web_view_set_magic_smileys	(EWebView *web_view,
						 gboolean magic_smileys);
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);
GdkPixbufAnimation *
		e_web_view_get_cursor_image	(EWebView *web_view);
void		e_web_view_set_cursor_image	(EWebView *web_view,
						 GdkPixbufAnimation *animation);
const gchar *	e_web_view_get_cursor_image_src	(EWebView *web_view);
void		e_web_view_set_cursor_image_src	(EWebView *web_view,
						 const gchar *src_uri);
GtkAction *	e_web_view_get_open_proxy	(EWebView *web_view);
void		e_web_view_set_open_proxy	(EWebView *web_view,
						 GtkAction *open_proxy);
GtkTargetList *	e_web_view_get_paste_target_list
						(EWebView *web_view);
GtkAction *	e_web_view_get_print_proxy	(EWebView *web_view);
void		e_web_view_set_print_proxy	(EWebView *web_view,
						 GtkAction *print_proxy);
GtkAction *	e_web_view_get_save_as_proxy	(EWebView *web_view);
void		e_web_view_set_save_as_proxy	(EWebView *web_view,
						 GtkAction *save_as_proxy);
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);
void		e_web_view_copy_clipboard	(EWebView *web_view);
void		e_web_view_cut_clipboard	(EWebView *web_view);
gboolean	e_web_view_is_selection_active	(EWebView *web_view);
void		e_web_view_paste_clipboard	(EWebView *web_view);
gboolean	e_web_view_scroll_forward	(EWebView *web_view);
gboolean	e_web_view_scroll_backward	(EWebView *web_view);
void		e_web_view_select_all		(EWebView *web_view);
void		e_web_view_unselect_all		(EWebView *web_view);
void		e_web_view_zoom_100		(EWebView *web_view);
void		e_web_view_zoom_in		(EWebView *web_view);
void		e_web_view_zoom_out		(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 */
 href='/~lantw44/cgit/cgit.cgi/freebsd-ports/refs/?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=b028b113ef13fa7972bb45d681d7a0abe47c40a6'>refs</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/log/x11-fm/xfe?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2'>log</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/tree/x11-fm/xfe?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=b028b113ef13fa7972bb45d681d7a0abe47c40a6'>tree</a><a class='active' href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/x11-fm/xfe?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=b028b113ef13fa7972bb45d681d7a0abe47c40a6'>commit</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/diff/x11-fm/xfe?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=b028b113ef13fa7972bb45d681d7a0abe47c40a6'>diff</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/stats/x11-fm/xfe?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2'>stats</a></td><td class='form'><form class='right' method='get' action='/~lantw44/cgit/cgit.cgi/freebsd-ports/log/x11-fm/xfe'>
<input type='hidden' name='h' value='dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2'/><input type='hidden' name='id' value='b028b113ef13fa7972bb45d681d7a0abe47c40a6'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=b028b113ef13fa7972bb45d681d7a0abe47c40a6'>root</a>/<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/x11-fm?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=b028b113ef13fa7972bb45d681d7a0abe47c40a6'>x11-fm</a>/<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/x11-fm/xfe?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=b028b113ef13fa7972bb45d681d7a0abe47c40a6'>xfe</a></div><div class='content'><div class='cgit-panel'><b>diff options</b><form method='get'><input type='hidden' name='h' value='dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2'/><input type='hidden' name='id' value='b028b113ef13fa7972bb45d681d7a0abe47c40a6'/><table><tr><td colspan='2'/></tr><tr><td class='label'>context:</td><td class='ctrl'><select name='context' onchange='this.form.submit();'><option value='1'>1</option><option value='2'>2</option><option value='3' selected='selected'>3</option><option value='4'>4</option><option value='5'>5</option><option value='6'>6</option><option value='7'>7</option><option value='8'>8</option><option value='9'>9</option><option value='10'>10</option><option value='15'>15</option><option value='20'>20</option><option value='25'>25</option><option value='30'>30</option><option value='35'>35</option><option value='40'>40</option></select></td></tr><tr><td class='label'>space:</td><td class='ctrl'><select name='ignorews' onchange='this.form.submit();'><option value='0' selected='selected'>include</option><option value='1'>ignore</option></select></td></tr><tr><td class='label'>mode:</td><td class='ctrl'><select name='dt' onchange='this.form.submit();'><option value='0' selected='selected'>unified</option><option value='1'>ssdiff</option><option value='2'>stat only</option></select></td></tr><tr><td/><td class='ctrl'><noscript><input type='submit' value='reload'/></noscript></td></tr></table></form></div><table summary='commit info' class='commit-info'>
<tr><th>author</th><td>rafan &lt;rafan@FreeBSD.org&gt;</td><td class='right'>2007-07-23 17:36:51 +0800</td></tr>
<tr><th>committer</th><td>rafan &lt;rafan@FreeBSD.org&gt;</td><td class='right'>2007-07-23 17:36:51 +0800</td></tr>
<tr><th>commit</th><td colspan='2' class='sha1'><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/x11-fm/xfe?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=b028b113ef13fa7972bb45d681d7a0abe47c40a6'>b028b113ef13fa7972bb45d681d7a0abe47c40a6</a> (<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/patch/x11-fm/xfe?id=b028b113ef13fa7972bb45d681d7a0abe47c40a6'>patch</a>)</td></tr>
<tr><th>tree</th><td colspan='2' class='sha1'><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/tree/?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=b028b113ef13fa7972bb45d681d7a0abe47c40a6'>a76a27ca09341f754b493c264ee71c912a553d89</a> /<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/tree/x11-fm/xfe?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=b028b113ef13fa7972bb45d681d7a0abe47c40a6'>x11-fm/xfe</a></td></tr>
<tr><th>parent</th><td colspan='2' class='sha1'><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/x11-fm/xfe?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=855b1df39bc3a6f03abf878d9c99b5ba0838ba35'>855b1df39bc3a6f03abf878d9c99b5ba0838ba35</a> (<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/diff/x11-fm/xfe?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=b028b113ef13fa7972bb45d681d7a0abe47c40a6&amp;id2=855b1df39bc3a6f03abf878d9c99b5ba0838ba35'>diff</a>)</td></tr><tr><th>download</th><td colspan='2' class='sha1'><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/snapshot/freebsd-ports-b028b113ef13fa7972bb45d681d7a0abe47c40a6.tar.gz'>freebsd-ports-b028b113ef13fa7972bb45d681d7a0abe47c40a6.tar.gz</a><br/><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/snapshot/freebsd-ports-b028b113ef13fa7972bb45d681d7a0abe47c40a6.tar.zst'>freebsd-ports-b028b113ef13fa7972bb45d681d7a0abe47c40a6.tar.zst</a><br/><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/snapshot/freebsd-ports-b028b113ef13fa7972bb45d681d7a0abe47c40a6.zip'>freebsd-ports-b028b113ef13fa7972bb45d681d7a0abe47c40a6.zip</a><br/></td></tr></table>
<div class='commit-subject'>- Set --mandir and --infodir in CONFIGURE_ARGS if the configure script</div><div class='commit-msg'>  supports them.  This is determined by running ``configure --help'' in
  do-configure target and set the shell variable _LATE_CONFIGURE_ARGS
  which is then passed to CONFIGURE_ARGS.
- Remove --mandir and --infodir in ports' Makefile where applicable
  Few ports use REINPLACE_CMD to achieve the same effect, remove them too.
- Correct some manual pages location from PREFIX/man to MANPREFIX/man
- Define INFO_PATH where necessary
- Document that .info files are installed in a subdirectory relative to
  PREFIX/INFO_PATH and slightly change add-plist-info to use INFO_PATH and
  subdirectory detection.

PR:		ports/111470
Approved by:	portmgr
Discussed with:	stas (Mk/*), gerald (info related stuffs)
Tested by:	pointyhat exp run
</div><div class='diffstat-header'><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/diff/?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=b028b113ef13fa7972bb45d681d7a0abe47c40a6'>Diffstat</a> (limited to 'x11-fm/xfe')</div><table summary='diffstat' class='diffstat'><tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/diff/x11-fm/xfe/Makefile?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=b028b113ef13fa7972bb45d681d7a0abe47c40a6'>x11-fm/xfe/Makefile</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='3%'><tr><td class='add' style='width: 33.3%;'/><td class='rem' style='width: 66.7%;'/><td class='none' style='width: 0.0%;'/></tr></table></td></tr>
</table><div class='diffstat-summary'>1 files changed, 1 insertions, 2 deletions</div><table summary='diff' class='diff'><tr><td>commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/devel?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=cc4232d81b2fb48f49686dc1a6963d689ad701db'>Add LICENSE</a></td><td>sunpoet</td><td><span title='2018-06-05 02:05:45 +0800'>2018-06-05</span></td><td>2</td><td><span class='deletions'>-1</span>/<span class='insertions'>+4</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/devel?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=9ee3a873a97ca152832780a9d72f01530c85b94e'>Add LICENSE</a></td><td>sunpoet</td><td><span title='2018-06-05 02:05:40 +0800'>2018-06-05</span></td><td>2</td><td><span class='deletions'>-1</span>/<span class='insertions'>+5</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/devel?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=e4fbeef0f537f6accd4b9438919f74d3758694d2'>Add LICENSE</a></td><td>sunpoet</td><td><span title='2018-06-05 02:05:34 +0800'>2018-06-05</span></td><td>2</td><td><span class='deletions'>-1</span>/<span class='insertions'>+5</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/devel?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=69292b24944f54888d125cf449f510ce3709ff1e'>Add LICENSE</a></td><td>sunpoet</td><td><span title='2018-06-05 02:05:28 +0800'>2018-06-05</span></td><td>2</td><td><span class='deletions'>-1</span>/<span class='insertions'>+5</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/devel?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=48b401cf535c5a61c53c98f795d033af016f56be'>Add LICENSE</a></td><td>sunpoet</td><td><span title='2018-06-05 02:05:23 +0800'>2018-06-05</span></td><td>2</td><td><span class='deletions'>-5</span>/<span class='insertions'>+7</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/devel?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=eee6fc882afbac21fabd607ce16a77fa5ffbf762'>Add LICENSE</a></td><td>sunpoet</td><td><span title='2018-06-05 02:05:18 +0800'>2018-06-05</span></td><td>2</td><td><span class='deletions'>-1</span>/<span class='insertions'>+4</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/devel?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=3266c772105f78cf7a393a8a31d493df8125ccb8'>Add LICENSE</a></td><td>sunpoet</td><td><span title='2018-06-05 02:05:12 +0800'>2018-06-05</span></td><td>2</td><td><span class='deletions'>-1</span>/<span class='insertions'>+4</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/devel?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=5c8b5c1db98f3ba54660f642da53f06104368458'>Add LICENSE</a></td><td>sunpoet</td><td><span title='2018-06-05 02:05:07 +0800'>2018-06-05</span></td><td>2</td><td><span class='deletions'>-2</span>/<span class='insertions'>+5</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/devel?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=01f6b0ce8e245631f977a3df6f3523d7366b87ee'>Add LICENSE</a></td><td>sunpoet</td><td><span title='2018-06-05 02:05:01 +0800'>2018-06-05</span></td><td>2</td><td><span class='deletions'>-1</span>/<span class='insertions'>+5</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/devel?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=95a83ee9bf1d35aea42d611c3d7185c816850627'>Fix MASTER_SITES to make it fetchable</a></td><td>sunpoet</td><td><span title='2018-06-05 02:04:56 +0800'>2018-06-05</span></td><td>2</td><td><span class='deletions'>-2</span>/<span class='insertions'>+6</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/devel?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=895b4a80c60f11a6c8a1c97b9a41df1f610514de'>Clean up pkg-descr</a></td><td>sunpoet</td><td><span title='2018-06-05 02:04:51 +0800'>2018-06-05</span>