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


       PinComp, PinView, PinGraphic, PSPin - pin connector subject, view, structured graphic, and
       PostScript external representation

       SlidingPin, FixedPin - rubberbands used in pin manipulation


       #include <Unidraw/Components/pin.h>


       PinComp is a Connector subclass that supports connectivity with zero degrees  of  freedom.
       It  uses  a  PinGraphic  to  store its graphical attributes.  PinView is a GraphicView for
       displaying the pin.  PSPin is a PostScriptView that externalizes the subject's information
       in PostScript form.

       SlidingPin  and  FixedPin  are special rubberbands used to implement the animation effects
       that pins produce during direct manipulation.  A SlidingPin is a  circle  with  crosshairs
       (duplicating  the  appearance  of  a  PinGraphic) that follows the mouse position, while a
       FixedPin draws a static circle with crosshairs.


       PinComp(PinGraphic* = nil)
              The constructor takes an optional  PinGraphic  that  defines  the  pin's  graphical
              attributes.  The pad has fixed mobility initially

       virtual void Interpret(Command*)
       virtual void Uninterpret(Command*)
              PinComp   (un)interprets  a  subset  of  commands  that  connectors  can  generally
              interpret, namely MoveCmd, BrushCmd, AlignCmd, MobilityCmd, DeleteCmd, and CutCmd.

       virtual Mobility GetMobility()
       virtual void SetMobility(Mobility)
              PinComp redefines these functions to return  and  assign  its  _mobility  protected
              member.  The pin has fixed mobility initially.

       Pin* GetPin()
              Return the Pin graphic that defines the line's attributes.  GetPin is simply a more
              specific form of the GetGraphic operation.


       PinView(PinComp* = nil)
              Create an PinView, optionally supplying the subject.

       virtual void Interpret(Command*)
              PinView interprets AlignToGridCmd to align its lower left to the grid.

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

       virtual void InterpretManipulator(Manipulator*)
              PinViews  respond  only  to  manipulation  by  GraphicCompTools,   MoveTools,   and
              ConnectTools.    PinView   inherits   its  MoveTool  response  from  ConnectorView.
              GraphicCompTool will  let  the  user  place  the  pin  at  a  particular  position.
              Placement will be influenced by gravity, if any.  PinView creates a ConnectManip in
              response to the  ConnectTool,  which  will  exhibit  a  gravational  attraction  to
              potential  target connectors.  PinView will produce a ConnectCmd to connect the pin
              to its target. A pin connected in this way will receive floating mobility.

       PinComp* GetPinComp()
              Return the subject.


       PinGraphic* GetPin()
              Return the PinGraphic that defines the pin's attributes.  GetPin is simply  a  more
              specific form of the GetGraphic operation.

       virtual PinComp* NewSubject(PinGraphic*)
              A  helper  function that creates a PinComp subject with the given pin graphic. This
              function produces the proper subject  when  the  GraphicCompTool's  manipulator  is
              interpreted.   Subclasses can redefine this operation to return a PinComp subclass,
              thus eliminating the need to reimplement InterpretManipulator.

       Manipulator* CreateGraphicCompManip(
           Viewer*, Event&, Transformer*, Tool*

       Manipulator* CreateConnectManip(
           Viewer*, Event&, Transformer*, Tool*

       Command* InterpretGraphicCompManip(Manipulator*)
       Command* InterpretConnectManip(Manipulator*)
              Helper functions used by CreateManipulator and InterpretManipulator to  create  and
              interpret the manipulators associated with GraphicCompTool and ConnectTool.


       PinGraphic(Coord = 0, Coord = 0, Graphic* = nil)
              Create  a  PinGraphic, optionally specifying its center and a graphic from which to
              obtain its default graphics attributes.

       void GetOriginal(Coord&, Coord&)
              Return  the  PinGraphic's  original  center  coordinates  as   specified   in   the


       PSPin(PinComp* = nil)
              Construct a PostScript external representation of the given subject, if any.


       BrushCmd(3U),  ConnectTool(3U),  Connector(3U),  ConnectorView3U), Event(3I), Graphic(3U),
       GraphicCompTool(3U),   Grid(3U),   MoveTool(3U),    PatternCmd(3U),    PostScriptView(3U),
       Rubband(3I), Transformer(3I), Viewer(3U), align(3U), edit(3U), manips(3U), transforms(3U)