[cells-gtk-cvs] CVS update: root/cells-gtk/actions.lisp root/cells-gtk/buttons.lisp root/cells-gtk/cells-gtk.asd root/cells-gtk/entry.lisp root/cells-gtk/gtk-app.lisp root/cells-gtk/layout.lisp root/cells-gtk/menus.lisp root/cells-gtk/tree-view.lisp root/cells-gtk/widgets.lisp

Kenny Tilton ktilton at common-lisp.net
Tue Dec 14 04:01:57 UTC 2004


Update of /project/cells-gtk/cvsroot/root/cells-gtk
In directory common-lisp.net:/tmp/cvs-serv11104/cells-gtk

Modified Files:
	actions.lisp buttons.lisp cells-gtk.asd entry.lisp 
	gtk-app.lisp layout.lisp menus.lisp tree-view.lisp 
	widgets.lisp 
Log Message:
Locking in fixes which make AllegroCL and Lispworks largely work OK before trashing code again.
Date: Tue Dec 14 05:01:51 2004
Author: ktilton

Index: root/cells-gtk/actions.lisp
diff -u root/cells-gtk/actions.lisp:1.1 root/cells-gtk/actions.lisp:1.2
--- root/cells-gtk/actions.lisp:1.1	Fri Nov 19 00:39:53 2004
+++ root/cells-gtk/actions.lisp	Tue Dec 14 05:01:51 2004
@@ -48,7 +48,7 @@
     (gtk-ffi::gtk-action-group-remove-action (id self) (id kid)))
   (dolist (kid new-value)
     (gtk-ffi::gtk-action-group-add-action-with-accel (id self) (id kid) (accel kid)))
-  (call-next-method))
+  #+clisp (call-next-method))
 
 (def-object ui-manager ()
   ((action-groups :accessor action-groups :initform (c-in nil))


Index: root/cells-gtk/buttons.lisp
diff -u root/cells-gtk/buttons.lisp:1.3 root/cells-gtk/buttons.lisp:1.4
--- root/cells-gtk/buttons.lisp:1.3	Mon Dec  6 21:04:12 2004
+++ root/cells-gtk/buttons.lisp	Tue Dec 14 05:01:51 2004
@@ -37,7 +37,8 @@
 (def-c-output .kids ((self button))
   (assert-bin self)
   (dolist (kid (kids self))
-    (gtk-container-add (id self) (id kid))))
+    (gtk-container-add (id self) (id kid)))
+  #+clisp (call-next-method))
 
 (def-c-output stock ((self button))
   (when new-value
@@ -93,4 +94,5 @@
   
 (def-c-output .md-value ((self radio-button))
   (when (and new-value (upper self box))
-    (setf (md-value (upper self box)) (md-name self))))
+    (setf (md-value (upper self box)) (md-name self)))
+  #+clisp (call-next-method))


Index: root/cells-gtk/cells-gtk.asd
diff -u root/cells-gtk/cells-gtk.asd:1.1 root/cells-gtk/cells-gtk.asd:1.2
--- root/cells-gtk/cells-gtk.asd:1.1	Fri Nov 19 00:39:53 2004
+++ root/cells-gtk/cells-gtk.asd	Tue Dec 14 05:01:51 2004
@@ -5,14 +5,14 @@
   :components
   ((:file "cells-gtk")   
    (:file "widgets")
-   (:file "layout")
-   (:file "display")
-   (:file "buttons")
-   (:file "entry")
-   (:file "tree-view")
-   (:file "menus")   
-   (:file "dialogs")
-   (:file "textview")
-   (:file "addon")
+   (:file "layout" :depends-on ("widgets"))
+   (:file "display" :depends-on ("widgets"))
+   (:file "buttons" :depends-on ("widgets"))
+   (:file "entry" :depends-on ("widgets"))
+   (:file "tree-view" :depends-on ("widgets"))
+   (:file "menus" :depends-on ("widgets"))
+   (:file "dialogs" :depends-on ("widgets"))
+   (:file "textview" :depends-on ("widgets"))
+   (:file "addon" :depends-on ("widgets"))
    (:file "gtk-app")
-))
+   ))


