Control, ControlState - select and execute an action
SYNOPSIS
#include <InterViews/control.h>
DESCRIPTION
A control is a monoscene that allows an action to be
selected and executed. The component of a control deter-
mines the appearance associated with the control. A con-
trol state is a subject that coordinates a group of
related controls. The control state contains a pointer to
the currently selected control (if any).
Controls are useful for grabbing input and moving over
potentially selectable items. Examples of controls
include popup menus, pull-down menus, and menu items. It
is generally not necessary to call functions directly on a
control.
PUBLIC OPERATIONS
Control(Interactor*)
Construct a new control with the given interactor
as the component.
~Control
Destruct a control. Because a control is a
monoscene, deleting it implies deleting its compo-
nent interactor.
ControlState* State()
void SetState(ControlState*)
Get or set the control state associated with a con-
trol.
virtual void Handle(Event&)
Controls are initially inactive. A DownEvent
causes a control to become active. If an active
control receives an EnterEvent, it will set the
current selection to itself. If an active control
receives a LeaveEvent, it will set the current
selection to nil.
virtual void Enable(boolean)
boolean Enabled()
Depending on the argument, Enable enables (true) or
disables (false) the control. Control subclasses
can check whether the control is enabled with the
Enabled operation and then take whatever action is
appropriate.
virtual void Select()
Highlight the control and call the protected vir-
Call the protected virtual function Close and then
unhighlight the control.
virtual void Do()
Implement a selected action. When a control sees
an UpEvent, it calls Do on the current selection.
Control* ParentControl()
Control* RootControl()
The control hierarchy does not necessarily corre-
spond to the interactor hierarchy. These opera-
tions return the control's parent control or the
root of the control hierarchy, if any, as defined
by control subclasses.
PROTECTED OPERATIONS
virtual void Down()
virtual void Up()
Down and Up are called when the control receives a
DownEvent and an UpEvent, respectively. By
default, Down activates the control if it is
enabled, and Up deactivates the control and calls
Do on the current selection.
virtual void Enter()
virtual void Leave()
Enter makes the control the current selection if it
is enabled and active, while Leave nullifies the
current selection if the control is enabled and
active.
virtual void Open()
virtual void Close()
The base class Open and Close do nothing, but sub-
classes may insert and remove an interactor, such
as a pull-down menu.
virtual void Grab()
Grab reads input and only passes through an event
if its target is an active control.
virtual void Skip()
Skip reads and discards input events until it reads
an event targetted for a control that is currently
grabbing input, as indicated by IsGrabbing (see
below).
virtual void Busy()
virtual void Done()
The Up operation calls Busy just before it calls Do
on the target, and it calls Done immediately after-
wards. These operations do nothing by default;
virtual boolean IsGrabbing(Interactor*)
IsGrabbing returns true if the given interactor is
grabbing control.
void Reparent(Control* target, Control* parent)
Set target's parent to parent. Controls that com-
pose child controls should call this operation on
their children.
SEE ALSO
Event(3I), Interactor(3I), Menu(3I), Scene(3I)
Man(1) output converted with
man2html