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