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 | 32 | bit | 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).