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

Re: picture of whole window ?



On Tue, 13 Dec, Matti Karjalainen writes:
  Is there a way of finite complexity to capture a picture of an entire
  window. I don't mean pixmap capture but a real pict. To capture the
  contents is easy: start-(c)picture, view-draw-contents, get-picture. This
  gives only the content region. But I want to have the frame region as well
  nicely into the same picture. Have anyone worked this out already, or any
  hints?

Yes, I've done it. I developed the routines for supporting marking menus
(selection depends on angle not distance). It's a good start for
what you want.

The solution "saves" a picture of a portion of the screen, allows
you to draw over that portion and then restores it. The code is available
by anonymous ftp from cambridge.apple.com.  The file is
pub/MCL2/contrib/menu-enhancements.sit.hqx
The file is a binhex archive. If you examine the file oou-utils.lisp,
the test-screen-saver does most of what your want. Suppose that the
window corners are (0 0) and (200 300) is global (screen) coordinates,
the following will save and restore that portion of the screen.
(test-screen-saver #@(0 0) #@(200 300))

By using the keep keyword parameter on the with-saved-screen-map,
you can save the picture of the area. Just make sure to kill
the picture before creating a new one and set the saved-picture
keyword parameter to the name of the variable that will contain the
picture.

mark