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.
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".
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.
The number of cells in the default colormap is retrieved by using screencells:
$count = $widget->screencells;
To determine the number of bits per pixel your screen has, use the screendepth method:
$depth = $widget->screendepth;
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
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.
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.