Tk::CompoundButton - Enhanced Button widget with a bitmap/image AND a text label
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')); }
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.
for details on supported methods - see also Tk::Button
-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 => 'value' allows to specify the size of the gap between the bitmap/image and the text. default is 5px.
-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.
Michael Krause, KrauseM_AT_gmx_DOT_net
This code may be distributed under the same conditions as Perl.
V0.3 (C) 2004 - 2009
To install Tk::DTree, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Tk::DTree
CPAN shell
perl -MCPAN -e shell install Tk::DTree
For more information on module installation, please visit the detailed CPAN module installation guide.