Book HomeMastering Perl/TkSearch this book

13.11. Screen Information

The following methods all return information based on the screen (which can be a virtual desktop or a normal desktop) and the colors of the desktop.

13.11.1. Screen Name

Each screen you use has a name associated with it. To get the name, use the screen method:

$name = $widget->screen;

The name returned will be formatted as "displayName.screenIndex". For more details refer to Chapter 11, " Frame, MainWindow,and Toplevel Widgets".

13.11.2. Screen Height and Width

The screen height and width is really just the resolution of the screen. Sometimes you might need information to determine how large a window can fit on a user's display. To get the height and width of the screen in pixels, use the screenheight and screenwidth methods:

$height = $widget->screenheight;
$width = $widget->screenwidth;

If your display dimensions are 1024x768, then screenheight returns 768 and screenwidth returns 1024. If you prefer to get the size of the screen in millimeters, use screenmmheight and screenmmwidth:

$heightmm = $widget->screenmmheight;
$widthmm = $widget->screenmmwidth;

The same resolution, 1024x768, returns 203 millimeters as the height and 270 millimeters as the width.

13.11.3. Cell Count

The number of cells in the default colormap is retrieved by using screencells:

$count = $widget->screencells;

13.11.4. Screen Depth

To determine the number of bits per pixel your screen has, use the screendepth method:

$depth = $widget->screendepth;

13.11.5. Color Type

The type of color is defined by one of the following classes: "directcolor", "grayscale", "pseudocolor", "staticcolor", "staticgray", or "truecolor". To determine the class for the screen that contains the widget, use screenvisual:

$type = $widget->screenvisual;

To determine the class of color for the widget itself, use visual:

$type = $widget->visual;

To determine the X identifier for the visual for $widget, use visualid.

$xid = $widget->visualid;

To find out the entire list of classes available for the current setup, use the visualsavailable method:

@list = $widget->visualsavailable

Each element in @list describes the visual and the color depth for that visual. For instance, you might see:

pseudocolor 8
directcolor 8
grayscale 8
staticcolor 8
truecolor 8
staticgray 8

13.11.6. Server Type

The type of server is available through the server method:

$server_type = $widget->server;

An older Win32 machine has a server type of "Windows 4.0 67109975 Win32". Regardless, this information is generally inconsistent, if not incorrect, so treat it as suspect data.

13.11.7. Is the Widget Viewable?

A widget is determined viewable if the widget and all of its ancestors are mapped. You can ask the widget itself if it is viewable by using the viewable method:

$isviewable = $widget->viewable;

viewable returns 1 if the widget can be viewed and if not.



Library Navigation Links

Copyright © 2002 O'Reilly & Associates. All rights reserved.