---
name: "UControl"
section: "3"
platform: "linux"
package: "ivtools-dev"
version: "1.1.3-4"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/UControl"
---

# UControl(3)

base classes for menu and button interfaces that work with ControlInfo objects

## NAME

UControl, UControlInteractor - base classes for menu and button interfaces that work with ControlInfo objects

## SYNOPSIS

**#include \<Unidraw/uctrl.h\>**

## DESCRIPTION

UControl is an abstract class that augments InterViews' Control base class to deal with Unidraw's ControlInfo objects, which define a keyboard equivalent for the control.  UControlInteractor is an abstract base class for interactors that base their appearance on the information in a ControlInfo object.  UControl subclasses can use UControlInteractor subclasses to define their appearance.

Unidraw-based applications needn't use UControls and UControlInteractors to help define their look and feel if Unidraw's keyboard equivalent mechanism is not needed.

## UCONTROL PUBLIC OPERATIONS

- **virtual void SetControlInfo(ControlInfo\*)**

  - **ControlInfo\* GetControlInfo()**

  Assign and retrieve the UControl's ControlInfo object.

## UCONTROL PROTECTED OPERATIONS

- **UControl(ControlInfo\*)**

  - **UControl(const char\*, ControlInfo\*)**

  UControl provides protected constructors that let subclasses initialize the ControlInfo object and optionally specify their instance name.

## UCONTROLINTERACTOR PUBLIC OPERATIONS

- **virtual void SetControlInfo(ControlInfo\*)**

  - **ControlInfo\* GetControlInfo()**

  Assign and retrieve the UControlInteractor's ControlInfo object.

- **virtual void Highlight(boolean)**

  The UControlInteractor's appearance is defined by a Graphic object, which it builds from information in its ControlInfo object.  By default, UControlInteractor highlights itself by drawing this graphic with its foreground and background colors reversed.

## UCONTROLINTERACTOR PROTECTED OPERATIONS

- **UControlInteractor(ControlInfo\*)**

  - **UControlInteractor()**

  UControlInteractor defines two protected constructors.  One takes the ControlInfo object to use as an argument.  This constructor also initializes the UControlInteractor's *\_label* protected member by calling InitLabel (described below) with the ControlInfo object.  The parameterless constructor initializes *\_label* to nil.  Both constructors initialize the UControlInteractor's *\_picture* protected member to point to an instance of a Picture object, which defines the UControlInteractor's appearance.

- **virtual void Invert()**

  Invert reverses *\_picture's* colors without drawing it.

- **Graphic\* InitLabel(ControlInfo\*)**

  Create a graphic from the information stored in a ControlInfo object that defines the UControlInteractor's appearance.  This operation creates a GraphicView of the ControlInfo's GraphicComp and returns a copy of the view's graphic.

## SEE ALSO

Control(3I), ControlInfo(3U), Graphic(3U), GraphicComp(3U), GraphicView(3U), KeyMap(3U)
