Bitmap Primitives
Prior to
the advent of images, Tk supported simple bitmap operations. All the
button-like widgets, plus Canvas, Dialog, and Label, have a
-bitmap
option whose value is either a string
specifying a built-in bitmap name or an XBM filename with a leading
@
character. This code displays the built-in
bitmaps and an XBM file:
my $row = my $col = 0; foreach my $b (qw/error gray75 gray50 gray25 gray12 hourglass info questhead question Tk transparent warning/) { $mw->Label(-text => $b)->grid(-row => $row, -column => $col); $mw->Label(-bitmap => $b)->grid(-row => $row+1, -column => $col++); if ($col > 4) {$row +=2; $col = 0} } my $c = $mw->Canvas(qw/-width 35 -height 35/); $c->grid(-row => $row, -column => 3); $c->createBitmap(20, 20, -bitmap => '@images/Icon.xbm');
Figure 17-2 shows the bitmaps.
Figure 17-2. Bitmaps are built-in or read from a file
Bitmaps are also used as application
icons and cursors. MainWindows and Toplevels have
iconbitmap
and iconmask
methods
that define an application icon:
$mw->iconbitmap('@images/Icon.xbm');
Tk provides scores of built-in cursors, depicted in Figure 23-2. To build your own cursor, you need an XBM file and a mask file. A cursor specification is a reference to an array of four elements:
[qw\@images/mouse.xbm images/mouse.mask blue yellow\]
The array elements are the XBM filename, the mask filename, the foreground color, and the background ...
Get Mastering Perl/Tk now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.