Provided by: ivtools-dev_2.0.11d.a1-3build1_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)

Unidraw                                          22 January 1991                                    LineComp(3U)