+(define-foreign ("gtk_timeout_add_full" timeout-add)
+ (interval function) unsigned-int
+ (interval (unsigned 32))
+ (0 unsigned-long)
+ (*callback-marshal* pointer)
+ ((register-callback-function function) unsigned-long)
+ (*destroy-marshal* pointer))
+
+(define-foreign timeout-remove () nil
+ (timeout-handler-id unsigned-int))
+
+(define-foreign ("gtk_idle_add_full" idle-add)
+ (function &optional (priority 200)) unsigned-int
+ (priority int)
+ (0 unsigned-long)
+ (*callback-marshal* pointer)
+ ((register-callback-function function) unsigned-long)
+ (*destroy-marshal* pointer))
+
+(define-foreign idle-remove () nil
+ (idle-handler-id unsigned-int))
+
+