summaryrefslogtreecommitdiff
path: root/xc/lib/Xtst/XTest.c
diff options
context:
space:
mode:
Diffstat (limited to 'xc/lib/Xtst/XTest.c')
-rw-r--r--xc/lib/Xtst/XTest.c485
1 files changed, 0 insertions, 485 deletions
diff --git a/xc/lib/Xtst/XTest.c b/xc/lib/Xtst/XTest.c
deleted file mode 100644
index 2cb880444..000000000
--- a/xc/lib/Xtst/XTest.c
+++ /dev/null
@@ -1,485 +0,0 @@
-/* $TOG: XTest.c /main/16 1998/02/06 15:58:41 kaleb $ */
-/*
-Copyright 1990, 1991 by UniSoft Group Limited
-*/
-
-/*
-
-Copyright 1992, 1993, 1998 The Open Group
-
-All Rights Reserved.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-/* $XFree86: xc/lib/Xtst/XTest.c,v 1.2 1998/12/20 11:57:12 dawes Exp $ */
-
-#define NEED_REPLIES
-#include "Xlibint.h"
-#include "XTest.h"
-#include "xteststr.h"
-#include "Xext.h"
-#include "extutil.h"
-#include "XInput.h"
-#include "XIproto.h"
-
-static XExtensionInfo _xtest_info_data;
-static XExtensionInfo *xtest_info = &_xtest_info_data;
-static /* const */ char *xtest_extension_name = XTestExtensionName;
-
-#define XTestCheckExtension(dpy,i,val) \
- XextCheckExtension (dpy, i, xtest_extension_name, val)
-
-#define XTestICheckExtension(dpy,i,val) \
- XextCheckExtension (dpy, i, xtest_extension_name, val); \
- if (!i->data) return val
-
-/*****************************************************************************
- * *
- * private utility routines *
- * *
- *****************************************************************************/
-
-static int close_display();
-static /* const */ XExtensionHooks xtest_extension_hooks = {
- NULL, /* create_gc */
- NULL, /* copy_gc */
- NULL, /* flush_gc */
- NULL, /* free_gc */
- NULL, /* create_font */
- NULL, /* free_font */
- close_display, /* close_display */
- NULL, /* wire_to_event */
- NULL, /* event_to_wire */
- NULL, /* error */
- NULL /* error_string */
-};
-
-static XPointer
-get_xinput_base(dpy)
- Display *dpy;
-{
- int major_opcode, first_event, first_error;
- first_event = 0;
-
- XQueryExtension(dpy, INAME, &major_opcode, &first_event, &first_error);
- return (XPointer)(long)first_event;
-}
-
-static XEXT_GENERATE_FIND_DISPLAY (find_display, xtest_info,
- xtest_extension_name,
- &xtest_extension_hooks, XTestNumberEvents,
- get_xinput_base(dpy))
-
-static XEXT_GENERATE_CLOSE_DISPLAY (close_display, xtest_info)
-
-/*****************************************************************************
- * *
- * public routines *
- * *
- *****************************************************************************/
-
-Bool
-XTestQueryExtension (dpy, event_basep, error_basep, majorp, minorp)
- Display *dpy;
- int *event_basep, *error_basep;
- int *majorp, *minorp;
-{
- XExtDisplayInfo *info = find_display (dpy);
- register xXTestGetVersionReq *req;
- xXTestGetVersionReply rep;
-
- if (XextHasExtension(info)) {
- LockDisplay(dpy);
- GetReq(XTestGetVersion, req);
- req->reqType = info->codes->major_opcode;
- req->xtReqType = X_XTestGetVersion;
- req->majorVersion = XTestMajorVersion;
- req->minorVersion = XTestMinorVersion;
- if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return False;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- *event_basep = info->codes->first_event;
- *error_basep = info->codes->first_error;
- *majorp = rep.majorVersion;
- *minorp = rep.minorVersion;
- return True;
- } else {
- return False;
- }
-}
-
-Bool
-XTestCompareCursorWithWindow(dpy, window, cursor)
- Display *dpy;
- Window window;
- Cursor cursor;
-{
- XExtDisplayInfo *info = find_display (dpy);
- register xXTestCompareCursorReq *req;
- xXTestCompareCursorReply rep;
-
- XTestCheckExtension (dpy, info, 0);
-
- LockDisplay(dpy);
- GetReq(XTestCompareCursor, req);
- req->reqType = info->codes->major_opcode;
- req->xtReqType = X_XTestCompareCursor;
- req->window = window;
- req->cursor = cursor;
- if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return False;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return rep.same;
-}
-
-Bool
-XTestCompareCurrentCursorWithWindow(dpy, window)
- Display *dpy;
- Window window;
-{
- return XTestCompareCursorWithWindow(dpy, window, XTestCurrentCursor);
-}
-
-XTestFakeKeyEvent(dpy, keycode, is_press, delay)
- Display *dpy;
- unsigned int keycode;
- Bool is_press;
- unsigned long delay;
-{
- XExtDisplayInfo *info = find_display (dpy);
- register xXTestFakeInputReq *req;
-
- XTestCheckExtension (dpy, info, 0);
-
- LockDisplay(dpy);
- GetReq(XTestFakeInput, req);
- req->reqType = info->codes->major_opcode;
- req->xtReqType = X_XTestFakeInput;
- req->type = is_press ? KeyPress : KeyRelease;
- req->detail = keycode;
- req->time = delay;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
-XTestFakeButtonEvent(dpy, button, is_press, delay)
- Display *dpy;
- unsigned int button;
- Bool is_press;
- unsigned long delay;
-{
- XExtDisplayInfo *info = find_display (dpy);
- register xXTestFakeInputReq *req;
-
- XTestCheckExtension (dpy, info, 0);
-
- LockDisplay(dpy);
- GetReq(XTestFakeInput, req);
- req->reqType = info->codes->major_opcode;
- req->xtReqType = X_XTestFakeInput;
- req->type = is_press ? ButtonPress : ButtonRelease;
- req->detail = button;
- req->time = delay;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
-XTestFakeMotionEvent(dpy, screen, x, y, delay)
- Display *dpy;
- int screen;
- int x, y;
- unsigned long delay;
-{
- XExtDisplayInfo *info = find_display (dpy);
- register xXTestFakeInputReq *req;
-
- XTestCheckExtension (dpy, info, 0);
-
- LockDisplay(dpy);
- GetReq(XTestFakeInput, req);
- req->reqType = info->codes->major_opcode;
- req->xtReqType = X_XTestFakeInput;
- req->type = MotionNotify;
- req->detail = False;
- if (screen == -1)
- req->root = None;
- else
- req->root = RootWindow(dpy, screen);
- req->rootX = x;
- req->rootY = y;
- req->time = delay;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
-XTestFakeRelativeMotionEvent(dpy, dx, dy, delay)
- Display *dpy;
- int dx, dy;
- unsigned long delay;
-{
- XExtDisplayInfo *info = find_display (dpy);
- register xXTestFakeInputReq *req;
-
- XTestCheckExtension (dpy, info, 0);
-
- LockDisplay(dpy);
- GetReq(XTestFakeInput, req);
- req->reqType = info->codes->major_opcode;
- req->xtReqType = X_XTestFakeInput;
- req->type = MotionNotify;
- req->detail = True;
- req->root = None;
- req->rootX = dx;
- req->rootY = dy;
- req->time = delay;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
-static void
-send_axes(dpy, info, req, dev, first_axis, axes, n_axes)
- Display *dpy;
- XExtDisplayInfo *info;
- xXTestFakeInputReq *req;
- XDevice *dev;
- int first_axis;
- int *axes;
- int n_axes;
-{
- deviceValuator ev;
- int n;
-
- req->deviceid |= MORE_EVENTS;
- req->length += ((n_axes + 5) / 6) * (SIZEOF(xEvent) >> 2);
- ev.type = XI_DeviceValuator + (long)info->data;
- ev.deviceid = dev->device_id;
- ev.num_valuators = n_axes;
- ev.first_valuator = first_axis;
- while (n_axes > 0) {
- n = n_axes;
- if (n > 6)
- n = 6;
- switch (n) {
- case 6:
- ev.valuator5 = *(axes+5);
- case 5:
- ev.valuator4 = *(axes+4);
- case 4:
- ev.valuator3 = *(axes+3);
- case 3:
- ev.valuator2 = *(axes+2);
- case 2:
- ev.valuator1 = *(axes+1);
- case 1:
- ev.valuator0 = *axes;
- }
- Data(dpy, (char *)&ev, SIZEOF(xEvent));
- axes += n;
- n_axes -= n;
- ev.first_valuator += n;
- }
-}
-
-XTestFakeDeviceKeyEvent(dpy, dev, keycode, is_press, axes, n_axes, delay)
- Display *dpy;
- XDevice *dev;
- unsigned int keycode;
- Bool is_press;
- int *axes;
- int n_axes;
- unsigned long delay;
-{
- XExtDisplayInfo *info = find_display (dpy);
- register xXTestFakeInputReq *req;
-
- XTestICheckExtension (dpy, info, 0);
-
- LockDisplay(dpy);
- GetReq(XTestFakeInput, req);
- req->reqType = info->codes->major_opcode;
- req->xtReqType = X_XTestFakeInput;
- req->type = is_press ? XI_DeviceKeyPress : XI_DeviceKeyRelease;
- req->type += (int)(long)info->data;
- req->detail = keycode;
- req->time = delay;
- req->deviceid = dev->device_id;
- if (n_axes)
- send_axes(dpy, info, req, dev, 0, axes, n_axes);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
-XTestFakeDeviceButtonEvent(dpy, dev, button, is_press, axes, n_axes, delay)
- Display *dpy;
- XDevice *dev;
- unsigned int button;
- Bool is_press;
- int *axes;
- int n_axes;
- unsigned long delay;
-{
- XExtDisplayInfo *info = find_display (dpy);
- register xXTestFakeInputReq *req;
-
- XTestICheckExtension (dpy, info, 0);
-
- LockDisplay(dpy);
- GetReq(XTestFakeInput, req);
- req->reqType = info->codes->major_opcode;
- req->xtReqType = X_XTestFakeInput;
- req->type = is_press ? XI_DeviceButtonPress : XI_DeviceButtonRelease;
- req->type += (int)(long)info->data;
- req->detail = button;
- req->time = delay;
- req->deviceid = dev->device_id;
- if (n_axes)
- send_axes(dpy, info, req, dev, 0, axes, n_axes);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
-XTestFakeProximityEvent(dpy, dev, in_prox, axes, n_axes, delay)
- Display *dpy;
- XDevice *dev;
- Bool in_prox;
- int *axes;
- int n_axes;
- unsigned long delay;
-{
- XExtDisplayInfo *info = find_display (dpy);
- register xXTestFakeInputReq *req;
-
- XTestICheckExtension (dpy, info, 0);
-
- LockDisplay(dpy);
- GetReq(XTestFakeInput, req);
- req->reqType = info->codes->major_opcode;
- req->xtReqType = X_XTestFakeInput;
- req->type = in_prox ? XI_ProximityIn : XI_ProximityOut;
- req->type += (int)(long)info->data;
- req->time = delay;
- req->deviceid = dev->device_id;
- if (n_axes)
- send_axes(dpy, info, req, dev, 0, axes, n_axes);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
-XTestFakeDeviceMotionEvent(dpy, dev, is_relative,
- first_axis, axes, n_axes, delay)
- Display *dpy;
- XDevice *dev;
- Bool is_relative;
- int first_axis;
- int *axes;
- int n_axes;
- unsigned long delay;
-{
- XExtDisplayInfo *info = find_display (dpy);
- register xXTestFakeInputReq *req;
-
- XTestICheckExtension (dpy, info, 0);
-
- LockDisplay(dpy);
- GetReq(XTestFakeInput, req);
- req->reqType = info->codes->major_opcode;
- req->xtReqType = X_XTestFakeInput;
- req->type = XI_DeviceMotionNotify + (int)(long)info->data;
- req->detail = is_relative;
- req->time = delay;
- req->deviceid = dev->device_id;
- send_axes(dpy, info, req, dev, first_axis, axes, n_axes);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
-XTestGrabControl(dpy, impervious)
- Display *dpy;
- Bool impervious;
-{
- XExtDisplayInfo *info = find_display (dpy);
- register xXTestGrabControlReq *req;
-
- XTestCheckExtension (dpy, info, 0);
-
- LockDisplay(dpy);
- GetReq(XTestGrabControl, req);
- req->reqType = info->codes->major_opcode;
- req->xtReqType = X_XTestGrabControl;
- req->impervious = impervious;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
-void
-XTestSetGContextOfGC(gc, gid)
- GC gc;
- GContext gid;
-{
- gc->gid = gid;
-}
-
-void
-XTestSetVisualIDOfVisual(visual, visualid)
- Visual *visual;
- VisualID visualid;
-{
- visual->visualid = visualid;
-}
-
-static xReq _dummy_request = {
- 0, 0, 0
-};
-
-Status
-XTestDiscard(dpy)
- Display *dpy;
-{
- Bool something;
- register char *ptr;
-
- LockDisplay(dpy);
- if (something = (dpy->bufptr != dpy->buffer)) {
- for (ptr = dpy->buffer;
- ptr < dpy->bufptr;
- ptr += (((xReq *)ptr)->length << 2))
- dpy->request--;
- dpy->bufptr = dpy->buffer;
- dpy->last_req = (char *)&_dummy_request;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return something;
-}