Change weak reference to toggle references
[cl-gtk2.git] / glib / gobject.package.lisp
index 16b0c97..e185819 100644 (file)
@@ -1,5 +1,6 @@
 (defpackage :gobject
   (:use :cl :glib :cffi :tg :bordeaux-threads :iter :closer-mop :gobject.ffi)
+  #+(or clozure-common-lisp openmcl) (:shadowing-import-from :closer-mop #:defgeneric #:ensure-generic-function #:standard-generic-function)
   (:export #:g-type
            #:g-type-string
            #:g-type-numeric
@@ -242,6 +243,15 @@ GObject uses GValues as a generic way to pass values. It is used when calling cl
 
 (defvar *gobject-debug* nil)
 
-(defmacro debugf (&rest args)
-  (when *gobject-debug*
-    (apply 'format t args)))
\ No newline at end of file
+(defvar *debug-gc* nil)
+(defvar *debug-subclass* nil)
+
+(defvar *debug-stream* t)
+
+(defmacro log-for (categories control-string &rest args)
+  (let ((vars (iter (for sym in (if (listp categories) categories (list categories)))
+                    (collect (intern (format nil "*DEBUG-~A*" (symbol-name sym)) (find-package :gobject))))))
+    `(progn
+       (when (or ,@vars)
+         (format *debug-stream* ,control-string ,@args))
+       nil)))