Hello, i made some updates, may be useful. i updated this function:
(defun read-event (&key (blocking t) (no-event-value nil)) (or (pop (wish-event-queue *wish*)) (if (or blocking (can-read (wish-stream *wish*))) (if (eql #( (peek-char t (wish-stream *wish*) nil)) (read-preserving-whitespace (wish-stream *wish*) nil nil) (read-line (wish-stream *wish*) nil)) no-event-value)))
Original function was not working under intel mac. Concretely made error when you click on menubutton when mouse is moving. This error is because of different version of tcl/tk aqua on intel and powerpc.
And added same functions:
This function allow to change menubutton state between normal, hidden and disabled. (defgeneric state (menu menu-label state)) (defmethod state ((a menu) menu-label state) (format-wish "~a entryconfigure {~a} -state {~a}" (widget-path a) menu-label state))
This function allow to change label of menubutton. Important in Apple HIG. (defgeneric menu-label (menu old new)) (defmethod menu-label ((a menu) old new) (format-wish "~a entryconfigure {~a} -label {~a}" (widget-path a) old new))
Allow to eneble or disable resizing window. (defgeneric resizable (widget x y)) (defmethod resizable ((tl widget) x y) (format-wish "wm resizable ~a ~a ~a" (widget-path tl) x y) tl)
Clear scrolled-listbox. (defmethod listbox-clear ((l scrolled-listbox)) (listbox-clear (listbox l)) l)
Zdenek Eicher
Hello Zdenek,
On 10/1/07, Zdenek Eichler zdenek.eichler@gcajkol.cz wrote:
Hello, i made some updates, may be useful. i updated this function:
(defun read-event (&key (blocking t) (no-event-value nil)) (or (pop (wish-event-queue *wish*)) (if (or blocking (can-read (wish-stream *wish*))) (if (eql #( (peek-char t (wish-stream *wish*) nil)) (read-preserving-whitespace (wish-stream *wish*) nil nil) (read-line (wish-stream *wish*) nil)) no-event-value)))
Original function was not working under intel mac. Concretely made error when you click on menubutton when mouse is moving. This error is because of different version of tcl/tk aqua on intel and powerpc.
Could you please describe, in which setup the bug appeared (which Lisp etc.), what exactly the bug was and how your changes fixed it?
And added same functions:
This function allow to change menubutton state between normal, hidden and disabled. (defgeneric state (menu menu-label state)) (defmethod state ((a menu) menu-label state) (format-wish "~a entryconfigure {~a} -state {~a}" (widget-path a) menu-label state))
This function allow to change label of menubutton. Important in Apple HIG. (defgeneric menu-label (menu old new)) (defmethod menu-label ((a menu) old new) (format-wish "~a entryconfigure {~a} -label {~a}" (widget-path a) old new))
Allow to eneble or disable resizing window. (defgeneric resizable (widget x y)) (defmethod resizable ((tl widget) x y) (format-wish "wm resizable ~a ~a ~a" (widget-path tl) x y) tl)
I added those functions.
Clear scrolled-listbox. (defmethod listbox-clear ((l scrolled-listbox)) (listbox-clear (listbox l)) l)
There is a fundamental problem with all the scrolled-* widgets. They wrap around a base widget but either we define all methods on the wrapped widget as delegates in the scrolled-* widget - or which I prefer, let the user just access the wrapped widget and call methods on those.
Thanks for your additions,
Peter
Hello Peter, this happened on SBCL 1.0.7 recompiled with multithreading, but i thing more important is that this is on intel macbook. I use standart tcl/tk aqua framework from apple.
When mouse is moving when selecting clicking on menubutton, this happened: "READER-ERROR on #<TWO-WAY-STREAM :INPUT-STREAM #<SB-SYS:FD-STREAM for "descriptor 16" {12A11529}> :OUTPUT-STREAM #<SB-SYS:FD-STREAM for "descriptor 15" {12A10B71}>>: comma not inside a backquote"
And when I enable *debug-tk*, in listener i see this: l:RCNE<= l:SENDEVENTTOEVENTTARGET<= l:(SUOM MOVED)<= l:FAILED<= senddatastring [tk_messageBox -message {READER-ERROR on #<TWO-WAY- STREAM :INPUT-STREAM #<SB-SYS:FD-STREAM for "descriptor 15" {1268ACA1}> :OUTPUT-STREAM #<SB-SYS:FD-STREAM for "descriptor 14" {1268A2E9}>>: comma not inside a backquote
Do you wish to invoke the debugger?} -title {Error} -type yesno - icon question] read-data error: -50 postponing event: (:CALLBACK "w20") read-data: (:DATA "no") l :(:CALLBACK "w20")<= I can't find it now, but when i was repairing this error, i found same where that this is specific to intel tcl/tk aqua.
If you want same thing else, please write me.
Zdenek Eichler
On Oct 4, 2007, at 4:04 PM, Peter Herth wrote:
Hello Zdenek,
On 10/1/07, Zdenek Eichler zdenek.eichler@gcajkol.cz wrote:
Hello, i made some updates, may be useful. i updated this function:
(defun read-event (&key (blocking t) (no-event-value nil)) (or (pop (wish-event-queue *wish*)) (if (or blocking (can-read (wish-stream *wish*))) (if (eql #( (peek-char t (wish-stream *wish*) nil)) (read-preserving-whitespace (wish-stream *wish*) nil nil) (read-line (wish-stream *wish*) nil)) no-event-value)))
Original function was not working under intel mac. Concretely made error when you click on menubutton when mouse is moving. This error is because of different version of tcl/tk aqua on intel and powerpc.
Could you please describe, in which setup the bug appeared (which Lisp etc.), what exactly the bug was and how your changes fixed it?
And added same functions:
This function allow to change menubutton state between normal, hidden and disabled. (defgeneric state (menu menu-label state)) (defmethod state ((a menu) menu-label state) (format-wish "~a entryconfigure {~a} -state {~a}" (widget-path a) menu-label state))
This function allow to change label of menubutton. Important in Apple HIG. (defgeneric menu-label (menu old new)) (defmethod menu-label ((a menu) old new) (format-wish "~a entryconfigure {~a} -label {~a}" (widget-path a) old new))
Allow to eneble or disable resizing window. (defgeneric resizable (widget x y)) (defmethod resizable ((tl widget) x y) (format-wish "wm resizable ~a ~a ~a" (widget-path tl) x y) tl)
I added those functions.
Clear scrolled-listbox. (defmethod listbox-clear ((l scrolled-listbox)) (listbox-clear (listbox l)) l)
There is a fundamental problem with all the scrolled-* widgets. They wrap around a base widget but either we define all methods on the wrapped widget as delegates in the scrolled-* widget - or which I prefer, let the user just access the wrapped widget and call methods on those.
Thanks for your additions,
Peter _______________________________________________ ltk-user site list ltk-user@common-lisp.net http://common-lisp.net/mailman/listinfo/ltk-user
Hi Zdenek,
it would be great if you could provide a sample program (the smaller the better) which provokes this error, so I can run some tests of myself.
Peter
Hi Peter, i thing the best will be this video. In first case, mouse is moving when cliking on the menubutton and you can see error. In second case, mouse is NOT moving and it works.
This happend in every ltk application. even in ltktest.
here is link to video: http://195.113.190.226/ltk.mov
Zdenek Eichler
On Oct 5, 2007, at 10:52 AM, Peter Herth wrote:
Hi Zdenek,
it would be great if you could provide a sample program (the smaller the better) which provokes this error, so I can run some tests of myself.
Peter _______________________________________________ ltk-user site list ltk-user@common-lisp.net http://common-lisp.net/mailman/listinfo/ltk-user