(defpackage :gobject
- (:use :cl :glib :cffi :tg :bordeaux-threads :iter :closer-mop)
- (:export #:+g-type-invalid+
+ (: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
+ #:g-type-children
+ #:g-type-parent
+ #:g-type-designator
+ #:g-type-fundamental
+ #:g-type-depth
+ #:g-type-next-base
+ #:g-type-is-a
+ #:g-type-interfaces
+ #:g-type-interface-prerequisites
+ #:g-strv-get-type
+ #:g-closure-get-type
+ #:g-class-property-definition
+ #:g-class-property-definition-name
+ #:g-class-property-definition-type
+ #:g-class-property-definition-readable
+ #:g-class-property-definition-writable
+ #:g-class-property-definition-constructor
+ #:g-class-property-definition-constructor-only
+ #:g-class-property-definition-owner-type
+ #:parse-g-param-spec
+ #:class-properties
+ #:interface-properties
+ #:enum-item
+ #:enum-item-name
+ #:enum-item-value
+ #:enum-item-nick
+ #:get-enum-items
+ #:flags-item
+ #:flags-item-name
+ #:flags-item-value
+ #:flags-item-nick
+ #:get-flags-items
+ #:signal-info
+ #:signal-info-id
+ #:signal-info-name
+ #:signal-info-owner-type
+ #:signal-info-flags
+ #:signal-info-return-type
+ #:signal-info-param-types
+ #:signal-info-detail
+ #:query-signal-info
+ #:type-signals
+ #:parse-signal-name
+ #:class-property-info
+ #:+g-type-invalid+
#:+g-type-void+
#:+g-type-interface+
#:+g-type-char+
#: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
#:define-vtable
#:g-type
#:set-g-value
- #:parse-gvalue
+ #:parse-g-value
#:emit-signal
#:g-value-unset
#:g-value-zero
#:g-value-init
- #:g-class-property-definition
- #:g-class-property-definition-name
- #:g-class-property-definition-type
- #:g-class-property-definition-readable
- #:g-class-property-definition-writable
- #:g-class-property-definition-constructor
- #:g-class-property-definition-constructor-only
- #:g-class-property-definition-owner-type
- #:class-properties
- #:interface-properties
- #:enum-item
- #:enum-item-name
- #:enum-item-value
- #:enum-item-nick
- #:get-enum-types
- #:flags-item
- #:flags-item-name
- #:flags-item-value
- #:flags-item-nick
- #:get-flags-types
#:g-type-class-ref
#:g-object-class
#:gobject-class
#:g-param-spec
#:type-instance
- #:parse-g-param-spec
#:g-type-class-unref
#:registered-object-type-by-name
#:g-type-children
#:g-type-next-base
#:g-type-is-a
#:g-type-interfaces
- #:g-type-interface-prerequisites)
+ #:g-type-interface-prerequisites
+ #:g-type-name
+ #:g-type-from-name
+ #:g-type
+ #:g-type-children
+ #:g-type-parent
+ #:g-type-designator
+ #:g-type-fundamental
+ #:g-type-depth
+ #:g-type-next-base
+ #:g-type-is-a
+ #:g-type-interfaces
+ #:g-type-interface-prerequisites
+ #:g-strv-get-type
+ #:g-closure-get-type
+ #:g-class-property-definition
+ #:g-class-property-definition-name
+ #:g-class-property-definition-type
+ #:g-class-property-definition-readable
+ #:g-class-property-definition-writable
+ #:g-class-property-definition-constructor
+ #:g-class-property-definition-constructor-only
+ #:g-class-property-definition-owner-type
+ #:parse-g-param-spec
+ #:class-properties
+ #:interface-properties
+ #:enum-item
+ #:enum-item-name
+ #:enum-item-value
+ #:enum-item-nick
+ #:get-enum-items
+ #:flags-item
+ #:flags-item-name
+ #:flags-item-value
+ #:flags-item-nick
+ #: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
+ #:register-enum-type
+ #:register-flags-type
+ #:register-object-type
+ #:generate-types-hierarchy-to-file
+ #:get-g-flags-definition
+ #:get-g-enum-definition
+ #:get-g-interface-definition
+ #:get-g-class-definition
+ #:*strip-prefix*
+ #:*lisp-name-exceptions*
+ #:*additional-properties*
+ #: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)
(: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}.
(in-package :gobject)
-(eval-when (:compile-toplevel :load-toplevel :execute)
- (define-foreign-library gobject
- (:unix (:or "libgobject-2.0.so.0" "libgobject-2.0.so"))
- (t "libgobject-2.0")))
+(defvar *gobject-debug* nil)
-(use-foreign-library gobject)
+(defvar *debug-gc* nil)
+(defvar *debug-subclass* nil)
-(defvar *gobject-debug* nil)
+(defvar *debug-stream* t)
-(defun debugf (&rest args)
- (when *gobject-debug*
- (apply 'format t args)))
\ No newline at end of file
+(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)))