anchor.diff:  ;; License along with this library; if not, write to the Free Software
   ;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
   
  -;; $Id: gcallback.lisp,v 1.15 2004-12-04 00:29:57 espen Exp $
  +;; $Id: gcallback.lisp,v 1.16 2004-12-05 13:54:10 espen Exp $
   
   (in-package "GLIB")
   
  
positive.code: 
  ;;;; Timeouts and idle functions
  
  (defcallback source-callback-marshal (nil (callback-id unsigned-int))
    (callback-trampoline callback-id 0 nil (make-pointer 0)))
  
  (defbinding (timeout-add "g_timeout_add_full")
      (function interval &optional (priority 0)) unsigned-int 
    (priority int)
    (interval unsigned-int)
    (*source-callback-marshal* pointer)
    ((register-callback-function function) unsigned-long)
    ((callback %destroy-user-data) pointer))
  
  (defbinding (idle-add "g_idle_add_full")
      (function &optional (priority 0)) unsigned-int 
    (priority int)
    (*source-callback-marshal* pointer)
    ((register-callback-function function) unsigned-long)
    ((callback %destroy-user-data) pointer))
  
  
  
  ;;;; Signals
  
negative.code:  is T, the object connected to is passed as the first argument to the callback 
   function, or if :OBJECT is any other non NIL value, it is passed as the first 
   argument instead. If :AFTER is non NIL, the handler will be called after the 
   default handler for the signal."
    (when function
      (let ((callback-id
  	   (make-callback-closure
  