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
display, screen, window, pixmap, colormap, gc, font, cursor
display (default screen), screen, window, pixmap, colormap, gc
display (root window of default screen), screen (root window), window
display (default colormap of default screen), screen (default colormap), window, colormap
window, pixmap, gc
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.