cvs: php-gtk /ext/gtk+ gtk.overrides

From: 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 {

« previous php.gtk.cvs (#2015) next »