Category reorganization
[openwrt/svn-archive/archive.git] / XOrg / headers / native / src / X11 / X.h
1 /*
2 * $Xorg: X.h,v 1.4 2001/02/09 02:03:22 xorgcvs Exp $
3 */
4
5 /* Definitions for the X window system likely to be used by applications */
6
7 #ifndef X_H
8 #define X_H
9
10 /***********************************************************
11
12 Copyright 1987, 1998 The Open Group
13
14 Permission to use, copy, modify, distribute, and sell this software and its
15 documentation for any purpose is hereby granted without fee, provided that
16 the above copyright notice appear in all copies and that both that
17 copyright notice and this permission notice appear in supporting
18 documentation.
19
20 The above copyright notice and this permission notice shall be included in
21 all copies or substantial portions of the Software.
22
23 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26 OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
27 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
28 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29
30 Except as contained in this notice, the name of The Open Group shall not be
31 used in advertising or otherwise to promote the sale, use or other dealings
32 in this Software without prior written authorization from The Open Group.
33
34
35 Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
36
37 All Rights Reserved
38
39 Permission to use, copy, modify, and distribute this software and its
40 documentation for any purpose and without fee is hereby granted,
41 provided that the above copyright notice appear in all copies and that
42 both that copyright notice and this permission notice appear in
43 supporting documentation, and that the name of Digital not be
44 used in advertising or publicity pertaining to distribution of the
45 software without specific, written prior permission.
46
47 DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
48 ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
49 DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
50 ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
51 WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
52 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
53 SOFTWARE.
54
55 ******************************************************************/
56 /* $XFree86: xc/include/X.h,v 1.6 2003/07/09 15:27:28 tsi Exp $ */
57
58 #define X_PROTOCOL 11 /* current protocol version */
59 #define X_PROTOCOL_REVISION 0 /* current minor version */
60
61 /* Resources */
62
63 /*
64 * _XSERVER64 must ONLY be defined when compiling X server sources on
65 * systems where unsigned long is not 32 bits, must NOT be used in
66 * client or library code.
67 */
68 #ifndef _XSERVER64
69 # ifndef _XTYPEDEF_XID
70 # define _XTYPEDEF_XID
71 typedef unsigned long XID;
72 # endif
73 # ifndef _XTYPEDEF_MASK
74 # define _XTYPEDEF_MASK
75 typedef unsigned long Mask;
76 # endif
77 # ifndef _XTYPEDEF_ATOM
78 # define _XTYPEDEF_ATOM
79 typedef unsigned long Atom; /* Also in Xdefs.h */
80 # endif
81 typedef unsigned long VisualID;
82 typedef unsigned long Time;
83 #else
84 # include <X11/Xmd.h>
85 # ifndef _XTYPEDEF_XID
86 # define _XTYPEDEF_XID
87 typedef CARD32 XID;
88 # endif
89 # ifndef _XTYPEDEF_MASK
90 # define _XTYPEDEF_MASK
91 typedef CARD32 Mask;
92 # endif
93 # ifndef _XTYPEDEF_ATOM
94 # define _XTYPEDEF_ATOM
95 typedef CARD32 Atom;
96 # endif
97 typedef CARD32 VisualID;
98 typedef CARD32 Time;
99 #endif
100
101 typedef XID Window;
102 typedef XID Drawable;
103 #ifndef _XTYPEDEF_FONT
104 # define _XTYPEDEF_FONT
105 typedef XID Font;
106 #endif
107 typedef XID Pixmap;
108 typedef XID Cursor;
109 typedef XID Colormap;
110 typedef XID GContext;
111 typedef XID KeySym;
112
113 typedef unsigned char KeyCode;
114
115 /*****************************************************************
116 * RESERVED RESOURCE AND CONSTANT DEFINITIONS
117 *****************************************************************/
118
119 #ifndef None
120 #define None 0L /* universal null resource or null atom */
121 #endif
122
123 #define ParentRelative 1L /* background pixmap in CreateWindow
124 and ChangeWindowAttributes */
125
126 #define CopyFromParent 0L /* border pixmap in CreateWindow
127 and ChangeWindowAttributes
128 special VisualID and special window
129 class passed to CreateWindow */
130
131 #define PointerWindow 0L /* destination window in SendEvent */
132 #define InputFocus 1L /* destination window in SendEvent */
133
134 #define PointerRoot 1L /* focus window in SetInputFocus */
135
136 #define AnyPropertyType 0L /* special Atom, passed to GetProperty */
137
138 #define AnyKey 0L /* special Key Code, passed to GrabKey */
139
140 #define AnyButton 0L /* special Button Code, passed to GrabButton */
141
142 #define AllTemporary 0L /* special Resource ID passed to KillClient */
143
144 #define CurrentTime 0L /* special Time */
145
146 #define NoSymbol 0L /* special KeySym */
147
148 /*****************************************************************
149 * EVENT DEFINITIONS
150 *****************************************************************/
151
152 /* Input Event Masks. Used as event-mask window attribute and as arguments
153 to Grab requests. Not to be confused with event names. */
154
155 #define NoEventMask 0L
156 #define KeyPressMask (1L<<0)
157 #define KeyReleaseMask (1L<<1)
158 #define ButtonPressMask (1L<<2)
159 #define ButtonReleaseMask (1L<<3)
160 #define EnterWindowMask (1L<<4)
161 #define LeaveWindowMask (1L<<5)
162 #define PointerMotionMask (1L<<6)
163 #define PointerMotionHintMask (1L<<7)
164 #define Button1MotionMask (1L<<8)
165 #define Button2MotionMask (1L<<9)
166 #define Button3MotionMask (1L<<10)
167 #define Button4MotionMask (1L<<11)
168 #define Button5MotionMask (1L<<12)
169 #define ButtonMotionMask (1L<<13)
170 #define KeymapStateMask (1L<<14)
171 #define ExposureMask (1L<<15)
172 #define VisibilityChangeMask (1L<<16)
173 #define StructureNotifyMask (1L<<17)
174 #define ResizeRedirectMask (1L<<18)
175 #define SubstructureNotifyMask (1L<<19)
176 #define SubstructureRedirectMask (1L<<20)
177 #define FocusChangeMask (1L<<21)
178 #define PropertyChangeMask (1L<<22)
179 #define ColormapChangeMask (1L<<23)
180 #define OwnerGrabButtonMask (1L<<24)
181
182 /* Event names. Used in "type" field in XEvent structures. Not to be
183 confused with event masks above. They start from 2 because 0 and 1
184 are reserved in the protocol for errors and replies. */
185
186 #define KeyPress 2
187 #define KeyRelease 3
188 #define ButtonPress 4
189 #define ButtonRelease 5
190 #define MotionNotify 6
191 #define EnterNotify 7
192 #define LeaveNotify 8
193 #define FocusIn 9
194 #define FocusOut 10
195 #define KeymapNotify 11
196 #define Expose 12
197 #define GraphicsExpose 13
198 #define NoExpose 14
199 #define VisibilityNotify 15
200 #define CreateNotify 16
201 #define DestroyNotify 17
202 #define UnmapNotify 18
203 #define MapNotify 19
204 #define MapRequest 20
205 #define ReparentNotify 21
206 #define ConfigureNotify 22
207 #define ConfigureRequest 23
208 #define GravityNotify 24
209 #define ResizeRequest 25
210 #define CirculateNotify 26
211 #define CirculateRequest 27
212 #define PropertyNotify 28
213 #define SelectionClear 29
214 #define SelectionRequest 30
215 #define SelectionNotify 31
216 #define ColormapNotify 32
217 #define ClientMessage 33
218 #define MappingNotify 34
219 #define LASTEvent 35 /* must be bigger than any event # */
220
221
222 /* Key masks. Used as modifiers to GrabButton and GrabKey, results of QueryPointer,
223 state in various key-, mouse-, and button-related events. */
224
225 #define ShiftMask (1<<0)
226 #define LockMask (1<<1)
227 #define ControlMask (1<<2)
228 #define Mod1Mask (1<<3)
229 #define Mod2Mask (1<<4)
230 #define Mod3Mask (1<<5)
231 #define Mod4Mask (1<<6)
232 #define Mod5Mask (1<<7)
233
234 /* modifier names. Used to build a SetModifierMapping request or
235 to read a GetModifierMapping request. These correspond to the
236 masks defined above. */
237 #define ShiftMapIndex 0
238 #define LockMapIndex 1
239 #define ControlMapIndex 2
240 #define Mod1MapIndex 3
241 #define Mod2MapIndex 4
242 #define Mod3MapIndex 5
243 #define Mod4MapIndex 6
244 #define Mod5MapIndex 7
245
246
247 /* button masks. Used in same manner as Key masks above. Not to be confused
248 with button names below. */
249
250 #define Button1Mask (1<<8)
251 #define Button2Mask (1<<9)
252 #define Button3Mask (1<<10)
253 #define Button4Mask (1<<11)
254 #define Button5Mask (1<<12)
255
256 #define AnyModifier (1<<15) /* used in GrabButton, GrabKey */
257
258
259 /* button names. Used as arguments to GrabButton and as detail in ButtonPress
260 and ButtonRelease events. Not to be confused with button masks above.
261 Note that 0 is already defined above as "AnyButton". */
262
263 #define Button1 1
264 #define Button2 2
265 #define Button3 3
266 #define Button4 4
267 #define Button5 5
268
269 /* Notify modes */
270
271 #define NotifyNormal 0
272 #define NotifyGrab 1
273 #define NotifyUngrab 2
274 #define NotifyWhileGrabbed 3
275
276 #define NotifyHint 1 /* for MotionNotify events */
277
278 /* Notify detail */
279
280 #define NotifyAncestor 0
281 #define NotifyVirtual 1
282 #define NotifyInferior 2
283 #define NotifyNonlinear 3
284 #define NotifyNonlinearVirtual 4
285 #define NotifyPointer 5
286 #define NotifyPointerRoot 6
287 #define NotifyDetailNone 7
288
289 /* Visibility notify */
290
291 #define VisibilityUnobscured 0
292 #define VisibilityPartiallyObscured 1
293 #define VisibilityFullyObscured 2
294
295 /* Circulation request */
296
297 #define PlaceOnTop 0
298 #define PlaceOnBottom 1
299
300 /* protocol families */
301
302 #define FamilyInternet 0 /* IPv4 */
303 #define FamilyDECnet 1
304 #define FamilyChaos 2
305 #define FamilyInternet6 6 /* IPv6 */
306
307 /* authentication families not tied to a specific protocol */
308 #define FamilyServerInterpreted 5
309
310 /* Property notification */
311
312 #define PropertyNewValue 0
313 #define PropertyDelete 1
314
315 /* Color Map notification */
316
317 #define ColormapUninstalled 0
318 #define ColormapInstalled 1
319
320 /* GrabPointer, GrabButton, GrabKeyboard, GrabKey Modes */
321
322 #define GrabModeSync 0
323 #define GrabModeAsync 1
324
325 /* GrabPointer, GrabKeyboard reply status */
326
327 #define GrabSuccess 0
328 #define AlreadyGrabbed 1
329 #define GrabInvalidTime 2
330 #define GrabNotViewable 3
331 #define GrabFrozen 4
332
333 /* AllowEvents modes */
334
335 #define AsyncPointer 0
336 #define SyncPointer 1
337 #define ReplayPointer 2
338 #define AsyncKeyboard 3
339 #define SyncKeyboard 4
340 #define ReplayKeyboard 5
341 #define AsyncBoth 6
342 #define SyncBoth 7
343
344 /* Used in SetInputFocus, GetInputFocus */
345
346 #define RevertToNone (int)None
347 #define RevertToPointerRoot (int)PointerRoot
348 #define RevertToParent 2
349
350 /*****************************************************************
351 * ERROR CODES
352 *****************************************************************/
353
354 #define Success 0 /* everything's okay */
355 #define BadRequest 1 /* bad request code */
356 #define BadValue 2 /* int parameter out of range */
357 #define BadWindow 3 /* parameter not a Window */
358 #define BadPixmap 4 /* parameter not a Pixmap */
359 #define BadAtom 5 /* parameter not an Atom */
360 #define BadCursor 6 /* parameter not a Cursor */
361 #define BadFont 7 /* parameter not a Font */
362 #define BadMatch 8 /* parameter mismatch */
363 #define BadDrawable 9 /* parameter not a Pixmap or Window */
364 #define BadAccess 10 /* depending on context:
365 - key/button already grabbed
366 - attempt to free an illegal
367 cmap entry
368 - attempt to store into a read-only
369 color map entry.
370 - attempt to modify the access control
371 list from other than the local host.
372 */
373 #define BadAlloc 11 /* insufficient resources */
374 #define BadColor 12 /* no such colormap */
375 #define BadGC 13 /* parameter not a GC */
376 #define BadIDChoice 14 /* choice not in range or already used */
377 #define BadName 15 /* font or color name doesn't exist */
378 #define BadLength 16 /* Request length incorrect */
379 #define BadImplementation 17 /* server is defective */
380
381 #define FirstExtensionError 128
382 #define LastExtensionError 255
383
384 /*****************************************************************
385 * WINDOW DEFINITIONS
386 *****************************************************************/
387
388 /* Window classes used by CreateWindow */
389 /* Note that CopyFromParent is already defined as 0 above */
390
391 #define InputOutput 1
392 #define InputOnly 2
393
394 /* Window attributes for CreateWindow and ChangeWindowAttributes */
395
396 #define CWBackPixmap (1L<<0)
397 #define CWBackPixel (1L<<1)
398 #define CWBorderPixmap (1L<<2)
399 #define CWBorderPixel (1L<<3)
400 #define CWBitGravity (1L<<4)
401 #define CWWinGravity (1L<<5)
402 #define CWBackingStore (1L<<6)
403 #define CWBackingPlanes (1L<<7)
404 #define CWBackingPixel (1L<<8)
405 #define CWOverrideRedirect (1L<<9)
406 #define CWSaveUnder (1L<<10)
407 #define CWEventMask (1L<<11)
408 #define CWDontPropagate (1L<<12)
409 #define CWColormap (1L<<13)
410 #define CWCursor (1L<<14)
411
412 /* ConfigureWindow structure */
413
414 #define CWX (1<<0)
415 #define CWY (1<<1)
416 #define CWWidth (1<<2)
417 #define CWHeight (1<<3)
418 #define CWBorderWidth (1<<4)
419 #define CWSibling (1<<5)
420 #define CWStackMode (1<<6)
421
422
423 /* Bit Gravity */
424
425 #define ForgetGravity 0
426 #define NorthWestGravity 1
427 #define NorthGravity 2
428 #define NorthEastGravity 3
429 #define WestGravity 4
430 #define CenterGravity 5
431 #define EastGravity 6
432 #define SouthWestGravity 7
433 #define SouthGravity 8
434 #define SouthEastGravity 9
435 #define StaticGravity 10
436
437 /* Window gravity + bit gravity above */
438
439 #define UnmapGravity 0
440
441 /* Used in CreateWindow for backing-store hint */
442
443 #define NotUseful 0
444 #define WhenMapped 1
445 #define Always 2
446
447 /* Used in GetWindowAttributes reply */
448
449 #define IsUnmapped 0
450 #define IsUnviewable 1
451 #define IsViewable 2
452
453 /* Used in ChangeSaveSet */
454
455 #define SetModeInsert 0
456 #define SetModeDelete 1
457
458 /* Used in ChangeCloseDownMode */
459
460 #define DestroyAll 0
461 #define RetainPermanent 1
462 #define RetainTemporary 2
463
464 /* Window stacking method (in configureWindow) */
465
466 #define Above 0
467 #define Below 1
468 #define TopIf 2
469 #define BottomIf 3
470 #define Opposite 4
471
472 /* Circulation direction */
473
474 #define RaiseLowest 0
475 #define LowerHighest 1
476
477 /* Property modes */
478
479 #define PropModeReplace 0
480 #define PropModePrepend 1
481 #define PropModeAppend 2
482
483 /*****************************************************************
484 * GRAPHICS DEFINITIONS
485 *****************************************************************/
486
487 /* graphics functions, as in GC.alu */
488
489 #define GXclear 0x0 /* 0 */
490 #define GXand 0x1 /* src AND dst */
491 #define GXandReverse 0x2 /* src AND NOT dst */
492 #define GXcopy 0x3 /* src */
493 #define GXandInverted 0x4 /* NOT src AND dst */
494 #define GXnoop 0x5 /* dst */
495 #define GXxor 0x6 /* src XOR dst */
496 #define GXor 0x7 /* src OR dst */
497 #define GXnor 0x8 /* NOT src AND NOT dst */
498 #define GXequiv 0x9 /* NOT src XOR dst */
499 #define GXinvert 0xa /* NOT dst */
500 #define GXorReverse 0xb /* src OR NOT dst */
501 #define GXcopyInverted 0xc /* NOT src */
502 #define GXorInverted 0xd /* NOT src OR dst */
503 #define GXnand 0xe /* NOT src OR NOT dst */
504 #define GXset 0xf /* 1 */
505
506 /* LineStyle */
507
508 #define LineSolid 0
509 #define LineOnOffDash 1
510 #define LineDoubleDash 2
511
512 /* capStyle */
513
514 #define CapNotLast 0
515 #define CapButt 1
516 #define CapRound 2
517 #define CapProjecting 3
518
519 /* joinStyle */
520
521 #define JoinMiter 0
522 #define JoinRound 1
523 #define JoinBevel 2
524
525 /* fillStyle */
526
527 #define FillSolid 0
528 #define FillTiled 1
529 #define FillStippled 2
530 #define FillOpaqueStippled 3
531
532 /* fillRule */
533
534 #define EvenOddRule 0
535 #define WindingRule 1
536
537 /* subwindow mode */
538
539 #define ClipByChildren 0
540 #define IncludeInferiors 1
541
542 /* SetClipRectangles ordering */
543
544 #define Unsorted 0
545 #define YSorted 1
546 #define YXSorted 2
547 #define YXBanded 3
548
549 /* CoordinateMode for drawing routines */
550
551 #define CoordModeOrigin 0 /* relative to the origin */
552 #define CoordModePrevious 1 /* relative to previous point */
553
554 /* Polygon shapes */
555
556 #define Complex 0 /* paths may intersect */
557 #define Nonconvex 1 /* no paths intersect, but not convex */
558 #define Convex 2 /* wholly convex */
559
560 /* Arc modes for PolyFillArc */
561
562 #define ArcChord 0 /* join endpoints of arc */
563 #define ArcPieSlice 1 /* join endpoints to center of arc */
564
565 /* GC components: masks used in CreateGC, CopyGC, ChangeGC, OR'ed into
566 GC.stateChanges */
567
568 #define GCFunction (1L<<0)
569 #define GCPlaneMask (1L<<1)
570 #define GCForeground (1L<<2)
571 #define GCBackground (1L<<3)
572 #define GCLineWidth (1L<<4)
573 #define GCLineStyle (1L<<5)
574 #define GCCapStyle (1L<<6)
575 #define GCJoinStyle (1L<<7)
576 #define GCFillStyle (1L<<8)
577 #define GCFillRule (1L<<9)
578 #define GCTile (1L<<10)
579 #define GCStipple (1L<<11)
580 #define GCTileStipXOrigin (1L<<12)
581 #define GCTileStipYOrigin (1L<<13)
582 #define GCFont (1L<<14)
583 #define GCSubwindowMode (1L<<15)
584 #define GCGraphicsExposures (1L<<16)
585 #define GCClipXOrigin (1L<<17)
586 #define GCClipYOrigin (1L<<18)
587 #define GCClipMask (1L<<19)
588 #define GCDashOffset (1L<<20)
589 #define GCDashList (1L<<21)
590 #define GCArcMode (1L<<22)
591
592 #define GCLastBit 22
593 /*****************************************************************
594 * FONTS
595 *****************************************************************/
596
597 /* used in QueryFont -- draw direction */
598
599 #define FontLeftToRight 0
600 #define FontRightToLeft 1
601
602 #define FontChange 255
603
604 /*****************************************************************
605 * IMAGING
606 *****************************************************************/
607
608 /* ImageFormat -- PutImage, GetImage */
609
610 #define XYBitmap 0 /* depth 1, XYFormat */
611 #define XYPixmap 1 /* depth == drawable depth */
612 #define ZPixmap 2 /* depth == drawable depth */
613
614 /*****************************************************************
615 * COLOR MAP STUFF
616 *****************************************************************/
617
618 /* For CreateColormap */
619
620 #define AllocNone 0 /* create map with no entries */
621 #define AllocAll 1 /* allocate entire map writeable */
622
623
624 /* Flags used in StoreNamedColor, StoreColors */
625
626 #define DoRed (1<<0)
627 #define DoGreen (1<<1)
628 #define DoBlue (1<<2)
629
630 /*****************************************************************
631 * CURSOR STUFF
632 *****************************************************************/
633
634 /* QueryBestSize Class */
635
636 #define CursorShape 0 /* largest size that can be displayed */
637 #define TileShape 1 /* size tiled fastest */
638 #define StippleShape 2 /* size stippled fastest */
639
640 /*****************************************************************
641 * KEYBOARD/POINTER STUFF
642 *****************************************************************/
643
644 #define AutoRepeatModeOff 0
645 #define AutoRepeatModeOn 1
646 #define AutoRepeatModeDefault 2
647
648 #define LedModeOff 0
649 #define LedModeOn 1
650
651 /* masks for ChangeKeyboardControl */
652
653 #define KBKeyClickPercent (1L<<0)
654 #define KBBellPercent (1L<<1)
655 #define KBBellPitch (1L<<2)
656 #define KBBellDuration (1L<<3)
657 #define KBLed (1L<<4)
658 #define KBLedMode (1L<<5)
659 #define KBKey (1L<<6)
660 #define KBAutoRepeatMode (1L<<7)
661
662 #define MappingSuccess 0
663 #define MappingBusy 1
664 #define MappingFailed 2
665
666 #define MappingModifier 0
667 #define MappingKeyboard 1
668 #define MappingPointer 2
669
670 /*****************************************************************
671 * SCREEN SAVER STUFF
672 *****************************************************************/
673
674 #define DontPreferBlanking 0
675 #define PreferBlanking 1
676 #define DefaultBlanking 2
677
678 #define DisableScreenSaver 0
679 #define DisableScreenInterval 0
680
681 #define DontAllowExposures 0
682 #define AllowExposures 1
683 #define DefaultExposures 2
684
685 /* for ForceScreenSaver */
686
687 #define ScreenSaverReset 0
688 #define ScreenSaverActive 1
689
690 /*****************************************************************
691 * HOSTS AND CONNECTIONS
692 *****************************************************************/
693
694 /* for ChangeHosts */
695
696 #define HostInsert 0
697 #define HostDelete 1
698
699 /* for ChangeAccessControl */
700
701 #define EnableAccess 1
702 #define DisableAccess 0
703
704 /* Display classes used in opening the connection
705 * Note that the statically allocated ones are even numbered and the
706 * dynamically changeable ones are odd numbered */
707
708 #define StaticGray 0
709 #define GrayScale 1
710 #define StaticColor 2
711 #define PseudoColor 3
712 #define TrueColor 4
713 #define DirectColor 5
714
715
716 /* Byte order used in imageByteOrder and bitmapBitOrder */
717
718 #define LSBFirst 0
719 #define MSBFirst 1
720
721 #endif /* X_H */