]> git.sesse.net Git - rdpsrv/blobdiff - Xserver/include/X.h
Import X server from vnc-3.3.7.
[rdpsrv] / Xserver / include / X.h
diff --git a/Xserver/include/X.h b/Xserver/include/X.h
new file mode 100644 (file)
index 0000000..f131adc
--- /dev/null
@@ -0,0 +1,693 @@
+/*
+ *     $XConsortium: X.h,v 1.69 94/04/17 20:10:48 dpw Exp $
+ */
+
+/* Definitions for the X window system likely to be used by applications */
+
+#ifndef X_H
+#define X_H
+
+/***********************************************************
+
+Copyright (c) 1987  X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the X Consortium.
+
+
+Copyright 1987 by Digital Equipment Corporation, Maynard, 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 name of Digital 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 */
+
+/* Resources */
+
+/*
+ * _XSERVER64 must ONLY be defined when compiling X server sources on
+ * systems where unsigned long is not 32 bits, must NOT be used in
+ * client or library code.
+ */
+#ifndef _XSERVER64
+typedef unsigned long XID;
+typedef unsigned long Mask;
+typedef unsigned long Atom;
+typedef unsigned long VisualID;
+typedef unsigned long Time;
+#else
+#include <X11/Xmd.h>
+typedef CARD32 XID;
+typedef CARD32 Mask;
+typedef CARD32 Atom;
+typedef CARD32 VisualID;
+typedef CARD32 Time;
+#endif
+
+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 char 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
+
+#endif /* X_H */