Re: [php-gtk-cvs] cvs: php-gtk /ext/gtk+ gtk.overrides
| From: | Steph Fox | Date: | Sat, 17 Dec 2005 14:03:32 +0000 |
| Subject: | Re: [php-gtk-cvs] cvs: php-gtk /ext/gtk+ gtk.overrides | ||
| References: | 1 | Groups: | php.gtk.dev |
| Request: | Send a blank email to php-gtk-dev+get-2119@lists.php.net to get a copy of this message | ||
idle_add_priority isn't being written because idle_add_* is still in the
'ignores' list... still, if you remove it from there neither idle_add_full()
(which we probably don't want in userspace anyway) nor idle_add_priority()
is being written because GtkFunction isn't defined anywhere. According to
my build logs, anyway...
function Gtk::idle_add_full: unknown type 'GtkFunction' function Gtk::idle_add_priority: unknown type 'GtkFunction'Strange to relate, idle_add() itself copes without. ----- Original Message ----- From: "Andrei Zmievski" <andrei@php.net> To: <php-gtk-cvs@lists.php.net> Sent: Saturday, December 10, 2005 11:20 PM Subject: [php-gtk-cvs] cvs: php-gtk /ext/gtk+ gtk.overrides
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, %dgiven",+ 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 { -- PHP-GTK CVS Mailing List (http://gtk.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php