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