X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=glib%2Fgobject.package.lisp;h=e185819ee33e309308e3b1dcc0045b8a328e9c24;hb=e6ec5def79916d6ecf3b1ea9aaecbbc295fdad95;hp=ccd59c44db9603e7c1786e0a65f365e7817281ad;hpb=2715350f7cc545171a3df81315b758df9ee89969;p=cl-gtk2.git diff --git a/glib/gobject.package.lisp b/glib/gobject.package.lisp index ccd59c4..e185819 100644 --- a/glib/gobject.package.lisp +++ b/glib/gobject.package.lisp @@ -1,6 +1,54 @@ (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+ @@ -31,7 +79,6 @@ #:g-initially-unowned #:define-g-enum #:*lisp-name-package* - #:define-g-boxed-class #:define-g-flags #:fixed-array #:g-boxed-inline @@ -40,7 +87,6 @@ #:release #:using #:using* - #:define-g-boxed-ref #:g-boxed-ref #:allocate-stable-pointer #:free-stable-pointer @@ -55,37 +101,16 @@ #: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 @@ -99,7 +124,70 @@ #: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}. @@ -153,15 +241,17 @@ GObject uses GValues as a generic way to pass values. It is used when calling cl (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)))