NAME
radiobutton_gc -- create radiobutton BOOPSI objects
SUPERCLASS
gadgetclass
REQUIRES
bevel.image, glyph.image
DESCRIPTION
The radiobutton gadget class is used to create a mutually exclusive
(MX) selection button group. Selection of an associated option is
denoted by the depressed/filled button. Unlike GadTools, GA_Width and
GA_Height to not specify the size of a single radio button. Instead
it marks the entire domain of the gadget which allows for easier
group layout. When used outside of a layout group you must be
sure to provide enough space for the gadget to completly render
all radio buttons and labels. However, within a layout group such
as ReAction's own layout.gadget this is automatic and of no
concern to the application programmer.
Advantages that this class provides over the standard gadtools
radiobutton (MX_KIND) are:
> Strumming of the radio buttons with the mouse.
> Aspect correct scaled buttons with any screen resolution or font.
> Works under OS 2.0 or greater.
METHODS
OM_NEW -- Passed to superclass first, defaults set, then OM_SET.
OM_SET -- Passed to superclass first, then custom tags set.
OM_GET -- Returns requested setting or passed to superclass
OM_DISPOSE -- Passed to superclass.
GM_GOACTIVE -- Passed to superclass first, then radio activated
GM_GOINACTIVE -- Passed to superclass first, then radio deactivated
GM_HANDLEINPUT -- Handles button selection/strum. Overrides superclass.
GM_HITTEST -- Overrides superclass, returns GMR_HITTEST.
GM_RENDER -- Renders radio button(s).
GM_DOMAIN -- Returns GDOMAIN_MINIMUM and GDOMAIN_MAXIMUM dimensions.
GM_KEYACTIVE -- Activates button via keyboard. Advances selection
to the next item (down), if SHIFT is pressed, it selects
the previous item (up). Invoked by window.class only.
GM_KEYINACTIVE -- Deactivates gadget. Invoked by window.class only.
All other methods are passed to the superclass.
ATTRIBUTES
GA_ID (WORD)
Applicability is (OM_NEW, OM_SET, OM_UPDATE, OM_NOTIFY)
GA_TextAttr (struct textattr *)
Used to set the text font to render the radiobutton labels.
Defaults to RPort->Font, which is often the screen or
window font.
Applicability is (OM_NEW, OM_SET, OM_UPDATE)
RADIOBUTTON_Labels (struct list *)
Used to set the text labels for the radiobutton group.
Defaults to NULL.
Applicability is (OM_NEW, OM_SET, OM_UPDATE)
RADIOBUTTON_Spacing (WORD)
Spacing between the radio buttons.
Defaults to 1.
Applicability is (OM_NEW, OM_SET, OM_UPDATE, OM_NOTIFY)
RADIOBUTTON_Selected (WORD)
Currently selected radio button number.
Defaults to 0.
Applicability is (OM_NEW, OM_SET, OM_UPDATE)
RADIOBUTTON_LabelPlace (WORD)
Location of radiobutton text labels. Supports:
PLACETEXT_RIGHT
Defaults to PLACETEXT_RIGHT.
Applicability is (OM_NEW, OM_SET, OM_UPDATE)
NOTES
GA_Height and GA_Width DO NOT specify the actual button size, but
rather the entire "hit box" area which includes the text label.
When being used with layout.gadget it will domain to a proper
size to hold the number of buttons and largest text labels.
Take care when designing interfaces with out layout to set
a proper height and width to hold the radiobutton imagery.
This may be done via sending a BOOPSI GM_DOMAIN GDOMAIN_MINIMUM
method message to the object with DoGadgetMethod(), or computing
a minimum size based on font height and length. In otherwords,
use layout, its alot easier! :)