BControl¶
BControl is an abstract class for views that draw control
devices on the screen. Objects that inherit from BControl
emulate, in software, real-world control devices—like the switches and
levers on a machine, the check lists and blank lines on a form to fill out,
or the dials and knobs on a home appliance.
Controls translate the messages that report generic mouse and keyboard
events into other messages with more specific instructions for the
application. A BControl object can be customized by setting
the message it posts when invoked and the target object that should handle
the message.
Controls also register a current value, stored as an int32 integer
that’s typically set to B_CONTROL_ON or
B_CONTROL_OFF. The value is changed only by calling
SetValue(), a virtual function that derived classes
can implement to be notified of the change.
Derived Classes¶
The Interface Kit currently includes six classes derived from
BControl — BButton, BPictureButton,
BRadioButton, BCheckBox,
BColorControl, and BTextControl. In addition, it
has two classes— BListView and BMenuItem —that
implement control devices but are not derived from this class.
BListView and its subclass, BOutlineListView,
share an interface with the BList class (of the Support Kit)
and BMenuItem is designed to work with the other classes in
the menu system. Like BControl, BListView and
BMenuItem inherit from the Application Kit’s
BInvoker class.
As BListView and BMenuItem demonstrate, it’s
possible to implement a control device that’s not a BControl.
However, it’s simpler to take advantage of the code that’s already provided
by the BControl class. That way you can keep a simple
programming interface and avoid reimplementing functions that
BControl has defined for you. If your application defines its
own control devices—dials, sliders, selection lists, and the like—they
should be derived from BControl.