chiark / gitweb /
Fix for SBCL 1.0.14
[clg] / gtk / gtkobject.lisp
index 797bd00567e8b4cd87f39ff2d8db95080daf3d1b..a98402242c5bf157b81ac00d5bea9a9047b84d28 100644 (file)
@@ -20,7 +20,7 @@
 ;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 ;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-;; $Id: gtkobject.lisp,v 1.43 2007/06/25 13:56:56 espen Exp $
+;; $Id: gtkobject.lisp,v 1.45 2008/02/28 18:33:12 espen Exp $
 
 
 (in-package "GTK")
@@ -181,7 +181,7 @@ (defmethod compute-slot-writer-function ((slotd effective-child-slot-definition)
          value))))
 
 
-(defmethod add-reader-method ((class container-child-class) generic-function slot-name #?(sbcl>= 1 0 2)slot-documentation)
+(defmethod add-reader-method ((class container-child-class) generic-function slot-name #?(sbcl>= 1 0 2)slot-documentation #?(sbcl>= 1 0 14)source-location)
   (add-method
    generic-function
    (make-instance 'standard-method
@@ -192,7 +192,7 @@ (defmethod add-reader-method ((class container-child-class) generic-function slo
                  (declare (ignore next-methods))
                  (child-property-value (first args) slot-name)))))
 
-(defmethod add-writer-method ((class container-child-class) generic-function slot-name #?(sbcl>= 1 0 2)slot-documentation)
+(defmethod add-writer-method ((class container-child-class) generic-function slot-name #?(sbcl>= 1 0 2)slot-documentation #?(sbcl>= 1 0 14)source-location)
   (add-method
    generic-function
    (make-instance 'standard-method
@@ -256,3 +256,23 @@ (defun container-dependencies (type options)
     (mapcar #'param-value-type (query-container-class-child-properties type)))))
 
 (register-derivable-type 'container "GtkContainer" 'expand-container-type 'container-dependencies)
+
+
+(defmacro define-callback-setter (name arg return-type &rest rest-args)
+  (let ((callback (gensym)))
+    (if arg
+       `(progn 
+          (define-callback-marshal ,callback ,return-type 
+            ,(cons arg rest-args))
+          (defbinding ,name () nil
+            ,arg
+            (,callback callback)
+            (function user-callback)
+            (user-data-destroy-callback callback)))
+      `(progn 
+        (define-callback-marshal ,callback ,return-type ,rest-args)
+        (defbinding ,name () nil
+          (,callback callback)
+          (function user-callback)
+          (user-data-destroy-callback callback))))))
+