logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Control, ControlState - select and execute an action

Description

       A  control  is a monoscene that allows an action to be selected and executed.  The component of a control
       determines the appearance associated with the control.  A control 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.

Name

       Control, ControlState - select and execute an action

Protected Operations

virtualvoidDown()virtualvoidUp()
              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.

       virtualvoidEnter()virtualvoidLeave()
              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.

       virtualvoidOpen()virtualvoidClose()
              The base class Open and Close do nothing, but subclasses may insert and remove an interactor, such
              as a pull-down menu.

       virtualvoidGrab()
              Grab reads input and only passes through an event if its target is an active control.

       virtualvoidSkip()
              Skip reads and discards input events until it reads an  event  targeted  for  a  control  that  is
              currently grabbing input, as indicated by IsGrabbing (see below).

       virtualvoidBusy()virtualvoidDone()
              The  Up  operation calls Busy just before it calls Do on the target, and it calls Done immediately
              afterwards.  These operations do nothing by default; subclasses may reimplement them to start  and
              stop some indication that the control is doing its job.

       virtualbooleanIsGrabbing(Interactor*)
              IsGrabbing returns true if the given interactor is grabbing control.

       voidReparent(Control*target,Control*parent)
              Set target's parent to parent.  Controls that compose child controls should call this operation on
              their children.

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  component
              interactor.

       ControlState*State()voidSetState(ControlState*)
              Get or set the control state associated with a control.

       virtualvoidHandle(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.

       virtualvoidEnable(boolean)booleanEnabled()
              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.

       virtualvoidSelect()
              Highlight the control and call the protected virtual functions Open and Grab (see below).

       virtualvoidUnselect()
              Call the protected virtual function Close and then unhighlight the control.

       virtualvoidDo()
              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  correspond  to  the  interactor hierarchy.  These
              operations return the control's parent control or the root of the control hierarchy,  if  any,  as
              defined by control subclasses.

See Also

Event(3I), Interactor(3I), Menu(3I), Scene(3I)

InterViews                                      15 September 1989                                    Control(3I)

Synopsis

#include<InterViews/control.h>

See Also