FLTK::Button - Push button widget
Buttons generate callbacks when they are clicked by the user.
You control exactly when and how by changing the values for
FLTK::WHEN_NEVERThe callback is not done, instead
changed()is turned on.
FLTK::WHEN_RELEASEThis is the default, the callback is done after the user successfully clicks the button (i.e. they let it go with the mouse still pointing at it), or when a shortcut is typed.
FLTK::WHEN_CHANGEDThe 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).
Buttons can also generate callbacks in response to
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
Back-comptability value to hide the button
my $style = $button->default_style( );
Get the style
$button->default_style( $style );
Set the style.
my $self = $button->new( $x, $y, $w, $h, $label );
Creates a new
$button->value( $val );
If you turn it on, a normal button will draw pushed-in, until the user clicks it and releases it.
my $val = $button->value( );
The current value.
true means it is pushed down,
false means it is not pushed down.
The ToggleButton subclass provides the ability for the user to change this value permanently,
otherwise it is just temporary while the user is holding the button down.
This is the same as Widget::state().
Blah, blah, blah...
This function provides a mess of back-compatabilty and Windows emulation to subclasses of Button to draw with.
It will draw the button according to the current state of being pushed and it's
If non-zero is passed for
GLYPH_WIDTH then the
glyph() is drawn in that space on the left (or on the right if negative),
and it assummes the glyph indicates the
so the box is only used to indicate the pushed state.
Sanko Robinson <email@example.com> - http://sankorobinson.com/
Copyright (C) 2008-2010 by Sanko Robinson <firstname.lastname@example.org>
This program is free software; you can redistribute it and/or modify it under the terms of The Artistic License 2.0. See the LICENSE file included with this distribution or notes on the Artistic License 2.0 for clarification.
When separated from the distribution, all original POD documentation is covered by the Creative Commons Attribution-Share Alike 3.0 License. See the clarification of the CCA-SA3.0.