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, BOutlineView, 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 you application defines its own control devices—dials, sliders, selection lists, and the
like—they should be dervied from BControl.