ButtonState, Button, TextButton, PushButton, RadioButton,
CheckBox - interactive buttons
SYNOPSIS
#include <InterViews/button.h>
DESCRIPTION
Button is a class of interactors that can set the value of
a piece of state. ButtonState is a class of objects that
contain a value and a list of buttons that can set its
value. A value is either an integer or an arbitrary
pointer.
TextButton is a subclass of Button that has an associated
text label to be displayed inside or to the right of the
button. PushButton, RadioButton, and CheckBox are sub-
classes of TextButton that provide particular displays for
buttons. Each kind of button will display itself differ-
ently for each of the five possible cases: ``enabled'',
when the button is listening to input, ``disabled'', when
the button is not listening, ``chosen'', when the button's
value is equal to its button state's value, ``hit'', when
a button that is not chosen first receives a DownEvent,
and ``same-hit'', when a button that is chosen receives a
DownEvent.
When a button receives a DownEvent, it calls the virtual
Refresh() to update its display. It then reads input
waiting for an UpEvent. If the UpEvent coordinates are
also within the button, then it calls the virtual Press().
The default Press operation sets the associated state's
value to the button's value.
A button can have a list of attached buttons. When a but-
ton is not chosen its attached buttons are ``disabled'',
meaning they ignore all input events.
BUTTONSTATE OPERATIONS
ButtonState()
ButtonState(int)
ButtonState(void*)
Define a button state optionally with an initial
value.
void Attach(Button*)
Add a button to the list associated with a button
state. The button will be notified when the button
state's value is modified.
void Detach(Button*)
Remove a button from the list associated with a
button state.
void GetValue(void*&)
Get the value of a button.
void SetValue(int)
void SetValue(void*)
Set the value of a button state and notify all the
buttons associated with the state.
void operator=(ButtonState&)
Copy the value of one button state to another. The
button list associated with the source button state
is not copied.
BUTTON OPERATIONS
void PushButton(const char* text, ButtonState* s, int v)
void PushButton(const char* text, ButtonState* s, void* v)
Construct a button with text in the center and a
polygon on the outside. The polygon is like a
rectangle, but with rounded corners. When chosen,
the entire button is drawn with foreground and
background colors reversed.
void RadioButton(const char* text, ButtonState* s, int v)
void RadioButton(const char* text, ButtonState* s, void*
v)
Construct a button with a circle on the left and
text on the right. When hit, a second circle is
drawn inside the first. When chosen, a filled cir-
cle is drawn inside the outer circle.
void CheckBox(const char* text, ButtonState* s, int on,
int off)
void CheckBox(const char* text, ButtonState* s, void*
on, void* off)
Construct a button with a rectangle on the left and
text on the right. When hit, a second rectangle is
drawn inside the first. When chosen, two diagonal
lines are drawn connecting the opposite corners of
the rectangle. When a checkbox is pressed the
first time, it sets s to off if the value is on and
sets s to on otherwise. Subsequent presses swap
the values of the checkbox and s.
void Attach(Button*)
Add to this button's list of associated buttons.
These buttons are enabled when the button is chosen
and disabled when it is not chosen.
void Detach(Button*)
Remove a button from this button's list of associ-
ated buttons.
Stop listening to input events. Disabled buttons
are typically ``grayed out'' by drawing a half-
filled rectangle in the background.
void Enable()
Start listening to input events.
void Choose()
Make the button as chosen, enabling any associated
buttons.
void Handle(Event&)
If the event type is DownEvent and the button is
enabled, call Refresh and read events until an
UpEvent occurs. If the button is the target of the
UpEvent, then call Press.
virtual void Press()
Take the appropriate action for the button being
pressed. The default is to set the associated
state to the button's value, which will trigger all
related buttons to update their display.
virtual void Refresh()
Update the button display.
void SetDimensions(int width, int height)
Specify the natural size of the button. The
default size is a function of the size of the text.
This routine is obsolete; use Interactor::Reshape
instead.
void UnChoose()
Mark the button as not chosen, disabling any asso-
ciated buttons.
SEE ALSO
Event(3I), Interactor(3I)
Man(1) output converted with
man2html