[plt-scheme] middle ground between MrEd and gui/draw teachpacks?
At Wed, 9 Feb 2005 10:56:18 -0500, Prabhakar Ragde wrote:
> 1) How hard would it be to integrate the canvas from draw.ss into a
> window created by gui.ss? The problem is that the canvas and GUI
> window are separate right now, and only one is "on top". It's
> awkward to have to keep raising one or the other.
I can't think of a simple way. The "draw.ss" teachpack is built on the
"graphics" collection, which always creates a new frame in a new
eventspace, and I don't see a simple way to make it create the canvas
in an existing window and eventspace.
You could probably add a simplified canvas to "gui.ss". The simplified
canvas could accept a callback to handle clicks, and an initial image,
and it could support an operation for installing a new image. Then you
could use the "image.ss" teachpack instead of the "draw.ss" teachpack
to generate the image.
> 2) Failing that, is it possible for me to write functions which bring
> one window or another to the top?
My first thought was that you could use `get-top-level-windows' to find
the drawing window, but that won't work because "draw.ss" puts its
window in a separate eventspace. So, I'm not sure it's possible.
> 3) Since this is a drawing program, I try to use (wait-on-mouse-click)
> to get, say, two positions to define a line. But this seems to
> queue up mouse events in advance. If I click several times on the
> canvas, and then press the "Draw" button which gets two clicks and
> draws the line, it will use past clicks, not future ones, and draws
> the line immediately.
I think you could use `get-mouse-event' to flush old events (i.e., call
it in a loop until you get #f).
Matthew