import xlib, x #fixes const #/* There's only one cursor event so far */ XFixesDisplayCursorNotify* = 0 XFixesCursorNotify* = 1 XFixesDisplayCursorNotifyMask* = (1 shl 0) # 1L (?) XFixesNumberEvents* = 2 XFIXES_MINOR* = 0 XFIXES_REVISION* = 1 XFIXES_MAJOR* = 6 XFIXES_VERSION* = 60001# ((XFIXES_MAJOR * 10000) + (XFIXES_MINOR * 100) + (XFIXES_REVISION)) type XFixesSelectionNotifyEvent* {.bycopy.} = object typee*: int serial*: culong send_event*: bool display*: ptr Display window*: Window subtype*: int owner*: Window selection*: Atom timestamp*: Time selection_timestamp*: Time XFixesCursorNotifyEvent* {.bycopy.} = object typee*: int serial*: culong send_event*: bool display*: ptr Display window*: Window subtype*: int cursor_serial*: culong timestamp*: Time cursor_name*: Atom XFixesCursorImage* {.bycopy.} = object x*: cshort y*: cshort width*: cushort height*: cushort xhot*: cushort yhot*: cushort cursor_serial*: culong pixels*: ptr culong #if XFIXES_MAJOR >= 2 atom*: Atom # /* Version >= 2 only */ name*: cstring # /* Version >= 2 only */ #if XFIXES_MAJOR >= 2 ||||| XID == XserverRegion == culong XFixesCursorImageAndName* {.bycopy.} = object x*: cshort y*: cshort width*: cushort height*: cushort xhot*: cushort yhot*: cushort cursor_serial*: culong pixels*: ptr culong atom*: Atom name*: cstring #endif #_XFUNCPROTOBEGIN proc XFixesQueryExtension* ( dpy: ptr Display , event_base_return: ptr int , error_base_return1: ptr int ): bool {.importc, cdecl.} proc XFixesSelectCursorInput* ( dpy: ptr Display , win: Window , eventMask: culong ): void {.importc, cdecl.} #[ Status XFixesQueryVersion (Display *dpy, int *major_version_return, int *minor_version_return); int XFixesVersion (void); void XFixesChangeSaveSet (Display *dpy, Window win, int mode, int target, int map); void XFixesSelectSelectionInput (Display *dpy, Window win, Atom selection, unsigned long eventMask); ; XFixesCursorImage * XFixesGetCursorImage (Display *dpy); #if XFIXES_MAJOR >= 2 /* Version 2 functions */ culong XFixesCreateRegion (Display *dpy, XRectangle *rectangles, int nrectangles); culong XFixesCreateRegionFromBitmap (Display *dpy, Pixmap bitmap); culong XFixesCreateRegionFromWindow (Display *dpy, Window window, int kind); culong XFixesCreateRegionFromGC (Display *dpy, GC gc); culong XFixesCreateRegionFromPicture (Display *dpy, XID picture); void XFixesDestroyRegion (Display *dpy, culong region); void XFixesSetRegion (Display *dpy, culong region, XRectangle *rectangles, int nrectangles); void XFixesCopyRegion (Display *dpy, culong dst, culong src); void XFixesUnionRegion (Display *dpy, culong dst, culong src1, culong src2); void XFixesIntersectRegion (Display *dpy, culong dst, culong src1, culong src2); void XFixesSubtractRegion (Display *dpy, culong dst, culong src1, culong src2); void XFixesInvertRegion (Display *dpy, culong dst, XRectangle *rect, culong src); void XFixesTranslateRegion (Display *dpy, culong region, int dx, int dy); void XFixesRegionExtents (Display *dpy, culong dst, culong src); XRectangle * XFixesFetchRegion (Display *dpy, culong region, int *nrectanglesRet); XRectangle * XFixesFetchRegionAndBounds (Display *dpy, culong region, int *nrectanglesRet, XRectangle *bounds); void XFixesSetGCClipRegion (Display *dpy, GC gc, int clip_x_origin, int clip_y_origin, culong region); void XFixesSetWindowShapeRegion (Display *dpy, Window win, int shape_kind, int x_off, int y_off, culong region); void XFixesSetPictureClipRegion (Display *dpy, XID picture, int clip_x_origin, int clip_y_origin, culong region); void XFixesSetCursorName (Display *dpy, Cursor cursor, const char *name); const char * XFixesGetCursorName (Display *dpy, Cursor cursor, Atom *atom); void XFixesChangeCursor (Display *dpy, Cursor source, Cursor destination); void XFixesChangeCursorByName (Display *dpy, Cursor source, const char *name); #endif /* XFIXES_MAJOR >= 2 */ #if XFIXES_MAJOR >= 3 void XFixesExpandRegion (Display *dpy, culong dst, culong src, unsigned left, unsigned right, unsigned top, unsigned bottom); #endif /* XFIXES_MAJOR >= 3 */ #if XFIXES_MAJOR >= 4 /* Version 4.0 externs */ void XFixesHideCursor (Display *dpy, Window win); void XFixesShowCursor (Display *dpy, Window win); #endif /* XFIXES_MAJOR >= 4 */ #if XFIXES_MAJOR >= 5 typedef XID PointerBarrier; PointerBarrier XFixesCreatePointerBarrier(Display *dpy, Window w, int x1, int y1, int x2, int y2, int directions, int num_devices, int *devices); void XFixesDestroyPointerBarrier(Display *dpy, PointerBarrier b); #endif /* XFIXES_MAJOR >= 5 */ #if XFIXES_MAJOR >= 6 void XFixesSetClientDisconnectMode(Display *dpy, int disconnect_mode); int XFixesGetClientDisconnectMode(Display *dpy); #endif /* XFIXES_MAJOR >= 6 */ _XFUNCPROTOEND #endif /* _XFIXES_H_ */ #/ #[ #proto #include <X11/Xmd.h> #include <X11/extensions/xfixeswire.h> #include <X11/extensions/shapeconst.h> #define Window CARD32 #define Drawable CARD32 #define Font CARD32 #define Pixmap CARD32 #define Cursor CARD32 #define Colormap CARD32 #define GContext CARD32 #define Atom CARD32 #define VisualID CARD32 #define Time CARD32 #define KeyCode CARD8 #define KeySym CARD32 #define Picture CARD32 /*************** Version 1 ******************/ typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; } xXFixesReq; /* * requests and replies */ typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; CARD32 majorVersion; CARD32 minorVersion; } xXFixesQueryVersionReq; #define sz_xXFixesQueryVersionReq 12 typedef struct { BYTE type; /* X_Reply */ BYTE pad1; CARD16 sequenceNumber; CARD32 length; CARD32 majorVersion; CARD32 minorVersion; CARD32 pad2; CARD32 pad3; CARD32 pad4; CARD32 pad5; } xXFixesQueryVersionReply; #define sz_xXFixesQueryVersionReply 32 typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; BYTE mode; /* SetModeInsert/SetModeDelete*/ BYTE target; /* SaveSetNearest/SaveSetRoot*/ BYTE map; /* SaveSetMap/SaveSetUnmap */ BYTE pad1; Window window; } xXFixesChangeSaveSetReq; #define sz_xXFixesChangeSaveSetReq 12 typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; Window window; Atom selection; CARD32 eventMask; } xXFixesSelectSelectionInputReq; #define sz_xXFixesSelectSelectionInputReq 16 typedef struct { CARD8 type; CARD8 subtype; CARD16 sequenceNumber; Window window; Window owner; Atom selection; Time timestamp; Time selectionTimestamp; CARD32 pad2; CARD32 pad3; } xXFixesSelectionNotifyEvent; typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; Window window; CARD32 eventMask; } xXFixesSelectCursorInputReq; #define sz_xXFixesSelectCursorInputReq 12 typedef struct { CARD8 type; CARD8 subtype; CARD16 sequenceNumber; Window window; CARD32 cursorSerial; Time timestamp; Atom name; /* Version 2 */ CARD32 pad1; CARD32 pad2; CARD32 pad3; } xXFixesCursorNotifyEvent; typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; } xXFixesGetCursorImageReq; #define sz_xXFixesGetCursorImageReq 4 typedef struct { BYTE type; /* X_Reply */ BYTE pad1; CARD16 sequenceNumber; CARD32 length; INT16 x; INT16 y; CARD16 width; CARD16 height; CARD16 xhot; CARD16 yhot; CARD32 cursorSerial; CARD32 pad2; CARD32 pad3; } xXFixesGetCursorImageReply; #define sz_xXFixesGetCursorImageReply 32 /*************** Version 2 ******************/ #define Region CARD32 typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; Region region; /* LISTofRECTANGLE */ } xXFixesCreateRegionReq; #define sz_xXFixesCreateRegionReq 8 typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; Region region; Pixmap bitmap; } xXFixesCreateRegionFromBitmapReq; #define sz_xXFixesCreateRegionFromBitmapReq 12 typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; Region region; Window window; CARD8 kind; CARD8 pad1; CARD16 pad2; } xXFixesCreateRegionFromWindowReq; #define sz_xXFixesCreateRegionFromWindowReq 16 typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; Region region; GContext gc; } xXFixesCreateRegionFromGCReq; #define sz_xXFixesCreateRegionFromGCReq 12 typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; Region region; Picture picture; } xXFixesCreateRegionFromPictureReq; #define sz_xXFixesCreateRegionFromPictureReq 12 typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; Region region; } xXFixesDestroyRegionReq; #define sz_xXFixesDestroyRegionReq 8 typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; Region region; /* LISTofRECTANGLE */ } xXFixesSetRegionReq; #define sz_xXFixesSetRegionReq 8 typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; Region source; Region destination; } xXFixesCopyRegionReq; #define sz_xXFixesCopyRegionReq 12 typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; Region source1; Region source2; Region destination; } xXFixesCombineRegionReq, xXFixesUnionRegionReq, xXFixesIntersectRegionReq, xXFixesSubtractRegionReq; #define sz_xXFixesCombineRegionReq 16 #define sz_xXFixesUnionRegionReq sz_xXFixesCombineRegionReq #define sz_xXFixesIntersectRegionReq sz_xXFixesCombineRegionReq #define sz_xXFixesSubtractRegionReq sz_xXFixesCombineRegionReq typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; Region source; INT16 x, y; CARD16 width, height; Region destination; } xXFixesInvertRegionReq; #define sz_xXFixesInvertRegionReq 20 typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; Region region; INT16 dx, dy; } xXFixesTranslateRegionReq; #define sz_xXFixesTranslateRegionReq 12 typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; Region source; Region destination; } xXFixesRegionExtentsReq; #define sz_xXFixesRegionExtentsReq 12 typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; Region region; } xXFixesFetchRegionReq; #define sz_xXFixesFetchRegionReq 8 typedef struct { BYTE type; /* X_Reply */ BYTE pad1; CARD16 sequenceNumber; CARD32 length; INT16 x, y; CARD16 width, height; CARD32 pad2; CARD32 pad3; CARD32 pad4; CARD32 pad5; } xXFixesFetchRegionReply; #define sz_xXFixesFetchRegionReply 32 typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; GContext gc; Region region; INT16 xOrigin, yOrigin; } xXFixesSetGCClipRegionReq; #define sz_xXFixesSetGCClipRegionReq 16 typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; Window dest; BYTE destKind; CARD8 pad1; CARD16 pad2; INT16 xOff, yOff; Region region; } xXFixesSetWindowShapeRegionReq; #define sz_xXFixesSetWindowShapeRegionReq 20 typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; Picture picture; Region region; INT16 xOrigin, yOrigin; } xXFixesSetPictureClipRegionReq; #define sz_xXFixesSetPictureClipRegionReq 16 typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; Cursor cursor; CARD16 nbytes; CARD16 pad; } xXFixesSetCursorNameReq; #define sz_xXFixesSetCursorNameReq 12 typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; Cursor cursor; } xXFixesGetCursorNameReq; #define sz_xXFixesGetCursorNameReq 8 typedef struct { BYTE type; /* X_Reply */ BYTE pad1; CARD16 sequenceNumber; CARD32 length; Atom atom; CARD16 nbytes; CARD16 pad2; CARD32 pad3; CARD32 pad4; CARD32 pad5; CARD32 pad6; } xXFixesGetCursorNameReply; #define sz_xXFixesGetCursorNameReply 32 typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; } xXFixesGetCursorImageAndNameReq; #define sz_xXFixesGetCursorImageAndNameReq 4 typedef struct { BYTE type; /* X_Reply */ BYTE pad1; CARD16 sequenceNumber; CARD32 length; INT16 x; INT16 y; CARD16 width; CARD16 height; CARD16 xhot; CARD16 yhot; CARD32 cursorSerial; Atom cursorName; CARD16 nbytes; CARD16 pad; } xXFixesGetCursorImageAndNameReply; #define sz_xXFixesGetCursorImageAndNameReply 32 typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; Cursor source; Cursor destination; } xXFixesChangeCursorReq; #define sz_xXFixesChangeCursorReq 12 typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; Cursor source; CARD16 nbytes; CARD16 pad; } xXFixesChangeCursorByNameReq; #define sz_xXFixesChangeCursorByNameReq 12 /*************** Version 3 ******************/ typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; Region source; Region destination; CARD16 left; CARD16 right; CARD16 top; CARD16 bottom; } xXFixesExpandRegionReq; #define sz_xXFixesExpandRegionReq 20 /*************** Version 4.0 ******************/ typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; Window window; } xXFixesHideCursorReq; #define sz_xXFixesHideCursorReq sizeof(xXFixesHideCursorReq) typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; Window window; } xXFixesShowCursorReq; #define sz_xXFixesShowCursorReq sizeof(xXFixesShowCursorReq) /*************** Version 5.0 ******************/ #define Barrier CARD32 typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; Barrier barrier; Window window; INT16 x1; INT16 y1; INT16 x2; INT16 y2; CARD32 directions; CARD16 pad; CARD16 num_devices; /* array of CARD16 devices */ } xXFixesCreatePointerBarrierReq; #define sz_xXFixesCreatePointerBarrierReq 28 typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; Barrier barrier; } xXFixesDestroyPointerBarrierReq; #define sz_xXFixesDestroyPointerBarrierReq 8 /*************** Version 6.0 ******************/ typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; CARD32 disconnect_mode; } xXFixesSetClientDisconnectModeReq; #define sz_xXFixesSetClientDisconnectModeReq 8 typedef struct { CARD8 reqType; CARD8 xfixesReqType; CARD16 length; } xXFixesGetClientDisconnectModeReq; #define sz_xXFixesGetClientDisconnectModeReq 4 typedef struct { BYTE type; /* X_Reply */ CARD8 pad0; CARD16 sequenceNumber; CARD32 length; CARD32 disconnect_mode; CARD32 pad1; CARD32 pad2; CARD32 pad3; CARD32 pad4; CARD32 pad5; } xXFixesGetClientDisconnectModeReply; #define sz_xXFixesGetClientDisconnectModeReply 32 #undef Barrier #undef Region #undef Picture #undef Window #undef Drawable #undef Font #undef Pixmap #undef Cursor #undef Colormap #undef GContext #undef Atom #undef VisualID #undef Time #undef KeyCode #undef KeySym #endif /* _XFIXESPROTO_H_ */ #]/ #[fixesWire #define XFIXES_NAME "XFIXES" #define XFIXES_MAJOR 6 #define XFIXES_MINOR 0 /*************** Version 1 ******************/ #define X_XFixesQueryVersion 0 #define X_XFixesChangeSaveSet 1 #define X_XFixesSelectSelectionInput 2 #define X_XFixesSelectCursorInput 3 #define X_XFixesGetCursorImage 4 /*************** Version 2 ******************/ #define X_XFixesCreateRegion 5 #define X_XFixesCreateRegionFromBitmap 6 #define X_XFixesCreateRegionFromWindow 7 #define X_XFixesCreateRegionFromGC 8 #define X_XFixesCreateRegionFromPicture 9 #define X_XFixesDestroyRegion 10 #define X_XFixesSetRegion 11 #define X_XFixesCopyRegion 12 #define X_XFixesUnionRegion 13 #define X_XFixesIntersectRegion 14 #define X_XFixesSubtractRegion 15 #define X_XFixesInvertRegion 16 #define X_XFixesTranslateRegion 17 #define X_XFixesRegionExtents 18 #define X_XFixesFetchRegion 19 #define X_XFixesSetGCClipRegion 20 #define X_XFixesSetWindowShapeRegion 21 #define X_XFixesSetPictureClipRegion 22 #define X_XFixesSetCursorName 23 #define X_XFixesGetCursorName 24 #define X_XFixesGetCursorImageAndName 25 #define X_XFixesChangeCursor 26 #define X_XFixesChangeCursorByName 27 /*************** Version 3 ******************/ #define X_XFixesExpandRegion 28 /*************** Version 4 ******************/ #define X_XFixesHideCursor 29 #define X_XFixesShowCursor 30 /*************** Version 5 ******************/ #define X_XFixesCreatePointerBarrier 31 #define X_XFixesDestroyPointerBarrier 32 /*************** Version 6 ******************/ #define X_XFixesSetClientDisconnectMode 33 #define X_XFixesGetClientDisconnectMode 34 #define XFixesNumberRequests (X_XFixesGetClientDisconnectMode+1) /* Selection events share one event number */ #define XFixesSelectionNotify 0 /* Within the selection, the 'subtype' field distinguishes */ #define XFixesSetSelectionOwnerNotify 0 #define XFixesSelectionWindowDestroyNotify 1 #define XFixesSelectionClientCloseNotify 2 #define XFixesSetSelectionOwnerNotifyMask (1L << 0) #define XFixesSelectionWindowDestroyNotifyMask (1L << 1) #define XFixesSelectionClientCloseNotifyMask (1L << 2) /* errors */ #define BadRegion 0 #define BadBarrier 1 #define XFixesNumberErrors (BadBarrier+1) #define SaveSetNearest 0 #define SaveSetRoot 1 #define SaveSetMap 0 #define SaveSetUnmap 1 /*************** Version 2 ******************/ #define WindowRegionBounding 0 #define WindowRegionClip 1 /*************** Version 5 ******************/ #define BarrierPositiveX (1L << 0) #define BarrierPositiveY (1L << 1) #define BarrierNegativeX (1L << 2) #define BarrierNegativeY (1L << 3) /*************** Version 6 ******************/ /* The default server behaviour */ #define XFixesClientDisconnectFlagDefault 0 /* The server may disconnect this client to shut down */ #define XFixesClientDisconnectFlagTerminate (1L << 0) #endif /* _XFIXESWIRE_H_ */ # # shapeConst #define SHAPENAME "SHAPE" #define SHAPE_MAJOR_VERSION 1 /* current version numbers */ #define SHAPE_MINOR_VERSION 1 #define ShapeSet 0 #define ShapeUnion 1 #define ShapeIntersect 2 #define ShapeSubtract 3 #define ShapeInvert 4 #define ShapeBounding 0 #define ShapeClip 1 #define ShapeInput 2 #define ShapeNotifyMask (1L << 0) #define ShapeNotify 0 #define ShapeNumberEvents (ShapeNotify + 1) ]# ]# ]#