(if is-last-ref
(remhash (pointer-address object) *lisp-objects-references*)
(setf (gethash (pointer-address object) *lisp-objects-references*) (gethash (pointer-address object) *foreign-gobjects*))))
(defun instance-init (instance class)
(if is-last-ref
(remhash (pointer-address object) *lisp-objects-references*)
(setf (gethash (pointer-address object) *lisp-objects-references*) (gethash (pointer-address object) *foreign-gobjects*))))
(defun instance-init (instance class)
(setf (gethash (pointer-address instance) *lisp-objects-pointers*) t
(gethash (pointer-address instance) *lisp-objects-references*)
(or *current-creating-object*
(setf (gethash (pointer-address instance) *lisp-objects-pointers*) t
(gethash (pointer-address instance) *lisp-objects-references*)
(or *current-creating-object*
(setf (foreign-slot-value class 'g-object-class 'get-property)
(callback c-object-property-get)
(foreign-slot-value class 'g-object-class 'set-property)
(setf (foreign-slot-value class 'g-object-class 'get-property)
(callback c-object-property-get)
(foreign-slot-value class 'g-object-class 'set-property)
(iter (for property in (object-type-properties lisp-type-info))
(for param-spec = (property->param-spec property))
(for property-id from 123)
(iter (for property in (object-type-properties lisp-type-info))
(for param-spec = (property->param-spec property))
(for property-id from 123)
(lisp-type-info (gethash type-name *registered-types*))
(property-info (find property-name (object-type-properties lisp-type-info) :test 'string= :key 'first))
(property-get-fn (third property-info)))
(lisp-type-info (gethash type-name *registered-types*))
(property-info (find property-name (object-type-properties lisp-type-info) :test 'string= :key 'first))
(property-get-fn (third property-info)))
(set-g-value g-value value property-type))))
(defcallback c-object-property-get :void ((object :pointer) (property-id :uint) (value :pointer) (pspec :pointer))
(set-g-value g-value value property-type))))
(defcallback c-object-property-get :void ((object :pointer) (property-id :uint) (value :pointer) (pspec :pointer))
(property-info (find property-name (object-type-properties lisp-type-info) :test 'string= :key 'first))
(property-set-fn (fourth property-info))
(new-value (parse-gvalue value)))
(property-info (find property-name (object-type-properties lisp-type-info) :test 'string= :key 'first))
(property-set-fn (fourth property-info))
(new-value (parse-gvalue value)))
(restart-case
(funcall property-set-fn new-value lisp-object)
(return-without-error-from-property-setter () nil))))
(defcallback c-object-property-set :void ((object :pointer) (property-id :uint) (value :pointer) (pspec :pointer))
(restart-case
(funcall property-set-fn new-value lisp-object)
(return-without-error-from-property-setter () nil))))
(defcallback c-object-property-set :void ((object :pointer) (property-id :uint) (value :pointer) (pspec :pointer))
(object-property-set object property-id value pspec))
(defmacro register-object-type-implementation (name class parent interfaces properties)
(object-property-set object property-id value pspec))
(defmacro register-object-type-implementation (name class parent interfaces properties)