Color-Related Methods

There are four methods that deal with color: colormapfull, rgb, cells, and depth. They are described in the following sections.

Is the Colormap Full?

To determine if the colormap for the widget is full, use colormapfull:

$isfull = $widget->colormapfull;

The colormapfull method returns a 1 if the colormap is full and 0 if it is not full.

Cell Count

The number of cells in the colormap can be obtained by using the cells method:

$count = $widget->cells;

The value returned is a number indicating the number of colors; for example, 64.

Color Depth

You can get the number of bits per pixel by using the depth method:

$depth = $widget->depth;
# $depth might contain "16"

Translate to RGB Value

You can translate a color name to the red, green, and blue values by using the rgb method. Send rgb a color name and it returns a list containing three items that represent the red, green, and blue numbers.

($red, $green, $blue) = $widget->rgb("color");

Now $red, $green,and $blue each contain an integer from to 2n-1, where n is the number of bit planes in your display. For 8-bit color, the maximum value is 255 (0xFF); for 16-bit color, it’s 65,535 (0xFFFF).

When specifying a hexadecimal color, feel free to over-specify the value. For instance, if you want the color red, use 0xFFFF00000000. Tk will use it if possible, or will down-convert it to 0xFF0000 for an 8-bit display.

Setting Colors

You can have your entire application based on one color automatically by using the setPalette ...

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.