Index: root/cells-gtk/entry.lisp
diff -u root/cells-gtk/entry.lisp:1.2 root/cells-gtk/entry.lisp:1.3
--- root/cells-gtk/entry.lisp:1.2	Sun Dec  5 07:33:22 2004
+++ root/cells-gtk/entry.lisp	Tue Dec 14 05:01:51 2004
@@ -23,6 +23,14 @@
   (model)
   ())
 
+#+no
+(def-gtk widget entry nil
+         ((auto-update :accessor auto-update :initarg :auto-aupdate :initform nil)
+          (completion :accessor completion :initarg :completion :initform nil)
+          (text :accessor text :initarg :text :initform (c-in nil))
+          (init :accessor init :initarg :init :initform nil))
+         (editable has-frame max-length) (changed activate))
+
 (def-widget entry ()
   ((auto-update :accessor auto-update :initarg :auto-aupdate :initform nil)
    (completion :accessor completion :initarg :completion :initform nil)


Index: root/cells-gtk/gtk-app.lisp
diff -u root/cells-gtk/gtk-app.lisp:1.3 root/cells-gtk/gtk-app.lisp:1.4
--- root/cells-gtk/gtk-app.lisp:1.3	Mon Dec  6 21:04:12 2004
+++ root/cells-gtk/gtk-app.lisp	Tue Dec 14 05:01:51 2004
@@ -97,6 +97,9 @@
     *gtk-global-callbacks* 16))
 
 (defun gtk-global-callback-funcall (n)
+  (trc nil "gtk-global-callback-funcall >" n
+    *gtk-global-callbacks*
+    (when n (aref *gtk-global-callbacks* n)))
   (funcall (aref *gtk-global-callbacks* n)))
 
 (defun cells-gtk-init ()


Index: root/cells-gtk/layout.lisp
diff -u root/cells-gtk/layout.lisp:1.2 root/cells-gtk/layout.lisp:1.3
--- root/cells-gtk/layout.lisp:1.2	Sun Dec  5 07:33:22 2004
+++ root/cells-gtk/layout.lisp	Tue Dec 14 05:01:51 2004
@@ -30,7 +30,8 @@
   (when new-value
     (dolist (kid new-value)
       (gtk-box-pack-start (id self) (id kid) 
-			  (expand? kid) (fill? kid) (padding? kid)))))
+			  (expand? kid) (fill? kid) (padding? kid)))
+    #+clisp (call-next-method)))
 
 (def-widget hbox (box)
   () () ()
@@ -83,7 +84,8 @@
     (and (cadr new-value)
 	 (gtk-paned-add2 (id self) (id (make-be 'frame 
 						    :shadow 'in
-						    :kids (list (cadr new-value))))))))
+						    :kids (list (cadr new-value)))))))
+  #+clisp (call-next-method))
 
 (def-widget vpaned ()
   () () ())
