diff options
author | Simon van der Linden <svdlinden@src.gnome.org> | 2010-01-22 13:41:21 +0100 |
---|---|---|
committer | Simon van der Linden <svdlinden@src.gnome.org> | 2010-01-22 13:41:21 +0100 |
commit | eaf7cb8ebb7e34f9493ac83b2f04af4dcf45f40f (patch) | |
tree | 92c184f82369ffc181701450fe4045ac0cef2ef3 /tests/libtestgi.c | |
parent | b11cf2595987c1f0fc4ffd834f07c98b92aa2355 (diff) | |
download | pygi-eaf7cb8ebb7e34f9493ac83b2f04af4dcf45f40f.tar.gz pygi-eaf7cb8ebb7e34f9493ac83b2f04af4dcf45f40f.tar.xz pygi-eaf7cb8ebb7e34f9493ac83b2f04af4dcf45f40f.zip |
Restore the overrides support
Add a ModuleProxy in front of the DynamicModule when an overrides module is
present. There is no need for an overrides module to be a class; it can just be a module.
Add an override decorator to override the wrapper of a registered type.
Adapt Gdk and Gtk accordingly.
Add tests.
https://bugzilla.gnome.org/show_bug.cgi?id=602830
Diffstat (limited to 'tests/libtestgi.c')
-rw-r--r-- | tests/libtestgi.c | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/tests/libtestgi.c b/tests/libtestgi.c index a8a77a5..c3899a6 100644 --- a/tests/libtestgi.c +++ b/tests/libtestgi.c @@ -3477,3 +3477,108 @@ test_gi_int_return_ptr_null (void) return NULL; } + +TestGIOverridesStruct * +test_gi_overrides_struct_copy (TestGIOverridesStruct *struct_) +{ + TestGIOverridesStruct *new_struct; + + new_struct = g_slice_new (TestGIOverridesStruct); + + *new_struct = *struct_; + + return new_struct; +} + +static void +test_gi_overrides_struct_free (TestGIOverridesStruct *struct_) +{ + g_slice_free (TestGIOverridesStruct, struct_); +} + +GType +test_gi_overrides_struct_get_type (void) +{ + static GType type = 0; + + if (type == 0) { + type = g_boxed_type_register_static ("TestGIOverridesStruct", + (GBoxedCopyFunc) test_gi_overrides_struct_copy, + (GBoxedFreeFunc) test_gi_overrides_struct_free); + } + + return type; +} + +TestGIOverridesStruct * +test_gi_overrides_struct_new (void) +{ + return g_slice_new (TestGIOverridesStruct); +} + +glong +test_gi_overrides_struct_method (TestGIOverridesStruct *struct_) +{ + return 42; +} + + +/** + * test_gi__overrides_struct_return: + * + * Returns: (transfer full): + */ +TestGIOverridesStruct * +test_gi__overrides_struct_return (void) +{ + return test_gi_overrides_struct_new(); +} + + +G_DEFINE_TYPE (TestGIOverridesObject, test_gi_overrides_object, G_TYPE_OBJECT); + +static void +test_gi_overrides_object_init (TestGIOverridesObject *object) +{ +} + +static void +test_gi_overrides_object_finalize (GObject *object) +{ + G_OBJECT_CLASS (test_gi_overrides_object_parent_class)->finalize (object); +} + +static void +test_gi_overrides_object_class_init (TestGIOverridesObjectClass *klass) +{ + GObjectClass* object_class = G_OBJECT_CLASS (klass); +#if 0 + GObjectClass* parent_class = G_OBJECT_CLASS (klass); +#endif + + object_class->finalize = test_gi_overrides_object_finalize; +} + +TestGIOverridesObject * +test_gi_overrides_object_new (void) +{ + return g_object_new (TESTGI_TYPE_OVERRIDES_OBJECT, NULL); +} + +glong +test_gi_overrides_object_method (TestGIOverridesObject *object) +{ + return 42; +} + + +/** + * test_gi__overrides_object_return: + * + * Returns: (transfer full): + */ +TestGIOverridesObject * +test_gi__overrides_object_return (void) +{ + return g_object_new (TESTGI_TYPE_OVERRIDES_OBJECT, NULL); +} |