NAME
Tk::CompoundButton - Enhanced Button widget with a bitmap/image AND a text label
SYNOPSIS
use Tk;
use Tk::CompoundButton
my $mw = MainWindow->new();
my $downangle_data = <<'downangle_EOP';
/* XPM */
static char *arrow[] = {
"14 9 2 1",
". c none",
"X c black",
"..............",
"..............",
".XXXXXXXXXXXX.",
"..XXXXXXXXXX..",
"...XXXXXXXX...",
"....XXXXXX....",
".....XXXX.....",
"......XX......",
"..............",
};
downangle_EOP
my $downangle = $mw->Pixmap( -data => $downangle_data);
my $text = 'bttn-text';
my $bt1 = $mw->CompoundButton(
#-padx => -1,
-text => 'Enable',
-image => $downangle,
-bitmap => 'error',
-command => \&bttn_pressed_cb1,
#-borderwidth => '12',
#-relief => 'ridge',
-bg => 'orange',
-fg => 'green',
-textvariable => \$var,
-side => 'bottom',
# -side => 'top',
# -side => 'left',
-activebackground => 'red',
-activeforeground => 'blue',
# -width => 200,
-height => 200,
#-anchor => 'sw',
#-anchor => 'e',
#-justify => 'right',
-gap => 20,
)->pack(-padx => 50, -pady => 50);
my $bt2 = $mw->Button(
-text => 'Disable',
-command => [\&bttn_pressed_cb2, $bt1],
#-image => $downangle,
)->pack;
Tk::MainLoop;
sub bttn_pressed_cb1
{
print "bttn 1 pressed.\n";
}
sub bttn_pressed_cb2
{
print "bttn 2 pressed.\n";
$_[0]->configure(-state => ($_[0]->cget('-state') eq 'normal' ? 'disabled' : 'normal'));
}
DESCRIPTION
A Button widget that can be used as a replacement for the standard Button, if you want to display a bitmap/image AND a text label.
METHODS
for details on supported methods - see also Tk::Button
OPTIONS
- -side
-
-side => 'value' allows to specify the side at which the bitmap/image is positioned. Value may be one of top, left, bottom or right.
- -gap
-
-gap => 'value' allows to specify the size of the gap between the bitmap/image and the text. default is 5px.
- -textjustify
-
-textjustify => 'value' allows to justify the text independant from the image item. Usable values are [left, right, center, or none], default is none. Normally image and text are placed as a contiguous block on either side according -anchor option. Using this option allows to break this rule. Example: -textjustify allows for a column of buttons of same size to have all images on the right corner and the text in front of it centered in respect ot the overall button-width:
Default Mode: +----------------+ +----------------+ +----------------+ | Text IMG| |Text IMG | | Text IMG | +----------------+ +----------------+ +----------------+ -anchor => 'e', -anchor => 'w' -anchor => 'e' -side => 'right' -side => 'right' -side => 'right' textjustify Mode: +----------------+ +----------------+ +----------------+ |Text IMG| | Text IMG| | Text IMG| +----------------+ +----------------+ +----------------+ -anchor => 'e' -anchor => 'e' -anchor => 'e' -textjustify -textjustify -textjustify => 'left' => 'center' => 'center' -side => 'right' -side => 'right' -side => 'right'
NOTE: -textjustify does work only, if you specify also a fixed WIDTH of the button. Furthermore it does not work with -bitmap option, only -image.
***
For details on all other options especially -anchor, and -justify see Tk::Button.
This widget is fully backward compatible to the standard Tk::Button and thus supports all options found there.
AUTHORS
Michael Krause, KrauseM_AT_gmx_DOT_net
This code may be distributed under the same conditions as Perl.
V0.3 (C) 2004 - 2009