com gtk/php-gtk: Add $obj->gtype property.. I think we've been missing a way to get at the actual GType of an object.: main/phpg_gobje ct.c

[email protected] (David Soria Parra) Tue, 28 Mar 2006 00:55:41 +0000
Newsgroups php.gtk.cvs
Message-ID <[email protected]>
Commit:    6c22c005183923dc317f6f7161b7db96f7e0474c
Author:    Andrei Zmievski <[email protected]>         Tue, 28 Mar 2006 00:55:41 +0000
Parents:   7315af0db75afeeb44b1d705ef85a4a06074333a
Branches:  master

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

Log:
Add $obj->gtype property.. I think we've been missing a way to get at
the actual GType of an object.

Changed paths:
  M  main/phpg_gobject.c


Diff:
6c22c005183923dc317f6f7161b7db96f7e0474c
diff --git a/main/phpg_gobject.c b/main/phpg_gobject.c
index 12199d8..67bb3e4 100644
--- a/main/phpg_gobject.c
+++ b/main/phpg_gobject.c
@@ -787,6 +787,18 @@ static zend_function_entry gobject_methods[] = {
 };
 
 
+PHPG_PROP_READER(GObject, gtype)
+{
+	ZVAL_LONG(return_value, G_OBJECT_TYPE(((phpg_gobject_t *)object)->obj));
+	return SUCCESS;
+}
+
+static prop_info_t gobject_props_info[] = {
+	{ "gtype", PHPG_PROP_READ_FN(GObject, gtype), NULL },
+	{ NULL, NULL, NULL },
+};
+
+
 void phpg_gobject_register_self(TSRMLS_D)
 {
 	if (gobject_ce) return;
@@ -798,7 +810,7 @@ void phpg_gobject_register_self(TSRMLS_D)
     phpg_gobject_handlers = php_gtk_handlers;
     phpg_gobject_handlers.del_ref = phpg_gobject_del_ref;
 
-	gobject_ce = phpg_register_class("GObject", gobject_methods, NULL, 0, NULL, NULL, G_TYPE_OBJECT TSRMLS_CC);
+	gobject_ce = phpg_register_class("GObject", gobject_methods, NULL, 0, gobject_props_info, NULL, G_TYPE_OBJECT TSRMLS_CC);
     phpg_register_int_constant(gobject_ce, "gtype", sizeof("gtype")-1, G_TYPE_OBJECT);
 }