Provided by: ivtools-dev_1.2.11a1-2_amd64 bug


       SelectTool - tool for modifying an editor's current selection


       #include <Unidraw/Tools/select.h>


       SelectTool lets a user change the current selection by direct manipulation, thus affecting
       the enclosing editor's selection object.  A single click  directly  on  a  component  view
       selects  that  view  and  unselects all others.  Clicking while holding the Shift key down
       adds the target component to the selection if it was not already selected and  removes  it
       if  it  was selected.  The user can select all components within a rectangular area in the
       viewer by clicking somewhere outside the nearest component and  dragging  to  specify  the
       rectangular area.  All components completely within the area will be selected.


       SelectTool(ControlInfo* = nil)
              Create a new SelectTool.

       virtual Manipulator* CreateManipulator(
          Viewer*, Event&, Transformer*

       virtual void InterpretManipulator(Manipulator*)
              If  the  user  did  not  click  on  a  component,  then CreateManipulator creates a
              DragManip with a RubberRect  for  dragging  out  a  rectangular  area.   Otherwise,
              CreateManipulator  clears the editor's selection and selects the hit component.  If
              the user holds the Shift key down in either case, the components  that  would  have
              otherwise  been  selected will be unselected, and vice versa.  InterpretManipulator
              will only be called if CreateManipulator returned a non-nil  manipulator;  in  this
              case  InterpretManipulator will examine the DragManipulator's RubberRect and select
              the component views falling completely within it.


       virtual void Localize(Selection*, Viewer*)
              Localize ensures  that  the  given  selection  object  contains  only  those  views
              displayed  in  the  given  viewer.   CreateManipulator calls this function to avoid
              possibly shift-selecting views from different components.


       Editor(3U), Rubband(3I), Selection(3U), Tool(3U), Viewer(3U), manips(3U)