com gtk/php-gtk: Added MozEmbed extension's files :): ext/mozembed/Makefile.frag ext/mozembed/config.m4 ext/mozembed/mozembed.defs ext/mozembed/mozembed.overrides ext/mozembed/php_mozembed.c ext/mozembed/php_mozembed .h ext/mozembed/ref.mozembed.defs ext/mozembed/ref. mozembed.override

[email protected] (David Soria Parra) Tue, 07 Mar 2006 19:33:41 +0000
Newsgroups php.gtk.cvs
Message-ID <[email protected]>
Commit:    0d5d995f1ce5b75bffc1045cbbdbf5cbc42f7447
Author:    Anant Narayanan <[email protected]>         Tue, 7 Mar 2006 19:33:41 +0000
Parents:   44fa3add57996edbbe7416e04c08aa4d4650fdaf
Branches:  master

Link:       http://git.php.net/?p=gtk/php-gtk.git;a=commitdiff;h=0d5d995f1ce5b75bffc1045cbbdbf5cbc42f7447

Log:
Added MozEmbed extension's files :)

Changed paths:
  A  ext/mozembed/Makefile.frag
  A  ext/mozembed/config.m4
  A  ext/mozembed/mozembed.defs
  A  ext/mozembed/mozembed.overrides
  A  ext/mozembed/php_mozembed.c
  A  ext/mozembed/php_mozembed.h
  A  ext/mozembed/ref.mozembed.defs
  A  ext/mozembed/ref.mozembed.override
