AlignCmd,  AlignToGridCmd - commands for aligning interac-
       tors to each other and to a grid


SYNOPSIS

       #include <Unidraw/Commands/align.h>


DESCRIPTION

       AlignCmd is a purely  interpretive  command  for  aligning
       selected components with respect to one another. For exam-
       ple, it can align the left sides of selected components so
       that  they  coincide.   AlignToGridCmd  is  interpreted by
       selected GraphicView objects to align  themselves  to  the
       grid  (if  any)  associated  with the viewer in which they
       appear.  Each component can thus define what it  means  to
       align itself to the grid.


ALIGNCMD PUBLIC OPERATIONS

       AlignCmd(
           ControlInfo*,
           Alignment reference = Left, Alignment affected = Left
       )

       AlignCmd(Editor* = nil, Alignment = Left, Alignment =
              Left)
              The constructor takes optional arguments for speci-
              fying  the alignment desired. The reference parame-
              ter specifies a point on a fixed  reference  compo-
              nent.   The affected parameter specifies a point on
              components that will move to realize the alignment.
              The  defaults for these parameters specify that all
              affected components should align their  left  sides
              to reference's left side.

       void GetAlignment(Alignment&, Alignment&)
              Return  the  alignment  parameters specified in the
              constructor.

       GraphicComp* GetReference(GraphicComp* affected)
              Return the reference component given a  potentially
              affected  component.   If  affected  appears in the
              AlignCmd's clipboard, then GetReference returns the
              GraphicComp  preceding  it  in  the  clipboard.  If
              affected is the first component in the clipboard or
              if  it  is  not on the clipboard, then GetReference
              returns the first component on the clipboard.


ALIGNTOGRIDCMD PUBLIC OPERATIONS

       AlignToGridCmd(ControlInfo*)
       AlignToGridCmd(Editor* = nil)
              Construct an AlignToGridCmd.

       virtual void Execute()
              AlignToGridCmd  redefines  Execute   to   let   the
              selected  GraphicView objects interpret the command
              the first time.  This lets the components determine
              the  proper grid with which to align themselves and
              the amount of movement required.   Execute  assumes
              that  GraphicView objects will use the Align opera-
              tion (described below) to  compute  the  amount  of
              movement,  store  it  in  a  MoveData  object,  and
              finally issue a MoveCmd to the subject  for  inter-
              pretation.     Unexecute    simply   calls   Unmove
              (described below) to reverse the Align's effects.

       virtual void Align(GraphicView*, float, float)
       virtual void Unalign(GraphicView*)
              GraphicView objects interpreting the AlignToGridCmd
              should  use  the Align operation to specify a point
              to align to the grid that affects them.  Align will
              effectively  move  the  component so that the given
              point falls on the grid.  It will  also  store  the
              amount  of movement in this by calling Store with a
              MoveData  object.   Finally,   Align   calls   Move
              (described  below)  to  actually move the component
              that amount.  Unalign provides a  public  interface
              to reversing the effects of Align by simply calling
              Unmove with its argument's subject.


ALIGNTOGRIDCMD PROTECTED OPERATIONS

       void Move(GraphicComp*)
       void Unmove(GraphicComp*)
              Move produces  a  MoveCmd  based  on  the  MoveData
              stored  for  the  given  GraphicComp  and tells the
              GraphicComp to interpret the MoveCmd.   Conversely,
              Unmove  produces  a  MoveCmd  based on the the same
              information and tells the GraphicComp  to  uninter-
              pret it.


SEE ALSO

       Command(3U),  GraphicComp(3U),  GraphicView(3U), Grid(3U),
       Viewer(3U), datas(3U), transforms(3U)














Man(1) output converted with man2html