[cells-cvs] CVS Celtk
fgoenninger
fgoenninger at common-lisp.net
Sun Mar 23 11:36:43 UTC 2008
Update of /project/cells/cvsroot/Celtk
In directory clnet:/tmp/cvs-serv4140
Modified Files:
entry.lisp
Log Message:
changed: entry widget: in order to detect events reliably the
event id is interned as a keyword.
--- /project/cells/cvsroot/Celtk/entry.lisp 2007/01/29 06:48:41 1.18
+++ /project/cells/cvsroot/Celtk/entry.lisp 2008/03/23 11:36:42 1.19
@@ -16,7 +16,7 @@
|#
-;;; $Header: /project/cells/cvsroot/Celtk/entry.lisp,v 1.18 2007/01/29 06:48:41 ktilton Exp $
+;;; $Header: /project/cells/cvsroot/Celtk/entry.lisp,v 1.19 2008/03/23 11:36:42 fgoenninger Exp $
(in-package :Celtk)
@@ -40,21 +40,25 @@
:xscrollcommand (c-in nil)
:textvariable (c? (intern (^path)))
:event-handler (lambda (self xe)
- (TRC nil "ENTRY event-handler" self (xsv type xe) (tk-event-type (xsv type xe)))
+ (trc nil "ENTRY event-handler" self (xsv type xe) (tk-event-type (xsv type xe)))
(case (tk-event-type (xsv type xe))
(:virtualevent
- (trc nil "ENTRY virtual event" (xsv name xe))
- (case (read-from-string (string-upcase (xsv name xe)))
- (trace
- (TRC nil "entry e/h trace" self (when (plusp (xsv user-data xe))
- (tcl-get-string (xsv user-data xe))))
- ;; assuming write op, but data field shows that
- (let ((new-value (tcl-get-var *tki* (^path)
- (var-flags :TCL-NAMESPACE-ONLY))))
- (unless (string= new-value (^value))
- (setf (^value) new-value))))))))
-
- :value (c-in "")))
+ (trc "ENTRY virtual event" (xsv name xe))
+ (let ((event-id (intern
+ (read-from-string
+ (string-upcase (xsv name xe)))
+ :keyword)))
+ (case event-id
+ (:trace
+ (TRC "entry e/h trace" self
+ (when (plusp (xsv user-data xe))
+ (tcl-get-string (xsv user-data xe))))
+ ;; assuming write op, but data field shows that
+ (let ((new-value (tcl-get-var *tki* (^path)
+ (var-flags :TCL-NAMESPACE-ONLY))))
+ (unless (string= new-value (^value))
+ (setf (^value) new-value)))))))))
+ :value (c-in "")))
(defmethod md-awaken :after ((self entry)) ;; move this to a traces slot on widget
(with-integrity (:client `(:trace ,self))
@@ -64,10 +68,12 @@
;;; those leverage the COMMAND mechanism, which entry lacks
;;
(defobserver .value ((self entry))
+ (trc nil "ENTRY self new-value old-value" self new-value old-value)
(when new-value
(unless (string= new-value old-value)
- (trc nil "value output" self new-value)
- (tcl-set-var *tki* (^path) new-value (var-flags :TCL-NAMESPACE-ONLY)))))
+ (trc "ENTRY value output self new-value old-value" self new-value old-value) ;; frgo, 2007-11-22
+ (tcl-set-var *tki* (^path) new-value (var-flags :TCL-NAMESPACE-ONLY))
+ #+frgo (tk-format-now "~a -text ~A" (^path) new-value))))
(deftk text-widget (widget)
((modified :initarg :modified :accessor modified :initform nil))
@@ -97,7 +103,7 @@
(:virtualevent
(case (read-from-string (string-upcase (xsv name xe)))
(modified
- (eko (nil "<<Modified>> !!TK value for text-widget" self)
+ (eko (nil "<<Modified>> !!TK value for text-widget" self) ;; frgo, 2007-11-22
(setf (^modified) t)))))
))))
More information about the Cells-cvs
mailing list