chiark / gitweb /
Reverted previous change
[clg] / gtk / gtkobject.lisp
index d03e975a34a9f08661de0931d18c56f2e38e8065..64ac20401a4f9d0cde05b3cc4809b620822ea95e 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.22 2005-02-01 15:24:56 espen Exp $
+;; $Id: gtkobject.lisp,v 1.26 2005-03-11 16:48:15 espen Exp $
 
 
 (in-package "GTK")
@@ -36,13 +36,12 @@ (in-package "GTK")
 (eval-when (:compile-toplevel :load-toplevel :execute)
   (init-types-in-library 
    #.(concatenate 'string (pkg-config:pkg-variable "gtk+-2.0" "libdir") 
-                         "/libgtk-x11-2.0.so")
-   :ignore ("gtk_window_get_type_hint"))
+                         "/libgtk-x11-2.0.so"))
 
   (defclass %object (gobject)
     ()
     (:metaclass gobject-class)
-    (:alien-name "GtkObject")))
+    (:gtype |gtk_object_get_type|)))
 
 
 (defmethod initialize-instance ((object %object) &rest initargs &key signal)
@@ -60,11 +59,11 @@ (defmethod initialize-instance :around ((object %object) &rest initargs)
 (defbinding %object-sink () nil
   (object %object))
 
-;;;; Main loop, timeouts and idle functions
+;;;; Main loop and event handling
 
 (declaim (inline events-pending-p main-iteration))
 
-(defbinding (events-pending-p "gtk_events_pending") () boolean)
+(defbinding events-pending-p () boolean)
 
 (defbinding get-current-event () gdk:event)
 
@@ -82,9 +81,9 @@ (defbinding main-iteration-do (&optional (blocking t)) boolean
 
 (defun main-iterate-all (&rest args)
   (declare (ignore args))
-  (when (events-pending-p)
-    (main-iteration-do nil)
-    (main-iterate-all)))
+  (loop
+   while (events-pending-p)
+   do (main-iteration-do nil)))
 
 
 ;;;; Metaclass for child classes
@@ -126,20 +125,20 @@ (defmethod compute-effective-slot-definition-initargs ((class child-class) direc
     (call-next-method)))
 
 (progn
-  (declaim (optimize (ext:inhibit-warnings 3)))
+  #+cmu(declaim (optimize (inhibit-warnings 3)))
+  #+sbcl(declaim (muffle-conditions compiler-note))
   (defun %container-child-get-property (parent child pname gvalue))
   (defun %container-child-set-property (parent child pname gvalue)))
 
 
 (defmethod initialize-internal-slot-functions ((slotd effective-child-slot-definition))
-  (let* ((type (slot-definition-type slotd))
-        (pname (slot-definition-pname slotd))
-        (type-number (find-type-number type)))
+  (let ((type (slot-definition-type slotd))
+       (pname (slot-definition-pname slotd)))
     (setf 
      (slot-value slotd 'getter)
      #'(lambda (object)
         (with-slots (parent child) object         
-          (let ((gvalue (gvalue-new type-number)))
+          (let ((gvalue (gvalue-new type)))
             (%container-child-get-property parent child pname gvalue)
             (unwind-protect
                 (funcall (reader-function type) gvalue +gvalue-value-offset+)
@@ -149,7 +148,7 @@ (defmethod initialize-internal-slot-functions ((slotd effective-child-slot-defin
      (slot-value slotd 'setter)
      #'(lambda (value object)
         (with-slots (parent child) object         
-          (let ((gvalue (gvalue-new type-number)))
+          (let ((gvalue (gvalue-new type)))
             (funcall (writer-function type) value gvalue +gvalue-value-offset+)
             (%container-child-set-property parent child pname gvalue)
             (gvalue-free gvalue t)
@@ -158,7 +157,7 @@ (defmethod initialize-internal-slot-functions ((slotd effective-child-slot-defin
   (call-next-method)))
 
 
-(defmethod pcl::add-reader-method ((class child-class) generic-function slot-name)
+(defmethod add-reader-method ((class child-class) generic-function slot-name)
   (add-method
    generic-function
    (make-instance 'standard-method
@@ -168,7 +167,7 @@ (defmethod pcl::add-reader-method ((class child-class) generic-function slot-nam
                  (declare (ignore next-methods))
                  (child-property-value (first args) slot-name)))))
 
-(defmethod pcl::add-writer-method
+(defmethod add-writer-method
     ((class child-class) generic-function slot-name)
   (add-method
    generic-function
@@ -181,7 +180,7 @@ (defmethod pcl::add-writer-method
                    (setf (child-property-value widget slot-name) value))))))
 
 
-(defmethod validate-superclass ((class child-class) (super pcl::standard-class))
+(defmethod validate-superclass ((class child-class) (super standard-class))
   ;(subtypep (class-name super) 'container-child)
   t)