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