VirtualBox

source: vbox/trunk/src/VBox/Additions/x11/x11include/XFree86-4.3/Xserver/dix.h@ 77662

最後變更 在這個檔案從77662是 69098,由 vboxsync 提交於 7 年 前

Clean up XFree86 driver header files.
bugref:3810: X11 Guest Additions maintenance
Over the years we have cleaned up the layout in the tree of the X.Org
header files we use to build drivers. The XFree86 ones were still in their
original, rather sub-optimal layout. This change fixes that.

  • 屬性 svn:eol-style 設為 native
檔案大小: 23.3 KB
 
1/* $XFree86: xc/programs/Xserver/include/dix.h,v 3.26 2003/01/12 02:44:27 dawes Exp $ */
2/***********************************************************
3
4Copyright 1987, 1998 The Open Group
5
6Permission to use, copy, modify, distribute, and sell this software and its
7documentation for any purpose is hereby granted without fee, provided that
8the above copyright notice appear in all copies and that both that
9copyright notice and this permission notice appear in supporting
10documentation.
11
12The above copyright notice and this permission notice shall be included in
13all copies or substantial portions of the Software.
14
15THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
19AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
22Except as contained in this notice, the name of The Open Group shall not be
23used in advertising or otherwise to promote the sale, use or other dealings
24in this Software without prior written authorization from The Open Group.
25
26
27Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
28
29 All Rights Reserved
30
31Permission to use, copy, modify, and distribute this software and its
32documentation for any purpose and without fee is hereby granted,
33provided that the above copyright notice appear in all copies and that
34both that copyright notice and this permission notice appear in
35supporting documentation, and that the name of Digital not be
36used in advertising or publicity pertaining to distribution of the
37software without specific, written prior permission.
38
39DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
40ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
41DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
42ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
43WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
44ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
45SOFTWARE.
46
47******************************************************************/
48/* $Xorg: dix.h,v 1.4 2001/02/09 02:05:15 xorgcvs Exp $ */
49
50#ifndef DIX_H
51#define DIX_H
52
53#include "gc.h"
54#include "window.h"
55#include "input.h"
56
57#define EARLIER -1
58#define SAMETIME 0
59#define LATER 1
60
61#define NullClient ((ClientPtr) 0)
62#define REQUEST(type) \
63 register type *stuff = (type *)client->requestBuffer
64
65
66#define REQUEST_SIZE_MATCH(req)\
67 if ((sizeof(req) >> 2) != client->req_len)\
68 return(BadLength)
69
70#define REQUEST_AT_LEAST_SIZE(req) \
71 if ((sizeof(req) >> 2) > client->req_len )\
72 return(BadLength)
73
74#define REQUEST_FIXED_SIZE(req, n)\
75 if (((sizeof(req) >> 2) > client->req_len) || \
76 (((sizeof(req) + (n) + 3) >> 2) != client->req_len)) \
77 return(BadLength)
78
79#define LEGAL_NEW_RESOURCE(id,client)\
80 if (!LegalNewID(id,client)) \
81 {\
82 client->errorValue = id;\
83 return(BadIDChoice);\
84 }
85
86/* XXX if you are using this macro, you are probably not generating Match
87 * errors where appropriate */
88#define LOOKUP_DRAWABLE(did, client)\
89 ((client->lastDrawableID == did) ? \
90 client->lastDrawable : (DrawablePtr)LookupDrawable(did, client))
91
92#ifdef XCSECURITY
93
94#define SECURITY_VERIFY_DRAWABLE(pDraw, did, client, mode)\
95 if (client->lastDrawableID == did && !client->trustLevel)\
96 pDraw = client->lastDrawable;\
97 else \
98 {\
99 pDraw = (DrawablePtr) SecurityLookupIDByClass(client, did, \
100 RC_DRAWABLE, mode);\
101 if (!pDraw) \
102 {\
103 client->errorValue = did; \
104 return BadDrawable;\
105 }\
106 if (pDraw->type == UNDRAWABLE_WINDOW)\
107 return BadMatch;\
108 }
109
110#define SECURITY_VERIFY_GEOMETRABLE(pDraw, did, client, mode)\
111 if (client->lastDrawableID == did && !client->trustLevel)\
112 pDraw = client->lastDrawable;\
113 else \
114 {\
115 pDraw = (DrawablePtr) SecurityLookupIDByClass(client, did, \
116 RC_DRAWABLE, mode);\
117 if (!pDraw) \
118 {\
119 client->errorValue = did; \
120 return BadDrawable;\
121 }\
122 }
123
124#define SECURITY_VERIFY_GC(pGC, rid, client, mode)\
125 if (client->lastGCID == rid && !client->trustLevel)\
126 pGC = client->lastGC;\
127 else\
128 pGC = (GC *) SecurityLookupIDByType(client, rid, RT_GC, mode);\
129 if (!pGC)\
130 {\
131 client->errorValue = rid;\
132 return (BadGC);\
133 }
134
135#define VERIFY_DRAWABLE(pDraw, did, client)\
136 SECURITY_VERIFY_DRAWABLE(pDraw, did, client, SecurityUnknownAccess)
137
138#define VERIFY_GEOMETRABLE(pDraw, did, client)\
139 SECURITY_VERIFY_GEOMETRABLE(pDraw, did, client, SecurityUnknownAccess)
140
141#define VERIFY_GC(pGC, rid, client)\
142 SECURITY_VERIFY_GC(pGC, rid, client, SecurityUnknownAccess)
143
144#else /* not XCSECURITY */
145
146#define VERIFY_DRAWABLE(pDraw, did, client)\
147 if (client->lastDrawableID == did)\
148 pDraw = client->lastDrawable;\
149 else \
150 {\
151 pDraw = (DrawablePtr) LookupIDByClass(did, RC_DRAWABLE);\
152 if (!pDraw) \
153 {\
154 client->errorValue = did; \
155 return BadDrawable;\
156 }\
157 if (pDraw->type == UNDRAWABLE_WINDOW)\
158 return BadMatch;\
159 }
160
161#define VERIFY_GEOMETRABLE(pDraw, did, client)\
162 if (client->lastDrawableID == did)\
163 pDraw = client->lastDrawable;\
164 else \
165 {\
166 pDraw = (DrawablePtr) LookupIDByClass(did, RC_DRAWABLE);\
167 if (!pDraw) \
168 {\
169 client->errorValue = did; \
170 return BadDrawable;\
171 }\
172 }
173
174#define VERIFY_GC(pGC, rid, client)\
175 if (client->lastGCID == rid)\
176 pGC = client->lastGC;\
177 else\
178 pGC = (GC *)LookupIDByType(rid, RT_GC);\
179 if (!pGC)\
180 {\
181 client->errorValue = rid;\
182 return (BadGC);\
183 }
184
185#define SECURITY_VERIFY_DRAWABLE(pDraw, did, client, mode)\
186 VERIFY_DRAWABLE(pDraw, did, client)
187
188#define SECURITY_VERIFY_GEOMETRABLE(pDraw, did, client, mode)\
189 VERIFY_GEOMETRABLE(pDraw, did, client)
190
191#define SECURITY_VERIFY_GC(pGC, rid, client, mode)\
192 VERIFY_GC(pGC, rid, client)
193
194#endif /* XCSECURITY */
195
196/*
197 * We think that most hardware implementations of DBE will want
198 * LookupID*(dbe_back_buffer_id) to return the window structure that the
199 * id is a back buffer for. Since both front and back buffers will
200 * return the same structure, you need to be able to distinguish
201 * somewhere what kind of buffer (front/back) was being asked for, so
202 * that ddx can render to the right place. That's the problem that the
203 * following code solves. Note: we couldn't embed this in the LookupID*
204 * functions because the VALIDATE_DRAWABLE_AND_GC macro often circumvents
205 * those functions by checking a one-element cache. That's why we're
206 * mucking with VALIDATE_DRAWABLE_AND_GC.
207 *
208 * If you put -DNEED_DBE_BUF_BITS into PervasiveDBEDefines, the window
209 * structure will have two additional bits defined, srcBuffer and
210 * dstBuffer, and their values will be maintained via the macros
211 * SET_DBE_DSTBUF and SET_DBE_SRCBUF (below). If you also
212 * put -DNEED_DBE_BUF_VALIDATE into PervasiveDBEDefines, the function
213 * DbeValidateBuffer will be called any time the bits change to give you
214 * a chance to do some setup. See the DBE code for more details on this
215 * function. We put in these levels of conditionality so that you can do
216 * just what you need to do, and no more. If neither of these defines
217 * are used, the bits won't be there, and VALIDATE_DRAWABLE_AND_GC will
218 * be unchanged. dpw
219 */
220
221#if defined(NEED_DBE_BUF_BITS)
222#define SET_DBE_DSTBUF(_pDraw, _drawID) \
223 SET_DBE_BUF(_pDraw, _drawID, dstBuffer, TRUE)
224#define SET_DBE_SRCBUF(_pDraw, _drawID) \
225 SET_DBE_BUF(_pDraw, _drawID, srcBuffer, FALSE)
226#if defined (NEED_DBE_BUF_VALIDATE)
227#define SET_DBE_BUF(_pDraw, _drawID, _whichBuffer, _dstbuf) \
228 if (_pDraw->type == DRAWABLE_WINDOW)\
229 {\
230 int thisbuf = (_pDraw->id == _drawID);\
231 if (thisbuf != ((WindowPtr)_pDraw)->_whichBuffer)\
232 {\
233 ((WindowPtr)_pDraw)->_whichBuffer = thisbuf;\
234 DbeValidateBuffer((WindowPtr)_pDraw, _drawID, _dstbuf);\
235 }\
236 }
237#else /* want buffer bits, but don't need to call DbeValidateBuffer */
238#define SET_DBE_BUF(_pDraw, _drawID, _whichBuffer, _dstbuf) \
239 if (_pDraw->type == DRAWABLE_WINDOW)\
240 {\
241 ((WindowPtr)_pDraw)->_whichBuffer = (_pDraw->id == _drawID);\
242 }
243#endif /* NEED_DBE_BUF_VALIDATE */
244#else /* don't want buffer bits in window */
245#define SET_DBE_DSTBUF(_pDraw, _drawID) /**/
246#define SET_DBE_SRCBUF(_pDraw, _drawID) /**/
247#endif /* NEED_DBE_BUF_BITS */
248
249#define VALIDATE_DRAWABLE_AND_GC(drawID, pDraw, pGC, client)\
250 if ((stuff->gc == INVALID) || (client->lastGCID != stuff->gc) ||\
251 (client->lastDrawableID != drawID))\
252 {\
253 SECURITY_VERIFY_GEOMETRABLE(pDraw, drawID, client, SecurityWriteAccess);\
254 SECURITY_VERIFY_GC(pGC, stuff->gc, client, SecurityReadAccess);\
255 if ((pGC->depth != pDraw->depth) ||\
256 (pGC->pScreen != pDraw->pScreen))\
257 return (BadMatch);\
258 client->lastDrawable = pDraw;\
259 client->lastDrawableID = drawID;\
260 client->lastGC = pGC;\
261 client->lastGCID = stuff->gc;\
262 }\
263 else\
264 {\
265 pGC = client->lastGC;\
266 pDraw = client->lastDrawable;\
267 }\
268 SET_DBE_DSTBUF(pDraw, drawID);\
269 if (pGC->serialNumber != pDraw->serialNumber)\
270 ValidateGC(pDraw, pGC);
271
272
273#define WriteReplyToClient(pClient, size, pReply) { \
274 if ((pClient)->swapped) \
275 (*ReplySwapVector[((xReq *)(pClient)->requestBuffer)->reqType]) \
276 (pClient, (int)(size), pReply); \
277 else (void) WriteToClient(pClient, (int)(size), (char *)(pReply)); }
278
279#define WriteSwappedDataToClient(pClient, size, pbuf) \
280 if ((pClient)->swapped) \
281 (*(pClient)->pSwapReplyFunc)(pClient, (int)(size), pbuf); \
282 else (void) WriteToClient (pClient, (int)(size), (char *)(pbuf));
283
284typedef struct _TimeStamp *TimeStampPtr;
285
286#ifndef _XTYPEDEF_CLIENTPTR
287typedef struct _Client *ClientPtr; /* also in misc.h */
288#define _XTYPEDEF_CLIENTPTR
289#endif
290
291typedef struct _WorkQueue *WorkQueuePtr;
292
293extern ClientPtr requestingClient;
294extern ClientPtr *clients;
295extern ClientPtr serverClient;
296extern int currentMaxClients;
297
298typedef int HWEventQueueType;
299typedef HWEventQueueType* HWEventQueuePtr;
300
301extern HWEventQueuePtr checkForInput[2];
302
303typedef struct _TimeStamp {
304 CARD32 months; /* really ~49.7 days */
305 CARD32 milliseconds;
306} TimeStamp;
307
308/* dispatch.c */
309
310extern void SetInputCheck(
311#if NeedFunctionPrototypes
312 HWEventQueuePtr /*c0*/,
313 HWEventQueuePtr /*c1*/
314#endif
315);
316
317extern void CloseDownClient(
318#if NeedFunctionPrototypes
319 ClientPtr /*client*/
320#endif
321);
322
323extern void UpdateCurrentTime(
324#if NeedFunctionPrototypes
325 void
326#endif
327);
328
329extern void UpdateCurrentTimeIf(
330#if NeedFunctionPrototypes
331 void
332#endif
333);
334
335extern void InitSelections(
336#if NeedFunctionPrototypes
337 void
338#endif
339);
340
341extern void FlushClientCaches(
342#if NeedFunctionPrototypes
343 XID /*id*/
344#endif
345);
346
347extern int dixDestroyPixmap(
348#if NeedFunctionPrototypes
349 pointer /*value*/,
350 XID /*pid*/
351#endif
352);
353
354extern void CloseDownRetainedResources(
355#if NeedFunctionPrototypes
356 void
357#endif
358);
359
360extern void InitClient(
361#if NeedFunctionPrototypes
362 ClientPtr /*client*/,
363 int /*i*/,
364 pointer /*ospriv*/
365#endif
366);
367
368extern ClientPtr NextAvailableClient(
369#if NeedFunctionPrototypes
370 pointer /*ospriv*/
371#endif
372);
373
374extern void SendErrorToClient(
375#if NeedFunctionPrototypes
376 ClientPtr /*client*/,
377 unsigned int /*majorCode*/,
378 unsigned int /*minorCode*/,
379 XID /*resId*/,
380 int /*errorCode*/
381#endif
382);
383
384extern void DeleteWindowFromAnySelections(
385#if NeedFunctionPrototypes
386 WindowPtr /*pWin*/
387#endif
388);
389
390extern void MarkClientException(
391#if NeedFunctionPrototypes
392 ClientPtr /*client*/
393#endif
394);
395
396extern int GetGeometry(
397#if NeedFunctionPrototypes
398 ClientPtr /*client*/,
399 xGetGeometryReply* /* wa */
400#endif
401);
402
403extern int SendConnSetup(
404#if NeedFunctionPrototypes
405 ClientPtr /*client*/,
406 char* /*reason*/
407#endif
408);
409
410extern int
411DoGetImage(
412#if NeedFunctionPrototypes
413 ClientPtr /*client*/,
414 int /*format*/,
415 Drawable /*drawable*/,
416 int /*x*/,
417 int /*y*/,
418 int /*width*/,
419 int /*height*/,
420 Mask /*planemask*/,
421 xGetImageReply **/*im_return*/
422#endif
423);
424
425#ifdef LBX
426extern void IncrementClientCount(
427#if NeedFunctionPrototypes
428 void
429#endif
430);
431#endif /* LBX */
432
433/* dixutils.c */
434
435extern void CopyISOLatin1Lowered(
436#if NeedFunctionPrototypes
437 unsigned char * /*dest*/,
438 unsigned char * /*source*/,
439 int /*length*/
440#endif
441);
442
443#ifdef XCSECURITY
444
445extern WindowPtr SecurityLookupWindow(
446#if NeedFunctionPrototypes
447 XID /*rid*/,
448 ClientPtr /*client*/,
449 Mask /*access_mode*/
450#endif
451);
452
453extern pointer SecurityLookupDrawable(
454#if NeedFunctionPrototypes
455 XID /*rid*/,
456 ClientPtr /*client*/,
457 Mask /*access_mode*/
458#endif
459);
460
461extern WindowPtr LookupWindow(
462#if NeedFunctionPrototypes
463 XID /*rid*/,
464 ClientPtr /*client*/
465#endif
466);
467
468extern pointer LookupDrawable(
469#if NeedFunctionPrototypes
470 XID /*rid*/,
471 ClientPtr /*client*/
472#endif
473);
474
475#else
476
477extern WindowPtr LookupWindow(
478#if NeedFunctionPrototypes
479 XID /*rid*/,
480 ClientPtr /*client*/
481#endif
482);
483
484extern pointer LookupDrawable(
485#if NeedFunctionPrototypes
486 XID /*rid*/,
487 ClientPtr /*client*/
488#endif
489);
490
491#define SecurityLookupWindow(rid, client, access_mode) \
492 LookupWindow(rid, client)
493
494#define SecurityLookupDrawable(rid, client, access_mode) \
495 LookupDrawable(rid, client)
496
497#endif /* XCSECURITY */
498
499extern ClientPtr LookupClient(
500#if NeedFunctionPrototypes
501 XID /*rid*/,
502 ClientPtr /*client*/
503#endif
504);
505
506extern void NoopDDA(
507#if NeedFunctionPrototypes
508 void
509#endif
510);
511
512extern int AlterSaveSetForClient(
513#if NeedFunctionPrototypes
514 ClientPtr /*client*/,
515 WindowPtr /*pWin*/,
516 unsigned /*mode*/
517#endif
518);
519
520extern void DeleteWindowFromAnySaveSet(
521#if NeedFunctionPrototypes
522 WindowPtr /*pWin*/
523#endif
524);
525
526extern void BlockHandler(
527#if NeedFunctionPrototypes
528 pointer /*pTimeout*/,
529 pointer /*pReadmask*/
530#endif
531);
532
533extern void WakeupHandler(
534#if NeedFunctionPrototypes
535 int /*result*/,
536 pointer /*pReadmask*/
537#endif
538);
539
540typedef void (* WakeupHandlerProcPtr)(
541#if NeedNestedPrototypes
542 pointer /* blockData */,
543 int /* result */,
544 pointer /* pReadmask */
545#endif
546);
547
548extern Bool RegisterBlockAndWakeupHandlers(
549#if NeedFunctionPrototypes
550 BlockHandlerProcPtr /*blockHandler*/,
551 WakeupHandlerProcPtr /*wakeupHandler*/,
552 pointer /*blockData*/
553#endif
554);
555
556extern void RemoveBlockAndWakeupHandlers(
557#if NeedFunctionPrototypes
558 BlockHandlerProcPtr /*blockHandler*/,
559 WakeupHandlerProcPtr /*wakeupHandler*/,
560 pointer /*blockData*/
561#endif
562);
563
564extern void InitBlockAndWakeupHandlers(
565#if NeedFunctionPrototypes
566 void
567#endif
568);
569
570extern void ProcessWorkQueue(
571#if NeedFunctionPrototypes
572 void
573#endif
574);
575
576extern void ProcessWorkQueueZombies(
577#if NeedFunctionPrototypes
578 void
579#endif
580);
581
582extern Bool QueueWorkProc(
583#if NeedFunctionPrototypes
584 Bool (* /*function*/)(
585#if NeedNestedPrototypes
586 ClientPtr /*clientUnused*/,
587 pointer /*closure*/
588#endif
589 ),
590 ClientPtr /*client*/,
591 pointer /*closure*/
592#endif
593);
594
595typedef Bool (* ClientSleepProcPtr)(
596#if NeedFunctionPrototypes
597 ClientPtr /*client*/,
598 pointer /*closure*/
599#endif
600);
601
602extern Bool ClientSleep(
603#if NeedFunctionPrototypes
604 ClientPtr /*client*/,
605 ClientSleepProcPtr /* function */,
606 pointer /*closure*/
607#endif
608);
609
610#ifndef ___CLIENTSIGNAL_DEFINED___
611#define ___CLIENTSIGNAL_DEFINED___
612extern Bool ClientSignal(
613#if NeedFunctionPrototypes
614 ClientPtr /*client*/
615#endif
616);
617#endif /* ___CLIENTSIGNAL_DEFINED___ */
618
619extern void ClientWakeup(
620#if NeedFunctionPrototypes
621 ClientPtr /*client*/
622#endif
623);
624
625extern Bool ClientIsAsleep(
626#if NeedFunctionPrototypes
627 ClientPtr /*client*/
628#endif
629);
630
631/* atom.c */
632
633extern Atom MakeAtom(
634#if NeedFunctionPrototypes
635 char * /*string*/,
636 unsigned /*len*/,
637 Bool /*makeit*/
638#endif
639);
640
641extern Bool ValidAtom(
642#if NeedFunctionPrototypes
643 Atom /*atom*/
644#endif
645);
646
647extern char *NameForAtom(
648#if NeedFunctionPrototypes
649 Atom /*atom*/
650#endif
651);
652
653extern void AtomError(
654#if NeedFunctionPrototypes
655 void
656#endif
657);
658
659extern void FreeAllAtoms(
660#if NeedFunctionPrototypes
661 void
662#endif
663);
664
665extern void InitAtoms(
666#if NeedFunctionPrototypes
667 void
668#endif
669);
670
671/* events.c */
672
673extern void SetMaskForEvent(
674#if NeedFunctionPrototypes
675 Mask /* mask */,
676 int /* event */
677#endif
678);
679
680
681extern Bool IsParent(
682#if NeedFunctionPrototypes
683 WindowPtr /* maybeparent */,
684 WindowPtr /* child */
685#endif
686);
687
688extern WindowPtr GetCurrentRootWindow(
689#if NeedFunctionPrototypes
690 void
691#endif
692);
693
694extern WindowPtr GetSpriteWindow(
695#if NeedFunctionPrototypes
696 void
697#endif
698);
699
700
701extern void NoticeEventTime(
702#if NeedFunctionPrototypes
703 xEventPtr /* xE */
704#endif
705);
706
707extern void EnqueueEvent(
708#if NeedFunctionPrototypes
709 xEventPtr /* xE */,
710 DeviceIntPtr /* device */,
711 int /* count */
712#endif
713);
714
715extern void ComputeFreezes(
716#if NeedFunctionPrototypes
717 void
718#endif
719);
720
721extern void CheckGrabForSyncs(
722#if NeedFunctionPrototypes
723 DeviceIntPtr /* dev */,
724 Bool /* thisMode */,
725 Bool /* otherMode */
726#endif
727);
728
729extern void ActivatePointerGrab(
730#if NeedFunctionPrototypes
731 DeviceIntPtr /* mouse */,
732 GrabPtr /* grab */,
733 TimeStamp /* time */,
734 Bool /* autoGrab */
735#endif
736);
737
738extern void DeactivatePointerGrab(
739#if NeedFunctionPrototypes
740 DeviceIntPtr /* mouse */
741#endif
742);
743
744extern void ActivateKeyboardGrab(
745#if NeedFunctionPrototypes
746 DeviceIntPtr /* keybd */,
747 GrabPtr /* grab */,
748 TimeStamp /* time */,
749 Bool /* passive */
750#endif
751);
752
753extern void DeactivateKeyboardGrab(
754#if NeedFunctionPrototypes
755 DeviceIntPtr /* keybd */
756#endif
757);
758
759extern void AllowSome(
760#if NeedFunctionPrototypes
761 ClientPtr /* client */,
762 TimeStamp /* time */,
763 DeviceIntPtr /* thisDev */,
764 int /* newState */
765#endif
766);
767
768extern void ReleaseActiveGrabs(
769#if NeedFunctionPrototypes
770ClientPtr client
771#endif
772);
773
774extern int DeliverEventsToWindow(
775#if NeedFunctionPrototypes
776 WindowPtr /* pWin */,
777 xEventPtr /* pEvents */,
778 int /* count */,
779 Mask /* filter */,
780 GrabPtr /* grab */,
781 int /* mskidx */
782#endif
783);
784
785extern int DeliverDeviceEvents(
786#if NeedFunctionPrototypes
787 WindowPtr /* pWin */,
788 xEventPtr /* xE */,
789 GrabPtr /* grab */,
790 WindowPtr /* stopAt */,
791 DeviceIntPtr /* dev */,
792 int /* count */
793#endif
794);
795
796extern void DefineInitialRootWindow(
797#if NeedFunctionPrototypes
798 WindowPtr /* win */
799#endif
800);
801
802extern void WindowHasNewCursor(
803#if NeedFunctionPrototypes
804 WindowPtr /* pWin */
805#endif
806);
807
808extern Bool CheckDeviceGrabs(
809#if NeedFunctionPrototypes
810 DeviceIntPtr /* device */,
811 xEventPtr /* xE */,
812 int /* checkFirst */,
813 int /* count */
814#endif
815);
816
817extern void DeliverFocusedEvent(
818#if NeedFunctionPrototypes
819 DeviceIntPtr /* keybd */,
820 xEventPtr /* xE */,
821 WindowPtr /* window */,
822 int /* count */
823#endif
824);
825
826extern void DeliverGrabbedEvent(
827#if NeedFunctionPrototypes
828 xEventPtr /* xE */,
829 DeviceIntPtr /* thisDev */,
830 Bool /* deactivateGrab */,
831 int /* count */
832#endif
833);
834
835#ifdef XKB
836extern void FixKeyState(
837#if NeedFunctionPrototypes
838 xEvent * /* xE */,
839 DeviceIntPtr /* keybd */
840#endif
841);
842#endif /* XKB */
843
844extern void RecalculateDeliverableEvents(
845#if NeedFunctionPrototypes
846 WindowPtr /* pWin */
847#endif
848);
849
850extern int OtherClientGone(
851#if NeedFunctionPrototypes
852 pointer /* value */,
853 XID /* id */
854#endif
855);
856
857extern void DoFocusEvents(
858#if NeedFunctionPrototypes
859 DeviceIntPtr /* dev */,
860 WindowPtr /* fromWin */,
861 WindowPtr /* toWin */,
862 int /* mode */
863#endif
864);
865
866extern int SetInputFocus(
867#if NeedFunctionPrototypes
868 ClientPtr /* client */,
869 DeviceIntPtr /* dev */,
870 Window /* focusID */,
871 CARD8 /* revertTo */,
872 Time /* ctime */,
873 Bool /* followOK */
874#endif
875);
876
877extern int GrabDevice(
878#if NeedFunctionPrototypes
879 ClientPtr /* client */,
880 DeviceIntPtr /* dev */,
881 unsigned /* this_mode */,
882 unsigned /* other_mode */,
883 Window /* grabWindow */,
884 unsigned /* ownerEvents */,
885 Time /* ctime */,
886 Mask /* mask */,
887 CARD8 * /* status */
888#endif
889);
890
891extern void InitEvents(
892#if NeedFunctionPrototypes
893 void
894#endif
895);
896
897extern void CloseDownEvents(void);
898
899extern void DeleteWindowFromAnyEvents(
900#if NeedFunctionPrototypes
901 WindowPtr /* pWin */,
902 Bool /* freeResources */
903#endif
904);
905
906
907extern Mask EventMaskForClient(
908#if NeedFunctionPrototypes
909 WindowPtr /* pWin */,
910 ClientPtr /* client */
911#endif
912);
913
914
915
916extern int DeliverEvents(
917#if NeedFunctionPrototypes
918 WindowPtr /*pWin*/,
919 xEventPtr /*xE*/,
920 int /*count*/,
921 WindowPtr /*otherParent*/
922#endif
923);
924
925
926extern void WriteEventsToClient(
927#if NeedFunctionPrototypes
928 ClientPtr /*pClient*/,
929 int /*count*/,
930 xEventPtr /*events*/
931#endif
932);
933
934extern int TryClientEvents(
935#if NeedFunctionPrototypes
936 ClientPtr /*client*/,
937 xEventPtr /*pEvents*/,
938 int /*count*/,
939 Mask /*mask*/,
940 Mask /*filter*/,
941 GrabPtr /*grab*/
942#endif
943);
944
945extern void WindowsRestructured(
946#if NeedFunctionPrototypes
947 void
948#endif
949);
950
951
952#ifdef RANDR
953void
954ScreenRestructured (ScreenPtr pScreen);
955#endif
956
957extern void ResetClientPrivates(
958#if NeedFunctionPrototypes
959 void
960#endif
961);
962
963extern int AllocateClientPrivateIndex(
964#if NeedFunctionPrototypes
965 void
966#endif
967);
968
969extern Bool AllocateClientPrivate(
970#if NeedFunctionPrototypes
971 int /*index*/,
972 unsigned /*amount*/
973#endif
974);
975
976/*
977 * callback manager stuff
978 */
979
980#ifndef _XTYPEDEF_CALLBACKLISTPTR
981typedef struct _CallbackList *CallbackListPtr; /* also in misc.h */
982#define _XTYPEDEF_CALLBACKLISTPTR
983#endif
984
985typedef void (*CallbackProcPtr) (
986#if NeedNestedPrototypes
987 CallbackListPtr *, pointer, pointer
988#endif
989);
990
991typedef Bool (*AddCallbackProcPtr) (
992#if NeedNestedPrototypes
993 CallbackListPtr *, CallbackProcPtr, pointer
994#endif
995);
996
997typedef Bool (*DeleteCallbackProcPtr) (
998#if NeedNestedPrototypes
999 CallbackListPtr *, CallbackProcPtr, pointer
1000#endif
1001);
1002
1003typedef void (*CallCallbacksProcPtr) (
1004#if NeedNestedPrototypes
1005 CallbackListPtr *, pointer
1006#endif
1007);
1008
1009typedef void (*DeleteCallbackListProcPtr) (
1010#if NeedNestedPrototypes
1011 CallbackListPtr *
1012#endif
1013);
1014
1015typedef struct _CallbackProcs {
1016 AddCallbackProcPtr AddCallback;
1017 DeleteCallbackProcPtr DeleteCallback;
1018 CallCallbacksProcPtr CallCallbacks;
1019 DeleteCallbackListProcPtr DeleteCallbackList;
1020} CallbackFuncsRec, *CallbackFuncsPtr;
1021
1022extern Bool CreateCallbackList(
1023#if NeedFunctionPrototypes
1024 CallbackListPtr * /*pcbl*/,
1025 CallbackFuncsPtr /*cbfuncs*/
1026#endif
1027);
1028
1029extern Bool AddCallback(
1030#if NeedFunctionPrototypes
1031 CallbackListPtr * /*pcbl*/,
1032 CallbackProcPtr /*callback*/,
1033 pointer /*data*/
1034#endif
1035);
1036
1037extern Bool DeleteCallback(
1038#if NeedFunctionPrototypes
1039 CallbackListPtr * /*pcbl*/,
1040 CallbackProcPtr /*callback*/,
1041 pointer /*data*/
1042#endif
1043);
1044
1045extern void CallCallbacks(
1046#if NeedFunctionPrototypes
1047 CallbackListPtr * /*pcbl*/,
1048 pointer /*call_data*/
1049#endif
1050);
1051
1052extern void DeleteCallbackList(
1053#if NeedFunctionPrototypes
1054 CallbackListPtr * /*pcbl*/
1055#endif
1056);
1057
1058extern void InitCallbackManager(
1059#if NeedFunctionPrototypes
1060 void
1061#endif
1062);
1063
1064/*
1065 * ServerGrabCallback stuff
1066 */
1067
1068extern CallbackListPtr ServerGrabCallback;
1069
1070typedef enum {SERVER_GRABBED, SERVER_UNGRABBED,
1071 CLIENT_PERVIOUS, CLIENT_IMPERVIOUS } ServerGrabState;
1072
1073typedef struct {
1074 ClientPtr client;
1075 ServerGrabState grabstate;
1076} ServerGrabInfoRec;
1077
1078/*
1079 * EventCallback stuff
1080 */
1081
1082extern CallbackListPtr EventCallback;
1083
1084typedef struct {
1085 ClientPtr client;
1086 xEventPtr events;
1087 int count;
1088} EventInfoRec;
1089
1090/*
1091 * DeviceEventCallback stuff
1092 */
1093
1094extern CallbackListPtr DeviceEventCallback;
1095
1096typedef struct {
1097 xEventPtr events;
1098 int count;
1099} DeviceEventInfoRec;
1100
1101#endif /* DIX_H */
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette