(defpackage :gobject
- (:use :cl :glib :cffi :tg :bordeaux-threads :iter :closer-mop :gobject.ffi)
+ (:use :c2cl :glib :cffi :tg :bordeaux-threads :iter :closer-mop :gobject.ffi)
(:export #:g-type
#:g-type-string
#:g-type-numeric
#:g-initially-unowned
#:define-g-enum
#:*lisp-name-package*
- #:define-g-boxed-class
#:define-g-flags
#:fixed-array
#:g-boxed-inline
#:release
#:using
#:using*
- #:define-g-boxed-ref
#:g-boxed-ref
#:allocate-stable-pointer
#:free-stable-pointer
#:get-flags-items
#:stable-pointer-value
#:g-value-type
- #:create-g-closure
#:g-object-call-constructor
#:g-object-call-get-property
#:g-object-call-set-property
#:*lisp-name-exceptions*
#:*additional-properties*
#:g-type=
- #:g-type/=)
+ #:g-type/=
+ #:define-g-boxed-cstruct
+ #:define-g-boxed-opaque
+ #:g-boxed-opaque
+ #:g-boxed-opaque-pointer
+ #:define-g-boxed-variant-cstruct
+ #:g-boxed-foreign
+ #:boxed-related-symbols
+ #:define-boxed-opaque-accessor
+ #:glib-defcallback
+ #:create-signal-handler-closure
+ #:save-handler-to-object
+ #:retrieve-handler-from-object
+ #:delete-handler-from-object
+ #:disconnect-signal
+ #:define-cb-methods
+ #:create-fn-ref
+ #:copy-boxed-slots-to-foreign
+ #:with-foreign-boxed-array
+ #:get-g-type-definition)
(:documentation
"CL-GTK2-GOBJECT is a binding to GObject type system.
For information on GObject, see its @a[http://library.gnome.org/devel/gobject/stable/]{documentation}.
(defvar *gobject-debug* nil)
-(defun 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)))