Provided by: ivtools-dev_2.0.11d.a1-3build1_amd64 bug

NAME

       AlignCmd, AlignToGridCmd - commands for aligning interactors 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 example, 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  specifying the alignment desired. The reference
              parameter specifies a point on a fixed reference component.  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()
       virtual void Unexecute()
              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
              operation (described below) to compute the amount of movement, store it in a MoveData object,  and
              finally  issue  a  MoveCmd  to  the  subject  for  interpretation.   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 uninterpret it.

SEE ALSO

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

Unidraw                                          23 January 1991                                       align(3U)