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

Making typeout windows work in DEFINE-PROGRAM-FRAMEWORK



I have a program frame with a small interactor pane and a large display pane
(among other irrelevant things). The interactor pane is used for entering
program commands and may also evaluate Lisp forms. The display pane is used for
graphics. Because the interactor pane is small, I want output to go to the
display pane by giving it an inferior typeout window. So I did the following:

(dw::define-program-framework test-program
  :command-table (:inherit-from '("user") :kbd-accelerator-p t)
  :selected-pane interactor-window
  :query-io-pane interactor-window
  :terminal-io-pane display-window
  :top-level (dw:default-command-top-level
	       :dispatch-mode :command-preferred
	       :prompt si:arrow-prompt)
  :panes ((interactor-window :interactor)
	  (display-window :display
			  :typeout-window t))
  :configurations '((main
		      (:layout
			(main :column display-window interactor-window))
		      (:sizes
			(main (interactor-window 4 :lines)
			      :then
			      (display-window :even)))))
  :select-key #\a)

This mostly works; output produced by evaluating a command in the interactor
window goes into the display window's typeout window. But there are two
problems: 

(1) It doesn't look like a typeout window. There is no horizontal line below to
separate the typeout from the obscured graphics beneath.

(2) The typeout doesn't go away. I want the message "type any character to
refresh the display" to appear after doing the output.

The functionality I have in mind is like that of the metering interface
(select-%) available in 7-2.