>Fl_Widget> > | > +---->Fl_Button> > | > +---->Fl_Check_Button>, >Fl_Light_Button>, >Fl_Repeat_Button>, > >Fl_Return_Button>, >Fl_Round_Button> >
>#include <FL/Fl_Button.H> >
Buttons >generate >callbacks >when >they >are >clicked > by >the >user. > You > control >exactly >when >and >how > by >changing >the >values >for >type()> and > when()>. >
Buttons >can >also >generate >callbacks >in >response > to >FL_SHORTCUT> events. > The >button >can > either >have >an >explicit > shortcut()> value >or >a >letter >shortcut >can > be >indicated >in > the >label()> with >an >'&' > character >before >it. > For >the >label > shortcut >it > does >not >matter >if >Alt> is >held >down, >but > if >you >have > an >input >field >in >the >same > window, >the >user >will >have >to >hold >down >the > Alt> key >so >that >the >input >field >does >not > eat >the >event >first >as >an > FL_KEYBOARD> event. >
The >second >form >sets >the >down >box >type. >The > default >value >of >0 > causes >FLTK >to >figure >out > the >correct >matching >down >version >of >box()> . >
The >second >form >sets >the >shortcut >key >to >
key>. >Setting >this > overrides >the >use >of >
'&' >in >the >label()>. > The >value >is >a >
bitwise > OR >of >a >key >and >a >set >of >shift >
flags, >for >example >FL_ALT >| >'a'>
, >
FL_ALT >| >(FL_F >+ >10)>
, >or >just >'a'>
. > A >value > of >0 >disables >the >shortcut. >
The >key >can >be >any >value >returned >by > Fl::event_key()>, >but >will >usually >be >an > ASCII >letter. > Use > a >lower-case >letter >unless >you > require >the >shift >key >to >be >held >down. >
The >shift >flags >can >be >any >set >of >values > accepted >by > Fl::event_state()>. > If >the >bit >is >on > that >shift >key >must > be >pushed. > Meta, >Alt, > Ctrl, >and >Shift >must >be >off >if >they >are >not > in > the >shift >flags >(zero >for >the >other >bits > indicates >a >"don't >care" > setting). >
0>
: >The >value >is >unchanged. >FL_TOGGLE_BUTTON>
: >The >value >is >
inverted. >FL_RADIO_BUTTON>
: >The >value >is >set >to >
1, >and >all > other > buttons >in >the >current >group >
with >type() >== >FL_RADIO_BUTTON>
are >set >
to >zero. >
FL_WHEN_RELEASE>
: >
0>
: >The >callback >is >not >done, >
instead >changed() >is > turned >on. >FL_WHEN_RELEASE>
: >The >callback >is >done >
after >the >user > successfully >clicks >the >button, >or >
when >a >shortcut >is >typed. >FL_WHEN_CHANGED >
: >The >callback >is >done >
each >time >the > value() >changes >(when >the >user >
pushes >and >releases >the >button, >and >as > the >
mouse >is >dragged >around >in >and >out >of >the >
button). >