Sanko Robinson > FLTK-0.532009 > FLTK::Button



Annotate this POD


View/Report Bugs
Module Version: 0.532006   Source  


FLTK::Button - Push button widget

Description ^

Buttons generate callbacks when they are clicked by the user. You control exactly when and how by changing the values for when():

FLTK::WHEN_NEVER The callback is not done, instead changed() is turned on.
FLTK::WHEN_RELEASE This 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_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).

Buttons can also generate callbacks in response to FLTK::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 FLTK::KEY event.

Functions ^



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 FLTK::Button object. Obviously.


$button->value( $val );

Change the value(). Redraws the button and returns true if the new value is different. This is the same function as Widget::state(). See also Widget::set(), Widget::clear(), and Widget::setonly().

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().

Subclassing FLTK::Button ^

Blah, blah, blah...

draw( $glyph_width )

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 state(). 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 state(), so the box is only used to indicate the pushed state.

Author ^

Sanko Robinson <> -

License and Legal ^

Copyright (C) 2008-2010 by Sanko Robinson <>

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.

syntax highlighting: