Accelerators | 32 bit | integer ID |
Atom | 32 bit | Atom ID |
Boolean | 24 bit | immediate data |
Color | 24 bit | immediate data (Red value) followed by 2 16 bit words for Green and Blue@ |
Colormap | 32 bit | Colormap XID |
Compound Strings | 32 bit | address |
Cursor | 32bit | Cursor XID |
Enumeration | 24 bit | immediate integer |
Font | 32 bit | Font XID |
Font List | 32 bit | integer ID |
Function | 24 bit | immediate token |
Int | 32 bit | integer |
List | 24 bit | immediate data (length) followed by each element recorded in order |
Pixmap | 32 bit | Pixmap XID |
Short | 24 bit | immediate integer |
(1) Strings | 24 bit | immediate data (length of string including '\0') followed by string data padded to end on a word boundary …or… |
(2) Strings | 24 bit | immediate token (for common strings) |
Translations | 32 bit | integer ID |
Widgets | 32 bit | integer ID |
Window | 32 bit | Window XID |
For objects such as translations, widgets, accelerators, font lists, and compound strings, the 32 bit ID is just the address of the object in the C server process. They are represented in Lisp by structures which encapsulate their ID’s and provide them with Lisp data types (other than simply INTEGER).