chiark / gitweb /
gtk-export.lisp renamed
[clg] / gtk / gtkobject.lisp
index f50759e6ebdb36b6397f342a7d4dd489036a626b..f3a14a8f80e72cc25495032e21d7ce0419bc56ae 100644 (file)
@@ -15,7 +15,7 @@
 ;; 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: gtkobject.lisp,v 1.12 2001-11-12 22:33:08 espen Exp $
+;; $Id: gtkobject.lisp,v 1.15 2002-04-02 15:07:33 espen Exp $
 
 
 (in-package "GTK")
@@ -34,7 +34,7 @@ (in-package "GTK")
 ;;;; Superclass for the gtk class hierarchy
 
 (eval-when (:compile-toplevel :load-toplevel :execute)
-  (init-types-in-library "libgtk-x11-1.3.so"
+  (init-types-in-library "libgtk-x11-2.0.so"
    :ignore ("gtk_window_get_type_hint"))
 
   (defclass %object (gobject)
@@ -47,7 +47,7 @@ (defmethod shared-initialize ((object %object) names &rest initargs
                              &allow-other-keys)
   (declare (ignore names))
   (call-next-method)
-  (funcall (proxy-class-copy (class-of object)) nil (proxy-location object)) ; inc ref count before sinking
+  (object-ref object) ; inc ref count before sinking
   (%object-sink object)
   (dolist (signal-definition (get-all initargs :signal))
     (apply #'signal-connect object signal-definition)))
@@ -135,8 +135,15 @@ (defmethod effective-slot-definition-class ((class child-class) initargs)
     (:property (find-class 'effective-child-slot-definition))
     (t (call-next-method))))
 
+(progn
+  (declaim (optimize (ext:inhibit-warnings 3)))
+  (defun %container-child-get-property (parent child pname gvalue))
+  (defun %container-child-set-property (parent child pname gvalue)))
+
+
 (defmethod compute-virtual-slot-accessors
     ((class child-class) (slotd effective-child-slot-definition) direct-slotds)
+
   (with-slots (type) slotd
     (let ((pname (slot-definition-pname (first direct-slotds)))
          (type-number (find-type-number type)))
@@ -228,8 +235,8 @@ (defun expand-container-type (type-number &optional slots)
               (with-slots (name flags value-type documentation) param
                 (let* ((slot-name (default-slot-name name))
                        (slot-type (type-from-number value-type #|t|#))
-                       (accessor
-                        (default-slot-accessor class slot-name slot-type)))
+                       (accessor (default-slot-accessor
+                                   child-class slot-name slot-type)))
                   `(,slot-name
                     :allocation :property
                     :pname ,name