diff options
Diffstat (limited to 'xlib')
-rw-r--r-- | xlib/X11/X.h | 669 | ||||
-rw-r--r-- | xlib/X11/Xatom.h | 79 | ||||
-rw-r--r-- | xlib/X11/Xfuncproto.h | 60 | ||||
-rw-r--r-- | xlib/X11/Xlib.h | 4311 | ||||
-rw-r--r-- | xlib/X11/Xutil.h | 879 | ||||
-rw-r--r-- | xlib/X11/cursorfont.h | 79 | ||||
-rw-r--r-- | xlib/X11/keysym.h | 39 | ||||
-rw-r--r-- | xlib/X11/keysymdef.h | 1164 | ||||
-rw-r--r-- | xlib/xbytes.h | 58 | ||||
-rw-r--r-- | xlib/xcolors.c | 911 | ||||
-rw-r--r-- | xlib/xdraw.c | 82 | ||||
-rw-r--r-- | xlib/xgc.c | 353 | ||||
-rw-r--r-- | xlib/ximage.c | 115 | ||||
-rw-r--r-- | xlib/xutil.c | 116 |
14 files changed, 8915 insertions, 0 deletions
diff --git a/xlib/X11/X.h b/xlib/X11/X.h new file mode 100644 index 0000000..55a3133 --- /dev/null +++ b/xlib/X11/X.h @@ -0,0 +1,669 @@ +/* + * $XConsortium: X.h,v 1.66 88/09/06 15:55:56 jim Exp $ + */ + +/* Definitions for the X window system likely to be used by applications */ + +#ifndef X_H +#define X_H + +/*********************************************************** +Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts, +and the Massachusetts Institute of Technology, Cambridge, Massachusetts. + + All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the names of Digital or MIT not be +used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission. + +DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + +******************************************************************/ +#define X_PROTOCOL 11 /* current protocol version */ +#define X_PROTOCOL_REVISION 0 /* current minor version */ + +#ifdef MAC_TCL +# define Cursor XCursor +# define Region XRegion +#endif + +/* Resources */ + +typedef unsigned long XID; + +typedef XID Window; +typedef XID Drawable; +typedef XID Font; +typedef XID Pixmap; +typedef XID Cursor; +typedef XID Colormap; +typedef XID GContext; +typedef XID KeySym; + +typedef unsigned long Mask; + +typedef unsigned long Atom; + +typedef unsigned long VisualID; + +typedef unsigned long Time; + +typedef unsigned short KeyCode; + +/***************************************************************** + * RESERVED RESOURCE AND CONSTANT DEFINITIONS + *****************************************************************/ + +#define None 0L /* universal null resource or null atom */ + +#define ParentRelative 1L /* background pixmap in CreateWindow + and ChangeWindowAttributes */ + +#define CopyFromParent 0L /* border pixmap in CreateWindow + and ChangeWindowAttributes + special VisualID and special window + class passed to CreateWindow */ + +#define PointerWindow 0L /* destination window in SendEvent */ +#define InputFocus 1L /* destination window in SendEvent */ + +#define PointerRoot 1L /* focus window in SetInputFocus */ + +#define AnyPropertyType 0L /* special Atom, passed to GetProperty */ + +#define AnyKey 0L /* special Key Code, passed to GrabKey */ + +#define AnyButton 0L /* special Button Code, passed to GrabButton */ + +#define AllTemporary 0L /* special Resource ID passed to KillClient */ + +#define CurrentTime 0L /* special Time */ + +#define NoSymbol 0L /* special KeySym */ + +/***************************************************************** + * EVENT DEFINITIONS + *****************************************************************/ + +/* Input Event Masks. Used as event-mask window attribute and as arguments + to Grab requests. Not to be confused with event names. */ + +#define NoEventMask 0L +#define KeyPressMask (1L<<0) +#define KeyReleaseMask (1L<<1) +#define ButtonPressMask (1L<<2) +#define ButtonReleaseMask (1L<<3) +#define EnterWindowMask (1L<<4) +#define LeaveWindowMask (1L<<5) +#define PointerMotionMask (1L<<6) +#define PointerMotionHintMask (1L<<7) +#define Button1MotionMask (1L<<8) +#define Button2MotionMask (1L<<9) +#define Button3MotionMask (1L<<10) +#define Button4MotionMask (1L<<11) +#define Button5MotionMask (1L<<12) +#define ButtonMotionMask (1L<<13) +#define KeymapStateMask (1L<<14) +#define ExposureMask (1L<<15) +#define VisibilityChangeMask (1L<<16) +#define StructureNotifyMask (1L<<17) +#define ResizeRedirectMask (1L<<18) +#define SubstructureNotifyMask (1L<<19) +#define SubstructureRedirectMask (1L<<20) +#define FocusChangeMask (1L<<21) +#define PropertyChangeMask (1L<<22) +#define ColormapChangeMask (1L<<23) +#define OwnerGrabButtonMask (1L<<24) + +/* Event names. Used in "type" field in XEvent structures. Not to be +confused with event masks above. They start from 2 because 0 and 1 +are reserved in the protocol for errors and replies. */ + +#define KeyPress 2 +#define KeyRelease 3 +#define ButtonPress 4 +#define ButtonRelease 5 +#define MotionNotify 6 +#define EnterNotify 7 +#define LeaveNotify 8 +#define FocusIn 9 +#define FocusOut 10 +#define KeymapNotify 11 +#define Expose 12 +#define GraphicsExpose 13 +#define NoExpose 14 +#define VisibilityNotify 15 +#define CreateNotify 16 +#define DestroyNotify 17 +#define UnmapNotify 18 +#define MapNotify 19 +#define MapRequest 20 +#define ReparentNotify 21 +#define ConfigureNotify 22 +#define ConfigureRequest 23 +#define GravityNotify 24 +#define ResizeRequest 25 +#define CirculateNotify 26 +#define CirculateRequest 27 +#define PropertyNotify 28 +#define SelectionClear 29 +#define SelectionRequest 30 +#define SelectionNotify 31 +#define ColormapNotify 32 +#define ClientMessage 33 +#define MappingNotify 34 +#define LASTEvent 35 /* must be bigger than any event # */ + + +/* Key masks. Used as modifiers to GrabButton and GrabKey, results of QueryPointer, + state in various key-, mouse-, and button-related events. */ + +#define ShiftMask (1<<0) +#define LockMask (1<<1) +#define ControlMask (1<<2) +#define Mod1Mask (1<<3) +#define Mod2Mask (1<<4) +#define Mod3Mask (1<<5) +#define Mod4Mask (1<<6) +#define Mod5Mask (1<<7) + +/* modifier names. Used to build a SetModifierMapping request or + to read a GetModifierMapping request. These correspond to the + masks defined above. */ +#define ShiftMapIndex 0 +#define LockMapIndex 1 +#define ControlMapIndex 2 +#define Mod1MapIndex 3 +#define Mod2MapIndex 4 +#define Mod3MapIndex 5 +#define Mod4MapIndex 6 +#define Mod5MapIndex 7 + + +/* button masks. Used in same manner as Key masks above. Not to be confused + with button names below. */ + +#define Button1Mask (1<<8) +#define Button2Mask (1<<9) +#define Button3Mask (1<<10) +#define Button4Mask (1<<11) +#define Button5Mask (1<<12) + +#define AnyModifier (1<<15) /* used in GrabButton, GrabKey */ + + +/* button names. Used as arguments to GrabButton and as detail in ButtonPress + and ButtonRelease events. Not to be confused with button masks above. + Note that 0 is already defined above as "AnyButton". */ + +#define Button1 1 +#define Button2 2 +#define Button3 3 +#define Button4 4 +#define Button5 5 + +/* Notify modes */ + +#define NotifyNormal 0 +#define NotifyGrab 1 +#define NotifyUngrab 2 +#define NotifyWhileGrabbed 3 + +#define NotifyHint 1 /* for MotionNotify events */ + +/* Notify detail */ + +#define NotifyAncestor 0 +#define NotifyVirtual 1 +#define NotifyInferior 2 +#define NotifyNonlinear 3 +#define NotifyNonlinearVirtual 4 +#define NotifyPointer 5 +#define NotifyPointerRoot 6 +#define NotifyDetailNone 7 + +/* Visibility notify */ + +#define VisibilityUnobscured 0 +#define VisibilityPartiallyObscured 1 +#define VisibilityFullyObscured 2 + +/* Circulation request */ + +#define PlaceOnTop 0 +#define PlaceOnBottom 1 + +/* protocol families */ + +#define FamilyInternet 0 +#define FamilyDECnet 1 +#define FamilyChaos 2 + +/* Property notification */ + +#define PropertyNewValue 0 +#define PropertyDelete 1 + +/* Color Map notification */ + +#define ColormapUninstalled 0 +#define ColormapInstalled 1 + +/* GrabPointer, GrabButton, GrabKeyboard, GrabKey Modes */ + +#define GrabModeSync 0 +#define GrabModeAsync 1 + +/* GrabPointer, GrabKeyboard reply status */ + +#define GrabSuccess 0 +#define AlreadyGrabbed 1 +#define GrabInvalidTime 2 +#define GrabNotViewable 3 +#define GrabFrozen 4 + +/* AllowEvents modes */ + +#define AsyncPointer 0 +#define SyncPointer 1 +#define ReplayPointer 2 +#define AsyncKeyboard 3 +#define SyncKeyboard 4 +#define ReplayKeyboard 5 +#define AsyncBoth 6 +#define SyncBoth 7 + +/* Used in SetInputFocus, GetInputFocus */ + +#define RevertToNone (int)None +#define RevertToPointerRoot (int)PointerRoot +#define RevertToParent 2 + +/***************************************************************** + * ERROR CODES + *****************************************************************/ + +#define Success 0 /* everything's okay */ +#define BadRequest 1 /* bad request code */ +#define BadValue 2 /* int parameter out of range */ +#define BadWindow 3 /* parameter not a Window */ +#define BadPixmap 4 /* parameter not a Pixmap */ +#define BadAtom 5 /* parameter not an Atom */ +#define BadCursor 6 /* parameter not a Cursor */ +#define BadFont 7 /* parameter not a Font */ +#define BadMatch 8 /* parameter mismatch */ +#define BadDrawable 9 /* parameter not a Pixmap or Window */ +#define BadAccess 10 /* depending on context: + - key/button already grabbed + - attempt to free an illegal + cmap entry + - attempt to store into a read-only + color map entry. + - attempt to modify the access control + list from other than the local host. + */ +#define BadAlloc 11 /* insufficient resources */ +#define BadColor 12 /* no such colormap */ +#define BadGC 13 /* parameter not a GC */ +#define BadIDChoice 14 /* choice not in range or already used */ +#define BadName 15 /* font or color name doesn't exist */ +#define BadLength 16 /* Request length incorrect */ +#define BadImplementation 17 /* server is defective */ + +#define FirstExtensionError 128 +#define LastExtensionError 255 + +/***************************************************************** + * WINDOW DEFINITIONS + *****************************************************************/ + +/* Window classes used by CreateWindow */ +/* Note that CopyFromParent is already defined as 0 above */ + +#define InputOutput 1 +#define InputOnly 2 + +/* Window attributes for CreateWindow and ChangeWindowAttributes */ + +#define CWBackPixmap (1L<<0) +#define CWBackPixel (1L<<1) +#define CWBorderPixmap (1L<<2) +#define CWBorderPixel (1L<<3) +#define CWBitGravity (1L<<4) +#define CWWinGravity (1L<<5) +#define CWBackingStore (1L<<6) +#define CWBackingPlanes (1L<<7) +#define CWBackingPixel (1L<<8) +#define CWOverrideRedirect (1L<<9) +#define CWSaveUnder (1L<<10) +#define CWEventMask (1L<<11) +#define CWDontPropagate (1L<<12) +#define CWColormap (1L<<13) +#define CWCursor (1L<<14) + +/* ConfigureWindow structure */ + +#define CWX (1<<0) +#define CWY (1<<1) +#define CWWidth (1<<2) +#define CWHeight (1<<3) +#define CWBorderWidth (1<<4) +#define CWSibling (1<<5) +#define CWStackMode (1<<6) + + +/* Bit Gravity */ + +#define ForgetGravity 0 +#define NorthWestGravity 1 +#define NorthGravity 2 +#define NorthEastGravity 3 +#define WestGravity 4 +#define CenterGravity 5 +#define EastGravity 6 +#define SouthWestGravity 7 +#define SouthGravity 8 +#define SouthEastGravity 9 +#define StaticGravity 10 + +/* Window gravity + bit gravity above */ + +#define UnmapGravity 0 + +/* Used in CreateWindow for backing-store hint */ + +#define NotUseful 0 +#define WhenMapped 1 +#define Always 2 + +/* Used in GetWindowAttributes reply */ + +#define IsUnmapped 0 +#define IsUnviewable 1 +#define IsViewable 2 + +/* Used in ChangeSaveSet */ + +#define SetModeInsert 0 +#define SetModeDelete 1 + +/* Used in ChangeCloseDownMode */ + +#define DestroyAll 0 +#define RetainPermanent 1 +#define RetainTemporary 2 + +/* Window stacking method (in configureWindow) */ + +#define Above 0 +#define Below 1 +#define TopIf 2 +#define BottomIf 3 +#define Opposite 4 + +/* Circulation direction */ + +#define RaiseLowest 0 +#define LowerHighest 1 + +/* Property modes */ + +#define PropModeReplace 0 +#define PropModePrepend 1 +#define PropModeAppend 2 + +/***************************************************************** + * GRAPHICS DEFINITIONS + *****************************************************************/ + +/* graphics functions, as in GC.alu */ + +#define GXclear 0x0 /* 0 */ +#define GXand 0x1 /* src AND dst */ +#define GXandReverse 0x2 /* src AND NOT dst */ +#define GXcopy 0x3 /* src */ +#define GXandInverted 0x4 /* NOT src AND dst */ +#define GXnoop 0x5 /* dst */ +#define GXxor 0x6 /* src XOR dst */ +#define GXor 0x7 /* src OR dst */ +#define GXnor 0x8 /* NOT src AND NOT dst */ +#define GXequiv 0x9 /* NOT src XOR dst */ +#define GXinvert 0xa /* NOT dst */ +#define GXorReverse 0xb /* src OR NOT dst */ +#define GXcopyInverted 0xc /* NOT src */ +#define GXorInverted 0xd /* NOT src OR dst */ +#define GXnand 0xe /* NOT src OR NOT dst */ +#define GXset 0xf /* 1 */ + +/* LineStyle */ + +#define LineSolid 0 +#define LineOnOffDash 1 +#define LineDoubleDash 2 + +/* capStyle */ + +#define CapNotLast 0 +#define CapButt 1 +#define CapRound 2 +#define CapProjecting 3 + +/* joinStyle */ + +#define JoinMiter 0 +#define JoinRound 1 +#define JoinBevel 2 + +/* fillStyle */ + +#define FillSolid 0 +#define FillTiled 1 +#define FillStippled 2 +#define FillOpaqueStippled 3 + +/* fillRule */ + +#define EvenOddRule 0 +#define WindingRule 1 + +/* subwindow mode */ + +#define ClipByChildren 0 +#define IncludeInferiors 1 + +/* SetClipRectangles ordering */ + +#define Unsorted 0 +#define YSorted 1 +#define YXSorted 2 +#define YXBanded 3 + +/* CoordinateMode for drawing routines */ + +#define CoordModeOrigin 0 /* relative to the origin */ +#define CoordModePrevious 1 /* relative to previous point */ + +/* Polygon shapes */ + +#define Complex 0 /* paths may intersect */ +#define Nonconvex 1 /* no paths intersect, but not convex */ +#define Convex 2 /* wholly convex */ + +/* Arc modes for PolyFillArc */ + +#define ArcChord 0 /* join endpoints of arc */ +#define ArcPieSlice 1 /* join endpoints to center of arc */ + +/* GC components: masks used in CreateGC, CopyGC, ChangeGC, OR'ed into + GC.stateChanges */ + +#define GCFunction (1L<<0) +#define GCPlaneMask (1L<<1) +#define GCForeground (1L<<2) +#define GCBackground (1L<<3) +#define GCLineWidth (1L<<4) +#define GCLineStyle (1L<<5) +#define GCCapStyle (1L<<6) +#define GCJoinStyle (1L<<7) +#define GCFillStyle (1L<<8) +#define GCFillRule (1L<<9) +#define GCTile (1L<<10) +#define GCStipple (1L<<11) +#define GCTileStipXOrigin (1L<<12) +#define GCTileStipYOrigin (1L<<13) +#define GCFont (1L<<14) +#define GCSubwindowMode (1L<<15) +#define GCGraphicsExposures (1L<<16) +#define GCClipXOrigin (1L<<17) +#define GCClipYOrigin (1L<<18) +#define GCClipMask (1L<<19) +#define GCDashOffset (1L<<20) +#define GCDashList (1L<<21) +#define GCArcMode (1L<<22) + +#define GCLastBit 22 +/***************************************************************** + * FONTS + *****************************************************************/ + +/* used in QueryFont -- draw direction */ + +#define FontLeftToRight 0 +#define FontRightToLeft 1 + +#define FontChange 255 + +/***************************************************************** + * IMAGING + *****************************************************************/ + +/* ImageFormat -- PutImage, GetImage */ + +#define XYBitmap 0 /* depth 1, XYFormat */ +#define XYPixmap 1 /* depth == drawable depth */ +#define ZPixmap 2 /* depth == drawable depth */ + +/***************************************************************** + * COLOR MAP STUFF + *****************************************************************/ + +/* For CreateColormap */ + +#define AllocNone 0 /* create map with no entries */ +#define AllocAll 1 /* allocate entire map writeable */ + + +/* Flags used in StoreNamedColor, StoreColors */ + +#define DoRed (1<<0) +#define DoGreen (1<<1) +#define DoBlue (1<<2) + +/***************************************************************** + * CURSOR STUFF + *****************************************************************/ + +/* QueryBestSize Class */ + +#define CursorShape 0 /* largest size that can be displayed */ +#define TileShape 1 /* size tiled fastest */ +#define StippleShape 2 /* size stippled fastest */ + +/***************************************************************** + * KEYBOARD/POINTER STUFF + *****************************************************************/ + +#define AutoRepeatModeOff 0 +#define AutoRepeatModeOn 1 +#define AutoRepeatModeDefault 2 + +#define LedModeOff 0 +#define LedModeOn 1 + +/* masks for ChangeKeyboardControl */ + +#define KBKeyClickPercent (1L<<0) +#define KBBellPercent (1L<<1) +#define KBBellPitch (1L<<2) +#define KBBellDuration (1L<<3) +#define KBLed (1L<<4) +#define KBLedMode (1L<<5) +#define KBKey (1L<<6) +#define KBAutoRepeatMode (1L<<7) + +#define MappingSuccess 0 +#define MappingBusy 1 +#define MappingFailed 2 + +#define MappingModifier 0 +#define MappingKeyboard 1 +#define MappingPointer 2 + +/***************************************************************** + * SCREEN SAVER STUFF + *****************************************************************/ + +#define DontPreferBlanking 0 +#define PreferBlanking 1 +#define DefaultBlanking 2 + +#define DisableScreenSaver 0 +#define DisableScreenInterval 0 + +#define DontAllowExposures 0 +#define AllowExposures 1 +#define DefaultExposures 2 + +/* for ForceScreenSaver */ + +#define ScreenSaverReset 0 +#define ScreenSaverActive 1 + +/***************************************************************** + * HOSTS AND CONNECTIONS + *****************************************************************/ + +/* for ChangeHosts */ + +#define HostInsert 0 +#define HostDelete 1 + +/* for ChangeAccessControl */ + +#define EnableAccess 1 +#define DisableAccess 0 + +/* Display classes used in opening the connection + * Note that the statically allocated ones are even numbered and the + * dynamically changeable ones are odd numbered */ + +#define StaticGray 0 +#define GrayScale 1 +#define StaticColor 2 +#define PseudoColor 3 +#define TrueColor 4 +#define DirectColor 5 + + +/* Byte order used in imageByteOrder and bitmapBitOrder */ + +#define LSBFirst 0 +#define MSBFirst 1 + +#ifdef MAC_TCL +# undef Cursor +# undef Region +#endif + +#endif /* X_H */ diff --git a/xlib/X11/Xatom.h b/xlib/X11/Xatom.h new file mode 100644 index 0000000..485a423 --- /dev/null +++ b/xlib/X11/Xatom.h @@ -0,0 +1,79 @@ +#ifndef XATOM_H +#define XATOM_H 1 + +/* THIS IS A GENERATED FILE + * + * Do not change! Changing this file implies a protocol change! + */ + +#define XA_PRIMARY ((Atom) 1) +#define XA_SECONDARY ((Atom) 2) +#define XA_ARC ((Atom) 3) +#define XA_ATOM ((Atom) 4) +#define XA_BITMAP ((Atom) 5) +#define XA_CARDINAL ((Atom) 6) +#define XA_COLORMAP ((Atom) 7) +#define XA_CURSOR ((Atom) 8) +#define XA_CUT_BUFFER0 ((Atom) 9) +#define XA_CUT_BUFFER1 ((Atom) 10) +#define XA_CUT_BUFFER2 ((Atom) 11) +#define XA_CUT_BUFFER3 ((Atom) 12) +#define XA_CUT_BUFFER4 ((Atom) 13) +#define XA_CUT_BUFFER5 ((Atom) 14) +#define XA_CUT_BUFFER6 ((Atom) 15) +#define XA_CUT_BUFFER7 ((Atom) 16) +#define XA_DRAWABLE ((Atom) 17) +#define XA_FONT ((Atom) 18) +#define XA_INTEGER ((Atom) 19) +#define XA_PIXMAP ((Atom) 20) +#define XA_POINT ((Atom) 21) +#define XA_RECTANGLE ((Atom) 22) +#define XA_RESOURCE_MANAGER ((Atom) 23) +#define XA_RGB_COLOR_MAP ((Atom) 24) +#define XA_RGB_BEST_MAP ((Atom) 25) +#define XA_RGB_BLUE_MAP ((Atom) 26) +#define XA_RGB_DEFAULT_MAP ((Atom) 27) +#define XA_RGB_GRAY_MAP ((Atom) 28) +#define XA_RGB_GREEN_MAP ((Atom) 29) +#define XA_RGB_RED_MAP ((Atom) 30) +#define XA_STRING ((Atom) 31) +#define XA_VISUALID ((Atom) 32) +#define XA_WINDOW ((Atom) 33) +#define XA_WM_COMMAND ((Atom) 34) +#define XA_WM_HINTS ((Atom) 35) +#define XA_WM_CLIENT_MACHINE ((Atom) 36) +#define XA_WM_ICON_NAME ((Atom) 37) +#define XA_WM_ICON_SIZE ((Atom) 38) +#define XA_WM_NAME ((Atom) 39) +#define XA_WM_NORMAL_HINTS ((Atom) 40) +#define XA_WM_SIZE_HINTS ((Atom) 41) +#define XA_WM_ZOOM_HINTS ((Atom) 42) +#define XA_MIN_SPACE ((Atom) 43) +#define XA_NORM_SPACE ((Atom) 44) +#define XA_MAX_SPACE ((Atom) 45) +#define XA_END_SPACE ((Atom) 46) +#define XA_SUPERSCRIPT_X ((Atom) 47) +#define XA_SUPERSCRIPT_Y ((Atom) 48) +#define XA_SUBSCRIPT_X ((Atom) 49) +#define XA_SUBSCRIPT_Y ((Atom) 50) +#define XA_UNDERLINE_POSITION ((Atom) 51) +#define XA_UNDERLINE_THICKNESS ((Atom) 52) +#define XA_STRIKEOUT_ASCENT ((Atom) 53) +#define XA_STRIKEOUT_DESCENT ((Atom) 54) +#define XA_ITALIC_ANGLE ((Atom) 55) +#define XA_X_HEIGHT ((Atom) 56) +#define XA_QUAD_WIDTH ((Atom) 57) +#define XA_WEIGHT ((Atom) 58) +#define XA_POINT_SIZE ((Atom) 59) +#define XA_RESOLUTION ((Atom) 60) +#define XA_COPYRIGHT ((Atom) 61) +#define XA_NOTICE ((Atom) 62) +#define XA_FONT_NAME ((Atom) 63) +#define XA_FAMILY_NAME ((Atom) 64) +#define XA_FULL_NAME ((Atom) 65) +#define XA_CAP_HEIGHT ((Atom) 66) +#define XA_WM_CLASS ((Atom) 67) +#define XA_WM_TRANSIENT_FOR ((Atom) 68) + +#define XA_LAST_PREDEFINED ((Atom) 68) +#endif /* XATOM_H */ diff --git a/xlib/X11/Xfuncproto.h b/xlib/X11/Xfuncproto.h new file mode 100644 index 0000000..a59379b --- /dev/null +++ b/xlib/X11/Xfuncproto.h @@ -0,0 +1,60 @@ +/* $XConsortium: Xfuncproto.h,v 1.7 91/05/13 20:49:21 rws Exp $ */ +/* + * Copyright 1989, 1991 by the Massachusetts Institute of Technology + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, provided + * that the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of M.I.T. not be used in advertising + * or publicity pertaining to distribution of the software without specific, + * written prior permission. M.I.T. makes no representations about the + * suitability of this software for any purpose. It is provided "as is" + * without express or implied warranty. + * + */ + +/* Definitions to make function prototypes manageable */ + +#ifndef _XFUNCPROTO_H_ +#define _XFUNCPROTO_H_ + +#ifndef NeedFunctionPrototypes +#define NeedFunctionPrototypes 1 +#endif /* NeedFunctionPrototypes */ + +#ifndef NeedVarargsPrototypes +#define NeedVarargsPrototypes 0 +#endif /* NeedVarargsPrototypes */ + +#if NeedFunctionPrototypes + +#ifndef NeedNestedPrototypes +#define NeedNestedPrototypes 1 +#endif /* NeedNestedPrototypes */ + +#ifndef _Xconst +#define _Xconst const +#endif /* _Xconst */ + +#ifndef NeedWidePrototypes +#ifdef NARROWPROTO +#define NeedWidePrototypes 0 +#else +#define NeedWidePrototypes 1 /* default to make interropt. easier */ +#endif +#endif /* NeedWidePrototypes */ + +#endif /* NeedFunctionPrototypes */ + +#ifdef __cplusplus +#define _XFUNCPROTOBEGIN extern "C" { +#define _XFUNCPROTOEND } +#endif + +#ifndef _XFUNCPROTOBEGIN +#define _XFUNCPROTOBEGIN +#define _XFUNCPROTOEND +#endif /* _XFUNCPROTOBEGIN */ + +#endif /* _XFUNCPROTO_H_ */ diff --git a/xlib/X11/Xlib.h b/xlib/X11/Xlib.h new file mode 100644 index 0000000..397bb03 --- /dev/null +++ b/xlib/X11/Xlib.h @@ -0,0 +1,4311 @@ +/* $XConsortium: Xlib.h,v 11.221 93/07/02 14:13:28 gildea Exp $ */ +/* + * Copyright 1985, 1986, 1987, 1991 by the Massachusetts Institute of Technology + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, provided + * that the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of M.I.T. not be used in advertising + * or publicity pertaining to distribution of the software without specific, + * written prior permission. M.I.T. makes no representations about the + * suitability of this software for any purpose. It is provided "as is" + * without express or implied warranty. + * + * X Window System is a Trademark of MIT. + * + */ + + +/* + * Xlib.h - Header definition and support file for the C subroutine + * interface library (Xlib) to the X Window System Protocol (V11). + * Structures and symbols starting with "_" are private to the library. + */ +#ifndef _XLIB_H_ +#define _XLIB_H_ + +#define XlibSpecificationRelease 5 + +#ifdef MAC_TCL +# include <X.h> +# define Cursor XCursor +# define Region XRegion +#else +# include <X11/X.h> +#endif + +/* applications should not depend on these two headers being included! */ +#ifdef MAC_TCL +#include <Xfuncproto.h> +#else +#include <X11/Xfuncproto.h> +#endif + +#ifndef X_WCHAR +#ifdef X_NOT_STDC_ENV +#define X_WCHAR +#endif +#endif + +#ifndef X_WCHAR +#include <stddef.h> +#else +/* replace this with #include or typedef appropriate for your system */ +typedef unsigned long wchar_t; +#endif + +typedef char *XPointer; + +#define Bool int +#define Status int +#define True 1 +#define False 0 + +#define QueuedAlready 0 +#define QueuedAfterReading 1 +#define QueuedAfterFlush 2 + +#define ConnectionNumber(dpy) ((dpy)->fd) +#define RootWindow(dpy, scr) (((dpy)->screens[(scr)]).root) +#define DefaultScreen(dpy) ((dpy)->default_screen) +#define DefaultRootWindow(dpy) (((dpy)->screens[(dpy)->default_screen]).root) +#define DefaultVisual(dpy, scr) (((dpy)->screens[(scr)]).root_visual) +#define DefaultGC(dpy, scr) (((dpy)->screens[(scr)]).default_gc) +#define BlackPixel(dpy, scr) (((dpy)->screens[(scr)]).black_pixel) +#define WhitePixel(dpy, scr) (((dpy)->screens[(scr)]).white_pixel) +#define AllPlanes ((unsigned long)~0L) +#define QLength(dpy) ((dpy)->qlen) +#define DisplayWidth(dpy, scr) (((dpy)->screens[(scr)]).width) +#define DisplayHeight(dpy, scr) (((dpy)->screens[(scr)]).height) +#define DisplayWidthMM(dpy, scr)(((dpy)->screens[(scr)]).mwidth) +#define DisplayHeightMM(dpy, scr)(((dpy)->screens[(scr)]).mheight) +#define DisplayPlanes(dpy, scr) (((dpy)->screens[(scr)]).root_depth) +#define DisplayCells(dpy, scr) (DefaultVisual((dpy), (scr))->map_entries) +#define ScreenCount(dpy) ((dpy)->nscreens) +#define ServerVendor(dpy) ((dpy)->vendor) +#define ProtocolVersion(dpy) ((dpy)->proto_major_version) +#define ProtocolRevision(dpy) ((dpy)->proto_minor_version) +#define VendorRelease(dpy) ((dpy)->release) +#define DisplayString(dpy) ((dpy)->display_name) +#define DefaultDepth(dpy, scr) (((dpy)->screens[(scr)]).root_depth) +#define DefaultColormap(dpy, scr)(((dpy)->screens[(scr)]).cmap) +#define BitmapUnit(dpy) ((dpy)->bitmap_unit) +#define BitmapBitOrder(dpy) ((dpy)->bitmap_bit_order) +#define BitmapPad(dpy) ((dpy)->bitmap_pad) +#define ImageByteOrder(dpy) ((dpy)->byte_order) +#define NextRequest(dpy) ((dpy)->request + 1) +#define LastKnownRequestProcessed(dpy) ((dpy)->request) + +/* macros for screen oriented applications (toolkit) */ +#define ScreenOfDisplay(dpy, scr)(&((dpy)->screens[(scr)])) +#define DefaultScreenOfDisplay(dpy) (&((dpy)->screens[(dpy)->default_screen])) +#define DisplayOfScreen(s) ((s)->display) +#define RootWindowOfScreen(s) ((s)->root) +#define BlackPixelOfScreen(s) ((s)->black_pixel) +#define WhitePixelOfScreen(s) ((s)->white_pixel) +#define DefaultColormapOfScreen(s)((s)->cmap) +#define DefaultDepthOfScreen(s) ((s)->root_depth) +#define DefaultGCOfScreen(s) ((s)->default_gc) +#define DefaultVisualOfScreen(s)((s)->root_visual) +#define WidthOfScreen(s) ((s)->width) +#define HeightOfScreen(s) ((s)->height) +#define WidthMMOfScreen(s) ((s)->mwidth) +#define HeightMMOfScreen(s) ((s)->mheight) +#define PlanesOfScreen(s) ((s)->root_depth) +#define CellsOfScreen(s) (DefaultVisualOfScreen((s))->map_entries) +#define MinCmapsOfScreen(s) ((s)->min_maps) +#define MaxCmapsOfScreen(s) ((s)->max_maps) +#define DoesSaveUnders(s) ((s)->save_unders) +#define DoesBackingStore(s) ((s)->backing_store) +#define EventMaskOfScreen(s) ((s)->root_input_mask) + +/* + * Extensions need a way to hang private data on some structures. + */ +typedef struct _XExtData { + int number; /* number returned by XRegisterExtension */ + struct _XExtData *next; /* next item on list of data for structure */ + int (*free_private)(); /* called to free private storage */ + XPointer private_data; /* data private to this extension. */ +} XExtData; + +/* + * This file contains structures used by the extension mechanism. + */ +typedef struct { /* public to extension, cannot be changed */ + int extension; /* extension number */ + int major_opcode; /* major op-code assigned by server */ + int first_event; /* first event number for the extension */ + int first_error; /* first error number for the extension */ +} XExtCodes; + +/* + * Data structure for retrieving info about pixmap formats. + */ + +typedef struct { + int depth; + int bits_per_pixel; + int scanline_pad; +} XPixmapFormatValues; + + +/* + * Data structure for setting graphics context. + */ +typedef struct { + int function; /* logical operation */ + unsigned long plane_mask;/* plane mask */ + unsigned long foreground;/* foreground pixel */ + unsigned long background;/* background pixel */ + int line_width; /* line width */ + int line_style; /* LineSolid, LineOnOffDash, LineDoubleDash */ + int cap_style; /* CapNotLast, CapButt, + CapRound, CapProjecting */ + int join_style; /* JoinMiter, JoinRound, JoinBevel */ + int fill_style; /* FillSolid, FillTiled, + FillStippled, FillOpaeueStippled */ + int fill_rule; /* EvenOddRule, WindingRule */ + int arc_mode; /* ArcChord, ArcPieSlice */ + Pixmap tile; /* tile pixmap for tiling operations */ + Pixmap stipple; /* stipple 1 plane pixmap for stipping */ + int ts_x_origin; /* offset for tile or stipple operations */ + int ts_y_origin; + Font font; /* default text font for text operations */ + int subwindow_mode; /* ClipByChildren, IncludeInferiors */ + Bool graphics_exposures;/* boolean, should exposures be generated */ + int clip_x_origin; /* origin for clipping */ + int clip_y_origin; + Pixmap clip_mask; /* bitmap clipping; other calls for rects */ + int dash_offset; /* patterned/dashed line information */ + char dashes; +} XGCValues; + +/* + * Graphics context. The contents of this structure are implementation + * dependent. A GC should be treated as opaque by application code. + */ + +typedef XGCValues *GC; + +/* + * Visual structure; contains information about colormapping possible. + */ +typedef struct { + XExtData *ext_data; /* hook for extension to hang data */ + VisualID visualid; /* visual id of this visual */ +#if defined(__cplusplus) || defined(c_plusplus) + int c_class; /* C++ class of screen (monochrome, etc.) */ +#else + int class; /* class of screen (monochrome, etc.) */ +#endif + unsigned long red_mask, green_mask, blue_mask; /* mask values */ + int bits_per_rgb; /* log base 2 of distinct color values */ + int map_entries; /* color map entries */ +} Visual; + +/* + * Depth structure; contains information for each possible depth. + */ +typedef struct { + int depth; /* this depth (Z) of the depth */ + int nvisuals; /* number of Visual types at this depth */ + Visual *visuals; /* list of visuals possible at this depth */ +} Depth; + +/* + * Information about the screen. The contents of this structure are + * implementation dependent. A Screen should be treated as opaque + * by application code. + */ +typedef struct { + XExtData *ext_data; /* hook for extension to hang data */ + struct _XDisplay *display;/* back pointer to display structure */ + Window root; /* Root window id. */ + int width, height; /* width and height of screen */ + int mwidth, mheight; /* width and height of in millimeters */ + int ndepths; /* number of depths possible */ + Depth *depths; /* list of allowable depths on the screen */ + int root_depth; /* bits per pixel */ + Visual *root_visual; /* root visual */ + GC default_gc; /* GC for the root root visual */ + Colormap cmap; /* default color map */ + unsigned long white_pixel; + unsigned long black_pixel; /* White and Black pixel values */ + int max_maps, min_maps; /* max and min color maps */ + int backing_store; /* Never, WhenMapped, Always */ + Bool save_unders; + long root_input_mask; /* initial root input mask */ +} Screen; + +/* + * Format structure; describes ZFormat data the screen will understand. + */ +typedef struct { + XExtData *ext_data; /* hook for extension to hang data */ + int depth; /* depth of this image format */ + int bits_per_pixel; /* bits/pixel at this depth */ + int scanline_pad; /* scanline must padded to this multiple */ +} ScreenFormat; + +/* + * Data structure for setting window attributes. + */ +typedef struct { + Pixmap background_pixmap; /* background or None or ParentRelative */ + unsigned long background_pixel; /* background pixel */ + Pixmap border_pixmap; /* border of the window */ + unsigned long border_pixel; /* border pixel value */ + int bit_gravity; /* one of bit gravity values */ + int win_gravity; /* one of the window gravity values */ + int backing_store; /* NotUseful, WhenMapped, Always */ + unsigned long backing_planes;/* planes to be preseved if possible */ + unsigned long backing_pixel;/* value to use in restoring planes */ + Bool save_under; /* should bits under be saved? (popups) */ + long event_mask; /* set of events that should be saved */ + long do_not_propagate_mask; /* set of events that should not propagate */ + Bool override_redirect; /* boolean value for override-redirect */ + Colormap colormap; /* color map to be associated with window */ + Cursor cursor; /* cursor to be displayed (or None) */ +} XSetWindowAttributes; + +typedef struct { + int x, y; /* location of window */ + int width, height; /* width and height of window */ + int border_width; /* border width of window */ + int depth; /* depth of window */ + Visual *visual; /* the associated visual structure */ + Window root; /* root of screen containing window */ +#if defined(__cplusplus) || defined(c_plusplus) + int c_class; /* C++ InputOutput, InputOnly*/ +#else + int class; /* InputOutput, InputOnly*/ +#endif + int bit_gravity; /* one of bit gravity values */ + int win_gravity; /* one of the window gravity values */ + int backing_store; /* NotUseful, WhenMapped, Always */ + unsigned long backing_planes;/* planes to be preserved if possible */ + unsigned long backing_pixel;/* value to be used when restoring planes */ + Bool save_under; /* boolean, should bits under be saved? */ + Colormap colormap; /* color map to be associated with window */ + Bool map_installed; /* boolean, is color map currently installed*/ + int map_state; /* IsUnmapped, IsUnviewable, IsViewable */ + long all_event_masks; /* set of events all people have interest in*/ + long your_event_mask; /* my event mask */ + long do_not_propagate_mask; /* set of events that should not propagate */ + Bool override_redirect; /* boolean value for override-redirect */ + Screen *screen; /* back pointer to correct screen */ +} XWindowAttributes; + +/* + * Data structure for host setting; getting routines. + * + */ + +typedef struct { + int family; /* for example FamilyInternet */ + int length; /* length of address, in bytes */ + char *address; /* pointer to where to find the bytes */ +} XHostAddress; + +/* + * Data structure for "image" data, used by image manipulation routines. + */ +typedef struct _XImage { + int width, height; /* size of image */ + int xoffset; /* number of pixels offset in X direction */ + int format; /* XYBitmap, XYPixmap, ZPixmap */ + char *data; /* pointer to image data */ + int byte_order; /* data byte order, LSBFirst, MSBFirst */ + int bitmap_unit; /* quant. of scanline 8, 16, 32 */ + int bitmap_bit_order; /* LSBFirst, MSBFirst */ + int bitmap_pad; /* 8, 16, 32 either XY or ZPixmap */ + int depth; /* depth of image */ + int bytes_per_line; /* accelarator to next line */ + int bits_per_pixel; /* bits per pixel (ZPixmap) */ + unsigned long red_mask; /* bits in z arrangment */ + unsigned long green_mask; + unsigned long blue_mask; + XPointer obdata; /* hook for the object routines to hang on */ + struct funcs { /* image manipulation routines */ + struct _XImage *(*create_image)(); +#if NeedFunctionPrototypes + int (*destroy_image) (struct _XImage *); + unsigned long (*get_pixel) (struct _XImage *, int, int); + int (*put_pixel) (struct _XImage *, int, int, unsigned long); + struct _XImage *(*sub_image)(struct _XImage *, int, int, unsigned int, unsigned int); + int (*add_pixel) (struct _XImage *, long); +#else + int (*destroy_image)(); + unsigned long (*get_pixel)(); + int (*put_pixel)(); + struct _XImage *(*sub_image)(); + int (*add_pixel)(); +#endif + } f; +} XImage; + +/* + * Data structure for XReconfigureWindow + */ +typedef struct { + int x, y; + int width, height; + int border_width; + Window sibling; + int stack_mode; +} XWindowChanges; + +/* + * Data structure used by color operations + */ +typedef struct { + unsigned long pixel; + unsigned short red, green, blue; + char flags; /* do_red, do_green, do_blue */ + char pad; +} XColor; + +/* + * Data structures for graphics operations. On most machines, these are + * congruent with the wire protocol structures, so reformatting the data + * can be avoided on these architectures. + */ +typedef struct { + short x1, y1, x2, y2; +} XSegment; + +typedef struct { + short x, y; +} XPoint; + +typedef struct { + short x, y; + unsigned short width, height; +} XRectangle; + +typedef struct { + short x, y; + unsigned short width, height; + short angle1, angle2; +} XArc; + + +/* Data structure for XChangeKeyboardControl */ + +typedef struct { + int key_click_percent; + int bell_percent; + int bell_pitch; + int bell_duration; + int led; + int led_mode; + int key; + int auto_repeat_mode; /* On, Off, Default */ +} XKeyboardControl; + +/* Data structure for XGetKeyboardControl */ + +typedef struct { + int key_click_percent; + int bell_percent; + unsigned int bell_pitch, bell_duration; + unsigned long led_mask; + int global_auto_repeat; + char auto_repeats[32]; +} XKeyboardState; + +/* Data structure for XGetMotionEvents. */ + +typedef struct { + Time time; + short x, y; +} XTimeCoord; + +/* Data structure for X{Set,Get}ModifierMapping */ + +typedef struct { + int max_keypermod; /* The server's max # of keys per modifier */ + KeyCode *modifiermap; /* An 8 by max_keypermod array of modifiers */ +} XModifierKeymap; + + +/* + * Display datatype maintaining display specific data. + * The contents of this structure are implementation dependent. + * A Display should be treated as opaque by application code. + */ +typedef struct _XDisplay { + XExtData *ext_data; /* hook for extension to hang data */ + struct _XFreeFuncs *free_funcs; /* internal free functions */ + int fd; /* Network socket. */ + int conn_checker; /* ugly thing used by _XEventsQueued */ + int proto_major_version;/* maj. version of server's X protocol */ + int proto_minor_version;/* minor version of servers X protocol */ + char *vendor; /* vendor of the server hardware */ + XID resource_base; /* resource ID base */ + XID resource_mask; /* resource ID mask bits */ + XID resource_id; /* allocator current ID */ + int resource_shift; /* allocator shift to correct bits */ + XID (*resource_alloc)(); /* allocator function */ + int byte_order; /* screen byte order, LSBFirst, MSBFirst */ + int bitmap_unit; /* padding and data requirements */ + int bitmap_pad; /* padding requirements on bitmaps */ + int bitmap_bit_order; /* LeastSignificant or MostSignificant */ + int nformats; /* number of pixmap formats in list */ + ScreenFormat *pixmap_format; /* pixmap format list */ + int vnumber; /* Xlib's X protocol version number. */ + int release; /* release of the server */ + struct _XSQEvent *head, *tail; /* Input event queue. */ + int qlen; /* Length of input event queue */ + unsigned long request; /* sequence number of last request. */ + char *last_req; /* beginning of last request, or dummy */ + char *buffer; /* Output buffer starting address. */ + char *bufptr; /* Output buffer index pointer. */ + char *bufmax; /* Output buffer maximum+1 address. */ + unsigned max_request_size; /* maximum number 32 bit words in request*/ + struct _XrmHashBucketRec *db; + int (*synchandler)(); /* Synchronization handler */ + char *display_name; /* "host:display" string used on this connect*/ + int default_screen; /* default screen for operations */ + int nscreens; /* number of screens on this server*/ + Screen *screens; /* pointer to list of screens */ + unsigned long motion_buffer; /* size of motion buffer */ + unsigned long flags; /* internal connection flags */ + int min_keycode; /* minimum defined keycode */ + int max_keycode; /* maximum defined keycode */ + KeySym *keysyms; /* This server's keysyms */ + XModifierKeymap *modifiermap; /* This server's modifier keymap */ + int keysyms_per_keycode;/* number of rows */ + char *xdefaults; /* contents of defaults from server */ + char *scratch_buffer; /* place to hang scratch buffer */ + unsigned long scratch_length; /* length of scratch buffer */ + int ext_number; /* extension number on this display */ + struct _XExten *ext_procs; /* extensions initialized on this display */ + /* + * the following can be fixed size, as the protocol defines how + * much address space is available. + * While this could be done using the extension vector, there + * may be MANY events processed, so a search through the extension + * list to find the right procedure for each event might be + * expensive if many extensions are being used. + */ + Bool (*event_vec[128])(); /* vector for wire to event */ + Status (*wire_vec[128])(); /* vector for event to wire */ + KeySym lock_meaning; /* for XLookupString */ + struct _XLockInfo *lock; /* multi-thread state, display lock */ + struct _XInternalAsync *async_handlers; /* for internal async */ + unsigned long bigreq_size; /* max size of big requests */ + struct _XLockPtrs *lock_fns; /* pointers to threads functions */ + /* things above this line should not move, for binary compatibility */ + struct _XKeytrans *key_bindings; /* for XLookupString */ + Font cursor_font; /* for XCreateFontCursor */ + struct _XDisplayAtoms *atoms; /* for XInternAtom */ + unsigned int mode_switch; /* keyboard group modifiers */ + struct _XContextDB *context_db; /* context database */ + Bool (**error_vec)(); /* vector for wire to error */ + /* + * Xcms information + */ + struct { + XPointer defaultCCCs; /* pointer to an array of default XcmsCCC */ + XPointer clientCmaps; /* pointer to linked list of XcmsCmapRec */ + XPointer perVisualIntensityMaps; + /* linked list of XcmsIntensityMap */ + } cms; + struct _XIMFilter *im_filters; + struct _XSQEvent *qfree; /* unallocated event queue elements */ + unsigned long next_event_serial_num; /* inserted into next queue elt */ + int (*savedsynchandler)(); /* user synchandler when Xlib usurps */ +} Display; + +#if NeedFunctionPrototypes /* prototypes require event type definitions */ +#undef _XEVENT_ +#endif +#ifndef _XEVENT_ + +#define XMaxTransChars 4 + +/* + * Definitions of specific events. + */ +typedef struct { + int type; /* of event */ + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; /* "event" window it is reported relative to */ + Window root; /* root window that the event occured on */ + Window subwindow; /* child window */ + Time time; /* milliseconds */ + int x, y; /* pointer x, y coordinates in event window */ + int x_root, y_root; /* coordinates relative to root */ + unsigned int state; /* key or button mask */ + unsigned int keycode; /* detail */ + Bool same_screen; /* same screen flag */ + char trans_chars[XMaxTransChars]; + /* translated characters */ + int nchars; +} XKeyEvent; +typedef XKeyEvent XKeyPressedEvent; +typedef XKeyEvent XKeyReleasedEvent; + +typedef struct { + int type; /* of event */ + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; /* "event" window it is reported relative to */ + Window root; /* root window that the event occured on */ + Window subwindow; /* child window */ + Time time; /* milliseconds */ + int x, y; /* pointer x, y coordinates in event window */ + int x_root, y_root; /* coordinates relative to root */ + unsigned int state; /* key or button mask */ + unsigned int button; /* detail */ + Bool same_screen; /* same screen flag */ +} XButtonEvent; +typedef XButtonEvent XButtonPressedEvent; +typedef XButtonEvent XButtonReleasedEvent; + +typedef struct { + int type; /* of event */ + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; /* "event" window reported relative to */ + Window root; /* root window that the event occured on */ + Window subwindow; /* child window */ + Time time; /* milliseconds */ + int x, y; /* pointer x, y coordinates in event window */ + int x_root, y_root; /* coordinates relative to root */ + unsigned int state; /* key or button mask */ + char is_hint; /* detail */ + Bool same_screen; /* same screen flag */ +} XMotionEvent; +typedef XMotionEvent XPointerMovedEvent; + +typedef struct { + int type; /* of event */ + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; /* "event" window reported relative to */ + Window root; /* root window that the event occured on */ + Window subwindow; /* child window */ + Time time; /* milliseconds */ + int x, y; /* pointer x, y coordinates in event window */ + int x_root, y_root; /* coordinates relative to root */ + int mode; /* NotifyNormal, NotifyGrab, NotifyUngrab */ + int detail; + /* + * NotifyAncestor, NotifyVirtual, NotifyInferior, + * NotifyNonlinear,NotifyNonlinearVirtual + */ + Bool same_screen; /* same screen flag */ + Bool focus; /* boolean focus */ + unsigned int state; /* key or button mask */ +} XCrossingEvent; +typedef XCrossingEvent XEnterWindowEvent; +typedef XCrossingEvent XLeaveWindowEvent; + +typedef struct { + int type; /* FocusIn or FocusOut */ + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; /* window of event */ + int mode; /* NotifyNormal, NotifyGrab, NotifyUngrab */ + int detail; + /* + * NotifyAncestor, NotifyVirtual, NotifyInferior, + * NotifyNonlinear,NotifyNonlinearVirtual, NotifyPointer, + * NotifyPointerRoot, NotifyDetailNone + */ +} XFocusChangeEvent; +typedef XFocusChangeEvent XFocusInEvent; +typedef XFocusChangeEvent XFocusOutEvent; + +/* generated on EnterWindow and FocusIn when KeyMapState selected */ +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; + char key_vector[32]; +} XKeymapEvent; + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; + int x, y; + int width, height; + int count; /* if non-zero, at least this many more */ +} XExposeEvent; + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Drawable drawable; + int x, y; + int width, height; + int count; /* if non-zero, at least this many more */ + int major_code; /* core is CopyArea or CopyPlane */ + int minor_code; /* not defined in the core */ +} XGraphicsExposeEvent; + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Drawable drawable; + int major_code; /* core is CopyArea or CopyPlane */ + int minor_code; /* not defined in the core */ +} XNoExposeEvent; + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; + int state; /* Visibility state */ +} XVisibilityEvent; + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window parent; /* parent of the window */ + Window window; /* window id of window created */ + int x, y; /* window location */ + int width, height; /* size of window */ + int border_width; /* border width */ + Bool override_redirect; /* creation should be overridden */ +} XCreateWindowEvent; + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window event; + Window window; +} XDestroyWindowEvent; + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window event; + Window window; + Bool from_configure; +} XUnmapEvent; + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window event; + Window window; + Bool override_redirect; /* boolean, is override set... */ +} XMapEvent; + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window parent; + Window window; +} XMapRequestEvent; + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window event; + Window window; + Window parent; + int x, y; + Bool override_redirect; +} XReparentEvent; + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window event; + Window window; + int x, y; + int width, height; + int border_width; + Window above; + Bool override_redirect; +} XConfigureEvent; + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window event; + Window window; + int x, y; +} XGravityEvent; + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; + int width, height; +} XResizeRequestEvent; + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window parent; + Window window; + int x, y; + int width, height; + int border_width; + Window above; + int detail; /* Above, Below, TopIf, BottomIf, Opposite */ + unsigned long value_mask; +} XConfigureRequestEvent; + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window event; + Window window; + int place; /* PlaceOnTop, PlaceOnBottom */ +} XCirculateEvent; + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window parent; + Window window; + int place; /* PlaceOnTop, PlaceOnBottom */ +} XCirculateRequestEvent; + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; + Atom atom; + Time time; + int state; /* NewValue, Deleted */ +} XPropertyEvent; + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; + Atom selection; + Time time; +} XSelectionClearEvent; + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window owner; + Window requestor; + Atom selection; + Atom target; + Atom property; + Time time; +} XSelectionRequestEvent; + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window requestor; + Atom selection; + Atom target; + Atom property; /* ATOM or None */ + Time time; +} XSelectionEvent; + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; + Colormap colormap; /* COLORMAP or None */ +#if defined(__cplusplus) || defined(c_plusplus) + Bool c_new; /* C++ */ +#else + Bool new; +#endif + int state; /* ColormapInstalled, ColormapUninstalled */ +} XColormapEvent; + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; + Atom message_type; + int format; + union { + char b[20]; + short s[10]; + long l[5]; + } data; +} XClientMessageEvent; + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; /* unused */ + int request; /* one of MappingModifier, MappingKeyboard, + MappingPointer */ + int first_keycode; /* first keycode */ + int count; /* defines range of change w. first_keycode*/ +} XMappingEvent; + +typedef struct { + int type; + Display *display; /* Display the event was read from */ + XID resourceid; /* resource id */ + unsigned long serial; /* serial number of failed request */ + unsigned char error_code; /* error code of failed request */ + unsigned char request_code; /* Major op-code of failed request */ + unsigned char minor_code; /* Minor op-code of failed request */ +} XErrorEvent; + +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came from a SendEvent request */ + Display *display;/* Display the event was read from */ + Window window; /* window on which event was requested in event mask */ +} XAnyEvent; + +/* + * this union is defined so Xlib can always use the same sized + * event structure internally, to avoid memory fragmentation. + */ +typedef union _XEvent { + int type; /* must not be changed; first element */ + XAnyEvent xany; + XKeyEvent xkey; + XButtonEvent xbutton; + XMotionEvent xmotion; + XCrossingEvent xcrossing; + XFocusChangeEvent xfocus; + XExposeEvent xexpose; + XGraphicsExposeEvent xgraphicsexpose; + XNoExposeEvent xnoexpose; + XVisibilityEvent xvisibility; + XCreateWindowEvent xcreatewindow; + XDestroyWindowEvent xdestroywindow; + XUnmapEvent xunmap; + XMapEvent xmap; + XMapRequestEvent xmaprequest; + XReparentEvent xreparent; + XConfigureEvent xconfigure; + XGravityEvent xgravity; + XResizeRequestEvent xresizerequest; + XConfigureRequestEvent xconfigurerequest; + XCirculateEvent xcirculate; + XCirculateRequestEvent xcirculaterequest; + XPropertyEvent xproperty; + XSelectionClearEvent xselectionclear; + XSelectionRequestEvent xselectionrequest; + XSelectionEvent xselection; + XColormapEvent xcolormap; + XClientMessageEvent xclient; + XMappingEvent xmapping; + XErrorEvent xerror; + XKeymapEvent xkeymap; + long pad[24]; +} XEvent; +#endif + +#define XAllocID(dpy) ((*(dpy)->resource_alloc)((dpy))) + +/* + * per character font metric information. + */ +typedef struct { + short lbearing; /* origin to left edge of raster */ + short rbearing; /* origin to right edge of raster */ + short width; /* advance to next char's origin */ + short ascent; /* baseline to top edge of raster */ + short descent; /* baseline to bottom edge of raster */ + unsigned short attributes; /* per char flags (not predefined) */ +} XCharStruct; + +/* + * To allow arbitrary information with fonts, there are additional properties + * returned. + */ +typedef struct { + Atom name; + unsigned long card32; +} XFontProp; + +typedef struct { + XExtData *ext_data; /* hook for extension to hang data */ + Font fid; /* Font id for this font */ + unsigned direction; /* hint about direction the font is painted */ + unsigned min_char_or_byte2;/* first character */ + unsigned max_char_or_byte2;/* last character */ + unsigned min_byte1; /* first row that exists */ + unsigned max_byte1; /* last row that exists */ + Bool all_chars_exist;/* flag if all characters have non-zero size*/ + unsigned default_char; /* char to print for undefined character */ + int n_properties; /* how many properties there are */ + XFontProp *properties; /* pointer to array of additional properties*/ + XCharStruct min_bounds; /* minimum bounds over all existing char*/ + XCharStruct max_bounds; /* maximum bounds over all existing char*/ + XCharStruct *per_char; /* first_char to last_char information */ + int ascent; /* log. extent above baseline for spacing */ + int descent; /* log. descent below baseline for spacing */ +} XFontStruct; + +/* + * PolyText routines take these as arguments. + */ +typedef struct { + char *chars; /* pointer to string */ + int nchars; /* number of characters */ + int delta; /* delta between strings */ + Font font; /* font to print it in, None don't change */ +} XTextItem; + +typedef struct { /* normal 16 bit characters are two bytes */ + unsigned char byte1; + unsigned char byte2; +} XChar2b; + +typedef struct { + XChar2b *chars; /* two byte characters */ + int nchars; /* number of characters */ + int delta; /* delta between strings */ + Font font; /* font to print it in, None don't change */ +} XTextItem16; + + +typedef union { Display *display; + GC gc; + Visual *visual; + Screen *screen; + ScreenFormat *pixmap_format; + XFontStruct *font; } XEDataObject; + +typedef struct { + XRectangle max_ink_extent; + XRectangle max_logical_extent; +} XFontSetExtents; + +typedef struct _XFontSet *XFontSet; + +typedef struct { + char *chars; + int nchars; + int delta; + XFontSet font_set; +} XmbTextItem; + +typedef struct { + wchar_t *chars; + int nchars; + int delta; + XFontSet font_set; +} XwcTextItem; + +typedef void (*XIMProc)(); + +typedef struct _XIM *XIM; +typedef struct _XIC *XIC; + +typedef unsigned long XIMStyle; + +typedef struct { + unsigned short count_styles; + XIMStyle *supported_styles; +} XIMStyles; + +#define XIMPreeditArea 0x0001L +#define XIMPreeditCallbacks 0x0002L +#define XIMPreeditPosition 0x0004L +#define XIMPreeditNothing 0x0008L +#define XIMPreeditNone 0x0010L +#define XIMStatusArea 0x0100L +#define XIMStatusCallbacks 0x0200L +#define XIMStatusNothing 0x0400L +#define XIMStatusNone 0x0800L + +#define XNVaNestedList "XNVaNestedList" +#define XNClientWindow "clientWindow" +#define XNInputStyle "inputStyle" +#define XNFocusWindow "focusWindow" +#define XNResourceName "resourceName" +#define XNResourceClass "resourceClass" +#define XNGeometryCallback "geometryCallback" +#define XNFilterEvents "filterEvents" +#define XNPreeditStartCallback "preeditStartCallback" +#define XNPreeditDoneCallback "preeditDoneCallback" +#define XNPreeditDrawCallback "preeditDrawCallback" +#define XNPreeditCaretCallback "preeditCaretCallback" +#define XNPreeditAttributes "preeditAttributes" +#define XNStatusStartCallback "statusStartCallback" +#define XNStatusDoneCallback "statusDoneCallback" +#define XNStatusDrawCallback "statusDrawCallback" +#define XNStatusAttributes "statusAttributes" +#define XNArea "area" +#define XNAreaNeeded "areaNeeded" +#define XNSpotLocation "spotLocation" +#define XNColormap "colorMap" +#define XNStdColormap "stdColorMap" +#define XNForeground "foreground" +#define XNBackground "background" +#define XNBackgroundPixmap "backgroundPixmap" +#define XNFontSet "fontSet" +#define XNLineSpace "lineSpace" +#define XNCursor "cursor" + +#define XBufferOverflow -1 +#define XLookupNone 1 +#define XLookupChars 2 +#define XLookupKeySym 3 +#define XLookupBoth 4 + +#if NeedFunctionPrototypes +typedef void *XVaNestedList; +#else +typedef XPointer XVaNestedList; +#endif + +typedef struct { + XPointer client_data; + XIMProc callback; +} XIMCallback; + +typedef unsigned long XIMFeedback; + +#define XIMReverse 1 +#define XIMUnderline (1<<1) +#define XIMHighlight (1<<2) +#define XIMPrimary (1<<5) +#define XIMSecondary (1<<6) +#define XIMTertiary (1<<7) + +typedef struct _XIMText { + unsigned short length; + XIMFeedback *feedback; + Bool encoding_is_wchar; + union { + char *multi_byte; + wchar_t *wide_char; + } string; +} XIMText; + +typedef struct _XIMPreeditDrawCallbackStruct { + int caret; /* Cursor offset within pre-edit string */ + int chg_first; /* Starting change position */ + int chg_length; /* Length of the change in character count */ + XIMText *text; +} XIMPreeditDrawCallbackStruct; + +typedef enum { + XIMForwardChar, XIMBackwardChar, + XIMForwardWord, XIMBackwardWord, + XIMCaretUp, XIMCaretDown, + XIMNextLine, XIMPreviousLine, + XIMLineStart, XIMLineEnd, + XIMAbsolutePosition, + XIMDontChange +} XIMCaretDirection; + +typedef enum { + XIMIsInvisible, /* Disable caret feedback */ + XIMIsPrimary, /* UI defined caret feedback */ + XIMIsSecondary /* UI defined caret feedback */ +} XIMCaretStyle; + +typedef struct _XIMPreeditCaretCallbackStruct { + int position; /* Caret offset within pre-edit string */ + XIMCaretDirection direction; /* Caret moves direction */ + XIMCaretStyle style; /* Feedback of the caret */ +} XIMPreeditCaretCallbackStruct; + +typedef enum { + XIMTextType, + XIMBitmapType +} XIMStatusDataType; + +typedef struct _XIMStatusDrawCallbackStruct { + XIMStatusDataType type; + union { + XIMText *text; + Pixmap bitmap; + } data; +} XIMStatusDrawCallbackStruct; + +_XFUNCPROTOBEGIN + +extern XFontStruct *XLoadQueryFont( +#if NeedFunctionPrototypes + Display* /* display */, + _Xconst char* /* name */ +#endif +); + +extern XFontStruct *XQueryFont( +#if NeedFunctionPrototypes + Display* /* display */, + XID /* font_ID */ +#endif +); + + +extern XTimeCoord *XGetMotionEvents( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + Time /* start */, + Time /* stop */, + int* /* nevents_return */ +#endif +); + +extern XModifierKeymap *XDeleteModifiermapEntry( +#if NeedFunctionPrototypes + XModifierKeymap* /* modmap */, +#if NeedWidePrototypes + unsigned int /* keycode_entry */, +#else + KeyCode /* keycode_entry */, +#endif + int /* modifier */ +#endif +); + +extern XModifierKeymap *XGetModifierMapping( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); + +extern XModifierKeymap *XInsertModifiermapEntry( +#if NeedFunctionPrototypes + XModifierKeymap* /* modmap */, +#if NeedWidePrototypes + unsigned int /* keycode_entry */, +#else + KeyCode /* keycode_entry */, +#endif + int /* modifier */ +#endif +); + +extern XModifierKeymap *XNewModifiermap( +#if NeedFunctionPrototypes + int /* max_keys_per_mod */ +#endif +); + +extern XImage *XCreateImage( +#if NeedFunctionPrototypes + Display* /* display */, + Visual* /* visual */, + unsigned int /* depth */, + int /* format */, + int /* offset */, + char* /* data */, + unsigned int /* width */, + unsigned int /* height */, + int /* bitmap_pad */, + int /* bytes_per_line */ +#endif +); +extern XImage *XGetImage( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + int /* x */, + int /* y */, + unsigned int /* width */, + unsigned int /* height */, + unsigned long /* plane_mask */, + int /* format */ +#endif +); +extern XImage *XGetSubImage( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + int /* x */, + int /* y */, + unsigned int /* width */, + unsigned int /* height */, + unsigned long /* plane_mask */, + int /* format */, + XImage* /* dest_image */, + int /* dest_x */, + int /* dest_y */ +#endif +); + +/* + * X function declarations. + */ +extern Display *XOpenDisplay( +#if NeedFunctionPrototypes + _Xconst char* /* display_name */ +#endif +); + +extern void XrmInitialize( +#if NeedFunctionPrototypes + void +#endif +); + +extern char *XFetchBytes( +#if NeedFunctionPrototypes + Display* /* display */, + int* /* nbytes_return */ +#endif +); +extern char *XFetchBuffer( +#if NeedFunctionPrototypes + Display* /* display */, + int* /* nbytes_return */, + int /* buffer */ +#endif +); +extern char *XGetAtomName( +#if NeedFunctionPrototypes + Display* /* display */, + Atom /* atom */ +#endif +); +extern char *XGetDefault( +#if NeedFunctionPrototypes + Display* /* display */, + _Xconst char* /* program */, + _Xconst char* /* option */ +#endif +); +extern char *XDisplayName( +#if NeedFunctionPrototypes + _Xconst char* /* string */ +#endif +); +extern char *XKeysymToString( +#if NeedFunctionPrototypes + KeySym /* keysym */ +#endif +); + +extern int (*XSynchronize( +#if NeedFunctionPrototypes + Display* /* display */, + Bool /* onoff */ +#endif +))(); +extern int (*XSetAfterFunction( +#if NeedFunctionPrototypes + Display* /* display */, + int (*) ( +#if NeedNestedPrototypes + Display* /* display */ +#endif + ) /* procedure */ +#endif +))(); +extern Atom XInternAtom( +#if NeedFunctionPrototypes + Display* /* display */, + _Xconst char* /* atom_name */, + Bool /* only_if_exists */ +#endif +); +extern Colormap XCopyColormapAndFree( +#if NeedFunctionPrototypes + Display* /* display */, + Colormap /* colormap */ +#endif +); +extern Colormap XCreateColormap( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + Visual* /* visual */, + int /* alloc */ +#endif +); +extern Cursor XCreatePixmapCursor( +#if NeedFunctionPrototypes + Display* /* display */, + Pixmap /* source */, + Pixmap /* mask */, + XColor* /* foreground_color */, + XColor* /* background_color */, + unsigned int /* x */, + unsigned int /* y */ +#endif +); +extern Cursor XCreateGlyphCursor( +#if NeedFunctionPrototypes + Display* /* display */, + Font /* source_font */, + Font /* mask_font */, + unsigned int /* source_char */, + unsigned int /* mask_char */, + XColor* /* foreground_color */, + XColor* /* background_color */ +#endif +); +extern Cursor XCreateFontCursor( +#if NeedFunctionPrototypes + Display* /* display */, + unsigned int /* shape */ +#endif +); +extern Font XLoadFont( +#if NeedFunctionPrototypes + Display* /* display */, + _Xconst char* /* name */ +#endif +); +extern GC XCreateGC( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + unsigned long /* valuemask */, + XGCValues* /* values */ +#endif +); +extern GContext XGContextFromGC( +#if NeedFunctionPrototypes + GC /* gc */ +#endif +); +extern void XFlushGC( +#if NeedFunctionPrototypes + Display* /* display */, + GC /* gc */ +#endif +); +extern Pixmap XCreatePixmap( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + unsigned int /* width */, + unsigned int /* height */, + unsigned int /* depth */ +#endif +); +extern Pixmap XCreateBitmapFromData( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + _Xconst char* /* data */, + unsigned int /* width */, + unsigned int /* height */ +#endif +); +extern Pixmap XCreatePixmapFromBitmapData( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + char* /* data */, + unsigned int /* width */, + unsigned int /* height */, + unsigned long /* fg */, + unsigned long /* bg */, + unsigned int /* depth */ +#endif +); +extern Window XCreateSimpleWindow( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* parent */, + int /* x */, + int /* y */, + unsigned int /* width */, + unsigned int /* height */, + unsigned int /* border_width */, + unsigned long /* border */, + unsigned long /* background */ +#endif +); +extern Window XGetSelectionOwner( +#if NeedFunctionPrototypes + Display* /* display */, + Atom /* selection */ +#endif +); +extern Window XCreateWindow( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* parent */, + int /* x */, + int /* y */, + unsigned int /* width */, + unsigned int /* height */, + unsigned int /* border_width */, + int /* depth */, + unsigned int /* class */, + Visual* /* visual */, + unsigned long /* valuemask */, + XSetWindowAttributes* /* attributes */ +#endif +); +extern Colormap *XListInstalledColormaps( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + int* /* num_return */ +#endif +); +extern char **XListFonts( +#if NeedFunctionPrototypes + Display* /* display */, + _Xconst char* /* pattern */, + int /* maxnames */, + int* /* actual_count_return */ +#endif +); +extern char **XListFontsWithInfo( +#if NeedFunctionPrototypes + Display* /* display */, + _Xconst char* /* pattern */, + int /* maxnames */, + int* /* count_return */, + XFontStruct** /* info_return */ +#endif +); +extern char **XGetFontPath( +#if NeedFunctionPrototypes + Display* /* display */, + int* /* npaths_return */ +#endif +); +extern char **XListExtensions( +#if NeedFunctionPrototypes + Display* /* display */, + int* /* nextensions_return */ +#endif +); +extern Atom *XListProperties( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + int* /* num_prop_return */ +#endif +); +extern XHostAddress *XListHosts( +#if NeedFunctionPrototypes + Display* /* display */, + int* /* nhosts_return */, + Bool* /* state_return */ +#endif +); +extern KeySym XKeycodeToKeysym( +#if NeedFunctionPrototypes + Display* /* display */, +#if NeedWidePrototypes + unsigned int /* keycode */, +#else + KeyCode /* keycode */, +#endif + int /* index */ +#endif +); +extern KeySym XLookupKeysym( +#if NeedFunctionPrototypes + XKeyEvent* /* key_event */, + int /* index */ +#endif +); +extern KeySym *XGetKeyboardMapping( +#if NeedFunctionPrototypes + Display* /* display */, +#if NeedWidePrototypes + unsigned int /* first_keycode */, +#else + KeyCode /* first_keycode */, +#endif + int /* keycode_count */, + int* /* keysyms_per_keycode_return */ +#endif +); +extern KeySym XStringToKeysym( +#if NeedFunctionPrototypes + _Xconst char* /* string */ +#endif +); +extern long XMaxRequestSize( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); +extern long XExtendedMaxRequestSize( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); +extern char *XResourceManagerString( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); +extern char *XScreenResourceString( +#if NeedFunctionPrototypes + Screen* /* screen */ +#endif +); +extern unsigned long XDisplayMotionBufferSize( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); +extern VisualID XVisualIDFromVisual( +#if NeedFunctionPrototypes + Visual* /* visual */ +#endif +); + +/* routines for dealing with extensions */ + +extern XExtCodes *XInitExtension( +#if NeedFunctionPrototypes + Display* /* display */, + _Xconst char* /* name */ +#endif +); + +extern XExtCodes *XAddExtension( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); +extern XExtData *XFindOnExtensionList( +#if NeedFunctionPrototypes + XExtData** /* structure */, + int /* number */ +#endif +); +extern XExtData **XEHeadOfExtensionList( +#if NeedFunctionPrototypes + XEDataObject /* object */ +#endif +); + +/* these are routines for which there are also macros */ +extern Window XRootWindow( +#if NeedFunctionPrototypes + Display* /* display */, + int /* screen_number */ +#endif +); +extern Window XDefaultRootWindow( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); +extern Window XRootWindowOfScreen( +#if NeedFunctionPrototypes + Screen* /* screen */ +#endif +); +extern Visual *XDefaultVisual( +#if NeedFunctionPrototypes + Display* /* display */, + int /* screen_number */ +#endif +); +extern Visual *XDefaultVisualOfScreen( +#if NeedFunctionPrototypes + Screen* /* screen */ +#endif +); +extern GC XDefaultGC( +#if NeedFunctionPrototypes + Display* /* display */, + int /* screen_number */ +#endif +); +extern GC XDefaultGCOfScreen( +#if NeedFunctionPrototypes + Screen* /* screen */ +#endif +); +extern unsigned long XBlackPixel( +#if NeedFunctionPrototypes + Display* /* display */, + int /* screen_number */ +#endif +); +extern unsigned long XWhitePixel( +#if NeedFunctionPrototypes + Display* /* display */, + int /* screen_number */ +#endif +); +extern unsigned long XAllPlanes( +#if NeedFunctionPrototypes + void +#endif +); +extern unsigned long XBlackPixelOfScreen( +#if NeedFunctionPrototypes + Screen* /* screen */ +#endif +); +extern unsigned long XWhitePixelOfScreen( +#if NeedFunctionPrototypes + Screen* /* screen */ +#endif +); +extern unsigned long XNextRequest( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); +extern unsigned long XLastKnownRequestProcessed( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); +extern char *XServerVendor( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); +extern char *XDisplayString( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); +extern Colormap XDefaultColormap( +#if NeedFunctionPrototypes + Display* /* display */, + int /* screen_number */ +#endif +); +extern Colormap XDefaultColormapOfScreen( +#if NeedFunctionPrototypes + Screen* /* screen */ +#endif +); +extern Display *XDisplayOfScreen( +#if NeedFunctionPrototypes + Screen* /* screen */ +#endif +); +extern Screen *XScreenOfDisplay( +#if NeedFunctionPrototypes + Display* /* display */, + int /* screen_number */ +#endif +); +extern Screen *XDefaultScreenOfDisplay( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); +extern long XEventMaskOfScreen( +#if NeedFunctionPrototypes + Screen* /* screen */ +#endif +); + +extern int XScreenNumberOfScreen( +#if NeedFunctionPrototypes + Screen* /* screen */ +#endif +); + +typedef int (*XErrorHandler) ( /* WARNING, this type not in Xlib spec */ +#if NeedFunctionPrototypes + Display* /* display */, + XErrorEvent* /* error_event */ +#endif +); + +extern XErrorHandler XSetErrorHandler ( +#if NeedFunctionPrototypes + XErrorHandler /* handler */ +#endif +); + + +typedef int (*XIOErrorHandler) ( /* WARNING, this type not in Xlib spec */ +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); + +extern XIOErrorHandler XSetIOErrorHandler ( +#if NeedFunctionPrototypes + XIOErrorHandler /* handler */ +#endif +); + + +extern XPixmapFormatValues *XListPixmapFormats( +#if NeedFunctionPrototypes + Display* /* display */, + int* /* count_return */ +#endif +); +extern int *XListDepths( +#if NeedFunctionPrototypes + Display* /* display */, + int /* screen_number */, + int* /* count_return */ +#endif +); + +/* ICCCM routines for things that don't require special include files; */ +/* other declarations are given in Xutil.h */ +extern Status XReconfigureWMWindow( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + int /* screen_number */, + unsigned int /* mask */, + XWindowChanges* /* changes */ +#endif +); + +extern Status XGetWMProtocols( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + Atom** /* protocols_return */, + int* /* count_return */ +#endif +); +extern Status XSetWMProtocols( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + Atom* /* protocols */, + int /* count */ +#endif +); +extern Status XIconifyWindow( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + int /* screen_number */ +#endif +); +extern Status XWithdrawWindow( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + int /* screen_number */ +#endif +); +extern Status XGetCommand( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + char*** /* argv_return */, + int* /* argc_return */ +#endif +); +extern Status XGetWMColormapWindows( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + Window** /* windows_return */, + int* /* count_return */ +#endif +); +extern Status XSetWMColormapWindows( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + Window* /* colormap_windows */, + int /* count */ +#endif +); +extern void XFreeStringList( +#if NeedFunctionPrototypes + char** /* list */ +#endif +); +extern void XSetTransientForHint( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + Window /* prop_window */ +#endif +); + +/* The following are given in alphabetical order */ + +extern void XActivateScreenSaver( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); + +extern void XAddHost( +#if NeedFunctionPrototypes + Display* /* display */, + XHostAddress* /* host */ +#endif +); + +extern void XAddHosts( +#if NeedFunctionPrototypes + Display* /* display */, + XHostAddress* /* hosts */, + int /* num_hosts */ +#endif +); + +extern void XAddToExtensionList( +#if NeedFunctionPrototypes + struct _XExtData** /* structure */, + XExtData* /* ext_data */ +#endif +); + +extern void XAddToSaveSet( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */ +#endif +); + +extern Status XAllocColor( +#if NeedFunctionPrototypes + Display* /* display */, + Colormap /* colormap */, + XColor* /* screen_in_out */ +#endif +); + +extern Status XAllocColorCells( +#if NeedFunctionPrototypes + Display* /* display */, + Colormap /* colormap */, + Bool /* contig */, + unsigned long* /* plane_masks_return */, + unsigned int /* nplanes */, + unsigned long* /* pixels_return */, + unsigned int /* npixels */ +#endif +); + +extern Status XAllocColorPlanes( +#if NeedFunctionPrototypes + Display* /* display */, + Colormap /* colormap */, + Bool /* contig */, + unsigned long* /* pixels_return */, + int /* ncolors */, + int /* nreds */, + int /* ngreens */, + int /* nblues */, + unsigned long* /* rmask_return */, + unsigned long* /* gmask_return */, + unsigned long* /* bmask_return */ +#endif +); + +extern Status XAllocNamedColor( +#if NeedFunctionPrototypes + Display* /* display */, + Colormap /* colormap */, + _Xconst char* /* color_name */, + XColor* /* screen_def_return */, + XColor* /* exact_def_return */ +#endif +); + +extern void XAllowEvents( +#if NeedFunctionPrototypes + Display* /* display */, + int /* event_mode */, + Time /* time */ +#endif +); + +extern void XAutoRepeatOff( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); + +extern void XAutoRepeatOn( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); + +extern void XBell( +#if NeedFunctionPrototypes + Display* /* display */, + int /* percent */ +#endif +); + +extern int XBitmapBitOrder( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); + +extern int XBitmapPad( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); + +extern int XBitmapUnit( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); + +extern int XCellsOfScreen( +#if NeedFunctionPrototypes + Screen* /* screen */ +#endif +); + +extern void XChangeActivePointerGrab( +#if NeedFunctionPrototypes + Display* /* display */, + unsigned int /* event_mask */, + Cursor /* cursor */, + Time /* time */ +#endif +); + +extern void XChangeGC( +#if NeedFunctionPrototypes + Display* /* display */, + GC /* gc */, + unsigned long /* valuemask */, + XGCValues* /* values */ +#endif +); + +extern void XChangeKeyboardControl( +#if NeedFunctionPrototypes + Display* /* display */, + unsigned long /* value_mask */, + XKeyboardControl* /* values */ +#endif +); + +extern void XChangeKeyboardMapping( +#if NeedFunctionPrototypes + Display* /* display */, + int /* first_keycode */, + int /* keysyms_per_keycode */, + KeySym* /* keysyms */, + int /* num_codes */ +#endif +); + +extern void XChangePointerControl( +#if NeedFunctionPrototypes + Display* /* display */, + Bool /* do_accel */, + Bool /* do_threshold */, + int /* accel_numerator */, + int /* accel_denominator */, + int /* threshold */ +#endif +); + +extern void XChangeProperty( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + Atom /* property */, + Atom /* type */, + int /* format */, + int /* mode */, + _Xconst unsigned char* /* data */, + int /* nelements */ +#endif +); + +extern void XChangeSaveSet( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + int /* change_mode */ +#endif +); + +extern void XChangeWindowAttributes( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + unsigned long /* valuemask */, + XSetWindowAttributes* /* attributes */ +#endif +); + +extern Bool XCheckIfEvent( +#if NeedFunctionPrototypes + Display* /* display */, + XEvent* /* event_return */, + Bool (*) ( +#if NeedNestedPrototypes + Display* /* display */, + XEvent* /* event */, + XPointer /* arg */ +#endif + ) /* predicate */, + XPointer /* arg */ +#endif +); + +extern Bool XCheckMaskEvent( +#if NeedFunctionPrototypes + Display* /* display */, + long /* event_mask */, + XEvent* /* event_return */ +#endif +); + +extern Bool XCheckTypedEvent( +#if NeedFunctionPrototypes + Display* /* display */, + int /* event_type */, + XEvent* /* event_return */ +#endif +); + +extern Bool XCheckTypedWindowEvent( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + int /* event_type */, + XEvent* /* event_return */ +#endif +); + +extern Bool XCheckWindowEvent( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + long /* event_mask */, + XEvent* /* event_return */ +#endif +); + +extern void XCirculateSubwindows( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + int /* direction */ +#endif +); + +extern void XCirculateSubwindowsDown( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */ +#endif +); + +extern void XCirculateSubwindowsUp( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */ +#endif +); + +extern void XClearArea( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + int /* x */, + int /* y */, + unsigned int /* width */, + unsigned int /* height */, + Bool /* exposures */ +#endif +); + +extern void XClearWindow( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */ +#endif +); + +extern void XCloseDisplay( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); + +extern void XConfigureWindow( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + unsigned int /* value_mask */, + XWindowChanges* /* values */ +#endif +); + +extern int XConnectionNumber( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); + +extern void XConvertSelection( +#if NeedFunctionPrototypes + Display* /* display */, + Atom /* selection */, + Atom /* target */, + Atom /* property */, + Window /* requestor */, + Time /* time */ +#endif +); + +extern void XCopyArea( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* src */, + Drawable /* dest */, + GC /* gc */, + int /* src_x */, + int /* src_y */, + unsigned int /* width */, + unsigned int /* height */, + int /* dest_x */, + int /* dest_y */ +#endif +); + +extern void XCopyGC( +#if NeedFunctionPrototypes + Display* /* display */, + GC /* src */, + unsigned long /* valuemask */, + GC /* dest */ +#endif +); + +extern void XCopyPlane( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* src */, + Drawable /* dest */, + GC /* gc */, + int /* src_x */, + int /* src_y */, + unsigned int /* width */, + unsigned int /* height */, + int /* dest_x */, + int /* dest_y */, + unsigned long /* plane */ +#endif +); + +extern int XDefaultDepth( +#if NeedFunctionPrototypes + Display* /* display */, + int /* screen_number */ +#endif +); + +extern int XDefaultDepthOfScreen( +#if NeedFunctionPrototypes + Screen* /* screen */ +#endif +); + +extern int XDefaultScreen( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); + +extern void XDefineCursor( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + Cursor /* cursor */ +#endif +); + +extern void XDeleteProperty( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + Atom /* property */ +#endif +); + +extern void XDestroyWindow( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */ +#endif +); + +extern void XDestroySubwindows( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */ +#endif +); + +extern int XDoesBackingStore( +#if NeedFunctionPrototypes + Screen* /* screen */ +#endif +); + +extern Bool XDoesSaveUnders( +#if NeedFunctionPrototypes + Screen* /* screen */ +#endif +); + +extern void XDisableAccessControl( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); + + +extern int XDisplayCells( +#if NeedFunctionPrototypes + Display* /* display */, + int /* screen_number */ +#endif +); + +extern int XDisplayHeight( +#if NeedFunctionPrototypes + Display* /* display */, + int /* screen_number */ +#endif +); + +extern int XDisplayHeightMM( +#if NeedFunctionPrototypes + Display* /* display */, + int /* screen_number */ +#endif +); + +extern void XDisplayKeycodes( +#if NeedFunctionPrototypes + Display* /* display */, + int* /* min_keycodes_return */, + int* /* max_keycodes_return */ +#endif +); + +extern int XDisplayPlanes( +#if NeedFunctionPrototypes + Display* /* display */, + int /* screen_number */ +#endif +); + +extern int XDisplayWidth( +#if NeedFunctionPrototypes + Display* /* display */, + int /* screen_number */ +#endif +); + +extern int XDisplayWidthMM( +#if NeedFunctionPrototypes + Display* /* display */, + int /* screen_number */ +#endif +); + +extern void XDrawArc( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + GC /* gc */, + int /* x */, + int /* y */, + unsigned int /* width */, + unsigned int /* height */, + int /* angle1 */, + int /* angle2 */ +#endif +); + +extern void XDrawArcs( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + GC /* gc */, + XArc* /* arcs */, + int /* narcs */ +#endif +); + +extern void XDrawImageString( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + GC /* gc */, + int /* x */, + int /* y */, + _Xconst char* /* string */, + int /* length */ +#endif +); + +extern void XDrawImageString16( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + GC /* gc */, + int /* x */, + int /* y */, + _Xconst XChar2b* /* string */, + int /* length */ +#endif +); + +extern void XDrawLine( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + GC /* gc */, + int /* x1 */, + int /* y1 */, + int /* x2 */, + int /* y2 */ +#endif +); + +extern void XDrawLines( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + GC /* gc */, + XPoint* /* points */, + int /* npoints */, + int /* mode */ +#endif +); + +extern void XDrawPoint( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + GC /* gc */, + int /* x */, + int /* y */ +#endif +); + +extern void XDrawPoints( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + GC /* gc */, + XPoint* /* points */, + int /* npoints */, + int /* mode */ +#endif +); + +extern void XDrawRectangle( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + GC /* gc */, + int /* x */, + int /* y */, + unsigned int /* width */, + unsigned int /* height */ +#endif +); + +extern void XDrawRectangles( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + GC /* gc */, + XRectangle* /* rectangles */, + int /* nrectangles */ +#endif +); + +extern void XDrawSegments( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + GC /* gc */, + XSegment* /* segments */, + int /* nsegments */ +#endif +); + +extern void XDrawString( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + GC /* gc */, + int /* x */, + int /* y */, + _Xconst char* /* string */, + int /* length */ +#endif +); + +extern void XDrawString16( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + GC /* gc */, + int /* x */, + int /* y */, + _Xconst XChar2b* /* string */, + int /* length */ +#endif +); + +extern void XDrawText( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + GC /* gc */, + int /* x */, + int /* y */, + XTextItem* /* items */, + int /* nitems */ +#endif +); + +extern void XDrawText16( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + GC /* gc */, + int /* x */, + int /* y */, + XTextItem16* /* items */, + int /* nitems */ +#endif +); + +extern void XEnableAccessControl( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); + +extern int XEventsQueued( +#if NeedFunctionPrototypes + Display* /* display */, + int /* mode */ +#endif +); + +extern Status XFetchName( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + char** /* window_name_return */ +#endif +); + +extern void XFillArc( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + GC /* gc */, + int /* x */, + int /* y */, + unsigned int /* width */, + unsigned int /* height */, + int /* angle1 */, + int /* angle2 */ +#endif +); + +extern void XFillArcs( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + GC /* gc */, + XArc* /* arcs */, + int /* narcs */ +#endif +); + +extern void XFillPolygon( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + GC /* gc */, + XPoint* /* points */, + int /* npoints */, + int /* shape */, + int /* mode */ +#endif +); + +extern void XFillRectangle( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + GC /* gc */, + int /* x */, + int /* y */, + unsigned int /* width */, + unsigned int /* height */ +#endif +); + +extern void XFillRectangles( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + GC /* gc */, + XRectangle* /* rectangles */, + int /* nrectangles */ +#endif +); + +extern void XFlush( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); + +extern void XForceScreenSaver( +#if NeedFunctionPrototypes + Display* /* display */, + int /* mode */ +#endif +); + +extern void XFree( +#if NeedFunctionPrototypes + void* /* data */ +#endif +); + +extern void XFreeColormap( +#if NeedFunctionPrototypes + Display* /* display */, + Colormap /* colormap */ +#endif +); + +extern void XFreeColors( +#if NeedFunctionPrototypes + Display* /* display */, + Colormap /* colormap */, + unsigned long* /* pixels */, + int /* npixels */, + unsigned long /* planes */ +#endif +); + +extern void XFreeCursor( +#if NeedFunctionPrototypes + Display* /* display */, + Cursor /* cursor */ +#endif +); + +extern void XFreeExtensionList( +#if NeedFunctionPrototypes + char** /* list */ +#endif +); + +extern void XFreeFont( +#if NeedFunctionPrototypes + Display* /* display */, + XFontStruct* /* font_struct */ +#endif +); + +extern void XFreeFontInfo( +#if NeedFunctionPrototypes + char** /* names */, + XFontStruct* /* free_info */, + int /* actual_count */ +#endif +); + +extern void XFreeFontNames( +#if NeedFunctionPrototypes + char** /* list */ +#endif +); + +extern void XFreeFontPath( +#if NeedFunctionPrototypes + char** /* list */ +#endif +); + +extern void XFreeGC( +#if NeedFunctionPrototypes + Display* /* display */, + GC /* gc */ +#endif +); + +extern void XFreeModifiermap( +#if NeedFunctionPrototypes + XModifierKeymap* /* modmap */ +#endif +); + +extern void XFreePixmap( +#if NeedFunctionPrototypes + Display* /* display */, + Pixmap /* pixmap */ +#endif +); + +extern int XGeometry( +#if NeedFunctionPrototypes + Display* /* display */, + int /* screen */, + _Xconst char* /* position */, + _Xconst char* /* default_position */, + unsigned int /* bwidth */, + unsigned int /* fwidth */, + unsigned int /* fheight */, + int /* xadder */, + int /* yadder */, + int* /* x_return */, + int* /* y_return */, + int* /* width_return */, + int* /* height_return */ +#endif +); + +extern void XGetErrorDatabaseText( +#if NeedFunctionPrototypes + Display* /* display */, + _Xconst char* /* name */, + _Xconst char* /* message */, + _Xconst char* /* default_string */, + char* /* buffer_return */, + int /* length */ +#endif +); + +extern void XGetErrorText( +#if NeedFunctionPrototypes + Display* /* display */, + int /* code */, + char* /* buffer_return */, + int /* length */ +#endif +); + +extern Bool XGetFontProperty( +#if NeedFunctionPrototypes + XFontStruct* /* font_struct */, + Atom /* atom */, + unsigned long* /* value_return */ +#endif +); + +extern Status XGetGCValues( +#if NeedFunctionPrototypes + Display* /* display */, + GC /* gc */, + unsigned long /* valuemask */, + XGCValues* /* values_return */ +#endif +); + +extern Status XGetGeometry( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + Window* /* root_return */, + int* /* x_return */, + int* /* y_return */, + unsigned int* /* width_return */, + unsigned int* /* height_return */, + unsigned int* /* border_width_return */, + unsigned int* /* depth_return */ +#endif +); + +extern Status XGetIconName( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + char** /* icon_name_return */ +#endif +); + +extern void XGetInputFocus( +#if NeedFunctionPrototypes + Display* /* display */, + Window* /* focus_return */, + int* /* revert_to_return */ +#endif +); + +extern void XGetKeyboardControl( +#if NeedFunctionPrototypes + Display* /* display */, + XKeyboardState* /* values_return */ +#endif +); + +extern void XGetPointerControl( +#if NeedFunctionPrototypes + Display* /* display */, + int* /* accel_numerator_return */, + int* /* accel_denominator_return */, + int* /* threshold_return */ +#endif +); + +extern int XGetPointerMapping( +#if NeedFunctionPrototypes + Display* /* display */, + unsigned char* /* map_return */, + int /* nmap */ +#endif +); + +extern void XGetScreenSaver( +#if NeedFunctionPrototypes + Display* /* display */, + int* /* timeout_return */, + int* /* interval_return */, + int* /* prefer_blanking_return */, + int* /* allow_exposures_return */ +#endif +); + +extern Status XGetTransientForHint( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + Window* /* prop_window_return */ +#endif +); + +extern int XGetWindowProperty( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + Atom /* property */, + long /* long_offset */, + long /* long_length */, + Bool /* delete */, + Atom /* req_type */, + Atom* /* actual_type_return */, + int* /* actual_format_return */, + unsigned long* /* nitems_return */, + unsigned long* /* bytes_after_return */, + unsigned char** /* prop_return */ +#endif +); + +extern Status XGetWindowAttributes( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XWindowAttributes* /* window_attributes_return */ +#endif +); + +extern void XGrabButton( +#if NeedFunctionPrototypes + Display* /* display */, + unsigned int /* button */, + unsigned int /* modifiers */, + Window /* grab_window */, + Bool /* owner_events */, + unsigned int /* event_mask */, + int /* pointer_mode */, + int /* keyboard_mode */, + Window /* confine_to */, + Cursor /* cursor */ +#endif +); + +extern void XGrabKey( +#if NeedFunctionPrototypes + Display* /* display */, + int /* keycode */, + unsigned int /* modifiers */, + Window /* grab_window */, + Bool /* owner_events */, + int /* pointer_mode */, + int /* keyboard_mode */ +#endif +); + +extern int XGrabKeyboard( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* grab_window */, + Bool /* owner_events */, + int /* pointer_mode */, + int /* keyboard_mode */, + Time /* time */ +#endif +); + +extern int XGrabPointer( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* grab_window */, + Bool /* owner_events */, + unsigned int /* event_mask */, + int /* pointer_mode */, + int /* keyboard_mode */, + Window /* confine_to */, + Cursor /* cursor */, + Time /* time */ +#endif +); + +extern void XGrabServer( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); + +extern int XHeightMMOfScreen( +#if NeedFunctionPrototypes + Screen* /* screen */ +#endif +); + +extern int XHeightOfScreen( +#if NeedFunctionPrototypes + Screen* /* screen */ +#endif +); + +extern void XIfEvent( +#if NeedFunctionPrototypes + Display* /* display */, + XEvent* /* event_return */, + Bool (*) ( +#if NeedNestedPrototypes + Display* /* display */, + XEvent* /* event */, + XPointer /* arg */ +#endif + ) /* predicate */, + XPointer /* arg */ +#endif +); + +extern int XImageByteOrder( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); + +extern void XInstallColormap( +#if NeedFunctionPrototypes + Display* /* display */, + Colormap /* colormap */ +#endif +); + +extern KeyCode XKeysymToKeycode( +#if NeedFunctionPrototypes + Display* /* display */, + KeySym /* keysym */ +#endif +); + +extern void XKillClient( +#if NeedFunctionPrototypes + Display* /* display */, + XID /* resource */ +#endif +); + +extern unsigned long XLastKnownRequestProcessed( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); + +extern Status XLookupColor( +#if NeedFunctionPrototypes + Display* /* display */, + Colormap /* colormap */, + _Xconst char* /* color_name */, + XColor* /* exact_def_return */, + XColor* /* screen_def_return */ +#endif +); + +extern void XLowerWindow( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */ +#endif +); + +extern void XMapRaised( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */ +#endif +); + +extern void XMapSubwindows( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */ +#endif +); + +extern void XMapWindow( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */ +#endif +); + +extern void XMaskEvent( +#if NeedFunctionPrototypes + Display* /* display */, + long /* event_mask */, + XEvent* /* event_return */ +#endif +); + +extern int XMaxCmapsOfScreen( +#if NeedFunctionPrototypes + Screen* /* screen */ +#endif +); + +extern int XMinCmapsOfScreen( +#if NeedFunctionPrototypes + Screen* /* screen */ +#endif +); + +extern void XMoveResizeWindow( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + int /* x */, + int /* y */, + unsigned int /* width */, + unsigned int /* height */ +#endif +); + +extern void XMoveWindow( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + int /* x */, + int /* y */ +#endif +); + +extern void XNextEvent( +#if NeedFunctionPrototypes + Display* /* display */, + XEvent* /* event_return */ +#endif +); + +extern void XNoOp( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); + +extern Status XParseColor( +#if NeedFunctionPrototypes + Display* /* display */, + Colormap /* colormap */, + _Xconst char* /* spec */, + XColor* /* exact_def_return */ +#endif +); + +extern int XParseGeometry( +#if NeedFunctionPrototypes + _Xconst char* /* parsestring */, + int* /* x_return */, + int* /* y_return */, + unsigned int* /* width_return */, + unsigned int* /* height_return */ +#endif +); + +extern void XPeekEvent( +#if NeedFunctionPrototypes + Display* /* display */, + XEvent* /* event_return */ +#endif +); + +extern void XPeekIfEvent( +#if NeedFunctionPrototypes + Display* /* display */, + XEvent* /* event_return */, + Bool (*) ( +#if NeedNestedPrototypes + Display* /* display */, + XEvent* /* event */, + XPointer /* arg */ +#endif + ) /* predicate */, + XPointer /* arg */ +#endif +); + +extern int XPending( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); + +extern int XPlanesOfScreen( +#if NeedFunctionPrototypes + Screen* /* screen */ + +#endif +); + +extern int XProtocolRevision( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); + +extern int XProtocolVersion( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); + + +extern void XPutBackEvent( +#if NeedFunctionPrototypes + Display* /* display */, + XEvent* /* event */ +#endif +); + +extern void XPutImage( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + GC /* gc */, + XImage* /* image */, + int /* src_x */, + int /* src_y */, + int /* dest_x */, + int /* dest_y */, + unsigned int /* width */, + unsigned int /* height */ +#endif +); + +extern int XQLength( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); + +extern Status XQueryBestCursor( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + unsigned int /* width */, + unsigned int /* height */, + unsigned int* /* width_return */, + unsigned int* /* height_return */ +#endif +); + +extern Status XQueryBestSize( +#if NeedFunctionPrototypes + Display* /* display */, + int /* class */, + Drawable /* which_screen */, + unsigned int /* width */, + unsigned int /* height */, + unsigned int* /* width_return */, + unsigned int* /* height_return */ +#endif +); + +extern Status XQueryBestStipple( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* which_screen */, + unsigned int /* width */, + unsigned int /* height */, + unsigned int* /* width_return */, + unsigned int* /* height_return */ +#endif +); + +extern Status XQueryBestTile( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* which_screen */, + unsigned int /* width */, + unsigned int /* height */, + unsigned int* /* width_return */, + unsigned int* /* height_return */ +#endif +); + +extern void XQueryColor( +#if NeedFunctionPrototypes + Display* /* display */, + Colormap /* colormap */, + XColor* /* def_in_out */ +#endif +); + +extern void XQueryColors( +#if NeedFunctionPrototypes + Display* /* display */, + Colormap /* colormap */, + XColor* /* defs_in_out */, + int /* ncolors */ +#endif +); + +extern Bool XQueryExtension( +#if NeedFunctionPrototypes + Display* /* display */, + _Xconst char* /* name */, + int* /* major_opcode_return */, + int* /* first_event_return */, + int* /* first_error_return */ +#endif +); + +extern void XQueryKeymap( +#if NeedFunctionPrototypes + Display* /* display */, + char [32] /* keys_return */ +#endif +); + +extern Bool XQueryPointer( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + Window* /* root_return */, + Window* /* child_return */, + int* /* root_x_return */, + int* /* root_y_return */, + int* /* win_x_return */, + int* /* win_y_return */, + unsigned int* /* mask_return */ +#endif +); + +extern void XQueryTextExtents( +#if NeedFunctionPrototypes + Display* /* display */, + XID /* font_ID */, + _Xconst char* /* string */, + int /* nchars */, + int* /* direction_return */, + int* /* font_ascent_return */, + int* /* font_descent_return */, + XCharStruct* /* overall_return */ +#endif +); + +extern void XQueryTextExtents16( +#if NeedFunctionPrototypes + Display* /* display */, + XID /* font_ID */, + _Xconst XChar2b* /* string */, + int /* nchars */, + int* /* direction_return */, + int* /* font_ascent_return */, + int* /* font_descent_return */, + XCharStruct* /* overall_return */ +#endif +); + +extern Status XQueryTree( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + Window* /* root_return */, + Window* /* parent_return */, + Window** /* children_return */, + unsigned int* /* nchildren_return */ +#endif +); + +extern void XRaiseWindow( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */ +#endif +); + +extern int XReadBitmapFile( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + _Xconst char* /* filename */, + unsigned int* /* width_return */, + unsigned int* /* height_return */, + Pixmap* /* bitmap_return */, + int* /* x_hot_return */, + int* /* y_hot_return */ +#endif +); + +extern void XRebindKeysym( +#if NeedFunctionPrototypes + Display* /* display */, + KeySym /* keysym */, + KeySym* /* list */, + int /* mod_count */, + _Xconst unsigned char* /* string */, + int /* bytes_string */ +#endif +); + +extern void XRecolorCursor( +#if NeedFunctionPrototypes + Display* /* display */, + Cursor /* cursor */, + XColor* /* foreground_color */, + XColor* /* background_color */ +#endif +); + +extern void XRefreshKeyboardMapping( +#if NeedFunctionPrototypes + XMappingEvent* /* event_map */ +#endif +); + +extern void XRemoveFromSaveSet( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */ +#endif +); + +extern void XRemoveHost( +#if NeedFunctionPrototypes + Display* /* display */, + XHostAddress* /* host */ +#endif +); + +extern void XRemoveHosts( +#if NeedFunctionPrototypes + Display* /* display */, + XHostAddress* /* hosts */, + int /* num_hosts */ +#endif +); + +extern void XReparentWindow( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + Window /* parent */, + int /* x */, + int /* y */ +#endif +); + +extern void XResetScreenSaver( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); + +extern void XResizeWindow( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + unsigned int /* width */, + unsigned int /* height */ +#endif +); + +extern void XRestackWindows( +#if NeedFunctionPrototypes + Display* /* display */, + Window* /* windows */, + int /* nwindows */ +#endif +); + +extern void XRotateBuffers( +#if NeedFunctionPrototypes + Display* /* display */, + int /* rotate */ +#endif +); + +extern void XRotateWindowProperties( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + Atom* /* properties */, + int /* num_prop */, + int /* npositions */ +#endif +); + +extern int XScreenCount( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); + +extern void XSelectInput( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + long /* event_mask */ +#endif +); + +extern Status XSendEvent( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + Bool /* propagate */, + long /* event_mask */, + XEvent* /* event_send */ +#endif +); + +extern void XSetAccessControl( +#if NeedFunctionPrototypes + Display* /* display */, + int /* mode */ +#endif +); + +extern void XSetArcMode( +#if NeedFunctionPrototypes + Display* /* display */, + GC /* gc */, + int /* arc_mode */ +#endif +); + +extern void XSetBackground( +#if NeedFunctionPrototypes + Display* /* display */, + GC /* gc */, + unsigned long /* background */ +#endif +); + +extern void XSetClipMask( +#if NeedFunctionPrototypes + Display* /* display */, + GC /* gc */, + Pixmap /* pixmap */ +#endif +); + +extern void XSetClipOrigin( +#if NeedFunctionPrototypes + Display* /* display */, + GC /* gc */, + int /* clip_x_origin */, + int /* clip_y_origin */ +#endif +); + +extern void XSetClipRectangles( +#if NeedFunctionPrototypes + Display* /* display */, + GC /* gc */, + int /* clip_x_origin */, + int /* clip_y_origin */, + XRectangle* /* rectangles */, + int /* n */, + int /* ordering */ +#endif +); + +extern void XSetCloseDownMode( +#if NeedFunctionPrototypes + Display* /* display */, + int /* close_mode */ +#endif +); + +extern void XSetCommand( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + char** /* argv */, + int /* argc */ +#endif +); + +extern void XSetDashes( +#if NeedFunctionPrototypes + Display* /* display */, + GC /* gc */, + int /* dash_offset */, + _Xconst char* /* dash_list */, + int /* n */ +#endif +); + +extern void XSetFillRule( +#if NeedFunctionPrototypes + Display* /* display */, + GC /* gc */, + int /* fill_rule */ +#endif +); + +extern void XSetFillStyle( +#if NeedFunctionPrototypes + Display* /* display */, + GC /* gc */, + int /* fill_style */ +#endif +); + +extern void XSetFont( +#if NeedFunctionPrototypes + Display* /* display */, + GC /* gc */, + Font /* font */ +#endif +); + +extern void XSetFontPath( +#if NeedFunctionPrototypes + Display* /* display */, + char** /* directories */, + int /* ndirs */ +#endif +); + +extern void XSetForeground( +#if NeedFunctionPrototypes + Display* /* display */, + GC /* gc */, + unsigned long /* foreground */ +#endif +); + +extern void XSetFunction( +#if NeedFunctionPrototypes + Display* /* display */, + GC /* gc */, + int /* function */ +#endif +); + +extern void XSetGraphicsExposures( +#if NeedFunctionPrototypes + Display* /* display */, + GC /* gc */, + Bool /* graphics_exposures */ +#endif +); + +extern void XSetIconName( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + _Xconst char* /* icon_name */ +#endif +); + +extern void XSetInputFocus( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* focus */, + int /* revert_to */, + Time /* time */ +#endif +); + +extern void XSetLineAttributes( +#if NeedFunctionPrototypes + Display* /* display */, + GC /* gc */, + unsigned int /* line_width */, + int /* line_style */, + int /* cap_style */, + int /* join_style */ +#endif +); + +extern int XSetModifierMapping( +#if NeedFunctionPrototypes + Display* /* display */, + XModifierKeymap* /* modmap */ +#endif +); + +extern void XSetPlaneMask( +#if NeedFunctionPrototypes + Display* /* display */, + GC /* gc */, + unsigned long /* plane_mask */ +#endif +); + +extern int XSetPointerMapping( +#if NeedFunctionPrototypes + Display* /* display */, + _Xconst unsigned char* /* map */, + int /* nmap */ +#endif +); + +extern void XSetScreenSaver( +#if NeedFunctionPrototypes + Display* /* display */, + int /* timeout */, + int /* interval */, + int /* prefer_blanking */, + int /* allow_exposures */ +#endif +); + +extern void XSetSelectionOwner( +#if NeedFunctionPrototypes + Display* /* display */, + Atom /* selection */, + Window /* owner */, + Time /* time */ +#endif +); + +extern void XSetState( +#if NeedFunctionPrototypes + Display* /* display */, + GC /* gc */, + unsigned long /* foreground */, + unsigned long /* background */, + int /* function */, + unsigned long /* plane_mask */ +#endif +); + +extern void XSetStipple( +#if NeedFunctionPrototypes + Display* /* display */, + GC /* gc */, + Pixmap /* stipple */ +#endif +); + +extern void XSetSubwindowMode( +#if NeedFunctionPrototypes + Display* /* display */, + GC /* gc */, + int /* subwindow_mode */ +#endif +); + +extern void XSetTSOrigin( +#if NeedFunctionPrototypes + Display* /* display */, + GC /* gc */, + int /* ts_x_origin */, + int /* ts_y_origin */ +#endif +); + +extern void XSetTile( +#if NeedFunctionPrototypes + Display* /* display */, + GC /* gc */, + Pixmap /* tile */ +#endif +); + +extern void XSetWindowBackground( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + unsigned long /* background_pixel */ +#endif +); + +extern void XSetWindowBackgroundPixmap( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + Pixmap /* background_pixmap */ +#endif +); + +extern void XSetWindowBorder( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + unsigned long /* border_pixel */ +#endif +); + +extern void XSetWindowBorderPixmap( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + Pixmap /* border_pixmap */ +#endif +); + +extern void XSetWindowBorderWidth( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + unsigned int /* width */ +#endif +); + +extern void XSetWindowColormap( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + Colormap /* colormap */ +#endif +); + +extern void XStoreBuffer( +#if NeedFunctionPrototypes + Display* /* display */, + _Xconst char* /* bytes */, + int /* nbytes */, + int /* buffer */ +#endif +); + +extern void XStoreBytes( +#if NeedFunctionPrototypes + Display* /* display */, + _Xconst char* /* bytes */, + int /* nbytes */ +#endif +); + +extern void XStoreColor( +#if NeedFunctionPrototypes + Display* /* display */, + Colormap /* colormap */, + XColor* /* color */ +#endif +); + +extern void XStoreColors( +#if NeedFunctionPrototypes + Display* /* display */, + Colormap /* colormap */, + XColor* /* color */, + int /* ncolors */ +#endif +); + +extern void XStoreName( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + _Xconst char* /* window_name */ +#endif +); + +extern void XStoreNamedColor( +#if NeedFunctionPrototypes + Display* /* display */, + Colormap /* colormap */, + _Xconst char* /* color */, + unsigned long /* pixel */, + int /* flags */ +#endif +); + +extern void XSync( +#if NeedFunctionPrototypes + Display* /* display */, + Bool /* discard */ +#endif +); + +extern void XTextExtents( +#if NeedFunctionPrototypes + XFontStruct* /* font_struct */, + _Xconst char* /* string */, + int /* nchars */, + int* /* direction_return */, + int* /* font_ascent_return */, + int* /* font_descent_return */, + XCharStruct* /* overall_return */ +#endif +); + +extern void XTextExtents16( +#if NeedFunctionPrototypes + XFontStruct* /* font_struct */, + _Xconst XChar2b* /* string */, + int /* nchars */, + int* /* direction_return */, + int* /* font_ascent_return */, + int* /* font_descent_return */, + XCharStruct* /* overall_return */ +#endif +); + +extern int XTextWidth( +#if NeedFunctionPrototypes + XFontStruct* /* font_struct */, + _Xconst char* /* string */, + int /* count */ +#endif +); + +extern int XTextWidth16( +#if NeedFunctionPrototypes + XFontStruct* /* font_struct */, + _Xconst XChar2b* /* string */, + int /* count */ +#endif +); + +extern Bool XTranslateCoordinates( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* src_w */, + Window /* dest_w */, + int /* src_x */, + int /* src_y */, + int* /* dest_x_return */, + int* /* dest_y_return */, + Window* /* child_return */ +#endif +); + +extern void XUndefineCursor( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */ +#endif +); + +extern void XUngrabButton( +#if NeedFunctionPrototypes + Display* /* display */, + unsigned int /* button */, + unsigned int /* modifiers */, + Window /* grab_window */ +#endif +); + +extern void XUngrabKey( +#if NeedFunctionPrototypes + Display* /* display */, + int /* keycode */, + unsigned int /* modifiers */, + Window /* grab_window */ +#endif +); + +extern void XUngrabKeyboard( +#if NeedFunctionPrototypes + Display* /* display */, + Time /* time */ +#endif +); + +extern void XUngrabPointer( +#if NeedFunctionPrototypes + Display* /* display */, + Time /* time */ +#endif +); + +extern void XUngrabServer( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); + +extern void XUninstallColormap( +#if NeedFunctionPrototypes + Display* /* display */, + Colormap /* colormap */ +#endif +); + +extern void XUnloadFont( +#if NeedFunctionPrototypes + Display* /* display */, + Font /* font */ +#endif +); + +extern void XUnmapSubwindows( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */ +#endif +); + +extern void XUnmapWindow( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */ +#endif +); + +extern int XVendorRelease( +#if NeedFunctionPrototypes + Display* /* display */ +#endif +); + +extern void XWarpPointer( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* src_w */, + Window /* dest_w */, + int /* src_x */, + int /* src_y */, + unsigned int /* src_width */, + unsigned int /* src_height */, + int /* dest_x */, + int /* dest_y */ +#endif +); + +extern int XWidthMMOfScreen( +#if NeedFunctionPrototypes + Screen* /* screen */ +#endif +); + +extern int XWidthOfScreen( +#if NeedFunctionPrototypes + Screen* /* screen */ +#endif +); + +extern void XWindowEvent( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + long /* event_mask */, + XEvent* /* event_return */ +#endif +); + +extern int XWriteBitmapFile( +#if NeedFunctionPrototypes + Display* /* display */, + _Xconst char* /* filename */, + Pixmap /* bitmap */, + unsigned int /* width */, + unsigned int /* height */, + int /* x_hot */, + int /* y_hot */ +#endif +); + +extern Bool XSupportsLocale( +#if NeedFunctionPrototypes + void +#endif +); + +extern char *XSetLocaleModifiers( +#if NeedFunctionPrototypes + _Xconst char* /* modifier_list */ +#endif +); + +extern XFontSet XCreateFontSet( +#if NeedFunctionPrototypes + Display* /* display */, + _Xconst char* /* base_font_name_list */, + char*** /* missing_charset_list */, + int* /* missing_charset_count */, + char** /* def_string */ +#endif +); + +extern void XFreeFontSet( +#if NeedFunctionPrototypes + Display* /* display */, + XFontSet /* font_set */ +#endif +); + +extern int XFontsOfFontSet( +#if NeedFunctionPrototypes + XFontSet /* font_set */, + XFontStruct*** /* font_struct_list */, + char*** /* font_name_list */ +#endif +); + +extern char *XBaseFontNameListOfFontSet( +#if NeedFunctionPrototypes + XFontSet /* font_set */ +#endif +); + +extern char *XLocaleOfFontSet( +#if NeedFunctionPrototypes + XFontSet /* font_set */ +#endif +); + +extern Bool XContextDependentDrawing( +#if NeedFunctionPrototypes + XFontSet /* font_set */ +#endif +); + +extern XFontSetExtents *XExtentsOfFontSet( +#if NeedFunctionPrototypes + XFontSet /* font_set */ +#endif +); + +extern int XmbTextEscapement( +#if NeedFunctionPrototypes + XFontSet /* font_set */, + _Xconst char* /* text */, + int /* bytes_text */ +#endif +); + +extern int XwcTextEscapement( +#if NeedFunctionPrototypes + XFontSet /* font_set */, + wchar_t* /* text */, + int /* num_wchars */ +#endif +); + +extern int XmbTextExtents( +#if NeedFunctionPrototypes + XFontSet /* font_set */, + _Xconst char* /* text */, + int /* bytes_text */, + XRectangle* /* overall_ink_return */, + XRectangle* /* overall_logical_return */ +#endif +); + +extern int XwcTextExtents( +#if NeedFunctionPrototypes + XFontSet /* font_set */, + wchar_t* /* text */, + int /* num_wchars */, + XRectangle* /* overall_ink_return */, + XRectangle* /* overall_logical_return */ +#endif +); + +extern Status XmbTextPerCharExtents( +#if NeedFunctionPrototypes + XFontSet /* font_set */, + _Xconst char* /* text */, + int /* bytes_text */, + XRectangle* /* ink_extents_buffer */, + XRectangle* /* logical_extents_buffer */, + int /* buffer_size */, + int* /* num_chars */, + XRectangle* /* overall_ink_return */, + XRectangle* /* overall_logical_return */ +#endif +); + +extern Status XwcTextPerCharExtents( +#if NeedFunctionPrototypes + XFontSet /* font_set */, + wchar_t* /* text */, + int /* num_wchars */, + XRectangle* /* ink_extents_buffer */, + XRectangle* /* logical_extents_buffer */, + int /* buffer_size */, + int* /* num_chars */, + XRectangle* /* overall_ink_return */, + XRectangle* /* overall_logical_return */ +#endif +); + +extern void XmbDrawText( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + GC /* gc */, + int /* x */, + int /* y */, + XmbTextItem* /* text_items */, + int /* nitems */ +#endif +); + +extern void XwcDrawText( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + GC /* gc */, + int /* x */, + int /* y */, + XwcTextItem* /* text_items */, + int /* nitems */ +#endif +); + +extern void XmbDrawString( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + XFontSet /* font_set */, + GC /* gc */, + int /* x */, + int /* y */, + _Xconst char* /* text */, + int /* bytes_text */ +#endif +); + +extern void XwcDrawString( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + XFontSet /* font_set */, + GC /* gc */, + int /* x */, + int /* y */, + wchar_t* /* text */, + int /* num_wchars */ +#endif +); + +extern void XmbDrawImageString( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + XFontSet /* font_set */, + GC /* gc */, + int /* x */, + int /* y */, + _Xconst char* /* text */, + int /* bytes_text */ +#endif +); + +extern void XwcDrawImageString( +#if NeedFunctionPrototypes + Display* /* display */, + Drawable /* d */, + XFontSet /* font_set */, + GC /* gc */, + int /* x */, + int /* y */, + wchar_t* /* text */, + int /* num_wchars */ +#endif +); + +extern XIM XOpenIM( +#if NeedFunctionPrototypes + Display* /* dpy */, + struct _XrmHashBucketRec* /* rdb */, + char* /* res_name */, + char* /* res_class */ +#endif +); + +extern Status XCloseIM( +#if NeedFunctionPrototypes + XIM /* im */ +#endif +); + +extern char *XGetIMValues( +#if NeedVarargsPrototypes + XIM /* im */, ... +#endif +); + +extern Display *XDisplayOfIM( +#if NeedFunctionPrototypes + XIM /* im */ +#endif +); + +extern char *XLocaleOfIM( +#if NeedFunctionPrototypes + XIM /* im*/ +#endif +); + +extern XIC XCreateIC( +#if NeedVarargsPrototypes + XIM /* im */, ... +#endif +); + +extern void XDestroyIC( +#if NeedFunctionPrototypes + XIC /* ic */ +#endif +); + +extern void XSetICFocus( +#if NeedFunctionPrototypes + XIC /* ic */ +#endif +); + +extern void XUnsetICFocus( +#if NeedFunctionPrototypes + XIC /* ic */ +#endif +); + +extern wchar_t *XwcResetIC( +#if NeedFunctionPrototypes + XIC /* ic */ +#endif +); + +extern char *XmbResetIC( +#if NeedFunctionPrototypes + XIC /* ic */ +#endif +); + +extern char *XSetICValues( +#if NeedVarargsPrototypes + XIC /* ic */, ... +#endif +); + +extern char *XGetICValues( +#if NeedVarargsPrototypes + XIC /* ic */, ... +#endif +); + +extern XIM XIMOfIC( +#if NeedFunctionPrototypes + XIC /* ic */ +#endif +); + +extern Bool XFilterEvent( +#if NeedFunctionPrototypes + XEvent* /* event */, + Window /* window */ +#endif +); + +extern int XmbLookupString( +#if NeedFunctionPrototypes + XIC /* ic */, + XKeyPressedEvent* /* event */, + char* /* buffer_return */, + int /* bytes_buffer */, + KeySym* /* keysym_return */, + Status* /* status_return */ +#endif +); + +extern int XwcLookupString( +#if NeedFunctionPrototypes + XIC /* ic */, + XKeyPressedEvent* /* event */, + wchar_t* /* buffer_return */, + int /* wchars_buffer */, + KeySym* /* keysym_return */, + Status* /* status_return */ +#endif +); + +extern XVaNestedList XVaCreateNestedList( +#if NeedVarargsPrototypes + int /*unused*/, ... +#endif +); + +_XFUNCPROTOEND + +#ifdef MAC_TCL +# undef Cursor +# undef Region +#endif + +#endif /* _XLIB_H_ */ diff --git a/xlib/X11/Xutil.h b/xlib/X11/Xutil.h new file mode 100644 index 0000000..6332850 --- /dev/null +++ b/xlib/X11/Xutil.h @@ -0,0 +1,879 @@ +/* $XConsortium: Xutil.h,v 11.73 91/07/30 16:21:37 rws Exp $ */ + +/*********************************************************** +Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts, +and the Massachusetts Institute of Technology, Cambridge, Massachusetts. + + All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the names of Digital or MIT not be +used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission. + +DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + +******************************************************************/ + +#ifndef _XUTIL_H_ +#define _XUTIL_H_ + +/* You must include <X11/Xlib.h> before including this file */ + +#ifdef MAC_TCL +# define Region XRegion +#endif + +/* + * Bitmask returned by XParseGeometry(). Each bit tells if the corresponding + * value (x, y, width, height) was found in the parsed string. + */ +#define NoValue 0x0000 +#define XValue 0x0001 +#define YValue 0x0002 +#define WidthValue 0x0004 +#define HeightValue 0x0008 +#define AllValues 0x000F +#define XNegative 0x0010 +#define YNegative 0x0020 + +/* + * new version containing base_width, base_height, and win_gravity fields; + * used with WM_NORMAL_HINTS. + */ +typedef struct { + long flags; /* marks which fields in this structure are defined */ + int x, y; /* obsolete for new window mgrs, but clients */ + int width, height; /* should set so old wm's don't mess up */ + int min_width, min_height; + int max_width, max_height; + int width_inc, height_inc; + struct { + int x; /* numerator */ + int y; /* denominator */ + } min_aspect, max_aspect; + int base_width, base_height; /* added by ICCCM version 1 */ + int win_gravity; /* added by ICCCM version 1 */ +} XSizeHints; + +/* + * The next block of definitions are for window manager properties that + * clients and applications use for communication. + */ + +/* flags argument in size hints */ +#define USPosition (1L << 0) /* user specified x, y */ +#define USSize (1L << 1) /* user specified width, height */ + +#define PPosition (1L << 2) /* program specified position */ +#define PSize (1L << 3) /* program specified size */ +#define PMinSize (1L << 4) /* program specified minimum size */ +#define PMaxSize (1L << 5) /* program specified maximum size */ +#define PResizeInc (1L << 6) /* program specified resize increments */ +#define PAspect (1L << 7) /* program specified min and max aspect ratios */ +#define PBaseSize (1L << 8) /* program specified base for incrementing */ +#define PWinGravity (1L << 9) /* program specified window gravity */ + +/* obsolete */ +#define PAllHints (PPosition|PSize|PMinSize|PMaxSize|PResizeInc|PAspect) + + + +typedef struct { + long flags; /* marks which fields in this structure are defined */ + Bool input; /* does this application rely on the window manager to + get keyboard input? */ + int initial_state; /* see below */ + Pixmap icon_pixmap; /* pixmap to be used as icon */ + Window icon_window; /* window to be used as icon */ + int icon_x, icon_y; /* initial position of icon */ + Pixmap icon_mask; /* icon mask bitmap */ + XID window_group; /* id of related window group */ + /* this structure may be extended in the future */ +} XWMHints; + +/* definition for flags of XWMHints */ + +#define InputHint (1L << 0) +#define StateHint (1L << 1) +#define IconPixmapHint (1L << 2) +#define IconWindowHint (1L << 3) +#define IconPositionHint (1L << 4) +#define IconMaskHint (1L << 5) +#define WindowGroupHint (1L << 6) +#define AllHints (InputHint|StateHint|IconPixmapHint|IconWindowHint| \ +IconPositionHint|IconMaskHint|WindowGroupHint) + +/* definitions for initial window state */ +#define WithdrawnState 0 /* for windows that are not mapped */ +#define NormalState 1 /* most applications want to start this way */ +#define IconicState 3 /* application wants to start as an icon */ + +/* + * Obsolete states no longer defined by ICCCM + */ +#define DontCareState 0 /* don't know or care */ +#define ZoomState 2 /* application wants to start zoomed */ +#define InactiveState 4 /* application believes it is seldom used; */ + /* some wm's may put it on inactive menu */ + + +/* + * new structure for manipulating TEXT properties; used with WM_NAME, + * WM_ICON_NAME, WM_CLIENT_MACHINE, and WM_COMMAND. + */ +typedef struct { + unsigned char *value; /* same as Property routines */ + Atom encoding; /* prop type */ + int format; /* prop data format: 8, 16, or 32 */ + unsigned long nitems; /* number of data items in value */ +} XTextProperty; + +#define XNoMemory -1 +#define XLocaleNotSupported -2 +#define XConverterNotFound -3 + +typedef enum { + XStringStyle, /* STRING */ + XCompoundTextStyle, /* COMPOUND_TEXT */ + XTextStyle, /* text in owner's encoding (current locale)*/ + XStdICCTextStyle /* STRING, else COMPOUND_TEXT */ +} XICCEncodingStyle; + +typedef struct { + int min_width, min_height; + int max_width, max_height; + int width_inc, height_inc; +} XIconSize; + +typedef struct { + char *res_name; + char *res_class; +} XClassHint; + +/* + * These macros are used to give some sugar to the image routines so that + * naive people are more comfortable with them. + */ +#define XDestroyImage(ximage) \ + ((*((ximage)->f.destroy_image))((ximage))) +#define XGetPixel(ximage, x, y) \ + ((*((ximage)->f.get_pixel))((ximage), (x), (y))) +#define XPutPixel(ximage, x, y, pixel) \ + ((*((ximage)->f.put_pixel))((ximage), (x), (y), (pixel))) +#define XSubImage(ximage, x, y, width, height) \ + ((*((ximage)->f.sub_image))((ximage), (x), (y), (width), (height))) +#define XAddPixel(ximage, value) \ + ((*((ximage)->f.add_pixel))((ximage), (value))) + +/* + * Compose sequence status structure, used in calling XLookupString. + */ +typedef struct _XComposeStatus { + XPointer compose_ptr; /* state table pointer */ + int chars_matched; /* match state */ +} XComposeStatus; + +/* + * Keysym macros, used on Keysyms to test for classes of symbols + */ +#define IsKeypadKey(keysym) \ + (((unsigned)(keysym) >= XK_KP_Space) && ((unsigned)(keysym) <= XK_KP_Equal)) + +#define IsCursorKey(keysym) \ + (((unsigned)(keysym) >= XK_Home) && ((unsigned)(keysym) < XK_Select)) + +#define IsPFKey(keysym) \ + (((unsigned)(keysym) >= XK_KP_F1) && ((unsigned)(keysym) <= XK_KP_F4)) + +#define IsFunctionKey(keysym) \ + (((unsigned)(keysym) >= XK_F1) && ((unsigned)(keysym) <= XK_F35)) + +#define IsMiscFunctionKey(keysym) \ + (((unsigned)(keysym) >= XK_Select) && ((unsigned)(keysym) <= XK_Break)) + +#define IsModifierKey(keysym) \ + ((((unsigned)(keysym) >= XK_Shift_L) && ((unsigned)(keysym) <= XK_Hyper_R)) \ + || ((unsigned)(keysym) == XK_Mode_switch) \ + || ((unsigned)(keysym) == XK_Num_Lock)) +/* + * opaque reference to Region data type + */ +typedef struct _XRegion *Region; + +/* Return values from XRectInRegion() */ + +#define RectangleOut 0 +#define RectangleIn 1 +#define RectanglePart 2 + + +/* + * Information used by the visual utility routines to find desired visual + * type from the many visuals a display may support. + */ + +typedef struct { + Visual *visual; + VisualID visualid; + int screen; + int depth; +#if defined(__cplusplus) || defined(c_plusplus) + int c_class; /* C++ */ +#else + int class; +#endif + unsigned long red_mask; + unsigned long green_mask; + unsigned long blue_mask; + int colormap_size; + int bits_per_rgb; +} XVisualInfo; + +#define VisualNoMask 0x0 +#define VisualIDMask 0x1 +#define VisualScreenMask 0x2 +#define VisualDepthMask 0x4 +#define VisualClassMask 0x8 +#define VisualRedMaskMask 0x10 +#define VisualGreenMaskMask 0x20 +#define VisualBlueMaskMask 0x40 +#define VisualColormapSizeMask 0x80 +#define VisualBitsPerRGBMask 0x100 +#define VisualAllMask 0x1FF + +/* + * This defines a window manager property that clients may use to + * share standard color maps of type RGB_COLOR_MAP: + */ +typedef struct { + Colormap colormap; + unsigned long red_max; + unsigned long red_mult; + unsigned long green_max; + unsigned long green_mult; + unsigned long blue_max; + unsigned long blue_mult; + unsigned long base_pixel; + VisualID visualid; /* added by ICCCM version 1 */ + XID killid; /* added by ICCCM version 1 */ +} XStandardColormap; + +#define ReleaseByFreeingColormap ((XID) 1L) /* for killid field above */ + + +/* + * return codes for XReadBitmapFile and XWriteBitmapFile + */ +#define BitmapSuccess 0 +#define BitmapOpenFailed 1 +#define BitmapFileInvalid 2 +#define BitmapNoMemory 3 + +/**************************************************************** + * + * Context Management + * + ****************************************************************/ + + +/* Associative lookup table return codes */ + +#define XCSUCCESS 0 /* No error. */ +#define XCNOMEM 1 /* Out of memory */ +#define XCNOENT 2 /* No entry in table */ + +typedef int XContext; + +#define XUniqueContext() ((XContext) XrmUniqueQuark()) +#define XStringToContext(string) ((XContext) XrmStringToQuark(string)) + +_XFUNCPROTOBEGIN + +/* The following declarations are alphabetized. */ + +extern XClassHint *XAllocClassHint ( +#if NeedFunctionPrototypes + void +#endif +); + +extern XIconSize *XAllocIconSize ( +#if NeedFunctionPrototypes + void +#endif +); + +extern XSizeHints *XAllocSizeHints ( +#if NeedFunctionPrototypes + void +#endif +); + +extern XStandardColormap *XAllocStandardColormap ( +#if NeedFunctionPrototypes + void +#endif +); + +extern XWMHints *XAllocWMHints ( +#if NeedFunctionPrototypes + void +#endif +); + +extern void XClipBox( +#if NeedFunctionPrototypes + Region /* r */, + XRectangle* /* rect_return */ +#endif +); + +extern Region XCreateRegion( +#if NeedFunctionPrototypes + void +#endif +); + +extern char *XDefaultString( +#if NeedFunctionPrototypes + void +#endif +); + +extern int XDeleteContext( +#if NeedFunctionPrototypes + Display* /* display */, + XID /* rid */, + XContext /* context */ +#endif +); + +extern void XDestroyRegion( +#if NeedFunctionPrototypes + Region /* r */ +#endif +); + +extern void XEmptyRegion( +#if NeedFunctionPrototypes + Region /* r */ +#endif +); + +extern void XEqualRegion( +#if NeedFunctionPrototypes + Region /* r1 */, + Region /* r2 */ +#endif +); + +extern int XFindContext( +#if NeedFunctionPrototypes + Display* /* display */, + XID /* rid */, + XContext /* context */, + XPointer* /* data_return */ +#endif +); + +extern Status XGetClassHint( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XClassHint* /* class_hints_return */ +#endif +); + +extern Status XGetIconSizes( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XIconSize** /* size_list_return */, + int* /* count_return */ +#endif +); + +extern Status XGetNormalHints( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XSizeHints* /* hints_return */ +#endif +); + +extern Status XGetRGBColormaps( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XStandardColormap** /* stdcmap_return */, + int* /* count_return */, + Atom /* property */ +#endif +); + +extern Status XGetSizeHints( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XSizeHints* /* hints_return */, + Atom /* property */ +#endif +); + +extern Status XGetStandardColormap( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XStandardColormap* /* colormap_return */, + Atom /* property */ +#endif +); + +extern Status XGetTextProperty( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* window */, + XTextProperty* /* text_prop_return */, + Atom /* property */ +#endif +); + +extern XVisualInfo *XGetVisualInfo( +#if NeedFunctionPrototypes + Display* /* display */, + long /* vinfo_mask */, + XVisualInfo* /* vinfo_template */, + int* /* nitems_return */ +#endif +); + +extern Status XGetWMClientMachine( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XTextProperty* /* text_prop_return */ +#endif +); + +extern XWMHints *XGetWMHints( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */ +#endif +); + +extern Status XGetWMIconName( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XTextProperty* /* text_prop_return */ +#endif +); + +extern Status XGetWMName( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XTextProperty* /* text_prop_return */ +#endif +); + +extern Status XGetWMNormalHints( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XSizeHints* /* hints_return */, + long* /* supplied_return */ +#endif +); + +extern Status XGetWMSizeHints( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XSizeHints* /* hints_return */, + long* /* supplied_return */, + Atom /* property */ +#endif +); + +extern Status XGetZoomHints( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XSizeHints* /* zhints_return */ +#endif +); + +extern void XIntersectRegion( +#if NeedFunctionPrototypes + Region /* sra */, + Region /* srb */, + Region /* dr_return */ +#endif +); + +extern int XLookupString( +#if NeedFunctionPrototypes + XKeyEvent* /* event_struct */, + char* /* buffer_return */, + int /* bytes_buffer */, + KeySym* /* keysym_return */, + XComposeStatus* /* status_in_out */ +#endif +); + +extern Status XMatchVisualInfo( +#if NeedFunctionPrototypes + Display* /* display */, + int /* screen */, + int /* depth */, + int /* class */, + XVisualInfo* /* vinfo_return */ +#endif +); + +extern void XOffsetRegion( +#if NeedFunctionPrototypes + Region /* r */, + int /* dx */, + int /* dy */ +#endif +); + +extern Bool XPointInRegion( +#if NeedFunctionPrototypes + Region /* r */, + int /* x */, + int /* y */ +#endif +); + +extern Region XPolygonRegion( +#if NeedFunctionPrototypes + XPoint* /* points */, + int /* n */, + int /* fill_rule */ +#endif +); + +extern int XRectInRegion( +#if NeedFunctionPrototypes + Region /* r */, + int /* x */, + int /* y */, + unsigned int /* width */, + unsigned int /* height */ +#endif +); + +extern int XSaveContext( +#if NeedFunctionPrototypes + Display* /* display */, + XID /* rid */, + XContext /* context */, + _Xconst char* /* data */ +#endif +); + +extern void XSetClassHint( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XClassHint* /* class_hints */ +#endif +); + +extern void XSetIconSizes( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XIconSize* /* size_list */, + int /* count */ +#endif +); + +extern void XSetNormalHints( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XSizeHints* /* hints */ +#endif +); + +extern void XSetRGBColormaps( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XStandardColormap* /* stdcmaps */, + int /* count */, + Atom /* property */ +#endif +); + +extern void XSetSizeHints( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XSizeHints* /* hints */, + Atom /* property */ +#endif +); + +extern void XSetStandardProperties( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + _Xconst char* /* window_name */, + _Xconst char* /* icon_name */, + Pixmap /* icon_pixmap */, + char** /* argv */, + int /* argc */, + XSizeHints* /* hints */ +#endif +); + +extern void XSetTextProperty( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XTextProperty* /* text_prop */, + Atom /* property */ +#endif +); + +extern void XSetWMClientMachine( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XTextProperty* /* text_prop */ +#endif +); + +extern void XSetWMHints( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XWMHints* /* wm_hints */ +#endif +); + +extern void XSetWMIconName( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XTextProperty* /* text_prop */ +#endif +); + +extern void XSetWMName( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XTextProperty* /* text_prop */ +#endif +); + +extern void XSetWMNormalHints( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XSizeHints* /* hints */ +#endif +); + +extern void XSetWMProperties( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XTextProperty* /* window_name */, + XTextProperty* /* icon_name */, + char** /* argv */, + int /* argc */, + XSizeHints* /* normal_hints */, + XWMHints* /* wm_hints */, + XClassHint* /* class_hints */ +#endif +); + +extern void XmbSetWMProperties( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + _Xconst char* /* window_name */, + _Xconst char* /* icon_name */, + char** /* argv */, + int /* argc */, + XSizeHints* /* normal_hints */, + XWMHints* /* wm_hints */, + XClassHint* /* class_hints */ +#endif +); + +extern void XSetWMSizeHints( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XSizeHints* /* hints */, + Atom /* property */ +#endif +); + +extern void XSetRegion( +#if NeedFunctionPrototypes + Display* /* display */, + GC /* gc */, + Region /* r */ +#endif +); + +extern void XSetStandardColormap( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XStandardColormap* /* colormap */, + Atom /* property */ +#endif +); + +extern void XSetZoomHints( +#if NeedFunctionPrototypes + Display* /* display */, + Window /* w */, + XSizeHints* /* zhints */ +#endif +); + +extern void XShrinkRegion( +#if NeedFunctionPrototypes + Region /* r */, + int /* dx */, + int /* dy */ +#endif +); + +extern Status XStringListToTextProperty( +#if NeedFunctionPrototypes + char** /* list */, + int /* count */, + XTextProperty* /* text_prop_return */ +#endif +); + +extern void XSubtractRegion( +#if NeedFunctionPrototypes + Region /* sra */, + Region /* srb */, + Region /* dr_return */ +#endif +); + +extern int XmbTextListToTextProperty( +#if NeedFunctionPrototypes + Display* /* display */, + char** /* list */, + int /* count */, + XICCEncodingStyle /* style */, + XTextProperty* /* text_prop_return */ +#endif +); + +extern int XwcTextListToTextProperty( +#if NeedFunctionPrototypes + Display* /* display */, + wchar_t** /* list */, + int /* count */, + XICCEncodingStyle /* style */, + XTextProperty* /* text_prop_return */ +#endif +); + +extern void XwcFreeStringList( +#if NeedFunctionPrototypes + wchar_t** /* list */ +#endif +); + +extern Status XTextPropertyToStringList( +#if NeedFunctionPrototypes + XTextProperty* /* text_prop */, + char*** /* list_return */, + int* /* count_return */ +#endif +); + +extern int XmbTextPropertyToTextList( +#if NeedFunctionPrototypes + Display* /* display */, + XTextProperty* /* text_prop */, + char*** /* list_return */, + int* /* count_return */ +#endif +); + +extern int XwcTextPropertyToTextList( +#if NeedFunctionPrototypes + Display* /* display */, + XTextProperty* /* text_prop */, + wchar_t*** /* list_return */, + int* /* count_return */ +#endif +); + +extern void XUnionRectWithRegion( +#if NeedFunctionPrototypes + XRectangle* /* rectangle */, + Region /* src_region */, + Region /* dest_region_return */ +#endif +); + +extern void XUnionRegion( +#if NeedFunctionPrototypes + Region /* sra */, + Region /* srb */, + Region /* dr_return */ +#endif +); + +extern int XWMGeometry( +#if NeedFunctionPrototypes + Display* /* display */, + int /* screen_number */, + _Xconst char* /* user_geometry */, + _Xconst char* /* default_geometry */, + unsigned int /* border_width */, + XSizeHints* /* hints */, + int* /* x_return */, + int* /* y_return */, + int* /* width_return */, + int* /* height_return */, + int* /* gravity_return */ +#endif +); + +extern void XXorRegion( +#if NeedFunctionPrototypes + Region /* sra */, + Region /* srb */, + Region /* dr_return */ +#endif +); + +_XFUNCPROTOEND + +#ifdef MAC_TCL +# undef Region +#endif + +#endif /* _XUTIL_H_ */ diff --git a/xlib/X11/cursorfont.h b/xlib/X11/cursorfont.h new file mode 100644 index 0000000..617274f --- /dev/null +++ b/xlib/X11/cursorfont.h @@ -0,0 +1,79 @@ +/* $XConsortium: cursorfont.h,v 1.2 88/09/06 16:44:27 jim Exp $ */ +#define XC_num_glyphs 154 +#define XC_X_cursor 0 +#define XC_arrow 2 +#define XC_based_arrow_down 4 +#define XC_based_arrow_up 6 +#define XC_boat 8 +#define XC_bogosity 10 +#define XC_bottom_left_corner 12 +#define XC_bottom_right_corner 14 +#define XC_bottom_side 16 +#define XC_bottom_tee 18 +#define XC_box_spiral 20 +#define XC_center_ptr 22 +#define XC_circle 24 +#define XC_clock 26 +#define XC_coffee_mug 28 +#define XC_cross 30 +#define XC_cross_reverse 32 +#define XC_crosshair 34 +#define XC_diamond_cross 36 +#define XC_dot 38 +#define XC_dotbox 40 +#define XC_double_arrow 42 +#define XC_draft_large 44 +#define XC_draft_small 46 +#define XC_draped_box 48 +#define XC_exchange 50 +#define XC_fleur 52 +#define XC_gobbler 54 +#define XC_gumby 56 +#define XC_hand1 58 +#define XC_hand2 60 +#define XC_heart 62 +#define XC_icon 64 +#define XC_iron_cross 66 +#define XC_left_ptr 68 +#define XC_left_side 70 +#define XC_left_tee 72 +#define XC_leftbutton 74 +#define XC_ll_angle 76 +#define XC_lr_angle 78 +#define XC_man 80 +#define XC_middlebutton 82 +#define XC_mouse 84 +#define XC_pencil 86 +#define XC_pirate 88 +#define XC_plus 90 +#define XC_question_arrow 92 +#define XC_right_ptr 94 +#define XC_right_side 96 +#define XC_right_tee 98 +#define XC_rightbutton 100 +#define XC_rtl_logo 102 +#define XC_sailboat 104 +#define XC_sb_down_arrow 106 +#define XC_sb_h_double_arrow 108 +#define XC_sb_left_arrow 110 +#define XC_sb_right_arrow 112 +#define XC_sb_up_arrow 114 +#define XC_sb_v_double_arrow 116 +#define XC_shuttle 118 +#define XC_sizing 120 +#define XC_spider 122 +#define XC_spraycan 124 +#define XC_star 126 +#define XC_target 128 +#define XC_tcross 130 +#define XC_top_left_arrow 132 +#define XC_top_left_corner 134 +#define XC_top_right_corner 136 +#define XC_top_side 138 +#define XC_top_tee 140 +#define XC_trek 142 +#define XC_ul_angle 144 +#define XC_umbrella 146 +#define XC_ur_angle 148 +#define XC_watch 150 +#define XC_xterm 152 diff --git a/xlib/X11/keysym.h b/xlib/X11/keysym.h new file mode 100644 index 0000000..027afe0 --- /dev/null +++ b/xlib/X11/keysym.h @@ -0,0 +1,39 @@ +/* $XConsortium: keysym.h,v 1.13 91/03/13 20:09:49 rws Exp $ */ + +/*********************************************************** +Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts, +and the Massachusetts Institute of Technology, Cambridge, Massachusetts. + + All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the names of Digital or MIT not be +used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission. + +DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + +******************************************************************/ + +/* default keysyms */ +#define XK_MISCELLANY +#define XK_LATIN1 +#define XK_LATIN2 +#define XK_LATIN3 +#define XK_LATIN4 +#define XK_GREEK + +#ifdef MAC_TCL +#include <keysymdef.h> +#else +#include <X11/keysymdef.h> +#endif diff --git a/xlib/X11/keysymdef.h b/xlib/X11/keysymdef.h new file mode 100644 index 0000000..2c6d4a7 --- /dev/null +++ b/xlib/X11/keysymdef.h @@ -0,0 +1,1164 @@ +/* $XConsortium: keysymdef.h,v 1.15 93/04/02 10:57:36 rws Exp $ */ + +/*********************************************************** +Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts, +and the Massachusetts Institute of Technology, Cambridge, Massachusetts. + + All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the names of Digital or MIT not be +used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission. + +DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + +******************************************************************/ + +#define XK_VoidSymbol 0xFFFFFF /* void symbol */ + +#ifdef XK_MISCELLANY +/* + * TTY Functions, cleverly chosen to map to ascii, for convenience of + * programming, but could have been arbitrary (at the cost of lookup + * tables in client code. + */ + +#define XK_BackSpace 0xFF08 /* back space, back char */ +#define XK_Tab 0xFF09 +#define XK_Linefeed 0xFF0A /* Linefeed, LF */ +#define XK_Clear 0xFF0B +#define XK_Return 0xFF0D /* Return, enter */ +#define XK_Pause 0xFF13 /* Pause, hold */ +#define XK_Scroll_Lock 0xFF14 +#define XK_Sys_Req 0xFF15 +#define XK_Escape 0xFF1B +#define XK_Delete 0xFFFF /* Delete, rubout */ + + + +/* International & multi-key character composition */ + +#define XK_Multi_key 0xFF20 /* Multi-key character compose */ + +/* Japanese keyboard support */ + +#define XK_Kanji 0xFF21 /* Kanji, Kanji convert */ +#define XK_Muhenkan 0xFF22 /* Cancel Conversion */ +#define XK_Henkan_Mode 0xFF23 /* Start/Stop Conversion */ +#define XK_Henkan 0xFF23 /* Alias for Henkan_Mode */ +#define XK_Romaji 0xFF24 /* to Romaji */ +#define XK_Hiragana 0xFF25 /* to Hiragana */ +#define XK_Katakana 0xFF26 /* to Katakana */ +#define XK_Hiragana_Katakana 0xFF27 /* Hiragana/Katakana toggle */ +#define XK_Zenkaku 0xFF28 /* to Zenkaku */ +#define XK_Hankaku 0xFF29 /* to Hankaku */ +#define XK_Zenkaku_Hankaku 0xFF2A /* Zenkaku/Hankaku toggle */ +#define XK_Touroku 0xFF2B /* Add to Dictionary */ +#define XK_Massyo 0xFF2C /* Delete from Dictionary */ +#define XK_Kana_Lock 0xFF2D /* Kana Lock */ +#define XK_Kana_Shift 0xFF2E /* Kana Shift */ +#define XK_Eisu_Shift 0xFF2F /* Alphanumeric Shift */ +#define XK_Eisu_toggle 0xFF30 /* Alphanumeric toggle */ + +/* Cursor control & motion */ + +#define XK_Home 0xFF50 +#define XK_Left 0xFF51 /* Move left, left arrow */ +#define XK_Up 0xFF52 /* Move up, up arrow */ +#define XK_Right 0xFF53 /* Move right, right arrow */ +#define XK_Down 0xFF54 /* Move down, down arrow */ +#define XK_Prior 0xFF55 /* Prior, previous */ +#define XK_Page_Up 0xFF55 +#define XK_Next 0xFF56 /* Next */ +#define XK_Page_Down 0xFF56 +#define XK_End 0xFF57 /* EOL */ +#define XK_Begin 0xFF58 /* BOL */ + + +/* Misc Functions */ + +#define XK_Select 0xFF60 /* Select, mark */ +#define XK_Print 0xFF61 +#define XK_Execute 0xFF62 /* Execute, run, do */ +#define XK_Insert 0xFF63 /* Insert, insert here */ +#define XK_Undo 0xFF65 /* Undo, oops */ +#define XK_Redo 0xFF66 /* redo, again */ +#define XK_Menu 0xFF67 +#define XK_Find 0xFF68 /* Find, search */ +#define XK_Cancel 0xFF69 /* Cancel, stop, abort, exit */ +#define XK_Help 0xFF6A /* Help, ? */ +#define XK_Break 0xFF6B +#define XK_Mode_switch 0xFF7E /* Character set switch */ +#define XK_script_switch 0xFF7E /* Alias for mode_switch */ +#define XK_Num_Lock 0xFF7F + +/* Keypad Functions, keypad numbers cleverly chosen to map to ascii */ + +#define XK_KP_Space 0xFF80 /* space */ +#define XK_KP_Tab 0xFF89 +#define XK_KP_Enter 0xFF8D /* enter */ +#define XK_KP_F1 0xFF91 /* PF1, KP_A, ... */ +#define XK_KP_F2 0xFF92 +#define XK_KP_F3 0xFF93 +#define XK_KP_F4 0xFF94 +#define XK_KP_Home 0xFF95 +#define XK_KP_Left 0xFF96 +#define XK_KP_Up 0xFF97 +#define XK_KP_Right 0xFF98 +#define XK_KP_Down 0xFF99 +#define XK_KP_Prior 0xFF9A +#define XK_KP_Page_Up 0xFF9A +#define XK_KP_Next 0xFF9B +#define XK_KP_Page_Down 0xFF9B +#define XK_KP_End 0xFF9C +#define XK_KP_Begin 0xFF9D +#define XK_KP_Insert 0xFF9E +#define XK_KP_Delete 0xFF9F +#define XK_KP_Equal 0xFFBD /* equals */ +#define XK_KP_Multiply 0xFFAA +#define XK_KP_Add 0xFFAB +#define XK_KP_Separator 0xFFAC /* separator, often comma */ +#define XK_KP_Subtract 0xFFAD +#define XK_KP_Decimal 0xFFAE +#define XK_KP_Divide 0xFFAF + +#define XK_KP_0 0xFFB0 +#define XK_KP_1 0xFFB1 +#define XK_KP_2 0xFFB2 +#define XK_KP_3 0xFFB3 +#define XK_KP_4 0xFFB4 +#define XK_KP_5 0xFFB5 +#define XK_KP_6 0xFFB6 +#define XK_KP_7 0xFFB7 +#define XK_KP_8 0xFFB8 +#define XK_KP_9 0xFFB9 + + + +/* + * Auxilliary Functions; note the duplicate definitions for left and right + * function keys; Sun keyboards and a few other manufactures have such + * function key groups on the left and/or right sides of the keyboard. + * We've not found a keyboard with more than 35 function keys total. + */ + +#define XK_F1 0xFFBE +#define XK_F2 0xFFBF +#define XK_F3 0xFFC0 +#define XK_F4 0xFFC1 +#define XK_F5 0xFFC2 +#define XK_F6 0xFFC3 +#define XK_F7 0xFFC4 +#define XK_F8 0xFFC5 +#define XK_F9 0xFFC6 +#define XK_F10 0xFFC7 +#define XK_F11 0xFFC8 +#define XK_L1 0xFFC8 +#define XK_F12 0xFFC9 +#define XK_L2 0xFFC9 +#define XK_F13 0xFFCA +#define XK_L3 0xFFCA +#define XK_F14 0xFFCB +#define XK_L4 0xFFCB +#define XK_F15 0xFFCC +#define XK_L5 0xFFCC +#define XK_F16 0xFFCD +#define XK_L6 0xFFCD +#define XK_F17 0xFFCE +#define XK_L7 0xFFCE +#define XK_F18 0xFFCF +#define XK_L8 0xFFCF +#define XK_F19 0xFFD0 +#define XK_L9 0xFFD0 +#define XK_F20 0xFFD1 +#define XK_L10 0xFFD1 +#define XK_F21 0xFFD2 +#define XK_R1 0xFFD2 +#define XK_F22 0xFFD3 +#define XK_R2 0xFFD3 +#define XK_F23 0xFFD4 +#define XK_R3 0xFFD4 +#define XK_F24 0xFFD5 +#define XK_R4 0xFFD5 +#define XK_F25 0xFFD6 +#define XK_R5 0xFFD6 +#define XK_F26 0xFFD7 +#define XK_R6 0xFFD7 +#define XK_F27 0xFFD8 +#define XK_R7 0xFFD8 +#define XK_F28 0xFFD9 +#define XK_R8 0xFFD9 +#define XK_F29 0xFFDA +#define XK_R9 0xFFDA +#define XK_F30 0xFFDB +#define XK_R10 0xFFDB +#define XK_F31 0xFFDC +#define XK_R11 0xFFDC +#define XK_F32 0xFFDD +#define XK_R12 0xFFDD +#define XK_F33 0xFFDE +#define XK_R13 0xFFDE +#define XK_F34 0xFFDF +#define XK_R14 0xFFDF +#define XK_F35 0xFFE0 +#define XK_R15 0xFFE0 + +/* Modifiers */ + +#define XK_Shift_L 0xFFE1 /* Left shift */ +#define XK_Shift_R 0xFFE2 /* Right shift */ +#define XK_Control_L 0xFFE3 /* Left control */ +#define XK_Control_R 0xFFE4 /* Right control */ +#define XK_Caps_Lock 0xFFE5 /* Caps lock */ +#define XK_Shift_Lock 0xFFE6 /* Shift lock */ + +#define XK_Meta_L 0xFFE7 /* Left meta */ +#define XK_Meta_R 0xFFE8 /* Right meta */ +#define XK_Alt_L 0xFFE9 /* Left alt */ +#define XK_Alt_R 0xFFEA /* Right alt */ +#define XK_Super_L 0xFFEB /* Left super */ +#define XK_Super_R 0xFFEC /* Right super */ +#define XK_Hyper_L 0xFFED /* Left hyper */ +#define XK_Hyper_R 0xFFEE /* Right hyper */ +#endif /* XK_MISCELLANY */ + +/* + * Latin 1 + * Byte 3 = 0 + */ +#ifdef XK_LATIN1 +#define XK_space 0x020 +#define XK_exclam 0x021 +#define XK_quotedbl 0x022 +#define XK_numbersign 0x023 +#define XK_dollar 0x024 +#define XK_percent 0x025 +#define XK_ampersand 0x026 +#define XK_apostrophe 0x027 +#define XK_quoteright 0x027 /* deprecated */ +#define XK_parenleft 0x028 +#define XK_parenright 0x029 +#define XK_asterisk 0x02a +#define XK_plus 0x02b +#define XK_comma 0x02c +#define XK_minus 0x02d +#define XK_period 0x02e +#define XK_slash 0x02f +#define XK_0 0x030 +#define XK_1 0x031 +#define XK_2 0x032 +#define XK_3 0x033 +#define XK_4 0x034 +#define XK_5 0x035 +#define XK_6 0x036 +#define XK_7 0x037 +#define XK_8 0x038 +#define XK_9 0x039 +#define XK_colon 0x03a +#define XK_semicolon 0x03b +#define XK_less 0x03c +#define XK_equal 0x03d +#define XK_greater 0x03e +#define XK_question 0x03f +#define XK_at 0x040 +#define XK_A 0x041 +#define XK_B 0x042 +#define XK_C 0x043 +#define XK_D 0x044 +#define XK_E 0x045 +#define XK_F 0x046 +#define XK_G 0x047 +#define XK_H 0x048 +#define XK_I 0x049 +#define XK_J 0x04a +#define XK_K 0x04b +#define XK_L 0x04c +#define XK_M 0x04d +#define XK_N 0x04e +#define XK_O 0x04f +#define XK_P 0x050 +#define XK_Q 0x051 +#define XK_R 0x052 +#define XK_S 0x053 +#define XK_T 0x054 +#define XK_U 0x055 +#define XK_V 0x056 +#define XK_W 0x057 +#define XK_X 0x058 +#define XK_Y 0x059 +#define XK_Z 0x05a +#define XK_bracketleft 0x05b +#define XK_backslash 0x05c +#define XK_bracketright 0x05d +#define XK_asciicircum 0x05e +#define XK_underscore 0x05f +#define XK_grave 0x060 +#define XK_quoteleft 0x060 /* deprecated */ +#define XK_a 0x061 +#define XK_b 0x062 +#define XK_c 0x063 +#define XK_d 0x064 +#define XK_e 0x065 +#define XK_f 0x066 +#define XK_g 0x067 +#define XK_h 0x068 +#define XK_i 0x069 +#define XK_j 0x06a +#define XK_k 0x06b +#define XK_l 0x06c +#define XK_m 0x06d +#define XK_n 0x06e +#define XK_o 0x06f +#define XK_p 0x070 +#define XK_q 0x071 +#define XK_r 0x072 +#define XK_s 0x073 +#define XK_t 0x074 +#define XK_u 0x075 +#define XK_v 0x076 +#define XK_w 0x077 +#define XK_x 0x078 +#define XK_y 0x079 +#define XK_z 0x07a +#define XK_braceleft 0x07b +#define XK_bar 0x07c +#define XK_braceright 0x07d +#define XK_asciitilde 0x07e + +#define XK_nobreakspace 0x0a0 +#define XK_exclamdown 0x0a1 +#define XK_cent 0x0a2 +#define XK_sterling 0x0a3 +#define XK_currency 0x0a4 +#define XK_yen 0x0a5 +#define XK_brokenbar 0x0a6 +#define XK_section 0x0a7 +#define XK_diaeresis 0x0a8 +#define XK_copyright 0x0a9 +#define XK_ordfeminine 0x0aa +#define XK_guillemotleft 0x0ab /* left angle quotation mark */ +#define XK_notsign 0x0ac +#define XK_hyphen 0x0ad +#define XK_registered 0x0ae +#define XK_macron 0x0af +#define XK_degree 0x0b0 +#define XK_plusminus 0x0b1 +#define XK_twosuperior 0x0b2 +#define XK_threesuperior 0x0b3 +#define XK_acute 0x0b4 +#define XK_mu 0x0b5 +#define XK_paragraph 0x0b6 +#define XK_periodcentered 0x0b7 +#define XK_cedilla 0x0b8 +#define XK_onesuperior 0x0b9 +#define XK_masculine 0x0ba +#define XK_guillemotright 0x0bb /* right angle quotation mark */ +#define XK_onequarter 0x0bc +#define XK_onehalf 0x0bd +#define XK_threequarters 0x0be +#define XK_questiondown 0x0bf +#define XK_Agrave 0x0c0 +#define XK_Aacute 0x0c1 +#define XK_Acircumflex 0x0c2 +#define XK_Atilde 0x0c3 +#define XK_Adiaeresis 0x0c4 +#define XK_Aring 0x0c5 +#define XK_AE 0x0c6 +#define XK_Ccedilla 0x0c7 +#define XK_Egrave 0x0c8 +#define XK_Eacute 0x0c9 +#define XK_Ecircumflex 0x0ca +#define XK_Ediaeresis 0x0cb +#define XK_Igrave 0x0cc +#define XK_Iacute 0x0cd +#define XK_Icircumflex 0x0ce +#define XK_Idiaeresis 0x0cf +#define XK_ETH 0x0d0 +#define XK_Eth 0x0d0 /* deprecated */ +#define XK_Ntilde 0x0d1 +#define XK_Ograve 0x0d2 +#define XK_Oacute 0x0d3 +#define XK_Ocircumflex 0x0d4 +#define XK_Otilde 0x0d5 +#define XK_Odiaeresis 0x0d6 +#define XK_multiply 0x0d7 +#define XK_Ooblique 0x0d8 +#define XK_Ugrave 0x0d9 +#define XK_Uacute 0x0da +#define XK_Ucircumflex 0x0db +#define XK_Udiaeresis 0x0dc +#define XK_Yacute 0x0dd +#define XK_THORN 0x0de +#define XK_Thorn 0x0de /* deprecated */ +#define XK_ssharp 0x0df +#define XK_agrave 0x0e0 +#define XK_aacute 0x0e1 +#define XK_acircumflex 0x0e2 +#define XK_atilde 0x0e3 +#define XK_adiaeresis 0x0e4 +#define XK_aring 0x0e5 +#define XK_ae 0x0e6 +#define XK_ccedilla 0x0e7 +#define XK_egrave 0x0e8 +#define XK_eacute 0x0e9 +#define XK_ecircumflex 0x0ea +#define XK_ediaeresis 0x0eb +#define XK_igrave 0x0ec +#define XK_iacute 0x0ed +#define XK_icircumflex 0x0ee +#define XK_idiaeresis 0x0ef +#define XK_eth 0x0f0 +#define XK_ntilde 0x0f1 +#define XK_ograve 0x0f2 +#define XK_oacute 0x0f3 +#define XK_ocircumflex 0x0f4 +#define XK_otilde 0x0f5 +#define XK_odiaeresis 0x0f6 +#define XK_division 0x0f7 +#define XK_oslash 0x0f8 +#define XK_ugrave 0x0f9 +#define XK_uacute 0x0fa +#define XK_ucircumflex 0x0fb +#define XK_udiaeresis 0x0fc +#define XK_yacute 0x0fd +#define XK_thorn 0x0fe +#define XK_ydiaeresis 0x0ff +#endif /* XK_LATIN1 */ + +/* + * Latin 2 + * Byte 3 = 1 + */ + +#ifdef XK_LATIN2 +#define XK_Aogonek 0x1a1 +#define XK_breve 0x1a2 +#define XK_Lstroke 0x1a3 +#define XK_Lcaron 0x1a5 +#define XK_Sacute 0x1a6 +#define XK_Scaron 0x1a9 +#define XK_Scedilla 0x1aa +#define XK_Tcaron 0x1ab +#define XK_Zacute 0x1ac +#define XK_Zcaron 0x1ae +#define XK_Zabovedot 0x1af +#define XK_aogonek 0x1b1 +#define XK_ogonek 0x1b2 +#define XK_lstroke 0x1b3 +#define XK_lcaron 0x1b5 +#define XK_sacute 0x1b6 +#define XK_caron 0x1b7 +#define XK_scaron 0x1b9 +#define XK_scedilla 0x1ba +#define XK_tcaron 0x1bb +#define XK_zacute 0x1bc +#define XK_doubleacute 0x1bd +#define XK_zcaron 0x1be +#define XK_zabovedot 0x1bf +#define XK_Racute 0x1c0 +#define XK_Abreve 0x1c3 +#define XK_Lacute 0x1c5 +#define XK_Cacute 0x1c6 +#define XK_Ccaron 0x1c8 +#define XK_Eogonek 0x1ca +#define XK_Ecaron 0x1cc +#define XK_Dcaron 0x1cf +#define XK_Dstroke 0x1d0 +#define XK_Nacute 0x1d1 +#define XK_Ncaron 0x1d2 +#define XK_Odoubleacute 0x1d5 +#define XK_Rcaron 0x1d8 +#define XK_Uring 0x1d9 +#define XK_Udoubleacute 0x1db +#define XK_Tcedilla 0x1de +#define XK_racute 0x1e0 +#define XK_abreve 0x1e3 +#define XK_lacute 0x1e5 +#define XK_cacute 0x1e6 +#define XK_ccaron 0x1e8 +#define XK_eogonek 0x1ea +#define XK_ecaron 0x1ec +#define XK_dcaron 0x1ef +#define XK_dstroke 0x1f0 +#define XK_nacute 0x1f1 +#define XK_ncaron 0x1f2 +#define XK_odoubleacute 0x1f5 +#define XK_udoubleacute 0x1fb +#define XK_rcaron 0x1f8 +#define XK_uring 0x1f9 +#define XK_tcedilla 0x1fe +#define XK_abovedot 0x1ff +#endif /* XK_LATIN2 */ + +/* + * Latin 3 + * Byte 3 = 2 + */ + +#ifdef XK_LATIN3 +#define XK_Hstroke 0x2a1 +#define XK_Hcircumflex 0x2a6 +#define XK_Iabovedot 0x2a9 +#define XK_Gbreve 0x2ab +#define XK_Jcircumflex 0x2ac +#define XK_hstroke 0x2b1 +#define XK_hcircumflex 0x2b6 +#define XK_idotless 0x2b9 +#define XK_gbreve 0x2bb +#define XK_jcircumflex 0x2bc +#define XK_Cabovedot 0x2c5 +#define XK_Ccircumflex 0x2c6 +#define XK_Gabovedot 0x2d5 +#define XK_Gcircumflex 0x2d8 +#define XK_Ubreve 0x2dd +#define XK_Scircumflex 0x2de +#define XK_cabovedot 0x2e5 +#define XK_ccircumflex 0x2e6 +#define XK_gabovedot 0x2f5 +#define XK_gcircumflex 0x2f8 +#define XK_ubreve 0x2fd +#define XK_scircumflex 0x2fe +#endif /* XK_LATIN3 */ + + +/* + * Latin 4 + * Byte 3 = 3 + */ + +#ifdef XK_LATIN4 +#define XK_kra 0x3a2 +#define XK_kappa 0x3a2 /* deprecated */ +#define XK_Rcedilla 0x3a3 +#define XK_Itilde 0x3a5 +#define XK_Lcedilla 0x3a6 +#define XK_Emacron 0x3aa +#define XK_Gcedilla 0x3ab +#define XK_Tslash 0x3ac +#define XK_rcedilla 0x3b3 +#define XK_itilde 0x3b5 +#define XK_lcedilla 0x3b6 +#define XK_emacron 0x3ba +#define XK_gcedilla 0x3bb +#define XK_tslash 0x3bc +#define XK_ENG 0x3bd +#define XK_eng 0x3bf +#define XK_Amacron 0x3c0 +#define XK_Iogonek 0x3c7 +#define XK_Eabovedot 0x3cc +#define XK_Imacron 0x3cf +#define XK_Ncedilla 0x3d1 +#define XK_Omacron 0x3d2 +#define XK_Kcedilla 0x3d3 +#define XK_Uogonek 0x3d9 +#define XK_Utilde 0x3dd +#define XK_Umacron 0x3de +#define XK_amacron 0x3e0 +#define XK_iogonek 0x3e7 +#define XK_eabovedot 0x3ec +#define XK_imacron 0x3ef +#define XK_ncedilla 0x3f1 +#define XK_omacron 0x3f2 +#define XK_kcedilla 0x3f3 +#define XK_uogonek 0x3f9 +#define XK_utilde 0x3fd +#define XK_umacron 0x3fe +#endif /* XK_LATIN4 */ + +/* + * Katakana + * Byte 3 = 4 + */ + +#ifdef XK_KATAKANA +#define XK_overline 0x47e +#define XK_kana_fullstop 0x4a1 +#define XK_kana_openingbracket 0x4a2 +#define XK_kana_closingbracket 0x4a3 +#define XK_kana_comma 0x4a4 +#define XK_kana_conjunctive 0x4a5 +#define XK_kana_middledot 0x4a5 /* deprecated */ +#define XK_kana_WO 0x4a6 +#define XK_kana_a 0x4a7 +#define XK_kana_i 0x4a8 +#define XK_kana_u 0x4a9 +#define XK_kana_e 0x4aa +#define XK_kana_o 0x4ab +#define XK_kana_ya 0x4ac +#define XK_kana_yu 0x4ad +#define XK_kana_yo 0x4ae +#define XK_kana_tsu 0x4af +#define XK_kana_tu 0x4af /* deprecated */ +#define XK_prolongedsound 0x4b0 +#define XK_kana_A 0x4b1 +#define XK_kana_I 0x4b2 +#define XK_kana_U 0x4b3 +#define XK_kana_E 0x4b4 +#define XK_kana_O 0x4b5 +#define XK_kana_KA 0x4b6 +#define XK_kana_KI 0x4b7 +#define XK_kana_KU 0x4b8 +#define XK_kana_KE 0x4b9 +#define XK_kana_KO 0x4ba +#define XK_kana_SA 0x4bb +#define XK_kana_SHI 0x4bc +#define XK_kana_SU 0x4bd +#define XK_kana_SE 0x4be +#define XK_kana_SO 0x4bf +#define XK_kana_TA 0x4c0 +#define XK_kana_CHI 0x4c1 +#define XK_kana_TI 0x4c1 /* deprecated */ +#define XK_kana_TSU 0x4c2 +#define XK_kana_TU 0x4c2 /* deprecated */ +#define XK_kana_TE 0x4c3 +#define XK_kana_TO 0x4c4 +#define XK_kana_NA 0x4c5 +#define XK_kana_NI 0x4c6 +#define XK_kana_NU 0x4c7 +#define XK_kana_NE 0x4c8 +#define XK_kana_NO 0x4c9 +#define XK_kana_HA 0x4ca +#define XK_kana_HI 0x4cb +#define XK_kana_FU 0x4cc +#define XK_kana_HU 0x4cc /* deprecated */ +#define XK_kana_HE 0x4cd +#define XK_kana_HO 0x4ce +#define XK_kana_MA 0x4cf +#define XK_kana_MI 0x4d0 +#define XK_kana_MU 0x4d1 +#define XK_kana_ME 0x4d2 +#define XK_kana_MO 0x4d3 +#define XK_kana_YA 0x4d4 +#define XK_kana_YU 0x4d5 +#define XK_kana_YO 0x4d6 +#define XK_kana_RA 0x4d7 +#define XK_kana_RI 0x4d8 +#define XK_kana_RU 0x4d9 +#define XK_kana_RE 0x4da +#define XK_kana_RO 0x4db +#define XK_kana_WA 0x4dc +#define XK_kana_N 0x4dd +#define XK_voicedsound 0x4de +#define XK_semivoicedsound 0x4df +#define XK_kana_switch 0xFF7E /* Alias for mode_switch */ +#endif /* XK_KATAKANA */ + +/* + * Arabic + * Byte 3 = 5 + */ + +#ifdef XK_ARABIC +#define XK_Arabic_comma 0x5ac +#define XK_Arabic_semicolon 0x5bb +#define XK_Arabic_question_mark 0x5bf +#define XK_Arabic_hamza 0x5c1 +#define XK_Arabic_maddaonalef 0x5c2 +#define XK_Arabic_hamzaonalef 0x5c3 +#define XK_Arabic_hamzaonwaw 0x5c4 +#define XK_Arabic_hamzaunderalef 0x5c5 +#define XK_Arabic_hamzaonyeh 0x5c6 +#define XK_Arabic_alef 0x5c7 +#define XK_Arabic_beh 0x5c8 +#define XK_Arabic_tehmarbuta 0x5c9 +#define XK_Arabic_teh 0x5ca +#define XK_Arabic_theh 0x5cb +#define XK_Arabic_jeem 0x5cc +#define XK_Arabic_hah 0x5cd +#define XK_Arabic_khah 0x5ce +#define XK_Arabic_dal 0x5cf +#define XK_Arabic_thal 0x5d0 +#define XK_Arabic_ra 0x5d1 +#define XK_Arabic_zain 0x5d2 +#define XK_Arabic_seen 0x5d3 +#define XK_Arabic_sheen 0x5d4 +#define XK_Arabic_sad 0x5d5 +#define XK_Arabic_dad 0x5d6 +#define XK_Arabic_tah 0x5d7 +#define XK_Arabic_zah 0x5d8 +#define XK_Arabic_ain 0x5d9 +#define XK_Arabic_ghain 0x5da +#define XK_Arabic_tatweel 0x5e0 +#define XK_Arabic_feh 0x5e1 +#define XK_Arabic_qaf 0x5e2 +#define XK_Arabic_kaf 0x5e3 +#define XK_Arabic_lam 0x5e4 +#define XK_Arabic_meem 0x5e5 +#define XK_Arabic_noon 0x5e6 +#define XK_Arabic_ha 0x5e7 +#define XK_Arabic_heh 0x5e7 /* deprecated */ +#define XK_Arabic_waw 0x5e8 +#define XK_Arabic_alefmaksura 0x5e9 +#define XK_Arabic_yeh 0x5ea +#define XK_Arabic_fathatan 0x5eb +#define XK_Arabic_dammatan 0x5ec +#define XK_Arabic_kasratan 0x5ed +#define XK_Arabic_fatha 0x5ee +#define XK_Arabic_damma 0x5ef +#define XK_Arabic_kasra 0x5f0 +#define XK_Arabic_shadda 0x5f1 +#define XK_Arabic_sukun 0x5f2 +#define XK_Arabic_switch 0xFF7E /* Alias for mode_switch */ +#endif /* XK_ARABIC */ + +/* + * Cyrillic + * Byte 3 = 6 + */ +#ifdef XK_CYRILLIC +#define XK_Serbian_dje 0x6a1 +#define XK_Macedonia_gje 0x6a2 +#define XK_Cyrillic_io 0x6a3 +#define XK_Ukrainian_ie 0x6a4 +#define XK_Ukranian_je 0x6a4 /* deprecated */ +#define XK_Macedonia_dse 0x6a5 +#define XK_Ukrainian_i 0x6a6 +#define XK_Ukranian_i 0x6a6 /* deprecated */ +#define XK_Ukrainian_yi 0x6a7 +#define XK_Ukranian_yi 0x6a7 /* deprecated */ +#define XK_Cyrillic_je 0x6a8 +#define XK_Serbian_je 0x6a8 /* deprecated */ +#define XK_Cyrillic_lje 0x6a9 +#define XK_Serbian_lje 0x6a9 /* deprecated */ +#define XK_Cyrillic_nje 0x6aa +#define XK_Serbian_nje 0x6aa /* deprecated */ +#define XK_Serbian_tshe 0x6ab +#define XK_Macedonia_kje 0x6ac +#define XK_Byelorussian_shortu 0x6ae +#define XK_Cyrillic_dzhe 0x6af +#define XK_Serbian_dze 0x6af /* deprecated */ +#define XK_numerosign 0x6b0 +#define XK_Serbian_DJE 0x6b1 +#define XK_Macedonia_GJE 0x6b2 +#define XK_Cyrillic_IO 0x6b3 +#define XK_Ukrainian_IE 0x6b4 +#define XK_Ukranian_JE 0x6b4 /* deprecated */ +#define XK_Macedonia_DSE 0x6b5 +#define XK_Ukrainian_I 0x6b6 +#define XK_Ukranian_I 0x6b6 /* deprecated */ +#define XK_Ukrainian_YI 0x6b7 +#define XK_Ukranian_YI 0x6b7 /* deprecated */ +#define XK_Cyrillic_JE 0x6b8 +#define XK_Serbian_JE 0x6b8 /* deprecated */ +#define XK_Cyrillic_LJE 0x6b9 +#define XK_Serbian_LJE 0x6b9 /* deprecated */ +#define XK_Cyrillic_NJE 0x6ba +#define XK_Serbian_NJE 0x6ba /* deprecated */ +#define XK_Serbian_TSHE 0x6bb +#define XK_Macedonia_KJE 0x6bc +#define XK_Byelorussian_SHORTU 0x6be +#define XK_Cyrillic_DZHE 0x6bf +#define XK_Serbian_DZE 0x6bf /* deprecated */ +#define XK_Cyrillic_yu 0x6c0 +#define XK_Cyrillic_a 0x6c1 +#define XK_Cyrillic_be 0x6c2 +#define XK_Cyrillic_tse 0x6c3 +#define XK_Cyrillic_de 0x6c4 +#define XK_Cyrillic_ie 0x6c5 +#define XK_Cyrillic_ef 0x6c6 +#define XK_Cyrillic_ghe 0x6c7 +#define XK_Cyrillic_ha 0x6c8 +#define XK_Cyrillic_i 0x6c9 +#define XK_Cyrillic_shorti 0x6ca +#define XK_Cyrillic_ka 0x6cb +#define XK_Cyrillic_el 0x6cc +#define XK_Cyrillic_em 0x6cd +#define XK_Cyrillic_en 0x6ce +#define XK_Cyrillic_o 0x6cf +#define XK_Cyrillic_pe 0x6d0 +#define XK_Cyrillic_ya 0x6d1 +#define XK_Cyrillic_er 0x6d2 +#define XK_Cyrillic_es 0x6d3 +#define XK_Cyrillic_te 0x6d4 +#define XK_Cyrillic_u 0x6d5 +#define XK_Cyrillic_zhe 0x6d6 +#define XK_Cyrillic_ve 0x6d7 +#define XK_Cyrillic_softsign 0x6d8 +#define XK_Cyrillic_yeru 0x6d9 +#define XK_Cyrillic_ze 0x6da +#define XK_Cyrillic_sha 0x6db +#define XK_Cyrillic_e 0x6dc +#define XK_Cyrillic_shcha 0x6dd +#define XK_Cyrillic_che 0x6de +#define XK_Cyrillic_hardsign 0x6df +#define XK_Cyrillic_YU 0x6e0 +#define XK_Cyrillic_A 0x6e1 +#define XK_Cyrillic_BE 0x6e2 +#define XK_Cyrillic_TSE 0x6e3 +#define XK_Cyrillic_DE 0x6e4 +#define XK_Cyrillic_IE 0x6e5 +#define XK_Cyrillic_EF 0x6e6 +#define XK_Cyrillic_GHE 0x6e7 +#define XK_Cyrillic_HA 0x6e8 +#define XK_Cyrillic_I 0x6e9 +#define XK_Cyrillic_SHORTI 0x6ea +#define XK_Cyrillic_KA 0x6eb +#define XK_Cyrillic_EL 0x6ec +#define XK_Cyrillic_EM 0x6ed +#define XK_Cyrillic_EN 0x6ee +#define XK_Cyrillic_O 0x6ef +#define XK_Cyrillic_PE 0x6f0 +#define XK_Cyrillic_YA 0x6f1 +#define XK_Cyrillic_ER 0x6f2 +#define XK_Cyrillic_ES 0x6f3 +#define XK_Cyrillic_TE 0x6f4 +#define XK_Cyrillic_U 0x6f5 +#define XK_Cyrillic_ZHE 0x6f6 +#define XK_Cyrillic_VE 0x6f7 +#define XK_Cyrillic_SOFTSIGN 0x6f8 +#define XK_Cyrillic_YERU 0x6f9 +#define XK_Cyrillic_ZE 0x6fa +#define XK_Cyrillic_SHA 0x6fb +#define XK_Cyrillic_E 0x6fc +#define XK_Cyrillic_SHCHA 0x6fd +#define XK_Cyrillic_CHE 0x6fe +#define XK_Cyrillic_HARDSIGN 0x6ff +#endif /* XK_CYRILLIC */ + +/* + * Greek + * Byte 3 = 7 + */ + +#ifdef XK_GREEK +#define XK_Greek_ALPHAaccent 0x7a1 +#define XK_Greek_EPSILONaccent 0x7a2 +#define XK_Greek_ETAaccent 0x7a3 +#define XK_Greek_IOTAaccent 0x7a4 +#define XK_Greek_IOTAdiaeresis 0x7a5 +#define XK_Greek_OMICRONaccent 0x7a7 +#define XK_Greek_UPSILONaccent 0x7a8 +#define XK_Greek_UPSILONdieresis 0x7a9 +#define XK_Greek_OMEGAaccent 0x7ab +#define XK_Greek_accentdieresis 0x7ae +#define XK_Greek_horizbar 0x7af +#define XK_Greek_alphaaccent 0x7b1 +#define XK_Greek_epsilonaccent 0x7b2 +#define XK_Greek_etaaccent 0x7b3 +#define XK_Greek_iotaaccent 0x7b4 +#define XK_Greek_iotadieresis 0x7b5 +#define XK_Greek_iotaaccentdieresis 0x7b6 +#define XK_Greek_omicronaccent 0x7b7 +#define XK_Greek_upsilonaccent 0x7b8 +#define XK_Greek_upsilondieresis 0x7b9 +#define XK_Greek_upsilonaccentdieresis 0x7ba +#define XK_Greek_omegaaccent 0x7bb +#define XK_Greek_ALPHA 0x7c1 +#define XK_Greek_BETA 0x7c2 +#define XK_Greek_GAMMA 0x7c3 +#define XK_Greek_DELTA 0x7c4 +#define XK_Greek_EPSILON 0x7c5 +#define XK_Greek_ZETA 0x7c6 +#define XK_Greek_ETA 0x7c7 +#define XK_Greek_THETA 0x7c8 +#define XK_Greek_IOTA 0x7c9 +#define XK_Greek_KAPPA 0x7ca +#define XK_Greek_LAMDA 0x7cb +#define XK_Greek_LAMBDA 0x7cb +#define XK_Greek_MU 0x7cc +#define XK_Greek_NU 0x7cd +#define XK_Greek_XI 0x7ce +#define XK_Greek_OMICRON 0x7cf +#define XK_Greek_PI 0x7d0 +#define XK_Greek_RHO 0x7d1 +#define XK_Greek_SIGMA 0x7d2 +#define XK_Greek_TAU 0x7d4 +#define XK_Greek_UPSILON 0x7d5 +#define XK_Greek_PHI 0x7d6 +#define XK_Greek_CHI 0x7d7 +#define XK_Greek_PSI 0x7d8 +#define XK_Greek_OMEGA 0x7d9 +#define XK_Greek_alpha 0x7e1 +#define XK_Greek_beta 0x7e2 +#define XK_Greek_gamma 0x7e3 +#define XK_Greek_delta 0x7e4 +#define XK_Greek_epsilon 0x7e5 +#define XK_Greek_zeta 0x7e6 +#define XK_Greek_eta 0x7e7 +#define XK_Greek_theta 0x7e8 +#define XK_Greek_iota 0x7e9 +#define XK_Greek_kappa 0x7ea +#define XK_Greek_lamda 0x7eb +#define XK_Greek_lambda 0x7eb +#define XK_Greek_mu 0x7ec +#define XK_Greek_nu 0x7ed +#define XK_Greek_xi 0x7ee +#define XK_Greek_omicron 0x7ef +#define XK_Greek_pi 0x7f0 +#define XK_Greek_rho 0x7f1 +#define XK_Greek_sigma 0x7f2 +#define XK_Greek_finalsmallsigma 0x7f3 +#define XK_Greek_tau 0x7f4 +#define XK_Greek_upsilon 0x7f5 +#define XK_Greek_phi 0x7f6 +#define XK_Greek_chi 0x7f7 +#define XK_Greek_psi 0x7f8 +#define XK_Greek_omega 0x7f9 +#define XK_Greek_switch 0xFF7E /* Alias for mode_switch */ +#endif /* XK_GREEK */ + +/* + * Technical + * Byte 3 = 8 + */ + +#ifdef XK_TECHNICAL +#define XK_leftradical 0x8a1 +#define XK_topleftradical 0x8a2 +#define XK_horizconnector 0x8a3 +#define XK_topintegral 0x8a4 +#define XK_botintegral 0x8a5 +#define XK_vertconnector 0x8a6 +#define XK_topleftsqbracket 0x8a7 +#define XK_botleftsqbracket 0x8a8 +#define XK_toprightsqbracket 0x8a9 +#define XK_botrightsqbracket 0x8aa +#define XK_topleftparens 0x8ab +#define XK_botleftparens 0x8ac +#define XK_toprightparens 0x8ad +#define XK_botrightparens 0x8ae +#define XK_leftmiddlecurlybrace 0x8af +#define XK_rightmiddlecurlybrace 0x8b0 +#define XK_topleftsummation 0x8b1 +#define XK_botleftsummation 0x8b2 +#define XK_topvertsummationconnector 0x8b3 +#define XK_botvertsummationconnector 0x8b4 +#define XK_toprightsummation 0x8b5 +#define XK_botrightsummation 0x8b6 +#define XK_rightmiddlesummation 0x8b7 +#define XK_lessthanequal 0x8bc +#define XK_notequal 0x8bd +#define XK_greaterthanequal 0x8be +#define XK_integral 0x8bf +#define XK_therefore 0x8c0 +#define XK_variation 0x8c1 +#define XK_infinity 0x8c2 +#define XK_nabla 0x8c5 +#define XK_approximate 0x8c8 +#define XK_similarequal 0x8c9 +#define XK_ifonlyif 0x8cd +#define XK_implies 0x8ce +#define XK_identical 0x8cf +#define XK_radical 0x8d6 +#define XK_includedin 0x8da +#define XK_includes 0x8db +#define XK_intersection 0x8dc +#define XK_union 0x8dd +#define XK_logicaland 0x8de +#define XK_logicalor 0x8df +#define XK_partialderivative 0x8ef +#define XK_function 0x8f6 +#define XK_leftarrow 0x8fb +#define XK_uparrow 0x8fc +#define XK_rightarrow 0x8fd +#define XK_downarrow 0x8fe +#endif /* XK_TECHNICAL */ + +/* + * Special + * Byte 3 = 9 + */ + +#ifdef XK_SPECIAL +#define XK_blank 0x9df +#define XK_soliddiamond 0x9e0 +#define XK_checkerboard 0x9e1 +#define XK_ht 0x9e2 +#define XK_ff 0x9e3 +#define XK_cr 0x9e4 +#define XK_lf 0x9e5 +#define XK_nl 0x9e8 +#define XK_vt 0x9e9 +#define XK_lowrightcorner 0x9ea +#define XK_uprightcorner 0x9eb +#define XK_upleftcorner 0x9ec +#define XK_lowleftcorner 0x9ed +#define XK_crossinglines 0x9ee +#define XK_horizlinescan1 0x9ef +#define XK_horizlinescan3 0x9f0 +#define XK_horizlinescan5 0x9f1 +#define XK_horizlinescan7 0x9f2 +#define XK_horizlinescan9 0x9f3 +#define XK_leftt 0x9f4 +#define XK_rightt 0x9f5 +#define XK_bott 0x9f6 +#define XK_topt 0x9f7 +#define XK_vertbar 0x9f8 +#endif /* XK_SPECIAL */ + +/* + * Publishing + * Byte 3 = a + */ + +#ifdef XK_PUBLISHING +#define XK_emspace 0xaa1 +#define XK_enspace 0xaa2 +#define XK_em3space 0xaa3 +#define XK_em4space 0xaa4 +#define XK_digitspace 0xaa5 +#define XK_punctspace 0xaa6 +#define XK_thinspace 0xaa7 +#define XK_hairspace 0xaa8 +#define XK_emdash 0xaa9 +#define XK_endash 0xaaa +#define XK_signifblank 0xaac +#define XK_ellipsis 0xaae +#define XK_doubbaselinedot 0xaaf +#define XK_onethird 0xab0 +#define XK_twothirds 0xab1 +#define XK_onefifth 0xab2 +#define XK_twofifths 0xab3 +#define XK_threefifths 0xab4 +#define XK_fourfifths 0xab5 +#define XK_onesixth 0xab6 +#define XK_fivesixths 0xab7 +#define XK_careof 0xab8 +#define XK_figdash 0xabb +#define XK_leftanglebracket 0xabc +#define XK_decimalpoint 0xabd +#define XK_rightanglebracket 0xabe +#define XK_marker 0xabf +#define XK_oneeighth 0xac3 +#define XK_threeeighths 0xac4 +#define XK_fiveeighths 0xac5 +#define XK_seveneighths 0xac6 +#define XK_trademark 0xac9 +#define XK_signaturemark 0xaca +#define XK_trademarkincircle 0xacb +#define XK_leftopentriangle 0xacc +#define XK_rightopentriangle 0xacd +#define XK_emopencircle 0xace +#define XK_emopenrectangle 0xacf +#define XK_leftsinglequotemark 0xad0 +#define XK_rightsinglequotemark 0xad1 +#define XK_leftdoublequotemark 0xad2 +#define XK_rightdoublequotemark 0xad3 +#define XK_prescription 0xad4 +#define XK_minutes 0xad6 +#define XK_seconds 0xad7 +#define XK_latincross 0xad9 +#define XK_hexagram 0xada +#define XK_filledrectbullet 0xadb +#define XK_filledlefttribullet 0xadc +#define XK_filledrighttribullet 0xadd +#define XK_emfilledcircle 0xade +#define XK_emfilledrect 0xadf +#define XK_enopencircbullet 0xae0 +#define XK_enopensquarebullet 0xae1 +#define XK_openrectbullet 0xae2 +#define XK_opentribulletup 0xae3 +#define XK_opentribulletdown 0xae4 +#define XK_openstar 0xae5 +#define XK_enfilledcircbullet 0xae6 +#define XK_enfilledsqbullet 0xae7 +#define XK_filledtribulletup 0xae8 +#define XK_filledtribulletdown 0xae9 +#define XK_leftpointer 0xaea +#define XK_rightpointer 0xaeb +#define XK_club 0xaec +#define XK_diamond 0xaed +#define XK_heart 0xaee +#define XK_maltesecross 0xaf0 +#define XK_dagger 0xaf1 +#define XK_doubledagger 0xaf2 +#define XK_checkmark 0xaf3 +#define XK_ballotcross 0xaf4 +#define XK_musicalsharp 0xaf5 +#define XK_musicalflat 0xaf6 +#define XK_malesymbol 0xaf7 +#define XK_femalesymbol 0xaf8 +#define XK_telephone 0xaf9 +#define XK_telephonerecorder 0xafa +#define XK_phonographcopyright 0xafb +#define XK_caret 0xafc +#define XK_singlelowquotemark 0xafd +#define XK_doublelowquotemark 0xafe +#define XK_cursor 0xaff +#endif /* XK_PUBLISHING */ + +/* + * APL + * Byte 3 = b + */ + +#ifdef XK_APL +#define XK_leftcaret 0xba3 +#define XK_rightcaret 0xba6 +#define XK_downcaret 0xba8 +#define XK_upcaret 0xba9 +#define XK_overbar 0xbc0 +#define XK_downtack 0xbc2 +#define XK_upshoe 0xbc3 +#define XK_downstile 0xbc4 +#define XK_underbar 0xbc6 +#define XK_jot 0xbca +#define XK_quad 0xbcc +#define XK_uptack 0xbce +#define XK_circle 0xbcf +#define XK_upstile 0xbd3 +#define XK_downshoe 0xbd6 +#define XK_rightshoe 0xbd8 +#define XK_leftshoe 0xbda +#define XK_lefttack 0xbdc +#define XK_righttack 0xbfc +#endif /* XK_APL */ + +/* + * Hebrew + * Byte 3 = c + */ + +#ifdef XK_HEBREW +#define XK_hebrew_doublelowline 0xcdf +#define XK_hebrew_aleph 0xce0 +#define XK_hebrew_bet 0xce1 +#define XK_hebrew_beth 0xce1 /* deprecated */ +#define XK_hebrew_gimel 0xce2 +#define XK_hebrew_gimmel 0xce2 /* deprecated */ +#define XK_hebrew_dalet 0xce3 +#define XK_hebrew_daleth 0xce3 /* deprecated */ +#define XK_hebrew_he 0xce4 +#define XK_hebrew_waw 0xce5 +#define XK_hebrew_zain 0xce6 +#define XK_hebrew_zayin 0xce6 /* deprecated */ +#define XK_hebrew_chet 0xce7 +#define XK_hebrew_het 0xce7 /* deprecated */ +#define XK_hebrew_tet 0xce8 +#define XK_hebrew_teth 0xce8 /* deprecated */ +#define XK_hebrew_yod 0xce9 +#define XK_hebrew_finalkaph 0xcea +#define XK_hebrew_kaph 0xceb +#define XK_hebrew_lamed 0xcec +#define XK_hebrew_finalmem 0xced +#define XK_hebrew_mem 0xcee +#define XK_hebrew_finalnun 0xcef +#define XK_hebrew_nun 0xcf0 +#define XK_hebrew_samech 0xcf1 +#define XK_hebrew_samekh 0xcf1 /* deprecated */ +#define XK_hebrew_ayin 0xcf2 +#define XK_hebrew_finalpe 0xcf3 +#define XK_hebrew_pe 0xcf4 +#define XK_hebrew_finalzade 0xcf5 +#define XK_hebrew_finalzadi 0xcf5 /* deprecated */ +#define XK_hebrew_zade 0xcf6 +#define XK_hebrew_zadi 0xcf6 /* deprecated */ +#define XK_hebrew_qoph 0xcf7 +#define XK_hebrew_kuf 0xcf7 /* deprecated */ +#define XK_hebrew_resh 0xcf8 +#define XK_hebrew_shin 0xcf9 +#define XK_hebrew_taw 0xcfa +#define XK_hebrew_taf 0xcfa /* deprecated */ +#define XK_Hebrew_switch 0xFF7E /* Alias for mode_switch */ +#endif /* XK_HEBREW */ + diff --git a/xlib/xbytes.h b/xlib/xbytes.h new file mode 100644 index 0000000..6cf3d56 --- /dev/null +++ b/xlib/xbytes.h @@ -0,0 +1,58 @@ +/* + * xbytes.h -- + * + * Declaration of table to reverse bit order of bytes. + * + * Copyright (c) 1995 Sun Microsystems, Inc. + * + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + * SCCS: @(#) xbytes.h 1.1 95/05/09 17:32:51 + */ + +#ifndef _XBYTES +#define _XBYTES + +/* + * The bits in a byte can be reversed so the least significant becomes + * the most significant by indexing xBitReverseTable with the byte + * to be reversed. + */ + +static unsigned char xBitReverseTable[256] = { + 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0, + 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0, + 0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8, + 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8, + 0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4, + 0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4, + 0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec, + 0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc, + 0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2, + 0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2, + 0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea, + 0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa, + 0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6, + 0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6, + 0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee, + 0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe, + 0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1, + 0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1, + 0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9, + 0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9, + 0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5, + 0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5, + 0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed, + 0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd, + 0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3, + 0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3, + 0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb, + 0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb, + 0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7, + 0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7, + 0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef, + 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff, +}; + +#endif /* _XBYTES */ diff --git a/xlib/xcolors.c b/xlib/xcolors.c new file mode 100644 index 0000000..800d688 --- /dev/null +++ b/xlib/xcolors.c @@ -0,0 +1,911 @@ +/* + * xcolors.c -- + * + * This file contains the routines used to map from X color + * names to RGB and pixel values. + * + * Copyright (c) 1996 by Sun Microsystems, Inc. + * + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + * SCCS: @(#) xcolors.c 1.6 97/09/02 09:41:50 + */ + +#include <tkInt.h> + +/* + * Define an array that defines the mapping from color names to RGB values. + * Note that this array must be kept sorted alphabetically so that the + * binary search used in XParseColor will succeed. + */ + +typedef struct { + char *name; + unsigned char red; + unsigned char green; + unsigned char blue; +} XColorEntry; + +static XColorEntry xColors[] = { + "alice blue", 240, 248, 255, + "AliceBlue", 240, 248, 255, + "antique white", 250, 235, 215, + "AntiqueWhite", 250, 235, 215, + "AntiqueWhite1", 255, 239, 219, + "AntiqueWhite2", 238, 223, 204, + "AntiqueWhite3", 205, 192, 176, + "AntiqueWhite4", 139, 131, 120, + "aquamarine", 127, 255, 212, + "aquamarine1", 127, 255, 212, + "aquamarine2", 118, 238, 198, + "aquamarine3", 102, 205, 170, + "aquamarine4", 69, 139, 116, + "azure", 240, 255, 255, + "azure1", 240, 255, 255, + "azure2", 224, 238, 238, + "azure3", 193, 205, 205, + "azure4", 131, 139, 139, + "beige", 245, 245, 220, + "bisque", 255, 228, 196, + "bisque1", 255, 228, 196, + "bisque2", 238, 213, 183, + "bisque3", 205, 183, 158, + "bisque4", 139, 125, 107, + "black", 0, 0, 0, + "blanched almond", 255, 235, 205, + "BlanchedAlmond", 255, 235, 205, + "blue", 0, 0, 255, + "blue violet", 138, 43, 226, + "blue1", 0, 0, 255, + "blue2", 0, 0, 238, + "blue3", 0, 0, 205, + "blue4", 0, 0, 139, + "BlueViolet", 138, 43, 226, + "brown", 165, 42, 42, + "brown1", 255, 64, 64, + "brown2", 238, 59, 59, + "brown3", 205, 51, 51, + "brown4", 139, 35, 35, + "burlywood", 222, 184, 135, + "burlywood1", 255, 211, 155, + "burlywood2", 238, 197, 145, + "burlywood3", 205, 170, 125, + "burlywood4", 139, 115, 85, + "cadet blue", 95, 158, 160, + "CadetBlue", 95, 158, 160, + "CadetBlue1", 152, 245, 255, + "CadetBlue2", 142, 229, 238, + "CadetBlue3", 122, 197, 205, + "CadetBlue4", 83, 134, 139, + "chartreuse", 127, 255, 0, + "chartreuse1", 127, 255, 0, + "chartreuse2", 118, 238, 0, + "chartreuse3", 102, 205, 0, + "chartreuse4", 69, 139, 0, + "chocolate", 210, 105, 30, + "chocolate1", 255, 127, 36, + "chocolate2", 238, 118, 33, + "chocolate3", 205, 102, 29, + "chocolate4", 139, 69, 19, + "coral", 255, 127, 80, + "coral1", 255, 114, 86, + "coral2", 238, 106, 80, + "coral3", 205, 91, 69, + "coral4", 139, 62, 47, + "cornflower blue", 100, 149, 237, + "CornflowerBlue", 100, 149, 237, + "cornsilk", 255, 248, 220, + "cornsilk1", 255, 248, 220, + "cornsilk2", 238, 232, 205, + "cornsilk3", 205, 200, 177, + "cornsilk4", 139, 136, 120, + "cyan", 0, 255, 255, + "cyan1", 0, 255, 255, + "cyan2", 0, 238, 238, + "cyan3", 0, 205, 205, + "cyan4", 0, 139, 139, + "dark blue", 0, 0, 139, + "dark cyan", 0, 139, 139, + "dark goldenrod", 184, 134, 11, + "dark gray", 169, 169, 169, + "dark green", 0, 100, 0, + "dark grey", 169, 169, 169, + "dark khaki", 189, 183, 107, + "dark magenta", 139, 0, 139, + "dark olive green", 85, 107, 47, + "dark orange", 255, 140, 0, + "dark orchid", 153, 50, 204, + "dark red", 139, 0, 0, + "dark salmon", 233, 150, 122, + "dark sea green", 143, 188, 143, + "dark slate blue", 72, 61, 139, + "dark slate gray", 47, 79, 79, + "dark slate grey", 47, 79, 79, + "dark turquoise", 0, 206, 209, + "dark violet", 148, 0, 211, + "DarkBlue", 0, 0, 139, + "DarkCyan", 0, 139, 139, + "DarkGoldenrod", 184, 134, 11, + "DarkGoldenrod1", 255, 185, 15, + "DarkGoldenrod2", 238, 173, 14, + "DarkGoldenrod3", 205, 149, 12, + "DarkGoldenrod4", 139, 101, 8, + "DarkGray", 169, 169, 169, + "DarkGreen", 0, 100, 0, + "DarkGrey", 169, 169, 169, + "DarkKhaki", 189, 183, 107, + "DarkMagenta", 139, 0, 139, + "DarkOliveGreen", 85, 107, 47, + "DarkOliveGreen1", 202, 255, 112, + "DarkOliveGreen2", 188, 238, 104, + "DarkOliveGreen3", 162, 205, 90, + "DarkOliveGreen4", 110, 139, 61, + "DarkOrange", 255, 140, 0, + "DarkOrange1", 255, 127, 0, + "DarkOrange2", 238, 118, 0, + "DarkOrange3", 205, 102, 0, + "DarkOrange4", 139, 69, 0, + "DarkOrchid", 153, 50, 204, + "DarkOrchid1", 191, 62, 255, + "DarkOrchid2", 178, 58, 238, + "DarkOrchid3", 154, 50, 205, + "DarkOrchid4", 104, 34, 139, + "DarkRed", 139, 0, 0, + "DarkSalmon", 233, 150, 122, + "DarkSeaGreen", 143, 188, 143, + "DarkSeaGreen1", 193, 255, 193, + "DarkSeaGreen2", 180, 238, 180, + "DarkSeaGreen3", 155, 205, 155, + "DarkSeaGreen4", 105, 139, 105, + "DarkSlateBlue", 72, 61, 139, + "DarkSlateGray", 47, 79, 79, + "DarkSlateGray1", 151, 255, 255, + "DarkSlateGray2", 141, 238, 238, + "DarkSlateGray3", 121, 205, 205, + "DarkSlateGray4", 82, 139, 139, + "DarkSlateGrey", 47, 79, 79, + "DarkTurquoise", 0, 206, 209, + "DarkViolet", 148, 0, 211, + "deep pink", 255, 20, 147, + "deep sky blue", 0, 191, 255, + "DeepPink", 255, 20, 147, + "DeepPink1", 255, 20, 147, + "DeepPink2", 238, 18, 137, + "DeepPink3", 205, 16, 118, + "DeepPink4", 139, 10, 80, + "DeepSkyBlue", 0, 191, 255, + "DeepSkyBlue1", 0, 191, 255, + "DeepSkyBlue2", 0, 178, 238, + "DeepSkyBlue3", 0, 154, 205, + "DeepSkyBlue4", 0, 104, 139, + "dim gray", 105, 105, 105, + "dim grey", 105, 105, 105, + "DimGray", 105, 105, 105, + "DimGrey", 105, 105, 105, + "dodger blue", 30, 144, 255, + "DodgerBlue", 30, 144, 255, + "DodgerBlue1", 30, 144, 255, + "DodgerBlue2", 28, 134, 238, + "DodgerBlue3", 24, 116, 205, + "DodgerBlue4", 16, 78, 139, + "firebrick", 178, 34, 34, + "firebrick1", 255, 48, 48, + "firebrick2", 238, 44, 44, + "firebrick3", 205, 38, 38, + "firebrick4", 139, 26, 26, + "floral white", 255, 250, 240, + "FloralWhite", 255, 250, 240, + "forest green", 34, 139, 34, + "ForestGreen", 34, 139, 34, + "gainsboro", 220, 220, 220, + "ghost white", 248, 248, 255, + "GhostWhite", 248, 248, 255, + "gold", 255, 215, 0, + "gold1", 255, 215, 0, + "gold2", 238, 201, 0, + "gold3", 205, 173, 0, + "gold4", 139, 117, 0, + "goldenrod", 218, 165, 32, + "goldenrod1", 255, 193, 37, + "goldenrod2", 238, 180, 34, + "goldenrod3", 205, 155, 29, + "goldenrod4", 139, 105, 20, + "gray", 190, 190, 190, + "gray0", 0, 0, 0, + "gray1", 3, 3, 3, + "gray10", 26, 26, 26, + "gray100", 255, 255, 255, + "gray11", 28, 28, 28, + "gray12", 31, 31, 31, + "gray13", 33, 33, 33, + "gray14", 36, 36, 36, + "gray15", 38, 38, 38, + "gray16", 41, 41, 41, + "gray17", 43, 43, 43, + "gray18", 46, 46, 46, + "gray19", 48, 48, 48, + "gray2", 5, 5, 5, + "gray20", 51, 51, 51, + "gray21", 54, 54, 54, + "gray22", 56, 56, 56, + "gray23", 59, 59, 59, + "gray24", 61, 61, 61, + "gray25", 64, 64, 64, + "gray26", 66, 66, 66, + "gray27", 69, 69, 69, + "gray28", 71, 71, 71, + "gray29", 74, 74, 74, + "gray3", 8, 8, 8, + "gray30", 77, 77, 77, + "gray31", 79, 79, 79, + "gray32", 82, 82, 82, + "gray33", 84, 84, 84, + "gray34", 87, 87, 87, + "gray35", 89, 89, 89, + "gray36", 92, 92, 92, + "gray37", 94, 94, 94, + "gray38", 97, 97, 97, + "gray39", 99, 99, 99, + "gray4", 10, 10, 10, + "gray40", 102, 102, 102, + "gray41", 105, 105, 105, + "gray42", 107, 107, 107, + "gray43", 110, 110, 110, + "gray44", 112, 112, 112, + "gray45", 115, 115, 115, + "gray46", 117, 117, 117, + "gray47", 120, 120, 120, + "gray48", 122, 122, 122, + "gray49", 125, 125, 125, + "gray5", 13, 13, 13, + "gray50", 127, 127, 127, + "gray51", 130, 130, 130, + "gray52", 133, 133, 133, + "gray53", 135, 135, 135, + "gray54", 138, 138, 138, + "gray55", 140, 140, 140, + "gray56", 143, 143, 143, + "gray57", 145, 145, 145, + "gray58", 148, 148, 148, + "gray59", 150, 150, 150, + "gray6", 15, 15, 15, + "gray60", 153, 153, 153, + "gray61", 156, 156, 156, + "gray62", 158, 158, 158, + "gray63", 161, 161, 161, + "gray64", 163, 163, 163, + "gray65", 166, 166, 166, + "gray66", 168, 168, 168, + "gray67", 171, 171, 171, + "gray68", 173, 173, 173, + "gray69", 176, 176, 176, + "gray7", 18, 18, 18, + "gray70", 179, 179, 179, + "gray71", 181, 181, 181, + "gray72", 184, 184, 184, + "gray73", 186, 186, 186, + "gray74", 189, 189, 189, + "gray75", 191, 191, 191, + "gray76", 194, 194, 194, + "gray77", 196, 196, 196, + "gray78", 199, 199, 199, + "gray79", 201, 201, 201, + "gray8", 20, 20, 20, + "gray80", 204, 204, 204, + "gray81", 207, 207, 207, + "gray82", 209, 209, 209, + "gray83", 212, 212, 212, + "gray84", 214, 214, 214, + "gray85", 217, 217, 217, + "gray86", 219, 219, 219, + "gray87", 222, 222, 222, + "gray88", 224, 224, 224, + "gray89", 227, 227, 227, + "gray9", 23, 23, 23, + "gray90", 229, 229, 229, + "gray91", 232, 232, 232, + "gray92", 235, 235, 235, + "gray93", 237, 237, 237, + "gray94", 240, 240, 240, + "gray95", 242, 242, 242, + "gray96", 245, 245, 245, + "gray97", 247, 247, 247, + "gray98", 250, 250, 250, + "gray99", 252, 252, 252, + "green", 0, 255, 0, + "green yellow", 173, 255, 47, + "green1", 0, 255, 0, + "green2", 0, 238, 0, + "green3", 0, 205, 0, + "green4", 0, 139, 0, + "GreenYellow", 173, 255, 47, + "grey", 190, 190, 190, + "grey0", 0, 0, 0, + "grey1", 3, 3, 3, + "grey10", 26, 26, 26, + "grey100", 255, 255, 255, + "grey11", 28, 28, 28, + "grey12", 31, 31, 31, + "grey13", 33, 33, 33, + "grey14", 36, 36, 36, + "grey15", 38, 38, 38, + "grey16", 41, 41, 41, + "grey17", 43, 43, 43, + "grey18", 46, 46, 46, + "grey19", 48, 48, 48, + "grey2", 5, 5, 5, + "grey20", 51, 51, 51, + "grey21", 54, 54, 54, + "grey22", 56, 56, 56, + "grey23", 59, 59, 59, + "grey24", 61, 61, 61, + "grey25", 64, 64, 64, + "grey26", 66, 66, 66, + "grey27", 69, 69, 69, + "grey28", 71, 71, 71, + "grey29", 74, 74, 74, + "grey3", 8, 8, 8, + "grey30", 77, 77, 77, + "grey31", 79, 79, 79, + "grey32", 82, 82, 82, + "grey33", 84, 84, 84, + "grey34", 87, 87, 87, + "grey35", 89, 89, 89, + "grey36", 92, 92, 92, + "grey37", 94, 94, 94, + "grey38", 97, 97, 97, + "grey39", 99, 99, 99, + "grey4", 10, 10, 10, + "grey40", 102, 102, 102, + "grey41", 105, 105, 105, + "grey42", 107, 107, 107, + "grey43", 110, 110, 110, + "grey44", 112, 112, 112, + "grey45", 115, 115, 115, + "grey46", 117, 117, 117, + "grey47", 120, 120, 120, + "grey48", 122, 122, 122, + "grey49", 125, 125, 125, + "grey5", 13, 13, 13, + "grey50", 127, 127, 127, + "grey51", 130, 130, 130, + "grey52", 133, 133, 133, + "grey53", 135, 135, 135, + "grey54", 138, 138, 138, + "grey55", 140, 140, 140, + "grey56", 143, 143, 143, + "grey57", 145, 145, 145, + "grey58", 148, 148, 148, + "grey59", 150, 150, 150, + "grey6", 15, 15, 15, + "grey60", 153, 153, 153, + "grey61", 156, 156, 156, + "grey62", 158, 158, 158, + "grey63", 161, 161, 161, + "grey64", 163, 163, 163, + "grey65", 166, 166, 166, + "grey66", 168, 168, 168, + "grey67", 171, 171, 171, + "grey68", 173, 173, 173, + "grey69", 176, 176, 176, + "grey7", 18, 18, 18, + "grey70", 179, 179, 179, + "grey71", 181, 181, 181, + "grey72", 184, 184, 184, + "grey73", 186, 186, 186, + "grey74", 189, 189, 189, + "grey75", 191, 191, 191, + "grey76", 194, 194, 194, + "grey77", 196, 196, 196, + "grey78", 199, 199, 199, + "grey79", 201, 201, 201, + "grey8", 20, 20, 20, + "grey80", 204, 204, 204, + "grey81", 207, 207, 207, + "grey82", 209, 209, 209, + "grey83", 212, 212, 212, + "grey84", 214, 214, 214, + "grey85", 217, 217, 217, + "grey86", 219, 219, 219, + "grey87", 222, 222, 222, + "grey88", 224, 224, 224, + "grey89", 227, 227, 227, + "grey9", 23, 23, 23, + "grey90", 229, 229, 229, + "grey91", 232, 232, 232, + "grey92", 235, 235, 235, + "grey93", 237, 237, 237, + "grey94", 240, 240, 240, + "grey95", 242, 242, 242, + "grey96", 245, 245, 245, + "grey97", 247, 247, 247, + "grey98", 250, 250, 250, + "grey99", 252, 252, 252, + "honeydew", 240, 255, 240, + "honeydew1", 240, 255, 240, + "honeydew2", 224, 238, 224, + "honeydew3", 193, 205, 193, + "honeydew4", 131, 139, 131, + "hot pink", 255, 105, 180, + "HotPink", 255, 105, 180, + "HotPink1", 255, 110, 180, + "HotPink2", 238, 106, 167, + "HotPink3", 205, 96, 144, + "HotPink4", 139, 58, 98, + "indian red", 205, 92, 92, + "IndianRed", 205, 92, 92, + "IndianRed1", 255, 106, 106, + "IndianRed2", 238, 99, 99, + "IndianRed3", 205, 85, 85, + "IndianRed4", 139, 58, 58, + "ivory", 255, 255, 240, + "ivory1", 255, 255, 240, + "ivory2", 238, 238, 224, + "ivory3", 205, 205, 193, + "ivory4", 139, 139, 131, + "khaki", 240, 230, 140, + "khaki1", 255, 246, 143, + "khaki2", 238, 230, 133, + "khaki3", 205, 198, 115, + "khaki4", 139, 134, 78, + "lavender", 230, 230, 250, + "lavender blush", 255, 240, 245, + "LavenderBlush", 255, 240, 245, + "LavenderBlush1", 255, 240, 245, + "LavenderBlush2", 238, 224, 229, + "LavenderBlush3", 205, 193, 197, + "LavenderBlush4", 139, 131, 134, + "lawn green", 124, 252, 0, + "LawnGreen", 124, 252, 0, + "lemon chiffon", 255, 250, 205, + "LemonChiffon", 255, 250, 205, + "LemonChiffon1", 255, 250, 205, + "LemonChiffon2", 238, 233, 191, + "LemonChiffon3", 205, 201, 165, + "LemonChiffon4", 139, 137, 112, + "light blue", 173, 216, 230, + "light coral", 240, 128, 128, + "light cyan", 224, 255, 255, + "light goldenrod", 238, 221, 130, + "light goldenrod yellow", 250, 250, 210, + "light gray", 211, 211, 211, + "light green", 144, 238, 144, + "light grey", 211, 211, 211, + "light pink", 255, 182, 193, + "light salmon", 255, 160, 122, + "light sea green", 32, 178, 170, + "light sky blue", 135, 206, 250, + "light slate blue", 132, 112, 255, + "light slate gray", 119, 136, 153, + "light slate grey", 119, 136, 153, + "light steel blue", 176, 196, 222, + "light yellow", 255, 255, 224, + "LightBlue", 173, 216, 230, + "LightBlue1", 191, 239, 255, + "LightBlue2", 178, 223, 238, + "LightBlue3", 154, 192, 205, + "LightBlue4", 104, 131, 139, + "LightCoral", 240, 128, 128, + "LightCyan", 224, 255, 255, + "LightCyan1", 224, 255, 255, + "LightCyan2", 209, 238, 238, + "LightCyan3", 180, 205, 205, + "LightCyan4", 122, 139, 139, + "LightGoldenrod", 238, 221, 130, + "LightGoldenrod1", 255, 236, 139, + "LightGoldenrod2", 238, 220, 130, + "LightGoldenrod3", 205, 190, 112, + "LightGoldenrod4", 139, 129, 76, + "LightGoldenrodYellow", 250, 250, 210, + "LightGray", 211, 211, 211, + "LightGreen", 144, 238, 144, + "LightGrey", 211, 211, 211, + "LightPink", 255, 182, 193, + "LightPink1", 255, 174, 185, + "LightPink2", 238, 162, 173, + "LightPink3", 205, 140, 149, + "LightPink4", 139, 95, 101, + "LightSalmon", 255, 160, 122, + "LightSalmon1", 255, 160, 122, + "LightSalmon2", 238, 149, 114, + "LightSalmon3", 205, 129, 98, + "LightSalmon4", 139, 87, 66, + "LightSeaGreen", 32, 178, 170, + "LightSkyBlue", 135, 206, 250, + "LightSkyBlue1", 176, 226, 255, + "LightSkyBlue2", 164, 211, 238, + "LightSkyBlue3", 141, 182, 205, + "LightSkyBlue4", 96, 123, 139, + "LightSlateBlue", 132, 112, 255, + "LightSlateGray", 119, 136, 153, + "LightSlateGrey", 119, 136, 153, + "LightSteelBlue", 176, 196, 222, + "LightSteelBlue1", 202, 225, 255, + "LightSteelBlue2", 188, 210, 238, + "LightSteelBlue3", 162, 181, 205, + "LightSteelBlue4", 110, 123, 139, + "LightYellow", 255, 255, 224, + "LightYellow1", 255, 255, 224, + "LightYellow2", 238, 238, 209, + "LightYellow3", 205, 205, 180, + "LightYellow4", 139, 139, 122, + "lime green", 50, 205, 50, + "LimeGreen", 50, 205, 50, + "linen", 250, 240, 230, + "magenta", 255, 0, 255, + "magenta1", 255, 0, 255, + "magenta2", 238, 0, 238, + "magenta3", 205, 0, 205, + "magenta4", 139, 0, 139, + "maroon", 176, 48, 96, + "maroon1", 255, 52, 179, + "maroon2", 238, 48, 167, + "maroon3", 205, 41, 144, + "maroon4", 139, 28, 98, + "medium aquamarine", 102, 205, 170, + "medium blue", 0, 0, 205, + "medium orchid", 186, 85, 211, + "medium purple", 147, 112, 219, + "medium sea green", 60, 179, 113, + "medium slate blue", 123, 104, 238, + "medium spring green", 0, 250, 154, + "medium turquoise", 72, 209, 204, + "medium violet red", 199, 21, 133, + "MediumAquamarine", 102, 205, 170, + "MediumBlue", 0, 0, 205, + "MediumOrchid", 186, 85, 211, + "MediumOrchid1", 224, 102, 255, + "MediumOrchid2", 209, 95, 238, + "MediumOrchid3", 180, 82, 205, + "MediumOrchid4", 122, 55, 139, + "MediumPurple", 147, 112, 219, + "MediumPurple1", 171, 130, 255, + "MediumPurple2", 159, 121, 238, + "MediumPurple3", 137, 104, 205, + "MediumPurple4", 93, 71, 139, + "MediumSeaGreen", 60, 179, 113, + "MediumSlateBlue", 123, 104, 238, + "MediumSpringGreen", 0, 250, 154, + "MediumTurquoise", 72, 209, 204, + "MediumVioletRed", 199, 21, 133, + "midnight blue", 25, 25, 112, + "MidnightBlue", 25, 25, 112, + "mint cream", 245, 255, 250, + "MintCream", 245, 255, 250, + "misty rose", 255, 228, 225, + "MistyRose", 255, 228, 225, + "MistyRose1", 255, 228, 225, + "MistyRose2", 238, 213, 210, + "MistyRose3", 205, 183, 181, + "MistyRose4", 139, 125, 123, + "moccasin", 255, 228, 181, + "navajo white", 255, 222, 173, + "NavajoWhite", 255, 222, 173, + "NavajoWhite1", 255, 222, 173, + "NavajoWhite2", 238, 207, 161, + "NavajoWhite3", 205, 179, 139, + "NavajoWhite4", 139, 121, 94, + "navy", 0, 0, 128, + "navy blue", 0, 0, 128, + "NavyBlue", 0, 0, 128, + "old lace", 253, 245, 230, + "OldLace", 253, 245, 230, + "olive drab", 107, 142, 35, + "OliveDrab", 107, 142, 35, + "OliveDrab1", 192, 255, 62, + "OliveDrab2", 179, 238, 58, + "OliveDrab3", 154, 205, 50, + "OliveDrab4", 105, 139, 34, + "orange", 255, 165, 0, + "orange red", 255, 69, 0, + "orange1", 255, 165, 0, + "orange2", 238, 154, 0, + "orange3", 205, 133, 0, + "orange4", 139, 90, 0, + "OrangeRed", 255, 69, 0, + "OrangeRed1", 255, 69, 0, + "OrangeRed2", 238, 64, 0, + "OrangeRed3", 205, 55, 0, + "OrangeRed4", 139, 37, 0, + "orchid", 218, 112, 214, + "orchid1", 255, 131, 250, + "orchid2", 238, 122, 233, + "orchid3", 205, 105, 201, + "orchid4", 139, 71, 137, + "pale goldenrod", 238, 232, 170, + "pale green", 152, 251, 152, + "pale turquoise", 175, 238, 238, + "pale violet red", 219, 112, 147, + "PaleGoldenrod", 238, 232, 170, + "PaleGreen", 152, 251, 152, + "PaleGreen1", 154, 255, 154, + "PaleGreen2", 144, 238, 144, + "PaleGreen3", 124, 205, 124, + "PaleGreen4", 84, 139, 84, + "PaleTurquoise", 175, 238, 238, + "PaleTurquoise1", 187, 255, 255, + "PaleTurquoise2", 174, 238, 238, + "PaleTurquoise3", 150, 205, 205, + "PaleTurquoise4", 102, 139, 139, + "PaleVioletRed", 219, 112, 147, + "PaleVioletRed1", 255, 130, 171, + "PaleVioletRed2", 238, 121, 159, + "PaleVioletRed3", 205, 104, 137, + "PaleVioletRed4", 139, 71, 93, + "papaya whip", 255, 239, 213, + "PapayaWhip", 255, 239, 213, + "peach puff", 255, 218, 185, + "PeachPuff", 255, 218, 185, + "PeachPuff1", 255, 218, 185, + "PeachPuff2", 238, 203, 173, + "PeachPuff3", 205, 175, 149, + "PeachPuff4", 139, 119, 101, + "peru", 205, 133, 63, + "pink", 255, 192, 203, + "pink1", 255, 181, 197, + "pink2", 238, 169, 184, + "pink3", 205, 145, 158, + "pink4", 139, 99, 108, + "plum", 221, 160, 221, + "plum1", 255, 187, 255, + "plum2", 238, 174, 238, + "plum3", 205, 150, 205, + "plum4", 139, 102, 139, + "powder blue", 176, 224, 230, + "PowderBlue", 176, 224, 230, + "purple", 160, 32, 240, + "purple1", 155, 48, 255, + "purple2", 145, 44, 238, + "purple3", 125, 38, 205, + "purple4", 85, 26, 139, + "red", 255, 0, 0, + "red1", 255, 0, 0, + "red2", 238, 0, 0, + "red3", 205, 0, 0, + "red4", 139, 0, 0, + "rosy brown", 188, 143, 143, + "RosyBrown", 188, 143, 143, + "RosyBrown1", 255, 193, 193, + "RosyBrown2", 238, 180, 180, + "RosyBrown3", 205, 155, 155, + "RosyBrown4", 139, 105, 105, + "royal blue", 65, 105, 225, + "RoyalBlue", 65, 105, 225, + "RoyalBlue1", 72, 118, 255, + "RoyalBlue2", 67, 110, 238, + "RoyalBlue3", 58, 95, 205, + "RoyalBlue4", 39, 64, 139, + "saddle brown", 139, 69, 19, + "SaddleBrown", 139, 69, 19, + "salmon", 250, 128, 114, + "salmon1", 255, 140, 105, + "salmon2", 238, 130, 98, + "salmon3", 205, 112, 84, + "salmon4", 139, 76, 57, + "sandy brown", 244, 164, 96, + "SandyBrown", 244, 164, 96, + "sea green", 46, 139, 87, + "SeaGreen", 46, 139, 87, + "SeaGreen1", 84, 255, 159, + "SeaGreen2", 78, 238, 148, + "SeaGreen3", 67, 205, 128, + "SeaGreen4", 46, 139, 87, + "seashell", 255, 245, 238, + "seashell1", 255, 245, 238, + "seashell2", 238, 229, 222, + "seashell3", 205, 197, 191, + "seashell4", 139, 134, 130, + "sienna", 160, 82, 45, + "sienna1", 255, 130, 71, + "sienna2", 238, 121, 66, + "sienna3", 205, 104, 57, + "sienna4", 139, 71, 38, + "sky blue", 135, 206, 235, + "SkyBlue", 135, 206, 235, + "SkyBlue1", 135, 206, 255, + "SkyBlue2", 126, 192, 238, + "SkyBlue3", 108, 166, 205, + "SkyBlue4", 74, 112, 139, + "slate blue", 106, 90, 205, + "slate gray", 112, 128, 144, + "slate grey", 112, 128, 144, + "SlateBlue", 106, 90, 205, + "SlateBlue1", 131, 111, 255, + "SlateBlue2", 122, 103, 238, + "SlateBlue3", 105, 89, 205, + "SlateBlue4", 71, 60, 139, + "SlateGray", 112, 128, 144, + "SlateGray1", 198, 226, 255, + "SlateGray2", 185, 211, 238, + "SlateGray3", 159, 182, 205, + "SlateGray4", 108, 123, 139, + "SlateGrey", 112, 128, 144, + "snow", 255, 250, 250, + "snow1", 255, 250, 250, + "snow2", 238, 233, 233, + "snow3", 205, 201, 201, + "snow4", 139, 137, 137, + "spring green", 0, 255, 127, + "SpringGreen", 0, 255, 127, + "SpringGreen1", 0, 255, 127, + "SpringGreen2", 0, 238, 118, + "SpringGreen3", 0, 205, 102, + "SpringGreen4", 0, 139, 69, + "steel blue", 70, 130, 180, + "SteelBlue", 70, 130, 180, + "SteelBlue1", 99, 184, 255, + "SteelBlue2", 92, 172, 238, + "SteelBlue3", 79, 148, 205, + "SteelBlue4", 54, 100, 139, + "tan", 210, 180, 140, + "tan1", 255, 165, 79, + "tan2", 238, 154, 73, + "tan3", 205, 133, 63, + "tan4", 139, 90, 43, + "thistle", 216, 191, 216, + "thistle1", 255, 225, 255, + "thistle2", 238, 210, 238, + "thistle3", 205, 181, 205, + "thistle4", 139, 123, 139, + "tomato", 255, 99, 71, + "tomato1", 255, 99, 71, + "tomato2", 238, 92, 66, + "tomato3", 205, 79, 57, + "tomato4", 139, 54, 38, + "turquoise", 64, 224, 208, + "turquoise1", 0, 245, 255, + "turquoise2", 0, 229, 238, + "turquoise3", 0, 197, 205, + "turquoise4", 0, 134, 139, + "violet", 238, 130, 238, + "violet red", 208, 32, 144, + "VioletRed", 208, 32, 144, + "VioletRed1", 255, 62, 150, + "VioletRed2", 238, 58, 140, + "VioletRed3", 205, 50, 120, + "VioletRed4", 139, 34, 82, + "wheat", 245, 222, 179, + "wheat1", 255, 231, 186, + "wheat2", 238, 216, 174, + "wheat3", 205, 186, 150, + "wheat4", 139, 126, 102, + "white", 255, 255, 255, + "white smoke", 245, 245, 245, + "WhiteSmoke", 245, 245, 245, + "yellow", 255, 255, 0, + "yellow green", 154, 205, 50, + "yellow1", 255, 255, 0, + "yellow2", 238, 238, 0, + "yellow3", 205, 205, 0, + "yellow4", 139, 139, 0, + "YellowGreen", 154, 205, 50, + NULL, 0, 0, 0 +}; + + +/* + * This value will be set to the number of colors in the color table + * the first time it is needed. + */ + +static int numXColors = 0; + +/* + * Forward declarations for functions used only in this file. + */ + +static int FindColor _ANSI_ARGS_((const char *name, XColor *colorPtr)); + +/* + *---------------------------------------------------------------------- + * + * FindColor -- + * + * This routine finds the color entry that corresponds to the + * specified color. + * + * Results: + * Returns non-zero on success. The RGB values of the XColor + * will be initialized to the proper values on success. + * + * Side effects: + * None. + * + *---------------------------------------------------------------------- + */ + +static int +FindColor(name, colorPtr) + const char *name; + XColor *colorPtr; +{ + int l, u, r, i; + + /* + * Count the number of elements in the color array if we haven't + * done so yet. + */ + + if (numXColors == 0) { + XColorEntry *ePtr; + for (ePtr = xColors; ePtr->name != NULL; ePtr++) { + numXColors++; + } + } + + /* + * Perform a binary search on the sorted array of colors. + */ + + l = 0; + u = numXColors - 1; + while (l <= u) { + i = (l + u) / 2; + r = strcasecmp(name, xColors[i].name); + if (r == 0) { + break; + } else if (r < 0) { + u = i-1; + } else { + l = i+1; + } + } + if (l > u) { + return 0; + } + colorPtr->red = xColors[i].red << 8; + colorPtr->green = xColors[i].green << 8; + colorPtr->blue = xColors[i].blue << 8; + return 1; +} + +/* + *---------------------------------------------------------------------- + * + * XParseColor -- + * + * Partial implementation of X color name parsing interface. + * + * Results: + * Returns non-zero on success. + * + * Side effects: + * None. + * + *---------------------------------------------------------------------- + */ + +Status +XParseColor(display, map, spec, colorPtr) + Display *display; + Colormap map; + const char* spec; + XColor *colorPtr; +{ + if (spec[0] == '#') { + char fmt[16]; + int i, red, green, blue; + + if ((i = strlen(spec+1))%3) { + return 0; + } + i /= 3; + + sprintf(fmt, "%%%dx%%%dx%%%dx", i, i, i); + if (sscanf(spec+1, fmt, &red, &green, &blue) != 3) { + return 0; + } + colorPtr->red = ((unsigned short) red) << (4 * (4 - i)); + colorPtr->green = ((unsigned short) green) << (4 * (4 - i)); + colorPtr->blue = ((unsigned short) blue) << (4 * (4 - i)); + } else { + if (!FindColor(spec, colorPtr)) { + return 0; + } + } + colorPtr->pixel = TkpGetPixel(colorPtr); + colorPtr->flags = DoRed|DoGreen|DoBlue; + colorPtr->pad = 0; + return 1; +} diff --git a/xlib/xdraw.c b/xlib/xdraw.c new file mode 100644 index 0000000..8e78011 --- /dev/null +++ b/xlib/xdraw.c @@ -0,0 +1,82 @@ +/* + * xdraw.c -- + * + * This file contains generic procedures related to X drawing + * primitives. + * + * Copyright (c) 1995 Sun Microsystems, Inc. + * + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + * SCCS: @(#) xdraw.c 1.2 96/02/15 18:55:46 + */ + +#include "tk.h" + +/* + *---------------------------------------------------------------------- + * + * XDrawLine -- + * + * Draw a single line between two points in a given drawable. + * + * Results: + * None. + * + * Side effects: + * Draws a single line segment. + * + *---------------------------------------------------------------------- + */ + +void +XDrawLine(display, d, gc, x1, y1, x2, y2) + Display* display; + Drawable d; + GC gc; + int x1, y1, x2, y2; /* Coordinates of line segment. */ +{ + XPoint points[2]; + + points[0].x = x1; + points[0].y = y1; + points[1].x = x2; + points[1].y = y2; + XDrawLines(display, d, gc, points, 2, CoordModeOrigin); +} + +/* + *---------------------------------------------------------------------- + * + * XFillRectangle -- + * + * Fills a rectangular area in the given drawable. This procedure + * is implemented as a call to XFillRectangles. + * + * Results: + * None + * + * Side effects: + * Fills the specified rectangle. + * + *---------------------------------------------------------------------- + */ + +void +XFillRectangle(display, d, gc, x, y, width, height) + Display* display; + Drawable d; + GC gc; + int x; + int y; + unsigned int width; + unsigned int height; +{ + XRectangle rectangle; + rectangle.x = x; + rectangle.y = y; + rectangle.width = width; + rectangle.height = height; + XFillRectangles(display, d, gc, &rectangle, 1); +} diff --git a/xlib/xgc.c b/xlib/xgc.c new file mode 100644 index 0000000..cdd1021 --- /dev/null +++ b/xlib/xgc.c @@ -0,0 +1,353 @@ +/* + * xgc.c -- + * + * This file contains generic routines for manipulating X graphics + * contexts. + * + * Copyright (c) 1995-1996 Sun Microsystems, Inc. + * + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + * SCCS: @(#) xgc.c 1.8 96/10/11 14:59:39 + */ + +#include <tkInt.h> + +#ifdef MAC_TCL +# include <Xlib.h> +#else +# include <X11/Xlib.h> +#endif + + +/* + *---------------------------------------------------------------------- + * + * XCreateGC -- + * + * Allocate a new GC, and initialize the specified fields. + * + * Results: + * Returns a newly allocated GC. + * + * Side effects: + * None. + * + *---------------------------------------------------------------------- + */ + +GC +XCreateGC(display, d, mask, values) + Display* display; + Drawable d; + unsigned long mask; + XGCValues* values; +{ + GC gp; + + gp = (XGCValues *)ckalloc(sizeof(XGCValues)); + if (!gp) { + return None; + } + + gp->function = (mask & GCFunction) ?values->function :GXcopy; + gp->plane_mask = (mask & GCPlaneMask) ?values->plane_mask :~0; + gp->foreground = (mask & GCForeground) ?values->foreground :0; + gp->background = (mask & GCBackground) ?values->background :0xffffff; + gp->line_width = (mask & GCLineWidth) ?values->line_width :0; + gp->line_style = (mask & GCLineStyle) ?values->line_style :LineSolid; + gp->cap_style = (mask & GCCapStyle) ?values->cap_style :0; + gp->join_style = (mask & GCJoinStyle) ?values->join_style :0; + gp->fill_style = (mask & GCFillStyle) ?values->fill_style :FillSolid; + gp->fill_rule = (mask & GCFillRule) ?values->fill_rule :WindingRule; + gp->arc_mode = (mask & GCArcMode) ?values->arc_mode :ArcPieSlice; + gp->tile = (mask & GCTile) ?values->tile :None; + gp->stipple = (mask & GCStipple) ?values->stipple :None; + gp->ts_x_origin = (mask & GCTileStipXOrigin) ?values->ts_x_origin:0; + gp->ts_y_origin = (mask & GCTileStipYOrigin) ?values->ts_y_origin:0; + gp->font = (mask & GCFont) ?values->font :None; + gp->subwindow_mode = (mask & GCSubwindowMode)?values->subwindow_mode:ClipByChildren; + gp->graphics_exposures = (mask & GCGraphicsExposures)?values->graphics_exposures:True; + gp->clip_x_origin = (mask & GCClipXOrigin) ?values->clip_x_origin :0; + gp->clip_y_origin = (mask & GCClipYOrigin) ?values->clip_y_origin :0; + gp->dash_offset = (mask & GCDashOffset) ?values->dash_offset :0; + gp->dashes = (mask & GCDashList) ?values->dashes :4; + + if (mask & GCClipMask) { + gp->clip_mask = (Pixmap)ckalloc(sizeof(TkpClipMask)); + ((TkpClipMask*)gp->clip_mask)->type = TKP_CLIP_PIXMAP; + ((TkpClipMask*)gp->clip_mask)->value.pixmap = values->clip_mask; + } else { + gp->clip_mask = None; + } + + return gp; +} + +/* + *---------------------------------------------------------------------- + * + * XChangeGC -- + * + * Changes the GC components specified by valuemask for the + * specified GC. + * + * Results: + * None. + * + * Side effects: + * Updates the specified GC. + * + *---------------------------------------------------------------------- + */ + +void +XChangeGC(d, gc, mask, values) + Display * d; + GC gc; + unsigned long mask; + XGCValues *values; +{ + if (mask & GCFunction) { gc->function = values->function; } + if (mask & GCPlaneMask) { gc->plane_mask = values->plane_mask; } + if (mask & GCForeground) { gc->foreground = values->foreground; } + if (mask & GCBackground) { gc->background = values->background; } + if (mask & GCLineWidth) { gc->line_width = values->line_width; } + if (mask & GCLineStyle) { gc->line_style = values->line_style; } + if (mask & GCCapStyle) { gc->cap_style = values->cap_style; } + if (mask & GCJoinStyle) { gc->join_style = values->join_style; } + if (mask & GCFillStyle) { gc->fill_style = values->fill_style; } + if (mask & GCFillRule) { gc->fill_rule = values->fill_rule; } + if (mask & GCArcMode) { gc->arc_mode = values->arc_mode; } + if (mask & GCTile) { gc->tile = values->tile; } + if (mask & GCStipple) { gc->stipple = values->stipple; } + if (mask & GCTileStipXOrigin) { gc->ts_x_origin = values->ts_x_origin; } + if (mask & GCTileStipYOrigin) { gc->ts_y_origin = values->ts_y_origin; } + if (mask & GCFont) { gc->font = values->font; } + if (mask & GCSubwindowMode) { gc->subwindow_mode = values->subwindow_mode; } + if (mask & GCGraphicsExposures) { gc->graphics_exposures = values->graphics_exposures; } + if (mask & GCClipXOrigin) { gc->clip_x_origin = values->clip_x_origin; } + if (mask & GCClipYOrigin) { gc->clip_y_origin = values->clip_y_origin; } + if (mask & GCClipMask) { XSetClipMask(d, gc, values->clip_mask); } + if (mask & GCDashOffset) { gc->dash_offset = values->dash_offset; } + if (mask & GCDashList) { gc->dashes = values->dashes; } +} + +/* + *---------------------------------------------------------------------- + * + * XFreeGC -- + * + * Deallocates the specified graphics context. + * + * Results: + * None. + * + * Side effects: + * None. + * + *---------------------------------------------------------------------- + */ + +void +XFreeGC(d, gc) + Display * d; + GC gc; +{ + if (gc != None) { + if (gc->clip_mask != None) { + ckfree((char*) gc->clip_mask); + } + ckfree((char *) gc); + } +} + +/* + *---------------------------------------------------------------------- + * + * XSetForeground, etc. -- + * + * The following functions are simply accessor functions for + * the GC slots. + * + * Results: + * None. + * + * Side effects: + * Each function sets some slot in the GC. + * + *---------------------------------------------------------------------- + */ + +void +XSetForeground(display, gc, foreground) + Display *display; + GC gc; + unsigned long foreground; +{ + gc->foreground = foreground; +} + +void +XSetBackground(display, gc, background) + Display *display; + GC gc; + unsigned long background; +{ + gc->background = background; +} + +void +XSetFunction(display, gc, function) + Display *display; + GC gc; + int function; +{ + gc->function = function; +} + +void +XSetFillRule(display, gc, fill_rule) + Display *display; + GC gc; + int fill_rule; +{ + gc->fill_rule = fill_rule; +} + +void +XSetFillStyle(display, gc, fill_style) + Display *display; + GC gc; + int fill_style; +{ + gc->fill_style = fill_style; +} + +void +XSetTSOrigin(display, gc, x, y) + Display *display; + GC gc; + int x, y; +{ + gc->ts_x_origin = x; + gc->ts_y_origin = y; +} + +void +XSetFont(display, gc, font) + Display *display; + GC gc; + Font font; +{ + gc->font = font; +} + +void +XSetArcMode(display, gc, arc_mode) + Display *display; + GC gc; + int arc_mode; +{ + gc->arc_mode = arc_mode; +} + +void +XSetStipple(display, gc, stipple) + Display *display; + GC gc; + Pixmap stipple; +{ + gc->stipple = stipple; +} + +void +XSetLineAttributes(display, gc, line_width, line_style, cap_style, + join_style) + Display *display; + GC gc; + unsigned int line_width; + int line_style; + int cap_style; + int join_style; +{ + gc->line_width = line_width; + gc->line_style = line_style; + gc->cap_style = cap_style; + gc->join_style = join_style; +} + +void +XSetClipOrigin(display, gc, clip_x_origin, clip_y_origin) + Display* display; + GC gc; + int clip_x_origin; + int clip_y_origin; +{ + gc->clip_x_origin = clip_x_origin; + gc->clip_y_origin = clip_y_origin; +} + +/* + *---------------------------------------------------------------------- + * + * TkSetRegion, XSetClipMask -- + * + * Sets the clipping region/pixmap for a GC. + * + * Note that unlike the Xlib equivalent, it is not safe to delete + * the region after setting it into the GC. The only use of + * TkSetRegion is currently in ImgPhotoDisplay, which uses the GC + * immediately. + * + * Results: + * None. + * + * Side effects: + * Allocates or dealloates a TkpClipMask. + * + *---------------------------------------------------------------------- + */ + +void +TkSetRegion(display, gc, r) + Display* display; + GC gc; + TkRegion r; +{ + if (r == None) { + if (gc->clip_mask) { + ckfree((char*) gc->clip_mask); + gc->clip_mask = None; + } + return; + } + + if (gc->clip_mask == None) { + gc->clip_mask = (Pixmap)ckalloc(sizeof(TkpClipMask)); + } + ((TkpClipMask*)gc->clip_mask)->type = TKP_CLIP_REGION; + ((TkpClipMask*)gc->clip_mask)->value.region = r; +} + +void +XSetClipMask(display, gc, pixmap) + Display* display; + GC gc; + Pixmap pixmap; +{ + if (pixmap == None) { + if (gc->clip_mask) { + ckfree((char*) gc->clip_mask); + gc->clip_mask = None; + } + return; + } + + if (gc->clip_mask == None) { + gc->clip_mask = (Pixmap)ckalloc(sizeof(TkpClipMask)); + } + ((TkpClipMask*)gc->clip_mask)->type = TKP_CLIP_PIXMAP; + ((TkpClipMask*)gc->clip_mask)->value.pixmap = pixmap; +} diff --git a/xlib/ximage.c b/xlib/ximage.c new file mode 100644 index 0000000..057e973 --- /dev/null +++ b/xlib/ximage.c @@ -0,0 +1,115 @@ +/* + * ximage.c -- + * + * X bitmap and image routines. + * + * Copyright (c) 1995 Sun Microsystems, Inc. + * + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + * SCCS: @(#) ximage.c 1.6 96/07/23 16:59:10 + */ + +#include "tkInt.h" + + +/* + *---------------------------------------------------------------------- + * + * XCreateBitmapFromData -- + * + * Construct a single plane pixmap from bitmap data. + * + * Results: + * Returns a new Pixmap. + * + * Side effects: + * Allocates a new bitmap and drawable. + * + *---------------------------------------------------------------------- + */ + +Pixmap +XCreateBitmapFromData(display, d, data, width, height) + Display* display; + Drawable d; + _Xconst char* data; + unsigned int width; + unsigned int height; +{ + XImage ximage; + GC gc; + Pixmap pix; + + pix = Tk_GetPixmap(display, d, width, height, 1); + gc = XCreateGC(display, pix, 0, NULL); + if (gc == NULL) { + return None; + } + ximage.height = height; + ximage.width = width; + ximage.depth = 1; + ximage.bits_per_pixel = 1; + ximage.xoffset = 0; + ximage.format = XYBitmap; + ximage.data = (char *)data; + ximage.byte_order = LSBFirst; + ximage.bitmap_unit = 8; + ximage.bitmap_bit_order = LSBFirst; + ximage.bitmap_pad = 8; + ximage.bytes_per_line = (width+7)/8; + + TkPutImage(NULL, 0, display, pix, gc, &ximage, 0, 0, 0, 0, width, height); + XFreeGC(display, gc); + return pix; +} + +/* + *---------------------------------------------------------------------- + * + * XReadBitmapFile -- + * + * Loads a bitmap image in X bitmap format into the specified + * drawable. + * + * Results: + * Sets the size, hotspot, and bitmap on success. + * + * Side effects: + * Creates a new bitmap from the file data. + * + *---------------------------------------------------------------------- + */ + +int +XReadBitmapFile(display, d, filename, width_return, height_return, + bitmap_return, x_hot_return, y_hot_return) + Display* display; + Drawable d; + _Xconst char* filename; + unsigned int* width_return; + unsigned int* height_return; + Pixmap* bitmap_return; + int* x_hot_return; + int* y_hot_return; +{ + Tcl_Interp *dummy; + char *data; + + dummy = Tcl_CreateInterp(); + + data = TkGetBitmapData(dummy, NULL, (char *) filename, + (int *) width_return, (int *) height_return, x_hot_return, + y_hot_return); + if (data == NULL) { + return BitmapFileInvalid; + } + + *bitmap_return = XCreateBitmapFromData(display, d, data, *width_return, + *height_return); + + Tcl_DeleteInterp(dummy); + ckfree(data); + return BitmapSuccess; +} diff --git a/xlib/xutil.c b/xlib/xutil.c new file mode 100644 index 0000000..1080ff9 --- /dev/null +++ b/xlib/xutil.c @@ -0,0 +1,116 @@ +/* + * xutil.c -- + * + * This function contains generic X emulation routines. + * + * Copyright (c) 1995-1996 Sun Microsystems, Inc. + * + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + * SCCS: @(#) xutil.c 1.10 96/04/09 23:26:21 + */ + +#include <stdlib.h> +#include <tk.h> + +#ifdef MAC_TCL +# include <Xutil.h> +# include <Xatom.h> +#else +# include <X11/Xutil.h> +# include <X11/Xatom.h> +#endif + +/* + *---------------------------------------------------------------------- + * + * XInternAtom -- + * + * This procedure simulates the XInternAtom function by calling + * Tk_Uid to get a unique id for every atom. This is only a + * partial implementation, since it doesn't work across + * applications. + * + * Results: + * A new Atom. + * + * Side effects: + * None. + * + *---------------------------------------------------------------------- + */ + +Atom +XInternAtom(display, atom_name, only_if_exists) + Display* display; + _Xconst char* atom_name; + Bool only_if_exists; +{ + static Atom atom = XA_LAST_PREDEFINED; + + display->request++; + return ++atom; +} + +/* + *---------------------------------------------------------------------- + * + * XGetVisualInfo -- + * + * Returns information about the specified visual. + * + * Results: + * Returns a newly allocated XVisualInfo structure. + * + * Side effects: + * Allocates storage. + * + *---------------------------------------------------------------------- + */ + +XVisualInfo * +XGetVisualInfo(display, vinfo_mask, vinfo_template, nitems_return) + Display* display; + long vinfo_mask; + XVisualInfo* vinfo_template; + int* nitems_return; +{ + XVisualInfo *info = (XVisualInfo *)ckalloc(sizeof(XVisualInfo)); + info->visual = DefaultVisual(display, 0); + info->visualid = info->visual->visualid; + info->screen = 0; + info->depth = info->visual->bits_per_rgb; + info->class = info->visual->class; + info->colormap_size = info->visual->map_entries; + info->bits_per_rgb = info->visual->bits_per_rgb; + info->red_mask = info->visual->red_mask; + info->green_mask = info->visual->green_mask; + info->blue_mask = info->visual->blue_mask; + + if (((vinfo_mask & VisualIDMask) + && (vinfo_template->visualid != info->visualid)) + || ((vinfo_mask & VisualScreenMask) + && (vinfo_template->screen != info->screen)) + || ((vinfo_mask & VisualDepthMask) + && (vinfo_template->depth != info->depth)) + || ((vinfo_mask & VisualClassMask) + && (vinfo_template->class != info->class)) + || ((vinfo_mask & VisualColormapSizeMask) + && (vinfo_template->colormap_size != info->colormap_size)) + || ((vinfo_mask & VisualBitsPerRGBMask) + && (vinfo_template->bits_per_rgb != info->bits_per_rgb)) + || ((vinfo_mask & VisualRedMaskMask) + && (vinfo_template->red_mask != info->red_mask)) + || ((vinfo_mask & VisualGreenMaskMask) + && (vinfo_template->green_mask != info->green_mask)) + || ((vinfo_mask & VisualBlueMaskMask) + && (vinfo_template->blue_mask != info->blue_mask)) + ) { + ckfree((char *) info); + return NULL; + } + + *nitems_return = 1; + return info; +} |