CLIM mail archive


Selective Accept

    Date: Thu, 30 Jul 1992 10:03 EDT
    From: Land Fleming <>

    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))
    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.


Main Index | Thread Index