CLIM mail archive

[Prev][Next][Index][Thread]

inverse video of text



allegro 4.1 clim 1.1

i'm trying to get some text to appear in inverse video.
the approach i came up with is to write the text out
with an output-record, use +flipping-ink+ to change
the medium-ink, and then replay the output-record.  i
then repeat this process.  what happens is that the
text initially appears, then disappears completely, then
reappears. (there is a sleep in between each of these
processes -- code below.)  i've also tried using the
swap-ink function below with similar results.  the only
explanation i have is that the medium ink applies to the
`drawing' functions and not to text.  how can i set the
foreground and background ink for text?

your help is appreciated.  TiA,

david


(defun test (stream &optional (delay 5))
  (clim:window-clear stream)
  (let ((or1 (clim:with-new-output-record (stream)
                (format stream "record one line.~%"))))
    (force-output stream)
    (sleep delay)
    (swap-ink stream)
;    (setf (clim:medium-ink stream) clim:+flipping-ink+)
    (clim:replay or1 stream)
    (force-output stream)
    (sleep delay)
    (swap-ink stream)
;    (setf (clim:medium-ink stream) clim:+flipping-ink+)
    (clim:replay or1 stream)
    (force-output stream)
))

(defun swap-ink (stream)
  (let ((foreground (clim:medium-foreground stream)))
    (setf (clim:medium-foreground stream) (clim:medium-background stream))
    (setf (clim:medium-background stream) foreground)))

0,,


Main Index | Thread Index