NAME¶
PinComp, PinView, PinGraphic, PSPin - pin connector subject, view, structured
  graphic, and PostScript external representation
SlidingPin, FixedPin - rubberbands used in pin manipulation
SYNOPSIS¶
#include <Unidraw/Components/pin.h>
DESCRIPTION¶
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 PUBLIC OPERATIONS¶
  - 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 PUBLIC OPERATIONS¶
  - 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.
 
PINVIEW PROTECTED OPERATIONS¶
  - 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 PUBLIC OPERATIONS¶
  - 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
      constructor.
 
PSPIN PUBLIC OPERATIONS¶
  - PSPin(PinComp* = nil)
 
  - Construct a PostScript external representation of the given subject, if
      any.
 
SEE ALSO¶
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)