LineComp, LineView, PSLine, MultiLineComp, MultiLineView,
PSMultiLine - line and multiline component subject, view,
and PostScript external representation
SYNOPSIS
#include <Unidraw/Components/line.h>
DESCRIPTION
LineComp is a GraphicComp that defines a line. It uses an
Line graphic to store its graphical attributes. LineView
is a GraphicView for displaying the line. PSLine is a
PostScriptView that externalizes the subject's information
in PostScript form. The MultiLine counterparts of these
classes define the component and external representation
for a contiguous set of line segments, i.e., an open poly-
gon. MultiLineComp is derived from VerticesComp, Multi-
LineView is a VerticesView, and PSMultiLine is a PSVer-
tices.
LINECOMP PUBLIC OPERATIONS
LineComp(Line* = nil)
The constructor takes an optional line graphic that
defines the attributes of the line.
virtual void Interpret(Command*)
LineComp redefines Interpret to ignore PatternCmds.
Line* GetLine()
Return the Line graphic that defines the line's
attributes. GetLine is simply a more specific form
of the GetGraphic operation.
LINEVIEW PUBLIC OPERATIONS
LineView(LineComp* = nil)
Create an LineView, optionally supplying the sub-
ject.
virtual void Interpret(Command*)
LineView interprets AlignToGridCmd to align its
first endpoint to the grid.
virtual Manipulator* CreateManipulator(
Viewer*, Event&, Transformer*, Tool*
)
virtual void InterpretManipulator(Manipulator*)
LineView redefines its response to manipulation
with a GraphicCompTool. The user clicks to specify
the first endpoint of the line and then drags to
position remaining endpoint. The endpoints will be
constrained by gravity, if any. LineView also
defines a response to the ReshapeTool, allowing the
ReplaceCmd) with a new LineComp subject reflecting
the repositioned endpoint. Repositioning will be
influenced by gravity.
virtual void GetEndpoints(Coord&, Coord&, Coord&, Coord&)
Return the line's endpoints, in canvas coordinates.
LineComp* GetLineComp()
Return the subject.
LINEVIEW PROTECTED OPERATIONS
virtual void CreateHandles()
LineView redefines CreateHandles to use a Rubber-
Handles object with two handles, one at each end-
point of the line.
PSLINE PUBLIC OPERATIONS
PSLine(LineComp* = nil)
Construct a PostScript external representation of
the given subject, if any.
MULTILINECOMP PUBLIC OPERATIONS
MultiLineComp(SF_MultiLine* = nil)
The constructor takes an optional stroked-filled
multiline graphic that defines the attributes of
the multiline.
SF_MultiLine* GetMultiLine()
Return the MultiLine graphic that defines the mul-
tiline's attributes. GetMultiLine is simply a more
specific form of the GetGraphic operation.
MULTILINEVIEW PUBLIC OPERATIONS
MultiLineView(MultiLineComp* = nil)
Create an MultiLineView, optionally supplying the
subject.
virtual Manipulator* CreateManipulator(
Viewer*, Event&, Transformer*, Tool*
)
virtual void InterpretManipulator(Manipulator*)
MultiLineView redefines its response to manipula-
tion with a GraphicCompTool. The user clicks the
left mouse button to specify each vertex and clicks
with the middle mouse button to specify the final
vertex. Vertex positioning will be constrained by
gravity, if any. MultiLineView also defines a
response to the ReshapeTool, allowing the user to
click on one of its vertices to reposition it. The
subject is actually replaced (via ReplaceCmd) with
a new MultiLineComp subject reflecting the reposi-
MultiLineComp* GetMultiLineComp()
Return the subject.
PSMULTILINE PUBLIC OPERATIONS
PSMultiLine(MultiLineComp* = nil)
Construct a PostScript external representation of
the given subject, if any.
PSMULTILINE PROTECTED OPERATIONS
virtual const char* Name()
PSMultiLine identifies itself as "MLine" in the
PostScript output.
SEE ALSO
Event(3I), GraphicComp(3U), GraphicCompTool(3U), Graph-
icView(3U), Grid(3U), PatternCmd(3U), PostScriptView(3U),
ReshapeTool(3U), Rubband(3I), Transformer(3I), Ver-
ticesComp(3U), Viewer(3U), align(3U), edit(3U), lines(3U)
Man(1) output converted with
man2html