Inferring arguments

In X, a drawable is an object into which you can draw, either a window or pixmap. ProXL drawing procedures take an argument of type "Drawable". Therefore, you can pass either a window or a pixmap to these drawing procedures.

ProXL extends this concept to include displayables, screenables, windowables, colormapables, gcables, and fontables. If, for example, a ProXL procedure requires a screen as an argument, you can pass either a screen or any other object which uniquely determines a screen. One object can uniquely determine another in two ways, either directly or via a default. For example, a window is directly associated with only one screen. Therefore, anywhere a screen is required any window associated with that screen can be specified. On the other hand, a display may have more than one screen associated with it, but it has only one default screen. Therefore, anywhere a screen is required the screen's display can be specified, if the display's default screen is the screen in question.

Following is a complete listing of the -ables supported by ProXL. The parenthesized associations below indicate that unique determination is made via a default value.


Object required
Objects fulfilling the requirement
displayable
display, screen, window, pixmap, colormap, gc, font, cursor
screenable
display (default screen), screen, window, pixmap, colormap, gc
windowable
display (root window of default screen), screen (root window), window
colormapable
display (default colormap of default screen), screen (default colormap), window, colormap
gcable
window, pixmap, gc
fontable
window, pixmap, gc, font

Therefore, subsequent sections in this manual may describe an argument of a ProXL procedures as, for example, a GCable. In this case you can specify either a window, pixmap or GC as the argument.