[cells-cvs] CVS Celtk

ktilton ktilton at common-lisp.net
Sat May 27 06:04:22 UTC 2006


Update of /project/cells/cvsroot/Celtk
In directory clnet:/tmp/cvs-serv7353

Modified Files:
	CELTK.lpr togl.lisp 
Log Message:
Get destroy callbacks working on Togls

--- /project/cells/cvsroot/Celtk/CELTK.lpr	2006/05/24 20:38:54	1.12
+++ /project/cells/cvsroot/Celtk/CELTK.lpr	2006/05/27 06:04:22	1.13
@@ -10,6 +10,7 @@
                  (make-instance 'module :name "tk-interp.lisp")
                  (make-instance 'module :name "tk-events.lisp")
                  (make-instance 'module :name "tk-object.lisp")
+                 (make-instance 'module :name "fileevent.lisp")
                  (make-instance 'module :name "widget.lisp")
                  (make-instance 'module :name "font.lisp")
                  (make-instance 'module :name "layout.lisp")
@@ -103,7 +104,7 @@
   :old-space-size 256000
   :new-space-size 6144
   :runtime-build-option :standard
-  :on-initialization 'celtk::tk-test
+  :on-initialization 'celtk::test-fileevent
   :on-restart 'do-default-restart)
 
 ;; End of Project Definition
--- /project/cells/cvsroot/Celtk/togl.lisp	2006/05/26 17:50:36	1.7
+++ /project/cells/cvsroot/Celtk/togl.lisp	2006/05/27 06:04:22	1.8
@@ -98,7 +98,7 @@
   ;(assert (not (zerop (tk-init-stubs interp "8.1" 0))))
   (togl_init interp)
   (togl-create-func (callback togl-create))
-  ;;; needed? (togl-destroy-func (callback togl-destroy)
+  (togl-destroy-func (callback togl-destroy))
   (togl-display-func (callback togl-display))
   (togl-reshape-func (callback togl-reshape))
   (togl-timer-func (callback togl-timer)) ;; probably want to make this optional
@@ -175,6 +175,7 @@
            (let ((,self-var (or (gethash (pointer-address ,ptr-var) (tkwins *tkw*))
                               (gethash (togl-ident ,ptr-var)(dictionary *tkw*)))))
              , at preamble
+             (trc nil "selves" ,cb$ (togl-ident ,ptr-var) (gethash (pointer-address ,ptr-var) (tkwins *tkw*))(gethash (togl-ident ,ptr-var)(dictionary *tkw*)))
              (,(intern uc$) ,self-var))))
        (defmethod ,(intern uc$) :around ((self togl))
          (if (,(intern cb-slot$) self)
@@ -183,7 +184,9 @@
        (defmethod ,(intern uc$) ((self togl))))))
 
 (def-togl-callback create ()
-    (setf (togl-ptr self) togl-ptr))
+  (setf (togl-ptr self) togl-ptr)
+  (setf (gethash (pointer-address togl-ptr) (tkwins *tkw*)) self))
+
 (def-togl-callback display ())
 (def-togl-callback reshape ())
 (def-togl-callback destroy ())
@@ -195,3 +198,16 @@
     (tk-format-now "togl ~a ~{~(~a~) ~a~^ ~}"
       (path self)(tk-configurations self)))) ;; this leads to "togl <path> [-<config option> <value]*", in turn to togl_create
 
+
+;;;
+;;;(DEFCFUN ("Togl_DestroyFunc" TOGL-DESTROY-FUNC) :VOID (CALLBACK :POINTER))
+;;;(defcallback togl-destroy :void ((togl-ptr :pointer))
+;;;  (trc "togl-destroy ptr" togl-ptr (loop for k being the hash-keys of (tkwins *tkw*)
+;;;                                         collecting k))
+;;;  (unless (c-stopped)
+;;;    (let ((self (or (gethash (pointer-address togl-ptr) (tkwins *tkw*)) (gethash (togl-ident togl-ptr) (dictionary *tkw*)))))
+;;;      
+;;;      (togl-destroy-using-class self))))
+;;;(DEFMETHOD TOGL-DESTROY-USING-CLASS :AROUND ((SELF TOGL))
+;;;  (IF (CB-DESTROY SELF) (FUNCALL (CB-DESTROY SELF) SELF) (CALL-NEXT-METHOD)))
+;;;(DEFMETHOD TOGL-DESTROY-USING-CLASS ((SELF TOGL)))
\ No newline at end of file




More information about the Cells-cvs mailing list