Xlib - C Language X InterfaceXlib - C Language X Interface
AcknowledgmentsAcknowledgments
Introduction to XlibChapter 1, Introduction to Xlib
Overview of the X Window Systemthe section called “Overview of the X Window System”
Errorsthe section called “Errors”
Standard Header Filesthe section called “Standard Header Files”???TITLE???<X11/Xlib.h>???TITLE???<X11/X.h>???TITLE???<X11/Xcms.h>???TITLE???<X11/Xutil.h>???TITLE???<X11/Xresource.h>???TITLE???<X11/Xatom.h>???TITLE???<X11/cursorfont.h>???TITLE???<X11/keysymdef.h>???TITLE???<X11/keysym.h>???TITLE???<X11/Xlibint.h>???TITLE???<X11/Xproto.h>???TITLE???<X11/Xprotostr.h>???TITLE???<X11/X10.h>
Generic Values and Typesthe section called “Generic Values and Types”
Naming and Argument Conventions within Xlibthe section called “Naming and Argument Conventions within Xlib”
Programming Considerationsthe section called “Programming Considerations”
Character Sets and Encodingsthe section called “Character Sets and Encodings”
Formatting Conventionsthe section called “Formatting Conventions”
Display FunctionsChapter 2, Display Functions
Opening the Displaythe section called “Opening the Display”???TITLE???XOpenDisplay
Obtaining Information about the Display, Image Formats, or Screensthe section called “Obtaining Information about the Display, Image Formats, or Screens”
Display Macrosthe section called “Display Macros”???TITLE???XBlackPixel???TITLE???XWhitePixel???TITLE???XConnectionNumber???TITLE???XDefaultColormap???TITLE???XDefaultDepth???TITLE???XDefaultGC???TITLE???XDefaultRootWindow???TITLE???XDefaultScreenOfDisplay???TITLE???XScreenOfDisplay???TITLE???XDefaultScreen???TITLE???XDefaultVisual???TITLE???XDisplayCells???TITLE???XDisplayPlanes???TITLE???XDisplayString???TITLE???XLastKnownRequestProcessed???TITLE???XNextRequest???TITLE???XProtocolVersion???TITLE???XProtocolRevision???TITLE???XQLength???TITLE???XRootWindow???TITLE???XScreenCount???TITLE???XServerVendor???TITLE???XVendorRelease
Image Format Functions and Macrosthe section called “Image Format Functions and Macros”???TITLE???XListPixmapFormats???TITLE???XImageByteOrder???TITLE???XBitmapUnit???TITLE???XBitmapBitOrder???TITLE???XBitmapPad???TITLE???XDisplayHeight???TITLE???XDisplayHeightMM???TITLE???XDisplayWidth???TITLE???XDisplayWidthMM
Screen Information Macrosthe section called “Screen Information Macros”???TITLE???XBlackPixelOfScreen???TITLE???XWhitePixelOfScreen???TITLE???XCellsOfScreen???TITLE???XDefaultColormapOfScreen???TITLE???XDefaultDepthOfScreen???TITLE???XDefaultGCOfScreen???TITLE???XDefaultVisualOfScreen???TITLE???XDoesBackingStore???TITLE???XDoesSaveUnders???TITLE???XDisplayOfScreen???TITLE???XEventMaskOfScreen???TITLE???XWidthOfScreen???TITLE???XHeightOfScreen???TITLE???XWidthMMOfScreen???TITLE???XHeightMMOfScreen???TITLE???XMaxCmapsOfScreen???TITLE???XMinCmapsOfScreen???TITLE???XPlanesOfScreen???TITLE???XRootWindowOfScreen
Generating a NoOperation Protocol Requestthe section called “Generating a NoOperation Protocol Request”???TITLE???XNoOp
Freeing Client-Created Datathe section called “Freeing Client-Created Data”???TITLE???
Closing the Displaythe section called “Closing the Display”???TITLE??????TITLE???
Using X Server Connection Close Operationsthe section called “Using X Server Connection Close Operations”
Using Xlib with Threadsthe section called “Using Xlib with Threads”???TITLE??????TITLE???
Using Internal Connectionsthe section called “Using Internal Connections”???TITLE??????TITLE??????TITLE???XRemoveConnectionWatch???TITLE???XProcessInternalConnection???TITLE???XInternalConnectionNumbers
Window FunctionsChapter 3, Window Functions
Visual Typesthe section called “Visual Types”???TITLE???XVisualIDFromVisual
Window Attributesthe section called “Window Attributes”
Background Attributethe section called “Background Attribute”
Border Attributethe section called “Border Attribute”
Gravity Attributesthe section called “Gravity Attributes”
Backing Store Attributethe section called “Backing Store Attribute”
Save Under Flagthe section called “Save Under Flag”
Backing Planes and Backing Pixel Attributesthe section called “Backing Planes and Backing Pixel Attributes”
Event Mask and Do Not Propagate Mask Attributesthe section called “Event Mask and Do Not Propagate Mask Attributes”
Override Redirect Flagthe section called “Override Redirect Flag”
Colormap Attributethe section called “Colormap Attribute”
Cursor Attributethe section called “Cursor Attribute”
Creating Windowsthe section called “Creating Windows”???TITLE???XCreateWindow???TITLE???XCreateSimpleWindow
Destroying Windowsthe section called “Destroying Windows”???TITLE???XDestroyWindow???TITLE???XDestroySubwindows
Mapping Windowsthe section called “Mapping Windows”???TITLE???XMapWindow???TITLE???XMapRaised???TITLE???XMapSubwindows
Unmapping Windowsthe section called “Unmapping Windows”???TITLE???XUnmapWindow???TITLE???XUnmapSubwindows
Configuring Windowsthe section called “Configuring Windows”???TITLE???XConfigureWindow???TITLE???XMoveWindow???TITLE???XResizeWindow???TITLE???XMoveResizeWindow???TITLE???XSetWindowBorderWidth
Changing Window Stacking Orderthe section called “Changing Window Stacking Order”???TITLE???XRaiseWindow???TITLE???XLowerWindow???TITLE???XCirculateSubwindows???TITLE???XCirculateSubwindowsUp???TITLE???XCirculateSubwindowsDown???TITLE???XRestackWindows
Changing Window Attributesthe section called “Changing Window Attributes”???TITLE???XChangeWindowAttributes???TITLE???XSetWindowBackground???TITLE???XSetWindowBackgroundPixmap???TITLE???XSetWindowBorder???TITLE???XSetWindowBorderPixmap???TITLE???XSetWindowColormap???TITLE???XDefineCursor???TITLE???XUndefineCursor
Window Information FunctionsChapter 4, Window Information Functions
Obtaining Window Informationthe section called “Obtaining Window Information”???TITLE???XQueryTree???TITLE???XGetWindowAttributes???TITLE???XGetGeometry
Translating Screen Coordinatesthe section called “Translating Screen Coordinates”???TITLE???XTranslateCoordinates???TITLE???XQueryPointer
Properties and Atomsthe section called “Properties and Atoms”???TITLE???XInternAtom???TITLE???XInternAtoms???TITLE???XGetAtomName???TITLE???XGetAtomNames
Obtaining and Changing Window Propertiesthe section called “Obtaining and Changing Window Properties”???TITLE???XGetWindowProperty???TITLE???XListProperties???TITLE???XChangeProperty???TITLE???XRotateWindowProperties???TITLE???XDeleteProperty
Selectionsthe section called “Selections”???TITLE???XSetSelectionOwner???TITLE???XGetSelectionOwner???TITLE???XConvertSelection
Pixmap and Cursor FunctionsChapter 5, Pixmap and Cursor Functions
Creating and Freeing Pixmapsthe section called “Creating and Freeing Pixmaps”???TITLE???XCreatePixmap???TITLE???XFreePixmap
Creating, Recoloring, and Freeing Cursorsthe section called “Creating, Recoloring, and Freeing Cursors”???TITLE???XCreateFontCursor???TITLE???XCreateGlyphCursor???TITLE???XCreatePixmapCursor???TITLE???XQueryBestCursor???TITLE???XRecolorCursor???TITLE???XFreeCursor
Color Management FunctionsChapter 6, Color Management Functions
Color Structuresthe section called “Color Structures”
Color Stringsthe section called “Color Strings”
RGB Device String Specificationthe section called “RGB Device String Specification”
RGB Intensity String Specificationthe section called “RGB Intensity String Specification”
Device-Independent String Specificationsthe section called “Device-Independent String Specifications”
Color Conversion Contexts and Gamut Mappingthe section called “Color Conversion Contexts and Gamut Mapping”
Creating, Copying, and Destroying Colormapsthe section called “Creating, Copying, and Destroying Colormaps”???TITLE???XCreateColormap???TITLE???XCopyColormapAndFree???TITLE???XFreeColormap
Mapping Color Names to Valuesthe section called “Mapping Color Names to Values”???TITLE???XLookupColor???TITLE???XParseColor???TITLE???XcmsLookupColor
Allocating and Freeing Color Cellsthe section called “Allocating and Freeing Color Cells”???TITLE???XAllocColor???TITLE???XcmsAllocColor???TITLE???XAllocNamedColor???TITLE???XcmsAllocNamedColor???TITLE???XAllocColorCells???TITLE???XAllocColorPlanes???TITLE???XFreeColors
Modifying and Querying Colormap Cellsthe section called “Modifying and Querying Colormap Cells”???TITLE???XStoreColor???TITLE???XStoreColors???TITLE???XcmsStoreColor???TITLE???XcmsStoreColors???TITLE???XStoreNamedColor???TITLE???XQueryColor???TITLE???XQueryColors???TITLE???XcmsQueryColor???TITLE???XcmsQueryColors
Color Conversion Context Functionsthe section called “Color Conversion Context Functions”
Getting and Setting the Color Conversion Context of a Colormapthe section called “Getting and Setting the Color Conversion Context of a Colormap”???TITLE???XcmsCCCOfColormap???TITLE???XcmsSetCCCOfColormap
Obtaining the Default Color Conversion Contextthe section called “Obtaining the Default Color Conversion Context”???TITLE???XcmsDefaultCCC
Color Conversion Context Macrosthe section called “Color Conversion Context Macros”???TITLE???DisplayOfCCC???TITLE???XcmsDisplayOfCCC???TITLE???VisualOfCCC???TITLE???XcmsVisualOfCCC???TITLE???ScreenNumberOfCCC???TITLE???XcmsScreenNumberOfCCC???TITLE???ScreenWhitePointOfCCC???TITLE???XcmsScreenWhitePointOfCCC???TITLE???ClientWhitePointOfCCC???TITLE???XcmsClientWhitePointOfCCC
Modifying Attributes of a Color Conversion Contextthe section called “Modifying Attributes of a Color Conversion Context”???TITLE???XcmsSetWhitePoint???TITLE???XcmsSetCompressionProc???TITLE???XcmsSetWhiteAdjustProc
Creating and Freeing a Color Conversion Contextthe section called “Creating and Freeing a Color Conversion Context”???TITLE???XcmsCreateCCC???TITLE???XcmsFreeCCC
Converting between Color Spacesthe section called “Converting between Color Spaces”???TITLE???XcmsConvertColors
Callback Functionsthe section called “Callback Functions”
Prototype Gamut Compression Procedurethe section called “Prototype Gamut Compression Procedure”???TITLE???(*XcmsCompressionProc
Supplied Gamut Compression Proceduresthe section called “Supplied Gamut Compression Procedures”
Prototype White Point Adjustment Procedurethe section called “Prototype White Point Adjustment Procedure”???TITLE???(*XcmsWhiteAdjustProc
Supplied White Point Adjustment Proceduresthe section called “Supplied White Point Adjustment Procedures”
Gamut Querying Functionsthe section called “Gamut Querying Functions”
Red, Green, and Blue Queriesthe section called “Red, Green, and Blue Queries”???TITLE???XcmsQueryBlack???TITLE???XcmsQueryBlue???TITLE???XcmsQueryGreen???TITLE???XcmsQueryRed???TITLE???XcmsQueryWhite
CIELab Queriesthe section called “CIELab Queries”???TITLE???XcmsCIELabQueryMaxC???TITLE???XcmsCIELabQueryMaxL???TITLE???XcmsCIELabQueryMaxLC???TITLE???XcmsCIELabQueryMinL
CIELuv Queriesthe section called “CIELuv Queries”???TITLE???XcmsCIELuvQueryMaxC???TITLE???XcmsCIELuvQueryMaxL???TITLE???XcmsCIELuvQueryMaxLC???TITLE???XcmsCIELuvQueryMinL
TekHVC Queriesthe section called “TekHVC Queries”???TITLE???XcmsTekHVCQueryMaxC???TITLE???XcmsTekHVCQueryMaxV???TITLE???XcmsTekHVCQueryMaxVC???TITLE???XcmsTekHVCQueryMaxVSamples???TITLE???XcmsTekHVCQueryMinV
Color Management Extensionsthe section called “Color Management Extensions”
Color Spacesthe section called “Color Spaces”
Adding Device-Independent Color Spacesthe section called “Adding Device-Independent Color Spaces”???TITLE???XcmsAddColorSpace
Querying Color Space Format and Prefixthe section called “Querying Color Space Format and Prefix”???TITLE???XcmsFormatOfPrefix???TITLE???XcmsPrefixOfFormat
Creating Additional Color Spacesthe section called “Creating Additional Color Spaces”
Parse String Callbackthe section called “Parse String Callback”???TITLE???XcmsParseStringProc
Color Specification Conversion Callbackthe section called “Color Specification Conversion Callback”???TITLE???ConversionProc
Function Setsthe section called “Function Sets”
Adding Function Setsthe section called “Adding Function Sets”???TITLE???XcmsAddFunctionSet
Creating Additional Function Setsthe section called “Creating Additional Function Sets”
Graphics Context FunctionsChapter 7, Graphics Context Functions
Manipulating Graphics Context/Statethe section called “Manipulating Graphics Context/State”???TITLE???XCreateGC???TITLE???XCopyGC???TITLE???XChangeGC???TITLE???XGetGCValues???TITLE???XFreeGC???TITLE???XGContextFromGC???TITLE???XFlushGC
Using Graphics Context Convenience Routinesthe section called “Using Graphics Context Convenience Routines”
Setting the Foreground, Background, Function, or Plane Maskthe section called “Setting the Foreground, Background, Function, or Plane Mask”???TITLE???XSetState???TITLE???XSetForeground???TITLE???XSetBackground???TITLE???XSetFunction???TITLE???XSetPlaneMask
Setting the Line Attributes and Dashesthe section called “Setting the Line Attributes and Dashes”???TITLE???XSetLineAttributes???TITLE???XSetDashes
Setting the Fill Style and Fill Rulethe section called “Setting the Fill Style and Fill Rule”???TITLE???XSetFillStyle???TITLE???XSetFillRule
Setting the Fill Tile and Stipplethe section called “Setting the Fill Tile and Stipple”???TITLE???XQueryBestSize???TITLE???XQueryBestTile???TITLE???XQueryBestStipple???TITLE???XSetTile???TITLE???XSetStipple???TITLE???XSetTSOrigin
Setting the Current Fontthe section called “Setting the Current Font”???TITLE???XSetFont
Setting the Clip Regionthe section called “Setting the Clip Region”???TITLE???XSetClipOrigin???TITLE???XSetClipMask???TITLE???XSetClipRectangles
Setting the Arc Mode, Subwindow Mode, and Graphics Exposurethe section called “Setting the Arc Mode, Subwindow Mode, and Graphics Exposure”???TITLE???XSetArcMode???TITLE???XSetSubwindowMode???TITLE???XSetGraphicsExposures
Graphics FunctionsChapter 8, Graphics Functions
Clearing Areasthe section called “Clearing Areas”???TITLE???XClearArea???TITLE???XClearWindow
Copying Areasthe section called “Copying Areas”???TITLE???XCopyArea???TITLE???XCopyPlane
Drawing Points, Lines, Rectangles, and Arcsthe section called “Drawing Points, Lines, Rectangles, and Arcs”
Drawing Single and Multiple Pointsthe section called “Drawing Single and Multiple Points”???TITLE???XDrawPoint???TITLE???XDrawPoints
Drawing Single and Multiple Linesthe section called “Drawing Single and Multiple Lines”???TITLE???XDrawLine???TITLE???XDrawLines???TITLE???XDrawSegments
Drawing Single and Multiple Rectanglesthe section called “Drawing Single and Multiple Rectangles”???TITLE???XDrawRectangle???TITLE???XDrawRectangles
Drawing Single and Multiple Arcsthe section called “Drawing Single and Multiple Arcs”???TITLE???XDrawArc???TITLE???XDrawArcs
Filling Areasthe section called “Filling Areas”
Filling Single and Multiple Rectanglesthe section called “Filling Single and Multiple Rectangles”???TITLE???XFillRectangle???TITLE???XFillRectangles
Filling a Single Polygonthe section called “Filling a Single Polygon”???TITLE???XFillPolygon
Filling Single and Multiple Arcsthe section called “Filling Single and Multiple Arcs”???TITLE???XFillArc???TITLE???XFillArcs
Font Metricsthe section called “Font Metrics”
Loading and Freeing Fontsthe section called “Loading and Freeing Fonts”???TITLE???XLoadFont???TITLE???XQueryFont???TITLE???XLoadQueryFont???TITLE???XFreeFont???TITLE???XGetFontProperty???TITLE???XUnloadFont
Obtaining and Freeing Font Names and Informationthe section called “Obtaining and Freeing Font Names and Information”???TITLE???XListFonts???TITLE???XFreeFontNames???TITLE???XListFontsWithInfo???TITLE???XFreeFontInfo
Computing Character String Sizesthe section called “Computing Character String Sizes”???TITLE???XTextWidth???TITLE???XTextWidth16
Computing Logical Extentsthe section called “Computing Logical Extents”???TITLE???XTextExtents???TITLE???XTextExtents16
Querying Character String Sizesthe section called “Querying Character String Sizes”???TITLE???XQueryTextExtents???TITLE???XQueryTextExtents16
Drawing Textthe section called “Drawing Text”
Drawing Complex Textthe section called “Drawing Complex Text”???TITLE???XDrawText???TITLE???XDrawText16
Drawing Text Charactersthe section called “Drawing Text Characters”???TITLE???XDrawString???TITLE???XDrawString16
Drawing Image Text Charactersthe section called “Drawing Image Text Characters”???TITLE???XDrawImageString???TITLE???XDrawImageString16
Transferring Images between Client and Serverthe section called “Transferring Images between Client and Server”???TITLE???XInitImage???TITLE???XPutImage???TITLE???XGetImage???TITLE???XGetSubImage
Window and Session Manager FunctionsChapter 9, Window and Session Manager Functions
Changing the Parent of a Windowthe section called “Changing the Parent of a Window”???TITLE???XReparentWindow
Controlling the Lifetime of a Windowthe section called “Controlling the Lifetime of a Window”???TITLE???XChangeSaveSet???TITLE???XAddToSaveSet???TITLE???XRemoveFromSaveSet
Managing Installed Colormapsthe section called “Managing Installed Colormaps”???TITLE???XInstallColormap???TITLE???XUninstallColormap???TITLE???XListInstalledColormaps
Setting and Retrieving the Font Search Paththe section called “Setting and Retrieving the Font Search Path”???TITLE???XSetFontPath???TITLE???XGetFontPath???TITLE???XFreeFontPath
Grabbing the Serverthe section called “Grabbing the Server”???TITLE???XGrabServer???TITLE???XUngrabServer
Killing Clientsthe section called “Killing Clients”???TITLE???XKillClient
Controlling the Screen Saverthe section called “Controlling the Screen Saver”???TITLE???XSetScreenSaver???TITLE???XForceScreenSaver???TITLE???XActivateScreenSaver???TITLE???XResetScreenSaver???TITLE???XGetScreenSaver
Controlling Host Accessthe section called “Controlling Host Access”
Adding, Getting, or Removing Hoststhe section called “Adding, Getting, or Removing Hosts”???TITLE???XAddHost???TITLE???XAddHosts???TITLE???XListHosts???TITLE???XRemoveHost???TITLE???XRemoveHosts
Changing, Enabling, or Disabling Access Controlthe section called “Changing, Enabling, or Disabling Access Control”???TITLE???XSetAccessControl???TITLE???XEnableAccessControl???TITLE???XDisableAccessControl
EventsChapter 10, Events
Event Typesthe section called “Event Types”
Event Structuresthe section called “Event Structures”
Event Masksthe section called “Event Masks”
Event Processing Overviewthe section called “Event Processing Overview”
Keyboard and Pointer Eventsthe section called “Keyboard and Pointer Events”
Pointer Button Eventsthe section called “Pointer Button Events”
Keyboard and Pointer Eventsthe section called “Keyboard and Pointer Events”
Window Entry/Exit Eventsthe section called “Window Entry/Exit Events”
Normal Entry/Exit Eventsthe section called “Normal Entry/Exit Events”
Grab and Ungrab Entry/Exit Eventsthe section called “Grab and Ungrab Entry/Exit Events”
Input Focus Eventsthe section called “Input Focus Events”
Normal Focus Events and Focus Events While Grabbedthe section called “Normal Focus Events and Focus Events While Grabbed”
Focus Events Generated by Grabsthe section called “Focus Events Generated by Grabs”
Key Map State Notification Eventsthe section called “Key Map State Notification Events”
Exposure Eventsthe section called “Exposure Events”
Expose Eventsthe section called “Expose Events”
GraphicsExpose and NoExpose Eventsthe section called “GraphicsExpose and NoExpose Events”
Window State Change Eventsthe section called “Window State Change Events”
CirculateNotify Eventsthe section called “CirculateNotify Events”
ConfigureNotify Eventsthe section called “ConfigureNotify Events”
CreateNotify Eventsthe section called “CreateNotify Events”
DestroyNotify Eventsthe section called “DestroyNotify Events”
GravityNotify Eventsthe section called “GravityNotify Events”
MapNotify Eventsthe section called “MapNotify Events”
MappingNotify Eventsthe section called “MappingNotify Events”
ReparentNotify Eventsthe section called “ReparentNotify Events”
UnmapNotify Eventsthe section called “UnmapNotify Events”
VisibilityNotify Eventsthe section called “VisibilityNotify Events”
Structure Control Eventsthe section called “Structure Control Events”
CirculateRequest Eventsthe section called “CirculateRequest Events”
ConfigureRequest Eventsthe section called “ConfigureRequest Events”
MapRequest Eventsthe section called “MapRequest Events”
ResizeRequest Eventsthe section called “ResizeRequest Events”
Colormap State Change Eventsthe section called “Colormap State Change Events”
Client Communication Eventsthe section called “Client Communication Events”
ClientMessage Eventsthe section called “ClientMessage Events”
PropertyNotify Eventsthe section called “PropertyNotify Events”
SelectionClear Eventsthe section called “SelectionClear Events”
SelectionRequest Eventsthe section called “SelectionRequest Events”
SelectionNotify Eventsthe section called “SelectionNotify Events”
Event Handling FunctionsChapter 11, Event Handling Functions
Selecting Eventsthe section called “Selecting Events”???TITLE???XSelectInput
Handling the Output Bufferthe section called “Handling the Output Buffer”???TITLE???XFlush???TITLE???XSync
Event Queue Managementthe section called “Event Queue Management”???TITLE???XEventsQueued???TITLE???XPending
Manipulating the Event Queuethe section called “Manipulating the Event Queue”
Returning the Next Eventthe section called “Returning the Next Event”???TITLE???XNextEvent???TITLE???XPeekEvent
Selecting Events Using a Predicate Procedurethe section called “Selecting Events Using a Predicate Procedure”???TITLE???XIfEvent???TITLE???XCheckIfEvent???TITLE???XPeekIfEvent
Selecting Events Using a Window or Event Maskthe section called “Selecting Events Using a Window or Event Mask”???TITLE???XWindowEvent???TITLE???XCheckWindowEvent???TITLE???XMaskEvent???TITLE???XCheckMaskEvent???TITLE???XCheckTypedEvent???TITLE???XCheckTypedWindowEvent
Putting an Event Back into the Queuethe section called “Putting an Event Back into the Queue”???TITLE???XPutBackEvent
Sending Events to Other Applicationsthe section called “Sending Events to Other Applications”???TITLE???XSendEvent
Getting Pointer Motion Historythe section called “Getting Pointer Motion History”???TITLE??????TITLE???XGetMotionEvents
Handling Protocol Errorsthe section called “Handling Protocol Errors”
Enabling or Disabling Synchronizationthe section called “Enabling or Disabling Synchronization”???TITLE??????TITLE???
Using the Default Error Handlersthe section called “Using the Default Error Handlers”???TITLE???XSetErrorHandler???TITLE?????????TITLE?????????TITLE?????????TITLE?????????TITLE?????????TITLE?????????TITLE?????????TITLE?????????TITLE?????????TITLE?????????TITLE?????????TITLE?????????TITLE?????????TITLE?????????TITLE?????????TITLE?????????TITLE?????????TITLE???XGetErrorText???TITLE???XGetErrorDatabaseText???TITLE???XDisplayName???TITLE???
Input Device FunctionsChapter 12, Input Device Functions
Pointer Grabbingthe section called “Pointer Grabbing”???TITLE???XGrabPointer???TITLE???XUngrabPointer???TITLE???XChangeActivePointerGrab???TITLE???XGrabButton???TITLE???XUngrabButton
Keyboard Grabbingthe section called “Keyboard Grabbing”???TITLE???XGrabKeyboard???TITLE???XUngrabKeyboard???TITLE???XGrabKey???TITLE???XUngrabKey
Resuming Event Processingthe section called “Resuming Event Processing”???TITLE???XAllowEvents
Moving the Pointerthe section called “Moving the Pointer”???TITLE???XWarpPointer
Controlling Input Focusthe section called “Controlling Input Focus”???TITLE???XSetInputFocus???TITLE???XGetInputFocus
Manipulating the Keyboard and Pointer Settingsthe section called “Manipulating the Keyboard and Pointer Settings”???TITLE???XChangeKeyboardControl???TITLE???XGetKeyboardControl???TITLE???XAutoRepeatOn???TITLE???XAutoRepeatOff???TITLE???XBell???TITLE???XQueryKeymap???TITLE???XSetPointerMapping???TITLE???XGetPointerMapping???TITLE???XChangePointerControl???TITLE???XGetPointerControl
Manipulating the Keyboard Encodingthe section called “Manipulating the Keyboard Encoding”???TITLE???XDisplayKeycodes???TITLE???XGetKeyboardMapping???TITLE???XChangeKeyboardMapping???TITLE???XNewModifiermap???TITLE???XInsertModifiermapEntry???TITLE???XDeleteModifiermapEntry???TITLE???XFreeModifiermap???TITLE???XSetModifierMapping???TITLE???XGetModifierMapping
Locales and Internationalized Text FunctionsChapter 13, Locales and Internationalized Text Functions
X Locale Managementthe section called “X Locale Management”???TITLE???XSetLocaleModifiers
Locale and Modifier Dependenciesthe section called “Locale and Modifier Dependencies”
Variable Argument Liststhe section called “Variable Argument Lists”???TITLE???XVaCreateNestedList
Output Methodsthe section called “Output Methods”
Output Method Overviewthe section called “Output Method Overview”
Output Method Functionsthe section called “Output Method Functions”???TITLE???XOpenOM???TITLE???XCloseOM???TITLE???XSetOMValues???TITLE???XGetOMValues???TITLE???XDisplayOfOM???TITLE???XLocaleOfOM
X Output Method Valuesthe section called “X Output Method Values”
Required Char Setthe section called “Required Char Set”
Query Orientationthe section called “Query Orientation”
Directional Dependent Drawingthe section called “Directional Dependent Drawing”
Context Dependent Drawingthe section called “Context Dependent Drawing”
Output Context Functionsthe section called “Output Context Functions”???TITLE???XCreateOC???TITLE???XDestroyOC???TITLE???XOMOfOC???TITLE???XSetOCValues???TITLE???XGetOCValues
Output Context Valuesthe section called “Output Context Values”
Base Font Namethe section called “Base Font Name”
Missing CharSetthe section called “Missing CharSet”
Default Stringthe section called “Default String”
Orientationthe section called “Orientation”
Resource Name and Classthe section called “Resource Name and Class”
Font Infothe section called “Font Info”
OM Automaticthe section called “OM Automatic”
Creating and Freeing a Font Setthe section called “Creating and Freeing a Font Set”???TITLE???XCreateFontSet???TITLE???XFontsOfFontSet???TITLE???XBaseFontNameListOfFontSet???TITLE???XLocaleOfFontSet???TITLE???XFreeFontSet
Obtaining Font Set Metricsthe section called “Obtaining Font Set Metrics”???TITLE???XDirectionalDependentDrawing???TITLE???XContextualDrawing???TITLE???XContextDependentDrawing???TITLE???XExtentsOfFontSet???TITLE???XmbTextEscapement???TITLE???XwcTextEscapement???TITLE???XmbTextExtents???TITLE?????????TITLE???XmbTextPerCharExtents???TITLE???XwcTextPerCharExtents
Drawing Text Using Font Setsthe section called “Drawing Text Using Font Sets”???TITLE???XmbDrawText???TITLE???XwcDrawText???TITLE???XmbDrawString???TITLE???XwcDrawString???TITLE???XmbDrawImageString???TITLE???XwcDrawImageString
Input Methodsthe section called “Input Methods”
Input Method Overviewthe section called “Input Method Overview”
Input Method Architecturethe section called “Input Method Architecture”
Input Contextsthe section called “Input Contexts”
Getting Keyboard Inputthe section called “Getting Keyboard Input”
Focus Managementthe section called “Focus Management”
Geometry Managementthe section called “Geometry Management”
Event Filteringthe section called “Event Filtering”
Callbacksthe section called “Callbacks”
Visible Position Feedback Masksthe section called “Visible Position Feedback Masks”
Preedit String Managementthe section called “Preedit String Management”
Input Method Managementthe section called “Input Method Management”
Hot Keysthe section called “Hot Keys”
Preedit State Operationthe section called “Preedit State Operation”
Input Method Functionsthe section called “Input Method Functions”???TITLE???XOpenIM???TITLE???XCloseIM???TITLE???XSetIMValues???TITLE???XGetIMValues???TITLE???XDisplayOfIM???TITLE???XLocaleOfIM???TITLE???XRegisterIMInstantiateCallback???TITLE???IMInstantiateCallback???TITLE???XUnregisterIMInstantiateCallback
Input Method Valuesthe section called “Input Method Values”
Query Input Stylethe section called “Query Input Style”
Resource Name and Classthe section called “Resource Name and Class”
Destroy Callbackthe section called “Destroy Callback”???TITLE???DestroyCallback
Query IM/IC Values Listthe section called “Query IM/IC Values List”
Visible Positionthe section called “Visible Position”
Preedit Callback Behaviorthe section called “Preedit Callback Behavior”
Input Context Functionsthe section called “Input Context Functions”???TITLE???XCreateIC???TITLE???XDestroyIC???TITLE???XSetICFocus???TITLE???XUnsetICFocus???TITLE???XmbResetIC???TITLE???XwcResetIC???TITLE???XIMOfIC???TITLE???XSetICValues???TITLE???XGetICValues
Input Context Valuesthe section called “Input Context Values”
Input Stylethe section called “Input Style”
Client Windowthe section called “Client Window”
Focus Windowthe section called “Focus Window”
Resource Name and Classthe section called “Resource Name and Class”
Geometry Callbackthe section called “Geometry Callback”
Filter Eventsthe section called “Filter Events”
Destroy Callbackthe section called “Destroy Callback”
String Conversion Callbackthe section called “String Conversion Callback”
String Conversionthe section called “String Conversion”
Reset Statethe section called “Reset State”
Hot Keysthe section called “Hot Keys”
Hot Key Statethe section called “Hot Key State”
Preedit and Status Attributesthe section called “Preedit and Status Attributes”
Areathe section called “Area”
Area Neededthe section called “Area Needed”
Spot Locationthe section called “Spot Location”
Colormapthe section called “Colormap”
Foreground and Backgroundthe section called “Foreground and Background”
Background Pixmapthe section called “Background Pixmap”
Font Setthe section called “Font Set”
Line Spacingthe section called “Line Spacing”
Cursorthe section called “Cursor”
Preedit Statethe section called “Preedit State”
Preedit State Notify Callbackthe section called “Preedit State Notify Callback”???TITLE???PreeditStateNotifyCallback
Preedit and Status Callbacksthe section called “Preedit and Status Callbacks”
Input Method Callback Semanticsthe section called “Input Method Callback Semantics”
Geometry Callbackthe section called “Geometry Callback”
Destroy Callbackthe section called “Destroy Callback”???TITLE???DestroyCallback
String Conversion Callbackthe section called “String Conversion Callback”???TITLE???StringConversionCallback
Preedit State Callbacksthe section called “Preedit State Callbacks”???TITLE???PreeditStartCallback???TITLE???PreeditDoneCallback
Preedit Draw Callbackthe section called “Preedit Draw Callback”???TITLE???PreeditDrawCallback
Preedit Caret Callbackthe section called “Preedit Caret Callback”???TITLE???PreeditCaretCallback
Status Callbacksthe section called “Status Callbacks”???TITLE???StatusStartCallback???TITLE???StatusDoneCallback???TITLE???StatusDrawCallback
Event Filteringthe section called “Event Filtering”???TITLE???XFilterEvent
Getting Keyboard Inputthe section called “Getting Keyboard Input”???TITLE???XmbLookupString???TITLE???XwcLookupString
Input Method Conventionsthe section called “Input Method Conventions”
Client Conventionsthe section called “Client Conventions”
Synchronization Conventionsthe section called “Synchronization Conventions”
String Constantsthe section called “String Constants”
Inter-Client Communication FunctionsChapter 14, Inter-Client Communication Functions
Client to Window Manager Communicationthe section called “Client to Window Manager Communication”
Manipulating Top-Level Windowsthe section called “Manipulating Top-Level Windows”???TITLE???XIconifyWindow???TITLE???XWithdrawWindow???TITLE???XReconfigureWMWindow
Converting String Liststhe section called “Converting String Lists”???TITLE???XmbTextListToTextProperty???TITLE???XwcTextListToTextProperty???TITLE???XmbTextPropertyToTextList???TITLE???XwcTextPropertyToTextList???TITLE???XwcFreeStringList???TITLE???XStringListToTextProperty???TITLE???XTextPropertyToStringList???TITLE???XFreeStringList
Setting and Reading Text Propertiesthe section called “Setting and Reading Text Properties”???TITLE???XSetTextProperty???TITLE???XGetTextProperty
Setting and Reading the WM_NAME Propertythe section called “Setting and Reading the WM_NAME Property”???TITLE???XSetWMName???TITLE???XGetWMName???TITLE???XStoreName???TITLE???XFetchName
Setting and Reading the WM_ICON_NAME Propertythe section called “Setting and Reading the WM_ICON_NAME Property”???TITLE???XSetWMIconName???TITLE???XGetWMIconName???TITLE???XSetIconName???TITLE???XGetIconName
Setting and Reading the WM_HINTS Propertythe section called “Setting and Reading the WM_HINTS Property”???TITLE???XSetWMHints???TITLE???XGetWMHints
Setting and Reading the WM_NORMAL_HINTS Propertythe section called “Setting and Reading the WM_NORMAL_HINTS Property”???TITLE???XSetWMNormalHints???TITLE???XGetWMNormalHints???TITLE???XSetWMSizeHints???TITLE???XGetWMSizeHints
Setting and Reading the WM_CLASS Propertythe section called “Setting and Reading the WM_CLASS Property”???TITLE???XSetClassHint???TITLE???XGetClassHint
Setting and Reading the WM_TRANSIENT_FOR Propertythe section called “Setting and Reading the WM_TRANSIENT_FOR Property”???TITLE???XSetTransientForHint???TITLE???XGetTransientForHint
Setting and Reading the WM_PROTOCOLS Propertythe section called “Setting and Reading the WM_PROTOCOLS Property”???TITLE???XSetWMProtocols???TITLE???XGetWMProtocols
Setting and Reading the WM_COLORMAP_WINDOWS Propertythe section called “Setting and Reading the WM_COLORMAP_WINDOWS Property”???TITLE???XSetWMColormapWindows???TITLE???XGetWMColormapWindows
Setting and Reading the WM_ICON_SIZE Propertythe section called “Setting and Reading the WM_ICON_SIZE Property”???TITLE???XSetIconSizes???TITLE???XGetIconSizes
Using Window Manager Convenience Functionsthe section called “Using Window Manager Convenience Functions”???TITLE???XmbSetWMProperties???TITLE???XSetWMProperties
Client to Session Manager Communicationthe section called “Client to Session Manager Communication”
Setting and Reading the WM_COMMAND Propertythe section called “Setting and Reading the WM_COMMAND Property”???TITLE???XSetCommand???TITLE???XGetCommand
Setting and Reading the WM_CLIENT_MACHINE Propertythe section called “Setting and Reading the WM_CLIENT_MACHINE Property”???TITLE???XSetWMClientMachine???TITLE???XGetWMClientMachine
Standard Colormapsthe section called “Standard Colormaps”
Standard Colormap Properties and Atomsthe section called “Standard Colormap Properties and Atoms”
Setting and Obtaining Standard Colormapsthe section called “Setting and Obtaining Standard Colormaps”???TITLE???XSetRGBColormaps???TITLE???XGetRGBColormaps
Resource Manager FunctionsChapter 15, Resource Manager Functions
Resource File Syntaxthe section called “Resource File Syntax”
Resource Manager Matching Rulesthe section called “Resource Manager Matching Rules”
Quarksthe section called “Quarks”???TITLE???XrmStringToQuark???TITLE???XrmQuarkToString???TITLE???XrmStringToQuarkList???TITLE???XrmStringToBindingQuarkList
Creating and Storing Databasesthe section called “Creating and Storing Databases”???TITLE???XrmInitialize???TITLE???XrmGetFileDatabase???TITLE???XrmPutFileDatabase???TITLE???XResourceManagerString???TITLE???XScreenResourceString???TITLE???XrmGetStringDatabase???TITLE???XrmLocaleOfDatabase???TITLE???XrmDestroyDatabase???TITLE???XrmSetDatabase???TITLE???XrmGetDatabase
Merging Resource Databasesthe section called “Merging Resource Databases”???TITLE???XrmCombineFileDatabase???TITLE???XrmCombineDatabase???TITLE???XrmMergeDatabases
Looking Up Resourcesthe section called “Looking Up Resources”???TITLE???XrmGetResource???TITLE???XrmQGetResource???TITLE???XrmQGetSearchResource???TITLE???XrmQGetSearchResource
Storing into a Resource Databasethe section called “Storing into a Resource Database”???TITLE???XrmPutResource???TITLE???XrmQPutResource???TITLE???XrmPutStringResource???TITLE???XrmQPutStringResource???TITLE???XrmPutLineResource
Enumerating Database Entriesthe section called “Enumerating Database Entries”???TITLE???XrmEnumerateDatabase
Parsing Command Line Optionsthe section called “Parsing Command Line Options”???TITLE???XrmParseCommand
Application Utility FunctionsChapter 16, Application Utility Functions
Using Keyboard Utility Functionsthe section called “Using Keyboard Utility Functions”???TITLE???XLookupKeysym???TITLE???XKeycodeToKeysym???TITLE???XKeysymToKeycode???TITLE???XRefreshKeyboardMapping???TITLE???XConvertCase???TITLE???XStringToKeysym???TITLE???XKeysymToString
KeySym Classification Macrosthe section called “KeySym Classification Macros”
Using Latin-1 Keyboard Event Functionsthe section called “Using Latin-1 Keyboard Event Functions”???TITLE???XLookupString???TITLE???XRebindKeysym
Allocating Permanent Storagethe section called “Allocating Permanent Storage”???TITLE???Xpermalloc
Parsing the Window Geometrythe section called “Parsing the Window Geometry”???TITLE???XParseGeometry???TITLE???XWMGeometry
Manipulating Regionsthe section called “Manipulating Regions”
Creating, Copying, or Destroying Regionsthe section called “Creating, Copying, or Destroying Regions”???TITLE???XPolygonRegion???TITLE???XSetRegion???TITLE???XDestroyRegion
Moving or Shrinking Regionsthe section called “Moving or Shrinking Regions”???TITLE???XOffsetRegion???TITLE???XShrinkRegion
Computing with Regionsthe section called “Computing with Regions”???TITLE???XClipBox???TITLE???XIntersectRegion???TITLE???XUnionRegion???TITLE???XUnionRectWithRegion???TITLE???XSubtractRegion???TITLE???XXorRegion
Determining if Regions Are Empty or Equalthe section called “Determining if Regions Are Empty or Equal”???TITLE???XEmptyRegion???TITLE???XEqualRegion
Locating a Point or a Rectangle in a Regionthe section called “Locating a Point or a Rectangle in a Region”???TITLE???XPointInRegion???TITLE???XRectInRegion
Using Cut Buffersthe section called “Using Cut Buffers”???TITLE???XStoreBytes???TITLE???XStoreBuffer???TITLE???XFetchBytes???TITLE???XFetchBuffer???TITLE???XRotateBuffers
Determining the Appropriate Visual Typethe section called “Determining the Appropriate Visual Type”???TITLE???XGetVisualInfo???TITLE???XMatchVisualInfo
Manipulating Imagesthe section called “Manipulating Images”???TITLE???XCreateImage???TITLE???XGetPixel???TITLE???XPutPixel???TITLE???XSubImage???TITLE???XAddPixel???TITLE???XDestroyImage
Manipulating Bitmapsthe section called “Manipulating Bitmaps”???TITLE???XReadBitmapFile???TITLE???XReadBitmapFileData???TITLE???XWriteBitmapFile???TITLE???XCreatePixmapFromBitmapData???TITLE???XCreateBitmapFromData
Using the Context Managerthe section called “Using the Context Manager”???TITLE???XSaveContext???TITLE???XFindContext???TITLE???XDeleteContext
Xlib Functions and Protocol RequestsAppendix A, Xlib Functions and Protocol RequestsProtocol requests made by each Xlib functionTable A.1, “Protocol requests made by each Xlib function”Xlib functions which use each Protocol RequestTable A.2, “Xlib functions which use each Protocol Request”
X Font CursorsAppendix B, X Font Cursors
ExtensionsAppendix C, Extensions
Basic Protocol Support Routinesthe section called “Basic Protocol Support Routines”???TITLE???XQueryExtension???TITLE???XListExtensions???TITLE???XFreeExtensionList
Hooking into Xlibthe section called “Hooking into Xlib”???TITLE???XInitExtension???TITLE???XAddExtension
Hooks into the Librarythe section called “Hooks into the Library”???TITLE???XESetCloseDisplay???TITLE???XESetCreateGC???TITLE???XESetCopyGC???TITLE???XESetFreeGC???TITLE???XESetCreateFont???TITLE???XESetFreeFont???TITLE???XESetWireToEvent???TITLE???_XSetLastRequestRead???TITLE???XESetEventToWire???TITLE???XESetWireToError???TITLE???XESetError???TITLE???XESetErrorString???TITLE???XESetPrintErrorValues???TITLE???XESetFlushGC
Hooks onto Xlib Data Structuresthe section called “Hooks onto Xlib Data Structures”???TITLE???XEHeadOfExtensionList???TITLE???XAddToExtensionList???TITLE???XFindOnExtensionList???TITLE???XAllocID???TITLE???XAllocIDs
GC Cachingthe section called “GC Caching”???TITLE???FlushGC???TITLE???_XFlushGCCache
Graphics Batchingthe section called “Graphics Batching”
Writing Extension Stubsthe section called “Writing Extension Stubs”
Requests, Replies, and Xproto.hthe section called “Requests, Replies, and Xproto.h”
Request Formatthe section called “Request Format”
Starting to Write a Stub Procedurethe section called “Starting to Write a Stub Procedure”
Locking Data Structuresthe section called “Locking Data Structures”???TITLE???LockDisplay???TITLE???UnlockDisplay
Sending the Protocol Request and Argumentsthe section called “Sending the Protocol Request and Arguments”
Variable Length Argumentsthe section called “Variable Length Arguments”???TITLE???Data
Repliesthe section called “Replies”???TITLE???_XReply???TITLE???_XRead???TITLE???_XRead16???TITLE???_XRead32???TITLE???_XRead16Pad???TITLE???_XReadPad
Synchronous Callingthe section called “Synchronous Calling”
Allocating and Deallocating Memorythe section called “Allocating and Deallocating Memory”???TITLE???_XAllocScratch???TITLE???_XAllocTemp???TITLE???_XFreeTemp
Portability Considerationsthe section called “Portability Considerations”
Deriving the Correct Extension Opcodethe section called “Deriving the Correct Extension Opcode”
Compatibility FunctionsAppendix D, Compatibility Functions
X Version 11 Compatibility Functionsthe section called “X Version 11 Compatibility Functions”
Setting Standard Propertiesthe section called “Setting Standard Properties”???TITLE???XSetStandardProperties
Setting and Getting Window Sizing Hintsthe section called “Setting and Getting Window Sizing Hints”???TITLE???XSetNormalHints???TITLE???XGetNormalHints???TITLE???XSetZoomHints???TITLE???XGetZoomHints???TITLE???XSetSizeHints???TITLE???XGetSizeHints
Getting and Setting an XStandardColormap Structurethe section called “Getting and Setting an XStandardColormap Structure”???TITLE???XGetStandardColormap???TITLE???XSetStandardColormap
Parsing Window Geometrythe section called “Parsing Window Geometry”???TITLE???XGeometry
Getting the X Environment Defaultsthe section called “Getting the X Environment Defaults”???TITLE???XGetDefault
X Version 10 Compatibility Functionsthe section called “X Version 10 Compatibility Functions”
Drawing and Filling Polygons and Curvesthe section called “Drawing and Filling Polygons and Curves”???TITLE???XDraw???TITLE???XDrawFilled
Associating User Data with a Valuethe section called “Associating User Data with a Value”???TITLE???XCreateAssocTable???TITLE???XMakeAssoc???TITLE???XLookUpAssoc???TITLE???XDeleteAssoc???TITLE???XDestroyAssocTable
GlossaryGlossaryAccess control listAccess control listActive grabActive grabAncestorsAncestorsAtomAtomBackgroundBackgroundBacking storeBacking storeBase font nameBase font nameBit gravityBit gravityBit planeBit planeBitmapBitmapBorderBorderButton grabbingButton grabbingByte orderByte orderCharacterCharacterCharacter glyphCharacter glyphCharacter setCharacter setCharsetCharsetChildrenChildrenClassClassClientClientClipping regionClipping regionCoded characterCoded characterCoded character setCoded character setCodepointCodepointColormapColormapConnectionConnectionContainmentContainmentCoordinate systemCoordinate systemCursorCursorDepthDepthDeviceDeviceDirectColorDirectColorDisplayDisplayDrawableDrawableEncodingEncodingEscapementEscapementEventEventEvent maskEvent maskEvent propagationEvent propagationEvent sourceEvent sourceEvent synchronizationEvent synchronizationExposure eventExposure eventExtensionExtensionFontFontFont glyphFont glyphFrozen eventsFrozen eventsGCGCGlyphGlyphGlyph imageGlyph imageGrabGrabGraphics contextGraphics contextGravityGravityGrayScaleGrayScaleHost Portable Character EncodingHost Portable Character EncodingHotspotHotspotIdentifierIdentifierInferiorsInferiorsInput focusInput focusInput managerInput managerInputOnly windowInputOnly windowInputOutput windowInputOutput windowInternationalizationInternationalizationISO2022ISO2022Key grabbingKey grabbingKeyboard grabbingKeyboard grabbingKeysymKeysymLatin-1Latin-1Latin Portable Character EncodingLatin Portable Character EncodingLocaleLocaleLocale nameLocale nameLocalizationLocalizationMappedMappedModifier keysModifier keysMonochromeMonochromeMultibyteMultibyteObscureObscureOccludeOccludePaddingPaddingParent windowParent windowPassive grabPassive grabPixel valuePixel valuePixmapPixmapPlanePlanePlane maskPlane maskPointerPointerPointer grabbingPointer grabbingPointing devicePointing devicePOSIXPOSIXPOSIX Portable Filename Character SetPOSIX Portable Filename Character SetPropertyPropertyProperty listProperty listPseudoColorPseudoColorRectangleRectangleRedirecting controlRedirecting controlReplyReplyRequestRequestResourceResourceRGB valuesRGB valuesRootRootRoot windowRoot windowSave setSave setScanlineScanlineScanline orderScanline orderScreenScreenSelectionSelectionServerServerServer grabbingServer grabbingShift sequenceShift sequenceSiblingSiblingStacking orderStacking orderState-dependent encodingState-dependent encodingState-independent encodingState-independent encodingStaticColorStaticColorStaticGrayStaticGrayStatusStatusStippleStippleSTRING encodingSTRING encodingString EquivalenceString EquivalenceTileTileTimestampTimestampTrueColorTrueColorTypeTypeViewableViewableVisibleVisibleWhitespaceWhitespaceWindow gravityWindow gravityWindow managerWindow managerX Portable Character SetX Portable Character SetXLFDXLFDXY formatXY formatZ formatZ format
ReferencesReferencesDraft Proposed Multibyte Extension of ANSI C, Draft 1.1ISO2022: Information processing - ISO 7-bit and 8-bit coded character sets - Code extension techniques.ISO8859-1: Information processing - 8-bit single-byte coded graphic character sets - Part 1: Latin alphabet No. 1.POSIX: Information Technology - Portable Operating System Interface (POSIX) - Part 1: System Application Program Interface (API) [C Language], ISO/IEC 9945-1.Text of ISO/IEC/DIS 9541-1, Information Processing - Font Information Interchange - Part 1: Architecture.X/Open Portability Guide, Issue 3, December 1988 (XPG3), X/Open Company, Ltd, Prentice-Hall, Inc. 1989. ISBN 0-13-685835-8. (See especially Volume 3: XSI Supplementary Definitions.)