;; 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: gboxed.lisp,v 1.4 2001/05/29 15:46:17 espen Exp $
+;; $Id: gboxed.lisp,v 1.9 2002/03/19 17:06:11 espen Exp $
(in-package "GLIB")
(eval-when (:compile-toplevel :load-toplevel :execute)
+ (init-types-in-library "libgobject-2.0.so")
(defclass boxed (proxy)
()
(:metaclass proxy-class)
;;;; Metaclass for boxed classes
(eval-when (:compile-toplevel :load-toplevel :execute)
- (defclass boxed-class (proxy-class)))
+ (defclass boxed-class (proxy-class))
-(defmethod shared-initialize ((class boxed-class) names
- &rest initargs &key name alien-name)
- (declare (ignore initargs names))
- (call-next-method)
+ (defmethod shared-initialize ((class boxed-class) names
+ &rest initargs &key name alien-name)
+ (declare (ignore initargs names))
+ (call-next-method)
+
+ (let* ((class-name (or name (class-name class)))
+ (type-number
+ (find-type-number
+ (or (first alien-name) (default-alien-type-name class-name)))))
+ (register-type class-name type-number)))
- (let* ((class-name (or name (class-name class)))
- (type-number
- (find-type-number
- (or (first alien-name) (default-alien-type-name class-name)))))
- (register-type class-name type-number)))
-
-(defmethod validate-superclass
+ (defmethod validate-superclass
((class boxed-class) (super pcl::standard-class))
- (subtypep (class-name super) 'boxed))
+ (subtypep (class-name super) 'boxed)))
;;;;
(:metaclass boxed-class)
(:alien-name ,(find-type-name type-number))))
-(register-derivable-type 'boxed "GBoxed" :expand 'expand-boxed-type)
+(register-derivable-type 'boxed "GBoxed" 'expand-boxed-type)
;;;; Special boxed types
(deftype-method translate-to-alien
gstring (type-spec string &optional weak-ref)
- (declare (ignore type-spec weak-ref))
+ (declare (ignore weak-ref))
`(let ((string ,string))
;; Always copy strings to prevent seg fault due to GC
(funcall