CLIM mail archive
problem selecting regions within regions
Date: Wed, 18 Dec 1991 03:31+0200
From: Peter Karp <firstname.lastname@example.org>
I'm seeing a general CLIM problem in my application that I've had a
lot of trouble reproducing in a simple example, but I finally have
one. My application is an interactive graph editor. Complex graphs
can be quite complex, with many nodes and edges on the screen at once.
We want the user to be able to select any node or edge for editing.
However, long diagonal edges (which therefore have large bounding
boxes) are often selectable exclusive of other nodes or edges that lie
within their bounding boxes. That is, one long diagonal line on the
screen will be selectable, but rectangles or lines or text within the
bounding box of that line that should be mouse sensitive are not
(although if the long diagonal line is deleted, the contained graphics
is then sensitive).
The following is the one case I've been able to reproduce in
isolation. I tried many other simple cases where CLIM was doing the
right thing. So my general observation is that CLIM seems to make all
graphic elements sensitive most of the time, but not all of the time.
This particular example involves two lines, L1 and L2, for which the
bounding box of L2 is completely contained within the bounding box of
L1. Again, I've seen this problem where L2 is instead a rectangle or
a circle or text.
Here is the program. Look for the string "**" to see where the lines
are being drawn. Simply moving the L2 upwards and out of the bounding
box of L1 makes it selectable.
I think your main problem is that you provide :single-box T as an argument
to the macro with-output-as-presentation.
CLIM than assumes that you want exacly one bounding rectangle as mouse
sensitive region on the screen for the object(s) output within
the body of with-output-as-presentation.
The use of :single-box T is adequate when you have several objects that
should appear in the UI as one.
So (if I understood your problem correctly) you are not considering the semantics
of this keyword argument.
Symbolics Systemhaus GmbH
PS: Your code contained several unbalanced paranthesis. Next time, please be sure that
you give proper code to test your problem, because that is easier for
those who want to respond to your question.
Main Index |