CLIM mail archive
Re: stopping echoing of accepting?
Date: Fri, 6 Dec 1991 18:25 EST
From: David Neves <email@example.com>
>ACCEPT in development version of CLIM has a :REPLACE-INPUT keyword to
>which you can supply a value of NIL to prevent echoing when you click
>on something. There is no way to cause CLIM not to echo typed input
We wrote our own simple version of accept to get around this problem using
read-gesture and find-innermost-applicable-presentation.
find-innermost-applicable-presentation wants an input context whose
structure or creation isn't documentated very well in the manual. The only
way we could think of creating it was to wrap
find-innermost-applicable-presentation within with-input-context and using
the variable *input-context* for the input context. Is there a better way?
So complicated! I am surprised you managed to figure out about
*INPUT-CONTEXT* and FIND-INNERMOST-APPLICABLE-PRESENTATION without
noticing that WITH-INPUT-CONTEXT does exactly what you want without
all of this extra hair. Could you describe what led you to your
implementation, since I have to assume that the documentation must
be very weak here.
Anyway, how about this instead:
(defun accept-no-echo (stream type)
(with-input-context (type) (object presentation-type)
;; If we return from here, it was a non-translator gesture
(values (read-gesture :stream stream) :non-translator))
;; If we return from here, a it was because of a presentation translator
(values object presentation-type)))))
Not that this is not what I thought you were asking for, since this
doesn't simply "not echo", but rather does not process any keyboard
input in any useful way whatsoever.
Main Index |