guile-gtk-general
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] webkit: New library.


From: Jan Nieuwenhuizen
Subject: [PATCH] webkit: New library.
Date: Tue, 04 Jun 2019 19:29:55 +0200

Hi,

As discussed on irc, find a minimal webkit1gtk patch included.  Also
available on `wip' here: https://gitlab.com/janneke/guile-gnome.git

I have only wrapped two header files, enough to create a new web browser
and load an url.  I'm planning to include this for inclusion in Guix.

Greetings,
janneke

>From 1a8749af805cb18661cb687e6e236c1678ded51f Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <address@hidden>
Date: Thu, 30 May 2019 22:53:56 +0200
Subject: [PATCH] webkit: New library.

* .gitignore: Update for webkit.
* Makefile.am (SUBDIRS): Add webkit.
* common.mk (PACKAGES): Likewise.
* configure.ac: Check for webkit1-1.0 2.4.11, the latest version to
support gtk2.
* defs/gnome/defs/Makefile.am (webkit): New target.
(WEBKIT_INCLS): New variable.  Only wrap the minimal required set.
* defs/gnome/defs/webkit-types.defs: New file.
* defs/gnome/defs/webkit.defs (webkit_web_view_get_type): New file.
* dev-environ.in (builddir): Add webkit, also add
GUILE_LOAD_COMPILED_PATH.
* webkit/.gitignore: New file.
* webkit/AUTHORS: New file.
* webkit/Makefile.am: New file.
* webkit/README: New file.
* webkit/doc/Makefile.am: New file.
* webkit/doc/guile-gnome-webkit.texi: New file.
* webkit/doc/overview.texi: New file.
* webkit/doc/undocumented.texi: New file.
* webkit/examples/Makefile.am: New file.
* webkit/examples/browser.scm: New file.
* webkit/gnome/Makefile.am: New file.
* webkit/gnome/gw/Makefile.am: New file.
* webkit/tests/Makefile.am: New file.
---
 .gitignore                         |   2 +
 Makefile.am                        |   3 +-
 common.mk                          |   2 +-
 configure.ac                       |  14 +
 defs/gnome/defs/Makefile.am        |  26 ++
 defs/gnome/defs/webkit-types.defs  |  70 ++++
 defs/gnome/defs/webkit.defs        | 630 +++++++++++++++++++++++++++++
 dev-environ.in                     |   7 +-
 webkit/.gitignore                  |   9 +
 webkit/AUTHORS                     |  13 +
 webkit/Makefile.am                 |   3 +
 webkit/README                      |  32 ++
 webkit/doc/Makefile.am             |  15 +
 webkit/doc/guile-gnome-webkit.texi |  69 ++++
 webkit/doc/overrides.texi          |   0
 webkit/doc/overview.texi           |  16 +
 webkit/doc/undocumented.texi       |  10 +
 webkit/examples/Makefile.am        |   1 +
 webkit/examples/browser.scm        |  70 ++++
 webkit/gnome/Makefile.am           |  13 +
 webkit/gnome/gw/Makefile.am        |  31 ++
 webkit/gnome/gw/webkit-spec.scm    |  51 +++
 webkit/gnome/gw/webkit-support.c   |  26 ++
 webkit/gnome/gw/webkit-support.h   |  42 ++
 webkit/gnome/overrides/Makefile.am |   8 +
 webkit/gnome/overrides/webkit.defs |  20 +
 webkit/gnome/webkit.scm            |  36 ++
 webkit/tests/Makefile.am           |   3 +
 28 files changed, 1219 insertions(+), 3 deletions(-)
 create mode 100644 defs/gnome/defs/webkit-types.defs
 create mode 100644 defs/gnome/defs/webkit.defs
 create mode 100644 webkit/.gitignore
 create mode 100644 webkit/AUTHORS
 create mode 100644 webkit/Makefile.am
 create mode 100644 webkit/README
 create mode 100644 webkit/doc/Makefile.am
 create mode 100644 webkit/doc/guile-gnome-webkit.texi
 create mode 100644 webkit/doc/overrides.texi
 create mode 100644 webkit/doc/overview.texi
 create mode 100644 webkit/doc/undocumented.texi
 create mode 100644 webkit/examples/Makefile.am
 create mode 100755 webkit/examples/browser.scm
 create mode 100644 webkit/gnome/Makefile.am
 create mode 100644 webkit/gnome/gw/Makefile.am
 create mode 100644 webkit/gnome/gw/webkit-spec.scm
 create mode 100644 webkit/gnome/gw/webkit-support.c
 create mode 100644 webkit/gnome/gw/webkit-support.h
 create mode 100644 webkit/gnome/overrides/Makefile.am
 create mode 100644 webkit/gnome/overrides/webkit.defs
 create mode 100644 webkit/gnome/webkit.scm
 create mode 100644 webkit/tests/Makefile.am

diff --git a/.gitignore b/.gitignore
index 8cc3157..f85edc5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -73,3 +73,5 @@ m4/lt~obsolete.m4
 /pango/doc/pango/version.texi
 /pango/doc/pangocairo/guile-gnome-pangocairo.info
 /pango/doc/pangocairo/version.texi
+/webkit/doc/guile-gnome-webkit.info
+/webkit/doc/version.texi
diff --git a/Makefile.am b/Makefile.am
index 1b5a3c4..a67e800 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -11,7 +11,8 @@ SUBDIRS = \
        libgnomecanvas  \
        libgnome        \
        libglade        \
-       gconf
+       gconf           \
+       webkit
 # corba
 # gnome-vfs
 
diff --git a/common.mk b/common.mk
index ade18cf..02fe226 100644
--- a/common.mk
+++ b/common.mk
@@ -38,7 +38,7 @@ SUFFIXES = .x .doc
 
 GUILE_SNARF_CFLAGS = $(DEFS) $(AM_CFLAGS) $(GUILE_CFLAGS) $(G_WRAP_CFLAGS)
 
-PACKAGES = atk cairo defs gconf glib gtk libglade libgnome libgnomecanvas 
libgnomeui pango
+PACKAGES = atk cairo defs gconf glib gtk libglade libgnome libgnomecanvas 
libgnomeui pango webkit
 # gnome-vfs corba
 
 SOURCE_GUILE_PATH=$(shell echo $(addprefix $(abs_top_srcdir)/,$(PACKAGES)) | 
sed -e 's/ /:/g'):$(srcdir)
diff --git a/configure.ac b/configure.ac
index d38dd72..e8a8001 100644
--- a/configure.ac
+++ b/configure.ac
@@ -282,6 +282,13 @@ AC_SUBST(PANGOCAIRO_LIBS)
 AM_CONDITIONAL(HAVE_PANGOCAIRO, $HAVE_PANGOCAIRO)
 record_check pango $HAVE_PANGO
 
+# webkit
+PKG_CHECK_MODULES(WEBKIT, webkit-1.0 >= 2.4.11, HAVE_WEBKIT=true, 
HAVE_WEBKIT=false)
+AC_SUBST(WEBKIT_CFLAGS)
+AC_SUBST(WEBKIT_LIBS)
+AM_CONDITIONAL(HAVE_WEBKIT, $HAVE_WEBKIT)
+record_check webkit $HAVE_WEBKIT
+
 if test -z "$PACKAGES_TO_BUILD"; then
     AC_MSG_ERROR([All wrappers failed their prerequisites.
 
@@ -432,5 +439,12 @@ gtk/guile-gnome-gtk.pc
 gtk/guile-gnome-gtk-uninstalled.pc
 libgnomeui/guile-gnome-libgnomeui.pc
 libgnomeui/guile-gnome-libgnomeui-uninstalled.pc
+webkit/examples/Makefile
+webkit/doc/Makefile
+webkit/tests/Makefile
+webkit/gnome/gw/Makefile
+webkit/gnome/Makefile
+webkit/gnome/overrides/Makefile
+webkit/Makefile
 )
 AC_OUTPUT
diff --git a/defs/gnome/defs/Makefile.am b/defs/gnome/defs/Makefile.am
index 4936dae..79a3ba4 100644
--- a/defs/gnome/defs/Makefile.am
+++ b/defs/gnome/defs/Makefile.am
@@ -123,3 +123,29 @@ gconf:
           --with-header='(include type-ignores) (include "gconf-types.defs") 
(include overrides)' \
           $(DEFS_HEADER_DIR)/gconf/2/gconf/*.h > gconf.defs
 
+WEBKIT_INCLS = webkit/webkitwebview.h\
+       webkit/webkitenumtypes.h
+
+# WebKit uses camel case in a way that confuses (gnome gobject util)
+# Type use the WebKit prefix, e.g. WebKitWebView, while the member
+# functions, e.g., are named webkit_web_view_new, instead of
+# web_kit_web_view_new.  We repair that by using "Webkit"; see also
+# webkit/gnome/gw/webkit-support.h
+webkit:
+       ../../../h2def.py --types \
+          $(addprefix $(DEFS_HEADER_DIR)/webkitgtk-1.0/,$(WEBKIT_INCLS)) \
+          | sed \
+               -e 's,WEB_TYPE_KIT,WEBKIT_TYPE,'g\
+               -e 's,"Web","WebKit",'g\
+               -e 's, Kit, ,'g\
+               -e 's,WebKit,Webkit,'g\
+          > webkit-types.defs
+       ../../../h2def.py --procs \
+          --with-header='(include "common-ignores.defs") (include 
"webkit-types.defs") (include overrides)' \
+          $(addprefix $(DEFS_HEADER_DIR)/webkitgtk-1.0/,$(WEBKIT_INCLS)) \
+          | sed \
+               -e 's,WEB_TYPE_KIT,WEBKIT_TYPE,'g\
+               -e 's,WEBKIT_API-void,none,'g\
+               -e 's,WEBKIT_API-,,'g\
+               -e 's,WebKit,Webkit,'g\
+          > webkit.defs
diff --git a/defs/gnome/defs/webkit-types.defs 
b/defs/gnome/defs/webkit-types.defs
new file mode 100644
index 0000000..aae7dca
--- /dev/null
+++ b/defs/gnome/defs/webkit-types.defs
@@ -0,0 +1,70 @@
+;; -*- scheme -*-
+;; Enumerations and flags ...
+
+(define-enum NavigationResponse
+  (in-module "Webkit")
+  (c-name "WebkitNavigationResponse")
+  (gtype-id "WEBKIT_TYPE_NAVIGATION_RESPONSE")
+  (values
+    '("accept" "WEBKIT_NAVIGATION_RESPONSE_ACCEPT")
+    '("ignore" "WEBKIT_NAVIGATION_RESPONSE_IGNORE")
+    '("download" "WEBKIT_NAVIGATION_RESPONSE_DOWNLOAD")
+  )
+)
+
+(define-enum WebViewTargetInfo
+  (in-module "Webkit")
+  (c-name "WebkitWebViewTargetInfo")
+  (gtype-id "WEBKIT_TYPE_WEB_VIEW_TARGET_INFO")
+  (values
+    '("html" "WEBKIT_WEB_VIEW_TARGET_INFO_HTML")
+    '("text" "WEBKIT_WEB_VIEW_TARGET_INFO_TEXT")
+    '("image" "WEBKIT_WEB_VIEW_TARGET_INFO_IMAGE")
+    '("uri-list" "WEBKIT_WEB_VIEW_TARGET_INFO_URI_LIST")
+    '("netscape-url" "WEBKIT_WEB_VIEW_TARGET_INFO_NETSCAPE_URL")
+  )
+)
+
+(define-enum WebViewViewMode
+  (in-module "Webkit")
+  (c-name "WebkitWebViewViewMode")
+  (gtype-id "WEBKIT_TYPE_WEB_VIEW_VIEW_MODE")
+  (values
+    '("windowed" "WEBKIT_WEB_VIEW_VIEW_MODE_WINDOWED")
+    '("floating" "WEBKIT_WEB_VIEW_VIEW_MODE_FLOATING")
+    '("fullscreen" "WEBKIT_WEB_VIEW_VIEW_MODE_FULLSCREEN")
+    '("maximized" "WEBKIT_WEB_VIEW_VIEW_MODE_MAXIMIZED")
+    '("minimized" "WEBKIT_WEB_VIEW_VIEW_MODE_MINIMIZED")
+  )
+)
+
+(define-enum SelectionAffinity
+  (in-module "Webkit")
+  (c-name "WebkitSelectionAffinity")
+  (gtype-id "WEBKIT_TYPE_SELECTION_AFFINITY")
+  (values
+    '("upstream" "WEBKIT_SELECTION_AFFINITY_UPSTREAM")
+    '("downstream" "WEBKIT_SELECTION_AFFINITY_DOWNSTREAM")
+  )
+)
+
+(define-enum InsertAction
+  (in-module "Webkit")
+  (c-name "WebkitInsertAction")
+  (gtype-id "WEBKIT_TYPE_INSERT_ACTION")
+  (values
+    '("typed" "WEBKIT_INSERT_ACTION_TYPED")
+    '("pasted" "WEBKIT_INSERT_ACTION_PASTED")
+    '("dropped" "WEBKIT_INSERT_ACTION_DROPPED")
+  )
+)
+
+;; -*- scheme -*-
+; object definitions ...
+(define-object WebView
+  (in-module "Webkit")
+  (parent "GtkContainer")
+  (c-name "WebkitWebView")
+  (gtype-id "WEBKIT_TYPE_WEB_VIEW")
+)
+
diff --git a/defs/gnome/defs/webkit.defs b/defs/gnome/defs/webkit.defs
new file mode 100644
index 0000000..bcc3f44
--- /dev/null
+++ b/defs/gnome/defs/webkit.defs
@@ -0,0 +1,630 @@
+;; -*- scheme -*-
+(include "common-ignores.defs") (include "webkit-types.defs") (include 
overrides)
+
+;; From 
/gnu/store/c7gg2x2ib92kpzjkqz217pccw2xas84b-webkitgtk-2.4.11/include/webkitgtk-1.0/webkit/webkitwebview.h
+
+(define-function webkit_web_view_get_type
+  (c-name "webkit_web_view_get_type")
+  (return-type "GType")
+)
+
+(define-function webkit_web_view_new
+  (c-name "webkit_web_view_new")
+  (is-constructor-of "WebkitWebView")
+  (return-type "GtkWidget*")
+)
+
+(define-method get_title
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_get_title")
+  (return-type "const-gchar*")
+)
+
+(define-method get_uri
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_get_uri")
+  (return-type "const-gchar*")
+)
+
+(define-method set_maintains_back_forward_list
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_set_maintains_back_forward_list")
+  (return-type "none")
+  (parameters
+    '("gboolean" "flag")
+  )
+)
+
+(define-method get_back_forward_list
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_get_back_forward_list")
+  (return-type "WebkitWebBackForwardList*")
+)
+
+(define-method go_to_back_forward_item
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_go_to_back_forward_item")
+  (return-type "gboolean")
+  (parameters
+    '("WebkitWebHistoryItem*" "item")
+  )
+)
+
+(define-method can_go_back
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_can_go_back")
+  (return-type "gboolean")
+)
+
+(define-method can_go_back_or_forward
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_can_go_back_or_forward")
+  (return-type "gboolean")
+  (parameters
+    '("gint" "steps")
+  )
+)
+
+(define-method can_go_forward
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_can_go_forward")
+  (return-type "gboolean")
+)
+
+(define-method go_back
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_go_back")
+  (return-type "none")
+)
+
+(define-method go_back_or_forward
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_go_back_or_forward")
+  (return-type "none")
+  (parameters
+    '("gint" "steps")
+  )
+)
+
+(define-method go_forward
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_go_forward")
+  (return-type "none")
+)
+
+(define-method stop_loading
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_stop_loading")
+  (return-type "none")
+)
+
+(define-method open
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_open")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "uri")
+  )
+)
+
+(define-method reload
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_reload")
+  (return-type "none")
+)
+
+(define-method reload_bypass_cache
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_reload_bypass_cache")
+  (return-type "none")
+)
+
+(define-method load_uri
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_load_uri")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "uri")
+  )
+)
+
+(define-method load_string
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_load_string")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "content")
+    '("const-gchar*" "mime_type")
+    '("const-gchar*" "encoding")
+    '("const-gchar*" "base_uri")
+  )
+)
+
+(define-method load_html_string
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_load_html_string")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "content")
+    '("const-gchar*" "base_uri")
+  )
+)
+
+(define-method load_request
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_load_request")
+  (return-type "none")
+  (parameters
+    '("WebkitNetworkRequest*" "request")
+  )
+)
+
+(define-method search_text
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_search_text")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "text")
+    '("gboolean" "case_sensitive")
+    '("gboolean" "forward")
+    '("gboolean" "wrap")
+  )
+)
+
+(define-method mark_text_matches
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_mark_text_matches")
+  (return-type "guint")
+  (parameters
+    '("const-gchar*" "string")
+    '("gboolean" "case_sensitive")
+    '("guint" "limit")
+  )
+)
+
+(define-method set_highlight_text_matches
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_set_highlight_text_matches")
+  (return-type "none")
+  (parameters
+    '("gboolean" "highlight")
+  )
+)
+
+(define-method unmark_text_matches
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_unmark_text_matches")
+  (return-type "none")
+)
+
+(define-method get_main_frame
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_get_main_frame")
+  (return-type "WebkitWebFrame*")
+)
+
+(define-method get_focused_frame
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_get_focused_frame")
+  (return-type "WebkitWebFrame*")
+)
+
+(define-method execute_script
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_execute_script")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "script")
+  )
+)
+
+(define-method can_cut_clipboard
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_can_cut_clipboard")
+  (return-type "gboolean")
+)
+
+(define-method can_copy_clipboard
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_can_copy_clipboard")
+  (return-type "gboolean")
+)
+
+(define-method can_paste_clipboard
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_can_paste_clipboard")
+  (return-type "gboolean")
+)
+
+(define-method cut_clipboard
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_cut_clipboard")
+  (return-type "none")
+)
+
+(define-method copy_clipboard
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_copy_clipboard")
+  (return-type "none")
+)
+
+(define-method paste_clipboard
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_paste_clipboard")
+  (return-type "none")
+)
+
+(define-method delete_selection
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_delete_selection")
+  (return-type "none")
+)
+
+(define-method has_selection
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_has_selection")
+  (return-type "gboolean")
+)
+
+(define-method select_all
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_select_all")
+  (return-type "none")
+)
+
+(define-method get_editable
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_get_editable")
+  (return-type "gboolean")
+)
+
+(define-method set_editable
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_set_editable")
+  (return-type "none")
+  (parameters
+    '("gboolean" "flag")
+  )
+)
+
+(define-method get_copy_target_list
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_get_copy_target_list")
+  (return-type "GtkTargetList*")
+)
+
+(define-method get_paste_target_list
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_get_paste_target_list")
+  (return-type "GtkTargetList*")
+)
+
+(define-method set_settings
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_set_settings")
+  (return-type "none")
+  (parameters
+    '("WebkitWebSettings*" "settings")
+  )
+)
+
+(define-method get_settings
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_get_settings")
+  (return-type "WebkitWebSettings*")
+)
+
+(define-method get_inspector
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_get_inspector")
+  (return-type "WebkitWebInspector*")
+)
+
+(define-method get_window_features
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_get_window_features")
+  (return-type "WebkitWebWindowFeatures*")
+)
+
+(define-method can_show_mime_type
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_can_show_mime_type")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "mime_type")
+  )
+)
+
+(define-method get_transparent
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_get_transparent")
+  (return-type "gboolean")
+)
+
+(define-method set_transparent
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_set_transparent")
+  (return-type "none")
+  (parameters
+    '("gboolean" "flag")
+  )
+)
+
+(define-method get_zoom_level
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_get_zoom_level")
+  (return-type "gfloat")
+)
+
+(define-method set_zoom_level
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_set_zoom_level")
+  (return-type "none")
+  (parameters
+    '("gfloat" "zoom_level")
+  )
+)
+
+(define-method zoom_in
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_zoom_in")
+  (return-type "none")
+)
+
+(define-method zoom_out
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_zoom_out")
+  (return-type "none")
+)
+
+(define-method get_full_content_zoom
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_get_full_content_zoom")
+  (return-type "gboolean")
+)
+
+(define-method set_full_content_zoom
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_set_full_content_zoom")
+  (return-type "none")
+  (parameters
+    '("gboolean" "full_content_zoom")
+  )
+)
+
+(define-method get_encoding
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_get_encoding")
+  (return-type "const-gchar*")
+)
+
+(define-method set_custom_encoding
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_set_custom_encoding")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "encoding")
+  )
+)
+
+(define-method get_custom_encoding
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_get_custom_encoding")
+  (return-type "const-char*")
+)
+
+(define-method set_view_mode
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_set_view_mode")
+  (return-type "none")
+  (parameters
+    '("WebkitWebViewViewMode" "mode")
+  )
+)
+
+(define-method get_view_mode
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_get_view_mode")
+  (return-type "WebkitWebViewViewMode")
+)
+
+(define-method move_cursor
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_move_cursor")
+  (return-type "none")
+  (parameters
+    '("GtkMovementStep" "step")
+    '("gint" "count")
+  )
+)
+
+(define-method get_load_status
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_get_load_status")
+  (return-type "WebkitLoadStatus")
+)
+
+(define-method get_progress
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_get_progress")
+  (return-type "gdouble")
+)
+
+(define-method undo
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_undo")
+  (return-type "none")
+)
+
+(define-method can_undo
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_can_undo")
+  (return-type "gboolean")
+)
+
+(define-method redo
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_redo")
+  (return-type "none")
+)
+
+(define-method can_redo
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_can_redo")
+  (return-type "gboolean")
+)
+
+(define-method set_view_source_mode
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_set_view_source_mode")
+  (return-type "none")
+  (parameters
+    '("gboolean" "view_source_mode")
+  )
+)
+
+(define-method get_view_source_mode
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_get_view_source_mode")
+  (return-type "gboolean")
+)
+
+(define-method get_hit_test_result
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_get_hit_test_result")
+  (return-type "WebkitHitTestResult*")
+  (parameters
+    '("GdkEventButton*" "event")
+  )
+)
+
+(define-method get_icon_uri
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_get_icon_uri")
+  (return-type "const-gchar*")
+)
+
+(define-method get_icon_pixbuf
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_get_icon_pixbuf")
+  (return-type "GdkPixbuf*")
+)
+
+(define-method try_get_favicon_pixbuf
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_try_get_favicon_pixbuf")
+  (return-type "GdkPixbuf*")
+  (parameters
+    '("guint" "width")
+    '("guint" "height")
+  )
+)
+
+(define-method get_dom_document
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_get_dom_document")
+  (return-type "WebkitDOMDocument*")
+)
+
+(define-method get_viewport_attributes
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_get_viewport_attributes")
+  (return-type "WebkitViewportAttributes*")
+)
+
+(define-method get_snapshot
+  (of-object "WebkitWebView")
+  (c-name "webkit_web_view_get_snapshot")
+  (return-type "cairo_surface_t*")
+)
+
+
+
+;; From 
/gnu/store/c7gg2x2ib92kpzjkqz217pccw2xas84b-webkitgtk-2.4.11/include/webkitgtk-1.0/webkit/webkitenumtypes.h
+
+(define-function webkit_download_status_get_type
+  (c-name "webkit_download_status_get_type")
+  (return-type "GType")
+)
+
+(define-function webkit_download_error_get_type
+  (c-name "webkit_download_error_get_type")
+  (return-type "GType")
+)
+
+(define-function webkit_network_error_get_type
+  (c-name "webkit_network_error_get_type")
+  (return-type "GType")
+)
+
+(define-function webkit_policy_error_get_type
+  (c-name "webkit_policy_error_get_type")
+  (return-type "GType")
+)
+
+(define-function webkit_plugin_error_get_type
+  (c-name "webkit_plugin_error_get_type")
+  (return-type "GType")
+)
+
+(define-function webkit_cache_model_get_type
+  (c-name "webkit_cache_model_get_type")
+  (return-type "GType")
+)
+
+(define-function webkit_context_menu_action_get_type
+  (c-name "webkit_context_menu_action_get_type")
+  (return-type "GType")
+)
+
+(define-function webkit_security_policy_get_type
+  (c-name "webkit_security_policy_get_type")
+  (return-type "GType")
+)
+
+(define-function webkit_hit_test_result_context_get_type
+  (c-name "webkit_hit_test_result_context_get_type")
+  (return-type "GType")
+)
+
+(define-function webkit_load_status_get_type
+  (c-name "webkit_load_status_get_type")
+  (return-type "GType")
+)
+
+(define-function webkit_web_navigation_reason_get_type
+  (c-name "webkit_web_navigation_reason_get_type")
+  (return-type "GType")
+)
+
+(define-function webkit_editing_behavior_get_type
+  (c-name "webkit_editing_behavior_get_type")
+  (return-type "GType")
+)
+
+(define-function webkit_navigation_response_get_type
+  (c-name "webkit_navigation_response_get_type")
+  (return-type "GType")
+)
+
+(define-function webkit_web_view_target_info_get_type
+  (c-name "webkit_web_view_target_info_get_type")
+  (return-type "GType")
+)
+
+(define-function webkit_web_view_view_mode_get_type
+  (c-name "webkit_web_view_view_mode_get_type")
+  (return-type "GType")
+)
+
+(define-function webkit_selection_affinity_get_type
+  (c-name "webkit_selection_affinity_get_type")
+  (return-type "GType")
+)
+
+(define-function webkit_insert_action_get_type
+  (c-name "webkit_insert_action_get_type")
+  (return-type "GType")
+)
+
+
diff --git a/dev-environ.in b/dev-environ.in
index 7c4a888..6318e8f 100755
--- a/dev-environ.in
+++ b/dev-environ.in
@@ -24,14 +24,19 @@
 address@hidden@
 address@hidden@
 
-for pkg in atk cairo corba defs gconf glib gnome-vfs gtk libglade libgnome 
libgnomecanvas libgnomeui pango; do
+for pkg in atk cairo corba defs gconf glib gnome-vfs gtk libglade libgnome 
libgnomecanvas libgnomeui pango webkit; do
   GUILE_LOAD_PATH=$srcdir/$pkg:$GUILE_LOAD_PATH
   if [ $srcdir != $builddir ]; then
     GUILE_LOAD_PATH=$builddir/$pkg:$GUILE_LOAD_PATH
   fi
+  GUILE_LOAD_COMPILED_PATH=$srcdir/$pkg:$GUILE_LOAD_COMPILED_PATH
+  if [ $srcdir != $builddir ]; then
+    GUILE_LOAD_COMPILED_PATH=$builddir/$pkg:$GUILE_LOAD_COMPILED_PATH
+  fi
   if [ -d $builddir/$pkg/bin ]; then
     PATH=$builddir/$pkg/bin:$PATH
   fi
+  LD_LIBRARY_PATH=$builddir/$pkg/gnome/gw:$LD_LIBRARY_PATH
   LTDL_LIBRARY_PATH=$builddir/$pkg/gnome/gw:$LTDL_LIBRARY_PATH
   PKG_CONFIG_PATH=$builddir/$pkg:$PKG_CONFIG_PATH
 done
diff --git a/webkit/.gitignore b/webkit/.gitignore
new file mode 100644
index 0000000..319e9e9
--- /dev/null
+++ b/webkit/.gitignore
@@ -0,0 +1,9 @@
+*-gw-*.[ch]
+Makefile
+Makefile.in
+.deps
+.libs
+*.log
+gnome/gw/webkit.scm
+*.lo
+*.la
diff --git a/webkit/AUTHORS b/webkit/AUTHORS
new file mode 100644
index 0000000..88c3ba5
--- /dev/null
+++ b/webkit/AUTHORS
@@ -0,0 +1,13 @@
+To find out what should go in this file, see "Information For
+Maintainers of GNU Software" (maintain.texi), the section called
+"Recording Changes".
+
+Jan Nieuwenhuizen:
+In the directory gnome, wrote:
+    webkit.scm
+In the directory gnome/gw, wrote:
+    webkit-spec.scm webkit-support.c webkit-support.h
+In the directory gnome/overrides, wrote:
+    webkit.defs
+In the directory examples, wrote:
+    webkit.scm
diff --git a/webkit/Makefile.am b/webkit/Makefile.am
new file mode 100644
index 0000000..a4fe790
--- /dev/null
+++ b/webkit/Makefile.am
@@ -0,0 +1,3 @@
+SUBDIRS = gnome examples doc tests
+
+EXTRA_DIST = AUTHORS README
diff --git a/webkit/README b/webkit/README
new file mode 100644
index 0000000..ce99191
--- /dev/null
+++ b/webkit/README
@@ -0,0 +1,32 @@
+guile-gnome-webkit README
+Copyright (C) 2019 Free Software Foundation, Inc.
+See the end for copying conditions of this file.
+Last updated 16 September 2004.
+
+
+About guile-gnome-webkit
+================================
+
+guile-gnome-webkit is a Guile wrapper for the WebkitGtk library.
+It is a part of GNU guile-gnome.  See the README file in the toplevel
+source directory for more information.
+
+
+Build dependencies
+==================
+
+Besides the base guile-gnome requirements given in ../README,
+guile-gnome-webkit requires webkit development packages.
+
+guile-gnome-webkit depends on the following guile-gnome modules:
+glib, defs, atk, pango, gtk.
+
+
+Copying this file
+=================
+
+Copyright (C) 2019 Free Software Foundation, Inc.
+
+Copying and distribution of this file, with or without modification, are
+permitted in any medium without royalty provided the copyright notice
+and this notice are preserved.
diff --git a/webkit/doc/Makefile.am b/webkit/doc/Makefile.am
new file mode 100644
index 0000000..092d9da
--- /dev/null
+++ b/webkit/doc/Makefile.am
@@ -0,0 +1,15 @@
+################################################################################
+## guile-gnome-webkit.info
+
+include $(top_srcdir)/generate-docs.mk
+
+docbook_xml_wildcard = ~/src/gnome2/webkit/docs/reference/xml/*.xml
+docbook_xml_files = $(wildcard $(docbook_xml_wildcard))
+
+wrapset_stem = webkit
+
+EXTRA_DIST = overrides.texi
+
+info_TEXINFOS=guile-gnome-webkit.texi
+guile_gnome_webkit_TEXINFOS=overview.texi \
+       $(wildcard section-*.texi) $(wildcard defuns-*.texi) undocumented.texi
diff --git a/webkit/doc/guile-gnome-webkit.texi 
b/webkit/doc/guile-gnome-webkit.texi
new file mode 100644
index 0000000..c0eab2b
--- /dev/null
+++ b/webkit/doc/guile-gnome-webkit.texi
@@ -0,0 +1,69 @@
+\input texinfo   @c -*-texinfo-*-
address@hidden %**start of header
address@hidden guile-gnome-webkit.info
address@hidden Guile-Gnome-Webkit
address@hidden %**end of header
+
address@hidden version.texi
+
address@hidden
+This manual is for @code{(gnome webkit)} (version @value{VERSION}, updated
address@hidden)
+
+Copyright 2001-2007 Federico Mena Quintero, Raph Levien, and others
+
address@hidden WEBKIT is LGPL, ergo GPL distribution is possible
address@hidden
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU General Public License, Version 2 or any
+later version published by the Free Software Foundation.
address@hidden quotation
+
address@hidden copying
+
address@hidden The Algorithmic Language Scheme
address@hidden
+* Guile-Gnome-Webkit: (guile-gnome-webkit.info).  Structured graphics.
address@hidden direntry
+
address@hidden
address@hidden Guile-GNOME: Webkit
address@hidden version @value{VERSION}, updated @value{UPDATED}
address@hidden Federico Mena Quintero
address@hidden Raph Levien
address@hidden and others
address@hidden
address@hidden 0pt plus 1filll
address@hidden
address@hidden titlepage
+
address@hidden
address@hidden Top
address@hidden Guile-Gnome-Webkit
+
address@hidden
address@hidden
+* Overview::             About webkit and its Guile bindings.
+* Undocumented::         Undocumented functions.
+
+* Type Index::
+* Function Index::
address@hidden menu
+
address@hidden ifnottex
+
address@hidden
address@hidden
address@hidden iftex
+
address@hidden overview.texi
+
address@hidden undocumented.texi
+
address@hidden Type Index
address@hidden Type Index
address@hidden tp
address@hidden Function Index
address@hidden Function Index
address@hidden fn
address@hidden
diff --git a/webkit/doc/overrides.texi b/webkit/doc/overrides.texi
new file mode 100644
index 0000000..e69de29
diff --git a/webkit/doc/overview.texi b/webkit/doc/overview.texi
new file mode 100644
index 0000000..b6b5553
--- /dev/null
+++ b/webkit/doc/overview.texi
@@ -0,0 +1,16 @@
address@hidden Overview
address@hidden Overview
+
address@hidden(gnome canvas)} wraps the Gnome-Canvas library for Guile. It is
+a part of Guile-GNOME.
+
+Libgnomecanvas is a retained-mode canvas: you tell it what should be
+on it, and it handles redraw operations for you. It is a bit dated, in
+that it is backed by a library called ``libart'' and not Cairo, but no
+clear successor has emerged yet.
+
+The source distribution has a fairly comprehensive example; see
address@hidden/canvas.scm} for more information.
+
+See the documentation for @code{(gnome gobject)} for more information
+on Guile-GNOME.
diff --git a/webkit/doc/undocumented.texi b/webkit/doc/undocumented.texi
new file mode 100644
index 0000000..56e500e
--- /dev/null
+++ b/webkit/doc/undocumented.texi
@@ -0,0 +1,10 @@
+
address@hidden %start of fragment
+
address@hidden Undocumented
address@hidden Undocumented
+The following symbols, if any, have not been properly documented.
+
address@hidden (gnome gw webkit)
+
address@hidden %end of fragment
diff --git a/webkit/examples/Makefile.am b/webkit/examples/Makefile.am
new file mode 100644
index 0000000..1e3188c
--- /dev/null
+++ b/webkit/examples/Makefile.am
@@ -0,0 +1 @@
+EXTRA_DIST = $(wildcard *.scm)
diff --git a/webkit/examples/browser.scm b/webkit/examples/browser.scm
new file mode 100755
index 0000000..aa4e276
--- /dev/null
+++ b/webkit/examples/browser.scm
@@ -0,0 +1,70 @@
+#! /bin/sh
+# -*- scheme -*-
+exec guile --debug -s $0 "$@"
+!#
+;;; guile-gnome
+;;; Copyright (C) 2004 Free Software Foundation, Inc.
+;;; Copyright (C) 2019 Jan (janneke) Nieuwenhuizen <address@hidden>
+
+;;; This program is free software; you can redistribute it and/or
+;;; modify it under the terms of the GNU General Public License as
+;;; published by the Free Software Foundation; either version 2 of
+;;; the License, or (at your option) any later version.
+;;;
+;;; 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 General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program; if not, contact:
+;;;
+;;; Free Software Foundation           Voice:  +1-617-542-5942
+;;; 59 Temple Place - Suite 330        Fax:    +1-617-542-2652
+;;; Boston, MA  02111-1307,  USA       address@hidden
+
+(use-modules (gnome-2)
+             (oop goops)
+             (gnome gtk)
+            (gnome gtk gdk-event)
+            (gnome webkit))
+
+(define browser-width 300)
+(define browser-height browser-width)
+
+(define (main)
+
+  (define (key-press-event item event . data)
+    (let ((keyval (gdk-event-key:keyval event))
+         (mods (gdk-event-key:modifiers event)))
+      (if (and (or (eq? keyval gdk:q)
+                  (eq? keyval gdk:w))
+              (equal? mods '(control-mask modifier-mask)))
+         (gtk-main-quit))
+      #f))
+
+  (let* ((window (make <gtk-window> #:type 'toplevel))
+        (button (make <gtk-button> #:label "Exit"))
+         (browser (make <gtk-button>))
+        (browser (make <webkit-web-view>))
+        (vbox (make <gtk-vbox>)))
+
+    (add window vbox)
+    (add vbox browser)
+
+    (add vbox button)
+    (connect button 'clicked
+             (lambda (b) (gtk-main-quit)))
+
+    (connect window 'key-press-event key-press-event)
+    (connect window 'delete-event (lambda args (gtk-main-quit) #t))
+
+    (set-child-packing vbox button #f #f 0 'end)
+    (set-size-request browser browser-width browser-height)
+
+    (load-uri browser "http://gnu.org";)
+
+    (show-all window)
+    (gtk-main)))
+
+(main)
diff --git a/webkit/gnome/Makefile.am b/webkit/gnome/Makefile.am
new file mode 100644
index 0000000..64e019f
--- /dev/null
+++ b/webkit/gnome/Makefile.am
@@ -0,0 +1,13 @@
+include $(top_srcdir)/common.mk
+
+SUBDIRS = overrides
+
+guilemodule_DATA = 
+
+if HAVE_WEBKIT
+guilemodule_DATA += webkit.scm
+SUBDIRS += gw
+endif
+
+EXTRA_DIST = webkit.scm
+DIST_SUBDIRS = gw overrides
diff --git a/webkit/gnome/gw/Makefile.am b/webkit/gnome/gw/Makefile.am
new file mode 100644
index 0000000..c19c6d3
--- /dev/null
+++ b/webkit/gnome/gw/Makefile.am
@@ -0,0 +1,31 @@
+include $(top_srcdir)/common.mk
+
+guilegwmodule_DATA = webkit-spec.scm webkit.scm
+
+EXTRA_DIST = webkit-spec.scm
+
+CLEANFILES = $(wildcard gnome-*.log)
+
+# There is one shared library for each wrapset. Each is produced by
+# g-wrap, but also may contain some hand-coded routines.
+
+guilegnomelib_LTLIBRARIES = libgw-guile-gnome-webkit.la
+
+########################################################################
+## webkit
+nodist_libgw_guile_gnome_webkit_la_SOURCES = guile-gnome-gw-webkit.c
+libgw_guile_gnome_webkit_la_SOURCES = \
+       webkit-support.c webkit-support.h
+
+libgw_guile_gnome_webkit_la_CFLAGS = $(GUILE_GLIB_CFLAGS) \
+       $(AM_CFLAGS) $(WEBKIT_CFLAGS) $(GUILE_CFLAGS) \
+       $(G_WRAP_CFLAGS)
+
+libgw_guile_gnome_webkit_la_LIBADD = $(WEBKIT_LIBS) $(GUILE_GLIB_LIBS) \
+       $(GUILE_LIBS) $(G_WRAP_LIBS) 
+
+libgw_guile_gnome_webkit_la_LDFLAGS = -module
+
+CLEANFILES += $(wildcard guile-gnome-gw-webkit.*) webkit.scm
+
+BUILT_SOURCES = guile-gnome-gw-webkit.c
diff --git a/webkit/gnome/gw/webkit-spec.scm b/webkit/gnome/gw/webkit-spec.scm
new file mode 100644
index 0000000..66e6372
--- /dev/null
+++ b/webkit/gnome/gw/webkit-spec.scm
@@ -0,0 +1,51 @@
+;;; guile-gnome
+
+;;; Copyright (C) 2004 Andy Wingo <wingo at pobox dot com>
+;;; Copyright (C) 2004, 2019 Jan (janneke) Nieuwenhuizen <address@hidden>
+
+;;; This program is free software; you can redistribute it and/or
+;;; modify it under the terms of the GNU General Public License as
+;;; published by the Free Software Foundation; either version 2 of
+;;; the License, or (at your option) any later version.
+;;;
+;;; 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 General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program; if not, contact:
+;;;
+;;; Free Software Foundation           Voice:  +1-617-542-5942
+;;; 59 Temple Place - Suite 330        Fax:    +1-617-542-2652
+;;; Boston, MA  02111-1307,  USA       address@hidden
+
+;;; Commentary:
+
+;;; g-wrap specification for webkitgtk.
+
+;;; Code:
+
+(define-module (gnome gw webkit-spec)
+  #:use-module (oop goops)
+  #:use-module (gnome gw support g-wrap)
+  #:use-module (gnome gw glib-spec)
+  #:use-module (gnome gw gobject-spec)
+  #:use-module (gnome gw gtk-spec)
+  #:use-module (gnome gw support gobject)
+  #:use-module (gnome gw support defs))
+
+(define-class <webkit-wrapset> (<gobject-wrapset-base>)
+  #:id 'gnome-webkit
+  #:dependencies '(standard gnome-glib gnome-gobject gnome-gdk gnome-gtk
+                            ))
+
+(define-method (global-declarations-cg (self <webkit-wrapset>))
+  (list
+   (next-method)
+   "#include <webkit/webkit.h>\n"
+   "#include \"webkit-support.h\"\n"))
+
+(define-method (initialize (ws <webkit-wrapset>) initargs)
+  (next-method ws (cons #:module (cons '(gnome gw webkit) initargs)))
+  (load-defs-with-overrides ws "gnome/defs/webkit.defs"))
diff --git a/webkit/gnome/gw/webkit-support.c b/webkit/gnome/gw/webkit-support.c
new file mode 100644
index 0000000..f3805ef
--- /dev/null
+++ b/webkit/gnome/gw/webkit-support.c
@@ -0,0 +1,26 @@
+/* guile-gnome
+ * Copyright (C) 2019 Jan (janneke)  Nieuwenhuizen <address@hidden>
+ *
+ * webkit-support.c: Customizations for guile-gnome-webkit
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, contact:
+ *
+ * Free Software Foundation           Voice:  +1-617-542-5942
+ * 59 Temple Place - Suite 330        Fax:    +1-617-542-2652
+ * Boston, MA  02111-1307,  USA       address@hidden
+ *
+ * Based on work Copyright (C) 2003 James Henstridge <address@hidden>
+ */
+
+#include "webkit-support.h"
diff --git a/webkit/gnome/gw/webkit-support.h b/webkit/gnome/gw/webkit-support.h
new file mode 100644
index 0000000..0a73727
--- /dev/null
+++ b/webkit/gnome/gw/webkit-support.h
@@ -0,0 +1,42 @@
+/* guile-gnome
+ *
+ * Copyright (C) 2004, 2019 Jan (janneke) Nieuwenhuizen <address@hidden>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, contact:
+ *
+ * Free Software Foundation           Voice:  +1-617-542-5942
+ * 59 Temple Place - Suite 330        Fax:    +1-617-542-2652
+ * Boston, MA  02111-1307,  USA       address@hidden
+ *
+ * Based on work Copyright (C) 2003 James Henstridge <address@hidden>
+ */
+
+#ifndef WEBKIT_SUPPORT_H
+#define WEBKIT_SUPPORT_H
+
+#include <libguile.h>
+#include "guile-gnome-gobject.h"
+#include <gtk/gtk.h>
+#include <webkit/webkit.h>
+
+// Repare the damage of using Webkit instead of WebKit in webkit.defs,
+// webkit-types.defs
+#define WebkitInsertAction WebKitInsertAction
+#define WebkitNavigationResponse WebKitNavigationResponse
+#define WebkitSelectionAffinity WebKitSelectionAffinity
+#define WebkitWebView WebKitWebView
+#define WebkitWebViewTargetInfo WebKitWebViewTargetInfo
+#define WebkitWebViewViewMode WebKitWebViewViewMode
+
+#endif /* WEBKIT_SUPPORT_H */
diff --git a/webkit/gnome/overrides/Makefile.am 
b/webkit/gnome/overrides/Makefile.am
new file mode 100644
index 0000000..0bc906c
--- /dev/null
+++ b/webkit/gnome/overrides/Makefile.am
@@ -0,0 +1,8 @@
+include $(top_srcdir)/common.mk
+
+moduledir = $(guilemoduledir)/overrides
+
+module_DATA = webkit.defs
+
+EXTRA_DIST = $(module_DATA)
+
diff --git a/webkit/gnome/overrides/webkit.defs 
b/webkit/gnome/overrides/webkit.defs
new file mode 100644
index 0000000..7b8f96e
--- /dev/null
+++ b/webkit/gnome/overrides/webkit.defs
@@ -0,0 +1,20 @@
+;;; -*- scheme -*-
+;;; guile-gnome
+;;; Copyright (C) 2019 Jan (janneke) Nieuwenhuizen <address@hidden>
+
+;;; This program is free software; you can redistribute it and/or
+;;; modify it under the terms of the GNU General Public License as
+;;; published by the Free Software Foundation; either version 2 of
+;;; the License, or (at your option) any later version.
+;;;
+;;; 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 General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program; if not, contact:
+;;;
+;;; Free Software Foundation           Voice:  +1-617-542-5942
+;;; 59 Temple Place - Suite 330        Fax:    +1-617-542-2652
+;;; Boston, MA  02111-1307,  USA       address@hidden
diff --git a/webkit/gnome/webkit.scm b/webkit/gnome/webkit.scm
new file mode 100644
index 0000000..5281e39
--- /dev/null
+++ b/webkit/gnome/webkit.scm
@@ -0,0 +1,36 @@
+;; guile-gnome
+;; Copyright (C) 2003,2004 Andy Wingo <wingo at pobox dot com>
+;; Copyright (C) 2019 Jan (janneke) Nieuwenhuizen <address@hidden>
+
+;; This program is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU General Public License as
+;; published by the Free Software Foundation; either version 2 of
+;; the License, or (at your option) any later version.
+;;
+;; 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 General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, contact:
+;;
+;; Free Software Foundation           Voice:  +1-617-542-5942
+;; 59 Temple Place - Suite 330        Fax:    +1-617-542-2652
+;; Boston, MA  02111-1307,  USA       address@hidden
+
+;;; Commentary:
+;;
+;;Guile wrappers for webkitgtk.
+;;
+;;; Code:
+
+(define-module (gnome webkit)
+  #:use-module (oop goops)
+  #:use-module (gnome gobject)
+  #:use-module (gnome gw webkit)
+  #:use-module (gnome gw generics)
+  #:use-module (gnome gw support modules))
+
+(eval-when (expand load eval)
+  (re-export-modules (gnome gw webkit)))
diff --git a/webkit/tests/Makefile.am b/webkit/tests/Makefile.am
new file mode 100644
index 0000000..b7803ec
--- /dev/null
+++ b/webkit/tests/Makefile.am
@@ -0,0 +1,3 @@
+include ../../tests.mk
+
+wrapset_stem = webkit
-- 
2.20.1


-- 
Jan Nieuwenhuizen <address@hidden> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | AvatarĀ® http://AvatarAcademy.com

reply via email to

[Prev in Thread] Current Thread [Next in Thread]