|
|
1.1 root 1: /******************************************************************
2: Copyright 1987 by Apollo Computer Inc., Chelmsford, Massachusetts.
3:
4: All Rights Reserved
5:
6: Permission to use, duplicate, change, and distribute this software and
7: its documentation for any purpose and without fee is granted, provided
8: that the above copyright notice appear in such copy and that this
9: copyright notice appear in all supporting documentation, and that the
10: names of Apollo Computer Inc. or MIT not be used in advertising or publicity
11: pertaining to distribution of the software without written prior permission.
12: ******************************************************************/
13:
14: #include "/sys/ins/base.ins.c"
15: #include "/sys/ins/ec2.ins.c"
16: #include "/sys/ins/gpr.ins.c"
17: #include "/sys/ins/ios.ins.c"
18: #include "/sys/ins/io_traits.ins.c"
19: #include "/sys/ins/kbd.ins.c"
20: #include "/sys/ins/smdu.ins.c"
21: #include "/sys/ins/tone.ins.c"
22: #include "/sys/ins/trait.ins.c"
23:
24: #include <errno.h>
25: #include <stdio.h>
26: #include <sys/file.h>
27: #include <sys/time.h>
28: #include <sys/types.h>
29:
30: #include "X.h"
31: #include "Xmd.h"
32: #define NEED_EVENTS
33: #include "Xproto.h"
34: #include "misc.h"
35: #include "cursorstr.h"
36: #include "cursor.h"
37: #include "dixstruct.h"
38: #include "dixfontstr.h"
39: #include "extnsionst.h"
40: #include "fontstruct.h"
41: #include "gcstruct.h"
42: #include "input.h"
43: #include "keysym.h"
44: #include "mfb.h"
45: #include "mi.h"
46: #include "miscstruct.h"
47: #include "pixmapstr.h"
48: #include "pixmap.h"
49: #include "regionstr.h"
50: #include "resource.h"
51: #include "resourcest.h"
52: #include "screenint.h"
53: #include "scrnintstr.h"
54: #include "servermd.h"
55: #include "windowstr.h"
56:
57: /* structure to hold window operation procedures for
58: each window - a resource tied to the window. */
59: typedef struct {
60: void (*PaintWindowBackground)();
61: void (*PaintWindowBorder)();
62: void (*CopyWindow)();
63: } WinPrivRec, *WinPrivPtr;
64:
65: int wPrivClass; /* Resource class for icky private
66: * window structure (WinPrivRec)
67: * needed to protect the cursor
68: * from background/border paintings */
69:
70: /* key definition record */
71: typedef struct _key {
72: short key_color;
73: short key_mods;
74: int base_key;
75: } keyRec;
76:
77: /* private field of Cursor */
78: typedef struct {
79: Bool cursorIsDown; /* cursor is not now displayed */
80: Bool cursorLeftDown; /* cursorIsDown AND has been left down, to be put back sometime later */
81: unsigned long bitsToSet[16]; /* bits of masked cursor image to set */
82: unsigned long bitsToClear[16]; /* bits of masked cursor image to clear */
83: unsigned long savedBits[16]; /* saved bits under cursor */
84: int alignment; /* cursor x coordinate mod 16 */
85: short *pBitsScreen; /* address of word where cursor origin is */
86: } apPrivCurs;
87:
88: /* proceudure pointers we stole from Screen and Window structures */
89: typedef struct {
90: Bool (*CreateGC)();/* GC Creation function previously in the
91: * Screen structure */
92: Bool (*CreateWindow)();
93: Bool (*ChangeWindowAttributes)();
94: unsigned int *(*GetSpans)();
95: void (*GetImage)();
96: } apProcPtrs;
97:
98: extern Bool apCreateGC();
99:
100: extern void miRecolorCursor();
101: extern Bool apCreateWindow();
102: extern Bool apChangeWindowAttributes();
103: extern void apGetImage();
104: extern unsigned int *apGetSpans();
105: extern int apGetMotionEvents();
106: extern void apChangePointerControl();
107: extern void apChangeKeyboardControl();
108: extern void apBell();
109: extern Bool apScreenInit();
110: extern int apMouseProc();
111: extern int apKeybdProc();
112:
113: extern int MakeGPRStream();
114: extern Bool GetGPREvent ();
115:
116: extern gpr_$event_t apEventType;
117: extern unsigned char apEventData[1];
118: extern gpr_$position_t apEventPosition;
119:
120: extern long *apECV;
121: extern long *apLastECV;
122:
123: extern apProcPtrs apProcs;
124: extern CursorPtr pCurCursor;
125:
126: extern int wPrivClass;
127:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.