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)