diff_0d5d995f1ce5b75bffc1045cbbdbf5cbc42f7447.txt (text/plain, 17.1 KB)
0d5d995f1ce5b75bffc1045cbbdbf5cbc42f7447
diff --git a/ext/mozembed/Makefile.frag b/ext/mozembed/Makefile.frag
new file mode 100644
index 0000000..ef7801e
--- /dev/null
+++ b/ext/mozembed/Makefile.frag
@@ -0,0 +1,14 @@
+
+$(builddir)/gen_mozembed.c: $(srcdir)/mozembed.defs $(srcdir)/mozembed.overrides
+	( \
+     $(PHP) $(top_srcdir)/generator/generator.php \
+	 	-l $(@D)/$(*F).log \
+        -r ext/gtk+/atk-types.defs   \
+        -r ext/gtk+/pango-types.defs \
+        -r ext/gtk+/gdk-types.defs   \
+        -r ext/gtk+/gtk-types.defs   \
+		-o ext/mozembed/mozembed.overrides \
+        -p GtkMozembed \
+		-f $@ ext/mozembed/mozembed.defs \
+     && grep -h "^PHP_GTK_EXPORT_CE" $@ | sed -e "s!^!extern !" > $(@D)/$(*F).h \
+	)
diff --git a/ext/mozembed/config.m4 b/ext/mozembed/config.m4
new file mode 100644
index 0000000..699123a
--- /dev/null
+++ b/ext/mozembed/config.m4
@@ -0,0 +1,25 @@
+dnl $Id$
+dnl config.m4 for mozembed module
+
+define(mozembed_required_version,   1.7.0)
+
+PHP_GTK_ARG_ENABLE(mozembed,for GtkMozEmbed support,
+[  --enable-mozembed      Enable GtkMozEmbed support],no)
+
+if test "$PHP_GTK_MOZEMBED" != "no"; then
+  PKG_CHECK_MODULES(MOZEMBED, [mozilla-gtkmozembed >= mozembed_required_version],
+  have_mozembed=yes, have_mozembed=no)
+  if test "$have_mozembed" != "yes"; then
+    AC_MSG_RESULT([Unable to locate mozembed version mozembed_required_version or higher: not building])
+  else
+    AC_DEFINE(HAVE_MOZEMBED, 1, [mozembed support])
+    PHP_EVAL_INCLINE($MOZEMBED_CFLAGS)
+    if test "$php_gtk_ext_shared" = "yes"; then
+      PHP_EVAL_LIBLINE($MOZEMBED_LIBS, MOZEMBED_SHARED_LIBADD)
+      PHP_SUBST(MOZEMBED_SHARED_LIBADD)
+    else
+      PHP_EVAL_LIBLINE($MOZEMBED_LIBS, PHP_GTK2_SHARED_LIBADD)
+    fi
+    PHP_GTK_EXTENSION(mozembed, $php_gtk_ext_shared, php_mozembed.c, gen_mozembed.c)
+  fi
+fi
diff --git a/ext/mozembed/mozembed.defs b/ext/mozembed/mozembed.defs
new file mode 100644
index 0000000..750d20b
--- /dev/null
+++ b/ext/mozembed/mozembed.defs
@@ -0,0 +1,204 @@
+;; -*- scheme -*-
+; object definitions ...
+(define-object MozEmbed
+  (in-module "Gtk")
+  (parent "GtkBin")
+  (c-name "GtkMozEmbed")
+  (gtype-id "GTK_TYPE_MOZ_EMBED")
+)
+
+;; Enumerations and flags ...
+
+;; From /usr/include/mozilla-1.2b/gtkembedmoz/gtkmozembed.h
+
+(define-function gtk_moz_embed_get_type
+  (c-name "gtk_moz_embed_get_type")
+  (return-type "GtkType")
+)
+
+(define-function gtk_moz_embed_new
+  (c-name "gtk_moz_embed_new")
+  (is-constructor-of "GtkMozEmbed")
+  (return-type "GtkWidget*")
+)
+
+(define-method load_url
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_load_url")
+  (return-type "none")
+  (parameters
+    '("const-char*" "url")
+  )
+)
+
+(define-method stop_load
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_stop_load")
+  (return-type "none")
+)
+
+(define-method can_go_back
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_can_go_back")
+  (return-type "gboolean")
+)
+
+(define-method can_go_forward
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_can_go_forward")
+  (return-type "gboolean")
+)
+
+(define-method go_back
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_go_back")
+  (return-type "none")
+)
+
+(define-method go_forward
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_go_forward")
+  (return-type "none")
+)
+
+(define-method render_data
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_render_data")
+  (return-type "none")
+  (parameters
+    '("const-char*" "data")
+    '("guint32" "len")
+    '("const-char*" "base_uri")
+    '("const-char*" "mime_type")
+  )
+)
+
+(define-method open_stream
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_open_stream")
+  (return-type "none")
+  (parameters
+    '("const-char*" "base_uri")
+    '("const-char*" "mime_type")
+  )
+)
+
+(define-method append_data
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_append_data")
+  (return-type "none")
+  (parameters
+    '("const-char*" "data")
+    '("guint32" "len")
+  )
+)
+
+(define-method close_stream
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_close_stream")
+  (return-type "none")
+)
+
+(define-method get_link_message
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_get_link_message")
+  (return-type "char*")
+)
+
+(define-method get_js_status
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_get_js_status")
+  (return-type "char*")
+)
+
+(define-method get_title
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_get_title")
+  (return-type "char*")
+)
+
+(define-method get_location
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_get_location")
+  (return-type "char*")
+)
+
+(define-method reload
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_reload")
+  (return-type "none")
+  (parameters
+    '("gint32" "flags")
+  )
+)
+
+(define-method set_chrome_mask
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_set_chrome_mask")
+  (return-type "none")
+  (parameters
+    '("guint32" "flags")
+  )
+)
+
+(define-method get_chrome_mask
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_get_chrome_mask")
+  (return-type "guint32")
+)
+
+;; Added to stop errors
+(define-object Frame
+  (in-module "Gtk")
+  (parent "GtkBin")
+  (c-name "GtkFrame")
+  (gtype-id "GTK_TYPE_FRAME")
+)
+
+(define-object Bin
+  (in-module "Gtk")
+  (parent "GtkContainer")
+  (c-name "GtkBin")
+  (gtype-id "GTK_TYPE_BIN")
+  (fields
+    '("GtkWidget*" "child")
+  )
+)
+
+(define-object Container
+  (in-module "Gtk")
+  (parent "GtkWidget")
+  (c-name "GtkContainer")
+  (gtype-id "GTK_TYPE_CONTAINER")
+  (fields
+    '("GtkWidget*" "focus_child")
+    '("guint" "border_width")
+    '("guint" "need_resize")
+    '("guint" "resize_mode")
+    '("guint" "reallocate_redraws")
+    '("guint" "has_focus_chain")
+  )
+)
+
+(define-object Widget
+  (in-module "Gtk")
+  (parent "GtkObject")
+  (c-name "GtkWidget")
+  (gtype-id "GTK_TYPE_WIDGET")
+  (fields
+    '("guint8" "state")
+    '("guint8" "saved_state")
+    '("gchar*" "name")
+    '("GtkStyle*" "style")
+    '("GdkRectangle" "allocation")
+    '("GdkWindow*" "window")
+    '("GtkWidget*" "parent")
+  )
+)
+
+(define-object Object
+  (in-module "Gtk")
+  (parent "GObject")
+  (c-name "GtkObject")
+  (gtype-id "GTK_TYPE_OBJECT")
+)
diff --git a/ext/mozembed/mozembed.overrides b/ext/mozembed/mozembed.overrides
new file mode 100644
index 0000000..ac1d3b6
--- /dev/null
+++ b/ext/mozembed/mozembed.overrides
@@ -0,0 +1,10 @@
+/* vim: set ft=cpp: */
+%%
+headers
+#include <gtkmozembed.h>
+#include "ext/gtk+/php_gtk+.h"
+%%
+constants
+%%
+ignore-glob
+  *_get_type
diff --git a/ext/mozembed/php_mozembed.c b/ext/mozembed/php_mozembed.c
new file mode 100644
index 0000000..6506ea7
--- /dev/null
+++ b/ext/mozembed/php_mozembed.c
@@ -0,0 +1,45 @@
+/*
+ * PHP-GTK - The PHP language bindings for GTK+
+ *
+ * Copyright (C) 2001,2002 Andrei Zmievski <[email protected]>
+ *
+ * This library 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.1 of the License, or (at your option) any later version.
+ * 
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+ 
+/* $Id$ */
+
+#include "php_mozembed.h"
+
+#if HAVE_MOZEMBED
+
+#ifdef COMPILE_DL_MOZEMBED
+PHP_GTK_GET_EXTENSION(mozembed)
+#endif
+
+PHP_GTK_XINIT_FUNCTION(mozembed)
+{
+    phpg_gtkmozembed_register_classes();
+	phpg_gtkmozembed_register_constants("GTK_MOZEMBED_");
+	
+	return SUCCESS;
+}
+
+php_gtk_ext_entry mozembed_ext_entry = {
+	"mozembed",
+	PHP_GTK_XINIT(mozembed),
+	NULL,
+};
+
+#endif	/* HAVE_MOZEMBED */
diff --git a/ext/mozembed/php_mozembed.h b/ext/mozembed/php_mozembed.h
new file mode 100644
index 0000000..33310b1
--- /dev/null
+++ b/ext/mozembed/php_mozembed.h
@@ -0,0 +1,44 @@
+/*
+ * PHP-GTK - The PHP language bindings for GTK+
+ *
+ * Copyright (C) 2001,2002 Andrei Zmievski <[email protected]>
+ *
+ * This library 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.1 of the License, or (at your option) any later version.
+ * 
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+ 
+/* $Id$ */
+
+#ifndef PHP_MOZEMBED_H
+#define PHP_MOZEMBED_H
+
+#include "php_gtk.h"
+
+#if HAVE_MOZEMBED
+
+#include <gtkmozembed.h>
+
+extern php_gtk_ext_entry mozembed_ext_entry;
+#define php_gtk_ext_mozembed_ptr &mozembed_ext_entry
+
+void phpg_gtkmozembed_register_classes(void);
+void phpg_gtkmozembed_register_constants(const char *strip_prefix);
+
+#else
+
+#define php_gtk_ext_mozembed_ptr NULL
+
+#endif	/* HAVE_MOZEMBED */
+
+#endif	/* PHP_MOZEMBED_H */
diff --git a/ext/mozembed/ref.mozembed.defs b/ext/mozembed/ref.mozembed.defs
new file mode 100644
index 0000000..f6df7bb
--- /dev/null
+++ b/ext/mozembed/ref.mozembed.defs
@@ -0,0 +1,276 @@
+;; -*- scheme -*-
+; object definitions ...
+(define-object MozEmbed
+  (in-module "Gtk")
+  (parent "GtkBin")
+  (c-name "GtkMozEmbed")
+  (gtype-id "GTK_TYPE_MOZ_EMBED")
+)
+
+; (define-object MozEmbedSingle
+;   (in-module "Gtk")
+;   (parent "GtkObject")
+;   (c-name "GtkMozEmbedSingle")
+;   (gtype-id "GTK_TYPE_MOZ_EMBED_SINGLE")
+; )
+
+;; Enumerations and flags ...
+
+(define-enum MozEmbedProgressFlags
+  (in-module "Gtk")
+  (c-name "GtkMozEmbedProgressFlags")
+  (values
+    '("start" "GTK_MOZ_EMBED_FLAG_START")
+    '("redirecting" "GTK_MOZ_EMBED_FLAG_REDIRECTING")
+    '("transferring" "GTK_MOZ_EMBED_FLAG_TRANSFERRING")
+    '("negotiating" "GTK_MOZ_EMBED_FLAG_NEGOTIATING")
+    '("stop" "GTK_MOZ_EMBED_FLAG_STOP")
+    '("is-request" "GTK_MOZ_EMBED_FLAG_IS_REQUEST")
+    '("is-document" "GTK_MOZ_EMBED_FLAG_IS_DOCUMENT")
+    '("is-network" "GTK_MOZ_EMBED_FLAG_IS_NETWORK")
+    '("is-window" "GTK_MOZ_EMBED_FLAG_IS_WINDOW")
+  )
+)
+
+(define-enum MozEmbedStatusFlags
+  (in-module "Gtk")
+  (c-name "GtkMozEmbedStatusFlags")
+  (values
+    '("dns" "GTK_MOZ_EMBED_STATUS_FAILED_DNS")
+    '("connect" "GTK_MOZ_EMBED_STATUS_FAILED_CONNECT")
+    '("timeout" "GTK_MOZ_EMBED_STATUS_FAILED_TIMEOUT")
+    '("usercanceled" "GTK_MOZ_EMBED_STATUS_FAILED_USERCANCELED")
+  )
+)
+
+(define-enum MozEmbedReloadFlags
+  (in-module "Gtk")
+  (c-name "GtkMozEmbedReloadFlags")
+  (values
+    '("normal" "GTK_MOZ_EMBED_FLAG_RELOADNORMAL")
+    '("bypasscache" "GTK_MOZ_EMBED_FLAG_RELOADBYPASSCACHE")
+    '("bypassproxy" "GTK_MOZ_EMBED_FLAG_RELOADBYPASSPROXY")
+    '("bypassproxyandcache" "GTK_MOZ_EMBED_FLAG_RELOADBYPASSPROXYANDCACHE")
+    '("charsetchange" "GTK_MOZ_EMBED_FLAG_RELOADCHARSETCHANGE")
+  )
+)
+
+(define-enum MozEmbedChromeFlags
+  (in-module "Gtk")
+  (c-name "GtkMozEmbedChromeFlags")
+  (values
+    '("defaultchrome" "GTK_MOZ_EMBED_FLAG_DEFAULTCHROME")
+    '("windowborderson" "GTK_MOZ_EMBED_FLAG_WINDOWBORDERSON")
+    '("windowcloseon" "GTK_MOZ_EMBED_FLAG_WINDOWCLOSEON")
+    '("windowresizeon" "GTK_MOZ_EMBED_FLAG_WINDOWRESIZEON")
+    '("menubaron" "GTK_MOZ_EMBED_FLAG_MENUBARON")
+    '("toolbaron" "GTK_MOZ_EMBED_FLAG_TOOLBARON")
+    '("locationbaron" "GTK_MOZ_EMBED_FLAG_LOCATIONBARON")
+    '("statusbaron" "GTK_MOZ_EMBED_FLAG_STATUSBARON")
+    '("personaltoolbaron" "GTK_MOZ_EMBED_FLAG_PERSONALTOOLBARON")
+    '("scrollbarson" "GTK_MOZ_EMBED_FLAG_SCROLLBARSON")
+    '("titlebaron" "GTK_MOZ_EMBED_FLAG_TITLEBARON")
+    '("extrachromeon" "GTK_MOZ_EMBED_FLAG_EXTRACHROMEON")
+    '("allchrome" "GTK_MOZ_EMBED_FLAG_ALLCHROME")
+    '("windowraised" "GTK_MOZ_EMBED_FLAG_WINDOWRAISED")
+    '("windowlowered" "GTK_MOZ_EMBED_FLAG_WINDOWLOWERED")
+    '("centerscreen" "GTK_MOZ_EMBED_FLAG_CENTERSCREEN")
+    '("dependent" "GTK_MOZ_EMBED_FLAG_DEPENDENT")
+    '("modal" "GTK_MOZ_EMBED_FLAG_MODAL")
+    '("openasdialog" "GTK_MOZ_EMBED_FLAG_OPENASDIALOG")
+    '("openaschrome" "GTK_MOZ_EMBED_FLAG_OPENASCHROME")
+  )
+)
+
+
+;; From /usr/include/mozilla-1.2b/gtkembedmoz/gtkmozembed.h
+
+(define-function gtk_moz_embed_get_type
+  (c-name "gtk_moz_embed_get_type")
+  (return-type "GtkType")
+)
+
+(define-function gtk_moz_embed_new
+  (c-name "gtk_moz_embed_new")
+  (is-constructor-of "GtkMozEmbed")
+  (return-type "GtkWidget*")
+)
+
+(define-function push_startup
+  (c-name "gtk_moz_embed_push_startup")
+  (return-type "none")
+)
+
+(define-function pop_startup
+  (c-name "gtk_moz_embed_pop_startup")
+  (return-type "none")
+)
+
+(define-function gtk_moz_embed_set_comp_path
+  (c-name "gtk_moz_embed_set_comp_path")
+  (return-type "none")
+  (parameters
+    '("char*" "aPath")
+  )
+)
+
+(define-function gtk_moz_embed_set_profile_path
+  (c-name "gtk_moz_embed_set_profile_path")
+  (return-type "none")
+  (parameters
+    '("char*" "aDir")
+    '("char*" "aName")
+  )
+)
+
+(define-method load_url
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_load_url")
+  (return-type "none")
+  (parameters
+    '("const-char*" "url")
+  )
+)
+
+(define-method stop_load
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_stop_load")
+  (return-type "none")
+)
+
+(define-method can_go_back
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_can_go_back")
+  (return-type "gboolean")
+)
+
+(define-method can_go_forward
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_can_go_forward")
+  (return-type "gboolean")
+)
+
+(define-method go_back
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_go_back")
+  (return-type "none")
+)
+
+(define-method go_forward
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_go_forward")
+  (return-type "none")
+)
+
+(define-method render_data
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_render_data")
+  (return-type "none")
+  (parameters
+    '("const-char*" "data")
+    '("guint32" "len")
+    '("const-char*" "base_uri")
+    '("const-char*" "mime_type")
+  )
+)
+
+(define-method open_stream
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_open_stream")
+  (return-type "none")
+  (parameters
+    '("const-char*" "base_uri")
+    '("const-char*" "mime_type")
+  )
+)
+
+(define-method append_data
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_append_data")
+  (return-type "none")
+  (parameters
+    '("const-char*" "data")
+    '("guint32" "len")
+  )
+)
+
+(define-method close_stream
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_close_stream")
+  (return-type "none")
+)
+
+(define-method get_link_message
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_get_link_message")
+  (return-type "char*")
+)
+
+(define-method get_js_status
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_get_js_status")
+  (return-type "char*")
+)
+
+(define-method get_title
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_get_title")
+  (return-type "char*")
+)
+
+(define-method get_location
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_get_location")
+  (return-type "char*")
+)
+
+(define-method reload
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_reload")
+  (return-type "none")
+  (parameters
+    '("gint32" "flags")
+  )
+)
+
+(define-method set_chrome_mask
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_set_chrome_mask")
+  (return-type "none")
+  (parameters
+    '("guint32" "flags")
+  )
+)
+
+(define-method get_chrome_mask
+  (of-object "GtkMozEmbed")
+  (c-name "gtk_moz_embed_get_chrome_mask")
+  (return-type "guint32")
+)
+
+; (define-function gtk_moz_embed_progress_flags_get_type
+;   (c-name "gtk_moz_embed_progress_flags_get_type")
+;   (return-type "GtkType")
+; )
+
+; (define-function gtk_moz_embed_status_enums_get_type
+;   (c-name "gtk_moz_embed_status_enums_get_type")
+;   (return-type "GtkType")
+; )
+
+; (define-function gtk_moz_embed_reload_flags_get_type
+;   (c-name "gtk_moz_embed_reload_flags_get_type")
+;   (return-type "GtkType")
+; )
+
+; (define-function gtk_moz_embed_chrome_flags_get_type
+;   (c-name "gtk_moz_embed_chrome_flags_get_type")
+;   (return-type "GtkType")
+; )
+
+(define-function gtk_moz_embed_single_get
+  (c-name "gtk_moz_embed_single_get")
+  (return-type "GtkMozEmbedSingle*")
+)
+
+
diff --git a/ext/mozembed/ref.mozembed.override b/ext/mozembed/ref.mozembed.override
new file mode 100644
index 0000000..4fd4aa9
--- /dev/null
+++ b/ext/mozembed/ref.mozembed.override
@@ -0,0 +1,18 @@
+/* -*- Mode: C; c-basic-offset: 4 -*- */
+%%
+headers
+#include <Python.h>
+
+#include "pygobject.h"
+#include <gtkmozembed.h>
+
+%%
+modulename gtkmozembed
+%%
+import gobject.GObject as PyGObject_Type
+import gtk.Object as PyGtkObject_Type
+import gtk.Bin as PyGtkBin_Type
+%%
+ignore-glob
+  *_get_type
+  _*