cvs: php-gtk /ext/gtk+ gtk.overrides
| From: | Andrei Zmievski | Date: | Sat, 10 Dec 2005 21:20:58 +0000 |
| Subject: | cvs: php-gtk /ext/gtk+ gtk.overrides | ||
| Groups: | php.gtk.cvs | ||
| Request: | Send a blank email to php-gtk-cvs+get-2015@lists.php.net to get a copy of this message | ||
andrei Sat Dec 10 16:20:58 2005 EDT
Modified files:
/php-gtk/ext/gtk+ gtk.overrides
Log:
Implement gtk::idle_add() and gtk::idle_add_priority().
http://cvs.php.net/diff.php/php-gtk/ext/gtk+/gtk.overrides?r1=1.132&r2=1.133&ty=u
Index: php-gtk/ext/gtk+/gtk.overrides
diff -u php-gtk/ext/gtk+/gtk.overrides:1.132 php-gtk/ext/gtk+/gtk.overrides:1.133
--- php-gtk/ext/gtk+/gtk.overrides:1.132 Sat Nov 19 16:00:54 2005
+++ php-gtk/ext/gtk+/gtk.overrides Sat Dec 10 16:20:57 2005
@@ -287,6 +287,55 @@
}
%%
+override gtk_idle_add
+
+static void phpg_gtk_idle_add_impl(INTERNAL_FUNCTION_PARAMETERS, zend_bool with_priority)
+{
+ gint priority = G_PRIORITY_DEFAULT;
+ zval *callback = NULL;
+ zval *extra = NULL;
+ zval *data = NULL;
+ char *callback_filename;
+ uint callback_lineno;
+ guint handler_id;
+ int req_args = with_priority ? 2 : 1;
+
+ if (ZEND_NUM_ARGS() < req_args) {
+ php_error(E_WARNING, "%s::%s() requires at least %d arguments, %d given",
+ get_active_class_name(NULL TSRMLS_CC),
+ get_active_function_name(TSRMLS_C), req_args, ZEND_NUM_ARGS());
+ return;
+ }
+
+ if (with_priority) {
+ if (!php_gtk_parse_varargs(ZEND_NUM_ARGS(), req_args, &extra, "iV",
&priority, &callback))
+ return;
+ } else {
+ if (!php_gtk_parse_varargs(ZEND_NUM_ARGS(), req_args, &extra, "V",
&callback))
+ return;
+ }
+
+ callback_filename = zend_get_executed_filename(TSRMLS_C);
+ callback_lineno = zend_get_executed_lineno(TSRMLS_C);
+ php_gtk_build_value(&data, "(VNsi)", callback, extra, callback_filename,
callback_lineno);
+
+ handler_id = g_idle_add_full(priority, phpg_handler_marshal, data, phpg_destroy_notify);
+ RETURN_LONG(handler_id);
+}
+
+PHP_METHOD
+{
+ phpg_gtk_idle_add_impl(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0);
+}
+
+%%
+override gtk_idle_add_priority
+PHP_METHOD
+{
+ phpg_gtk_idle_add_impl(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1);
+}
+
+%%
add Gtk get_version
PHP_METHOD
{