;; Common Lisp bindings for GTK+ v2.0
-;; Copyright (C) 2000 Espen S. Johnsen <espejohn@online.no>
+;; Copyright (C) 2000 Espen S. Johnsen <esj@stud.cs.uit.no>
;;
;; This library is free software; you can redistribute it and/or
;; modify it under the terms of the GNU Lesser General Public
;; License along with this library; if not, write to the Free Software
;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-;; $Id: gtype.lisp,v 1.3 2000/08/23 14:27:41 espen Exp $
+;; $Id: gtype.lisp,v 1.7 2001/01/28 14:11:20 espen Exp $
(in-package "GLIB")
(define-foreign type-instance-size (type) int
((find-type-number type) type-number))
-(define-foreign type-create-instance (type) pointer
- ((find-type-number type) type-number))
+; (define-foreign type-create-instance (type) pointer
+; ((find-type-number type) type-number))
(define-foreign type-free-instance () nil
(instance pointer))
object))
((or (functionp writer) (symbolp writer))
(funcall writer value object)
- object)
+ value)
(t
(funcall (fdefinition writer) value object)
- object))))
+ value))))
(defmethod validate-superclass
(deftype-method translate-type-spec alien-instance (type-spec)
(declare (ignore type-spec))
- 'system-area-pointer)
+ (translate-type-spec 'pointer))
+
+(deftype-method size-of alien-instance (type-spec)
+ (declare (ignore type-spec))
+ (size-of 'pointer))
(alien::make-heap-alien-info
:type (alien::parse-alien-type
`(function
- void ,alien-type system-area-pointer))
+ void system-area-pointer ,alien-type))
:sap-form (system:foreign-symbol-address writer))))
(to-alien (get-to-alien-function type))
(cleanup (get-cleanup-function type)))
(:reference
`(ensure-alien-instance
',type-spec
- `(,(alien-copier type-spec)
- location ,(alien-class-size (find-class type-spec)))))))))
+ (,(alien-copier type-spec)
+ location ,(alien-class-size (find-class type-spec)))))))))
(deftype-method cleanup-alien alien-structure (type-spec sap &optional copied)
(when copied
;;;; Superclass wrapping types in the glib type system
(eval-when (:compile-toplevel :load-toplevel :execute)
- (defclass gtype (alien-object)
+ (defclass ginstance (alien-object)
()
(:metaclass alien-class)
(:size 4 #|(size-of 'pointer)|#)))
(sap-ref-unsigned class 0)))
-(deftype-method translate-from-alien gtype (type-spec location &optional alloc)
+(deftype-method translate-from-alien ginstance (type-spec location &optional alloc)
(declare (ignore type-spec alloc))
`(let ((location ,location))
(unless (null-pointer-p location)
-;;;; Metaclass for subclasses of gtype-class
+;;;; Metaclass for subclasses of ginstance-class
(eval-when (:compile-toplevel :load-toplevel :execute)
- (defclass gtype-class (alien-class)))
+ (defclass ginstance-class (alien-class)))
-(defmethod shared-initialize ((class gtype-class) names
+(defmethod shared-initialize ((class ginstance-class) names
&rest initargs &key name)
(declare (ignore initargs names))
(call-next-method)
(defmethod validate-superclass
- ((class gtype-class) (super pcl::standard-class))
- (subtypep (class-name super) 'gtype))
+ ((class ginstance-class) (super pcl::standard-class))
+ (subtypep (class-name super) 'ginstance))
-(defmethod allocate-alien-storage ((class gtype-class))
- (type-create-instance (find-type-number class)))
+; (defmethod allocate-alien-storage ((class ginstance-class))
+; (type-create-instance (find-type-number class)))
;;;; Initializing type numbers