CLIM mail archive

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

Re: Selecting Presentations



  Date: Tue, 19 May 1992 11:48+0200
  From: Stefan Bernemann <berni@iml.fhg.de>
  Subject: Selecting Presentations
  To: clim@BBN.COM
  
  Hello,
  
  I want to implement a kind of user-interaction, where the user (or
  the system) "selects" some "objects" and where some operations can be
  performed on a set of objects commonly called "current selection".

This is a common need in many types of user interfaces, and it ought
to be easy but I don't know of anybody who's done it in CLIM.  DataDesk, a
Mac application for data analysis, is a good example of this.  When
you "select" a data point, all of its displayed representations get
highlighted in all of the panes of the application.  In addition,
you can select more than one data point at a time.
  
  How can I specify such selection contexts?

1.  Your application will need to keep track of the "current selection"
itself.  I suppose this would be a slot on the frame containing a
list of objects.

2.  For each displayed object, you need to know its output records.
I have done this before by adding a slot to the object that contains
a list of output records.  Then a display method for the object
manages the list.  This could be hard, depending on the application.

3.  Your application will need to keep track of all the objects
that are selected.  It seems like a method SELECT-OBJECT could
be implemented for the object that informs *application-frame*
and then highlights all of the object's output records.

4.  You can highlight an output record by getting its bounding
box and drawing a rectangle in the :flip ink.  Or you can use
the "real" highlighting method, which is apparently
clim:highlight-output-record.


This may all interfere with the frame's own protocol for
highlighting presentations that are under the mouse.
I dunno.  Good luck.

jeff morrill


Follow-Ups: References:

Main Index | Thread Index