PinComp(3U) InterViews Reference Manual PinComp(3U)
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, Mobility-
Cmd, 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 Graph-
icCompTool 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), Pat-
ternCmd(3U), PostScriptView(3U), Rubband(3I), Transformer(3I), Viewer(3U), align(3U), edit(3U), manips(3U), transforms(3U)
Unidraw 23 January 1991 PinComp(3U)