@@ -96,7 +98,8 @@
     (and (cadr new-value)
 	 (gtk-paned-add2 (id self) (id (make-be 'frame 
 						    :shadow 'in
-						    :kids (list (cadr new-value))))))))
+						    :kids (list (cadr new-value)))))))
+  #+clisp (call-next-method))
   
 
 (def-widget frame ()
@@ -124,7 +127,8 @@
 (def-c-output .kids ((self frame))
   (assert-bin self)
   (dolist (kid new-value)
-    (gtk-container-add (id self) (id kid))))
+    (gtk-container-add (id self) (id kid)))
+  #+clisp (call-next-method))
 
 (def-widget aspect-frame (frame)
   ((xalign :accessor xalign :initarg :xalign :initform 0.5)
@@ -158,7 +162,8 @@
 (def-c-output .kids ((self expander))
   (assert-bin self)
   (dolist (kid new-value)
-    (gtk-container-add (id self) (id kid))))
+    (gtk-container-add (id self) (id kid)))
+  #+clisp (call-next-method))
 
 (def-widget scrolled-window ()
   ()
@@ -173,7 +178,8 @@
   (dolist (kid new-value)
     (if (member (class-name (class-of kid)) '(listbox treebox tree-view text-view layout) :test #'equal)
 	(gtk-container-add (id self) (id kid))
-	(gtk-scrolled-window-add-with-viewport (id self) (id kid)))))
+	(gtk-scrolled-window-add-with-viewport (id self) (id kid))))
+  #+clisp (call-next-method))
 
 (def-widget notebook ()
   ((tab-labels :accessor tab-labels :initarg :tab-labels :initform nil)
@@ -213,7 +219,8 @@
   (loop for page from 0 to (length new-value) do
 	(setf (current-page self) page)) 
   (when (and (show-page self) (>= (show-page self) 0) (< (show-page self) (length new-value)))
-    (setf (current-page self) (show-page self))))
+    (setf (current-page self) (show-page self)))
+  #+clisp (call-next-method))
 
 (def-widget alignment ()
   ((xalign :accessor xalign :initarg :xalign :initform 0.5)
@@ -264,4 +271,5 @@
 (def-c-output .kids ((self alignment))
   (assert-bin self)
   (dolist (kid new-value)
-    (gtk-container-add (id self) (id kid))))
+    (gtk-container-add (id self) (id kid)))
+  #+clisp (call-next-method))


Index: root/cells-gtk/menus.lisp
diff -u root/cells-gtk/menus.lisp:1.3 root/cells-gtk/menus.lisp:1.4
--- root/cells-gtk/menus.lisp:1.3	Mon Dec  6 21:04:12 2004
+++ root/cells-gtk/menus.lisp	Tue Dec 14 05:01:51 2004
@@ -27,7 +27,9 @@
   (changed)
   :new-tail '-text
   :on-changed (callback (widget event data)
+                (trc "combo-box onchanged cb" widget event data (id self))
                 (let ((pos (gtk-combo-box-get-active (id self))))
+                  (trc "combo-box pos" pos)
                   (setf (md-value self) (and (not (= pos -1))
                                           (nth pos (items self)))))))
 
@@ -87,7 +89,8 @@
   (assert-bin self)
   (when new-value
     (dolist (kid new-value)
-      (gtk-container-add (id self) (id kid)))))
+      (gtk-container-add (id self) (id kid))))
+  #+clisp (call-next-method))
 
 (def-widget separator-tool-item (tool-item)
   ()
@@ -130,7 +133,8 @@
 (def-c-output .kids ((self menu-shell))  
   (when new-value
     (dolist (kid new-value)
-      (gtk-menu-shell-append (id self) (id kid)))))
+      (gtk-menu-shell-append (id self) (id kid))))
+  #+clisp (call-next-method))
 
 (def-widget menu-bar (menu-shell)
   () () ())
@@ -192,9 +196,17 @@
   (toggled)
   :active (c-in nil)
   :on-toggled (callback (widget event data)
+                (trc "on-toggled" self widget event data)
                 (let ((state (gtk-check-menu-item-get-active widget)))
                   (setf (md-value self) state))))
 
+#+not
+(DEF-GTK WIDGET CHECK-MENU-ITEM (MENU-ITEM) ((INIT :ACCESSOR INIT :INITARG :INIT :INITFORM NIL))
+         (ACTIVE) (TOGGLED) :ACTIVE (C-IN NIL) :ON-TOGGLED
+         (CALLBACK (WIDGET EVENT DATA) (TRC "on-toggled" SELF WIDGET EVENT DATA)
+                   (LET ((STATE (GTK-CHECK-MENU-ITEM-GET-ACTIVE WIDGET)))
+                     (SETF (MD-VALUE SELF) STATE))))
+
 (def-c-output init ((self check-menu-item))
   (setf (active self) new-value)
   (setf (md-value self) new-value))
