CLIM mail archive
[Prev][Next][Index][Thread]
Selective Accept
Date: Thu, 30 Jul 1992 10:03 EDT
From: Land Fleming <fleming@aio.jsc.nasa.gov>
I think I have a similar problem to the one described in the orignal
question on "Selective Accept:" I have defined a "NODE presentation and
have commands that involve accept statements accepting such presentations.
My problem is that
the "accept" statement is supposed to accept only nodes from a
previously specified graph, and there may be any number of graphs
currently displayed, all of which have sets of nodes that are mututally
exclusive but all of the same class (NODE); Duing the accept
interaction, any presentation of a NODE
is highlighted when the pointer moves over it, even if it is a node in
the wrong graph.
I haven't been able to think of a way to control the
highlighting of presentations of the same kind. What I would like is to be
able to pass a :TEST function argument to the accept function itself (not
the command translator, since the command leading to the accept is not involved
here). I would then be able to test if a given Node's "graph" slot held
a pointer to the appropriate graph by writing a statement like:
(accept Node :TEST #'(lambda (node.presentation)
(eq (graph (presentation-object node.presentation))
*current-graph*))),
where "graph" is s slot in the node object pointing to the graph that it
is in. My current "solution" is just do the test of the presentation
after it is accepted and inform the user that the node selected is not
from the intended graph. This is not really satisfactory because the
nodes not in the selected graph should not be highlighted in the first
place. I would like to see such a :TEST capability for the accept
function in CLIM 2.0.
ACCEPT doesn't need such a capability. Simply add a PRESENTATION-TYPEP
method to your NODE presentation type that does the same test.
References:
Main Index |
Thread Index