summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorGiovanni Campagna <gcampagna@src.gnome.org>2011-12-12 17:14:41 +0100
committerJasper St. Pierre <jstpierre@mecheye.net>2012-02-03 17:44:51 -0500
commite01184ada59cce3fdd0a3d6e1850d9557de32a46 (patch)
tree129dcc5ec89a2b232b363a502ac331e1f7dcbda6 /modules
parentf7ce103431d871d003b8fa3f9433e33e220e7cee (diff)
downloadgjs-e01184ada59cce3fdd0a3d6e1850d9557de32a46.tar.gz
object: Add support for interfaces
Introduces a new Gi.add_interface internal method, that wraps g_type_add_interface(). Introduces support for interface vfuncs when hooking them, and for retrieving their C implementation from prototypes.
Diffstat (limited to 'modules')
-rw-r--r--modules/overrides/GObject.js7
1 files changed, 7 insertions, 0 deletions
diff --git a/modules/overrides/GObject.js b/modules/overrides/GObject.js
index 77d4ac80..0cb7d9b7 100644
--- a/modules/overrides/GObject.js
+++ b/modules/overrides/GObject.js
@@ -60,8 +60,15 @@ const GObjectMeta = new Lang.Class({
}
}
}
+
+ if (params.Implements) {
+ for (let i = 0; i < params.Implements.length; i++)
+ Gi.add_interface(this.prototype, ifaces[i]);
+ }
+
delete params.Properties;
delete params.Signals;
+ delete params.Implements;
for (let prop in params) {
let value = this.prototype[prop];