@@ -214,7 +226,8 @@
   
 (def-c-output .md-value ((self radio-menu-item))
   (when (and new-value (upper self menu-item))
-    (setf (md-value (upper self menu-item)) (md-name self))))
+    (setf (md-value (upper self menu-item)) (md-name self)))
+  #+clisp (call-next-method))
 
 (def-widget image-menu-item (menu-item)
   ((stock :accessor stock :initarg :stock :initform nil)


Index: root/cells-gtk/tree-view.lisp
diff -u root/cells-gtk/tree-view.lisp:1.3 root/cells-gtk/tree-view.lisp:1.4
--- root/cells-gtk/tree-view.lisp:1.3	Mon Dec  6 21:04:12 2004
+++ root/cells-gtk/tree-view.lisp	Tue Dec 14 05:01:51 2004
@@ -117,8 +117,9 @@
         (assert (eql self selected-clos))
         (gtk-object-store selected-widget self) ;; tie column widg to clos tree-view
         (callback-register self :on-select new-value)
-        (gtk-signal-connect selected-widget "changed"
-          (ff-register-callable 'tree-view-select-handler))))))
+        (let ((cb (ff-register-callable 'tree-view-select-handler)))
+          (trc "tree-view on-select pcb:" cb selected-widget "changed")
+          (gtk-signal-connect selected-widget "changed" cb)))))) 
 
 (defmodel listbox (tree-view)
   ()
@@ -188,12 +189,13 @@
                          (t (gtk-cell-renderer-text-new))) do
           (gtk-tree-view-column-pack-start (id col) renderer t)
           (gtk-tree-view-column-set-cell-data-func (id col) renderer
-            (progn
+            (let ((cb (ff-register-callable 'tree-view-render-call-callback)))
+              (trc "tree-view columns pcb:" cb (id col) :render-cell)
               (callback-register col :render-cell
                 (gtk-tree-view-render-cell pos 
                   (nth pos (column-types self))
                   (getf (column-render self) pos)))
-              (ff-register-callable 'tree-view-render-call-callback))
+              cb)
             nil nil)
           (gtk-tree-view-column-set-sort-column-id (id col) pos)
           (gtk-tree-view-insert-column (id self) (id col) pos))))


Index: root/cells-gtk/widgets.lisp
diff -u root/cells-gtk/widgets.lisp:1.3 root/cells-gtk/widgets.lisp:1.4
--- root/cells-gtk/widgets.lisp:1.3	Mon Dec  6 21:04:12 2004
+++ root/cells-gtk/widgets.lisp	Tue Dec 14 05:01:51 2004
@@ -75,8 +75,6 @@
       (break "gtk-object-store id ~a known as ~a, not forgettable ~a"
         hash-id known gtk-object)))))
 
-#+shhh
-(maphash (lambda (k v) (print (list k v))) *gtk-objects*)
 
 (defun gtk-object-find (gtk-id &optional must-find-p &aux (hash-id (pointer-address gtk-id)))
   (when *gtk-objects*
@@ -102,7 +100,11 @@
 ; ------------------------------------------
 
 (defmethod configure ((self gtk-object) gtk-function value)
-  (apply gtk-function (id self) (if (consp value) value (list value))))
+  (apply gtk-function
+    (id self)
+    (if (consp value)
+        value
+      (list value))))
 
 (eval-when (:compile-toplevel :load-toplevel :execute)
   (defun gtk-function-name (class option)
@@ -117,17 +119,27 @@
 (defmacro def-gtk-event-handler (event)
   `(ff-defun-callable :cdecl :int ,(intern (string-upcase (format nil "~a-handler" event)))
      ((widget (* :void)) (event (* :void)) (data (* :void)))
-     (print (list :def-gtk-event-handler ,(symbol-name event)))
+     ;(print (list :entered-gtk-event-handler-cb ,(symbol-name event) widget))
      (let ((self (gtk-object-find widget t)))
        (let ((cb (callback-recover self ,(intern (symbol-name event) :keyword))))
          (funcall cb self widget event data)))))
 
 (def-gtk-event-handler clicked)
+(def-gtk-event-handler changed)
+(def-gtk-event-handler activate)
+(def-gtk-event-handler value-changed)
+(def-gtk-event-handler day-selected)
+(def-gtk-event-handler selection-changed)
 (def-gtk-event-handler toggled)
 (def-gtk-event-handler delete-event)
-  
+
 (defparameter *widget-callbacks*
   (list (cons 'clicked (ff-register-callable 'clicked-handler))
+    (cons 'changed (ff-register-callable 'changed-handler))
+    (cons 'activate (ff-register-callable 'activate-handler))
+    (cons 'value-changed (ff-register-callable 'value-changed-handler))
+    (cons 'day-selected (ff-register-callable 'day-selected-handler))
+    (cons 'selection-changed (ff-register-callable 'selection-changed-handler))
     (cons 'toggled (ff-register-callable 'toggled-handler))
     (cons 'delete-event (ff-register-callable 'delete-event-handler))))
 
@@ -157,7 +169,6 @@
                               new-value)
                             #+shhh (when *gtk-debug*
                               (TRC ,(format nil "output after ~a-~a" class slot-name) new-value) (force-output))))
-              
             into outputs
             finally (return (values slot-defs outputs)))
       (multiple-value-bind (signals-slots signals-outputs)
@@ -169,16 +180,15 @@
               into signals-slots-defs
               collecting `(def-c-output ,slot-name ((self ,class))
                             (when new-value
-                              #+clisp  (gtk-signal-connect (id self)
-                                         ,(string-downcase (string signal-slot)) 
-                                         new-value)
-                              #-clisp
-                              (progn (callback-register self
-                                       ,(intern (string signal-slot) :keyword)
-                                       new-value)
-                                (gtk-signal-connect (id self)
-                                  ,(string-downcase (string signal-slot)) 
-                                  (cdr (assoc ',signal-slot *widget-callbacks*))))))
+                              (callback-register self
+                                ,(intern (string signal-slot) :keyword)
+                                new-value)
+                              (let ((cb (cdr (assoc ',signal-slot *widget-callbacks*))))
+                                (assert cb)
+                                #+shhtk (trc "in def-c-output gtk-signal-connect pcb:"
+                                  cb ',slot-name (id self))
+                              (gtk-signal-connect (id self)
+                                ,(string-downcase (string signal-slot)) cb))))
               into signals-outputs-defs
               finally (return (values signals-slots-defs signals-outputs-defs)))
         `(progn
@@ -208,7 +218,7 @@
   #-clisp
   `(lambda (self ,widg ,event ,data) 
      (declare (ignorable self ,widg ,event ,data))
-     (print (list :callback self ,widg ,event ,data))
+     ;(print (list :anon-callback self ,widg ,event ,data))
      (prog1
          (progn
            , at body
@@ -222,24 +232,31 @@
                                            , at body t))
          #-clisp (lambda (self ,widg ,event ,data) 
                    (declare (ignorable self ,widg ,event ,data))
-                   (print (list :callback self ,widg ,event ,data))
+                   ;(print (list :anon-callback-if self ,widg ,event ,data))
                    , at body
                    1))))
 
-(ff-defun-callable :cdecl :int timeout-handler-callback
-    ((data (* :void)))
-  (print :timeout-handler-callback)
-  (let ((id (elti data 0)))
-    (gtk-global-callback-funcall id)))
+
+(ff-defun-callable :cdecl :boolean timeout-handler-callback
+    ((data (* :int)))
+  ;;(print (list :timeout-handler-callback data))
+  (let* ((id (elti data 0))
+         (r2 (gtk-global-callback-funcall id)))
+    (trc nil "timeout func really returning" r2)
+    r2))
+
 
 (defun timeout-add (milliseconds function)
   (let ((id (gtk-global-callback-register
               (lambda ()
-                (print :timeout-add-global)
-                (with-gdk-threads
-                    (funcall function)))))
+                ;;(print :timeout-add-global)
+                (let ((r (with-gdk-threads
+                             (funcall function))))
+                  (trc nil "timeout func returning" r)
+                  r))))
         (c-id (fgn-alloc :int 1)))
     (setf (elti c-id 0) id)
+    (trc nil "timeout-add > passing cb data, *data" c-id (elti c-id 0))
     (g-timeout-add milliseconds (ff-register-callable 'timeout-handler-callback) c-id)))
 
 (def-object widget ()
@@ -362,7 +379,8 @@
   (assert-bin self)
   (dolist (kid new-value)
     (when *gtk-debug* (trc "WINDOW ADD KID" (md-name self) (md-name kid)) (force-output))
-    (gtk-container-add (id self) (id kid))))
+    (gtk-container-add (id self) (id kid)))
+  #+clisp (call-next-method))
 
 (def-widget event-box ()
   ((visible-window :accessor visible-window :initarg :visible-window :initform nil))
@@ -376,7 +394,7 @@
 (def-c-output .kids ((self event-box))
   (assert-bin self)
   (when new-value
-    (gtk-container-add (id self) (id (first new-value)))))
-
+    (gtk-container-add (id self) (id (first new-value))))
+  #+clisp (call-next-method))
 (eval-when (compile load eval)
   (export '(callback callback-if timeout-add focus)))




More information about the Cells-gtk-cvs mailing list