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

NAME

       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 polygon.   MultiLineComp  is  derived
       from VerticesComp, MultiLineView is a VerticesView, and PSMultiLine is a PSVertices.

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 subject.

       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 user to click  on
              one  of  its  endpoints  to  reposition  it.  The subject is actually replaced (via
              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 RubberHandles object with two handles,
              one at each endpoint 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 multiline'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 manipulation 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
              repositioned vertex.  Repositioning will be influenced by gravity.

       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),     GraphicView(3U),     Grid(3U),
       PatternCmd(3U),   PostScriptView(3U),   ReshapeTool(3U),   Rubband(3I),   Transformer(3I),
       VerticesComp(3U), Viewer(3U), align(3U), edit(3U), lines(3U)