diff options
author | Giovanni Campagna <gcampagna@src.gnome.org> | 2011-12-12 17:14:41 +0100 |
---|---|---|
committer | Jasper St. Pierre <jstpierre@mecheye.net> | 2012-02-03 17:44:51 -0500 |
commit | e01184ada59cce3fdd0a3d6e1850d9557de32a46 (patch) | |
tree | 129dcc5ec89a2b232b363a502ac331e1f7dcbda6 /modules | |
parent | f7ce103431d871d003b8fa3f9433e33e220e7cee (diff) | |
download | gjs-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.js | 7 |
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]; |