- Support for all X protocol functionality:
- multiple displays and screens
- nested windows
- all X visual types
- pixmaps and bitmaps
- fonts, both fixed and variable width
- cursors, standard and custom
- all X drawing primitives
- all X graphics context functionality
- window and font properties
- window manager interface
- selections and cut buffers
- ProXL objects have state:
- Objects know their display and screen; no need to specify separately.
- Windows and Pixmaps know their graphics context (GC);
there is no need to specify GC when drawing.
- Graphics Contexts remember their state.
- Primitives get and put operate on lists of attributes:
- Attributes allow accessing or setting only desired information.
- All attributes have defaults.
- Access from Prolog is uniform across objects.
- X asymmetries are smoothed and regularized.
- Inference built-in to locate correct X resources:
- Specify a window, pixmap, or GC where font is needed.
- Specify a window or pixmap where a GC is needed.
- Specify a screen or display where a colormap is needed.
- Specify anything where a display is needed.
- Default screen and display simplify coding.
- Callbacks in Prolog:
- Program in Prolog:
- Prolog's interactive environment
simplifies code prototyping and testing.
- Programs are much more compact than in other languages (ProXL
code typically uses one-third as much code as C)
- Interoperability with C code:
- Extend existing C/Xlib programs in Prolog with ProXL.
- Integrate further C/Xlib code with ProXL applications.
This manual is addressed to people who know how to use the X window
system, but not necessarily how to program it. For some readers, much
of introduction will be familiar. You might want to read those
sections that describe features peculiar to ProXL: pxl-bas-attr,
pxl-bas-inf, and pxl-bas-tyi-cbk, and then skip ahead to the
tutorial in pxl-tut. If you have written programs
in Xlib, you might also find pxl-xlib
X is a very subtle system, and the ProXL manual does not try to document
it all. Therefore, it may occasionally be necessary to refer to a good
reference on X. A major source of information on X is the X manual for
your system. Since X programming is often done in the C language, a
good place to turn for detail on some of the esoteric features of X is a
reference on Xlib. Another good way to learn about X is to experiment