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 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access