diff options
Diffstat (limited to 'xinput/src/setptr.c')
-rw-r--r-- | xinput/src/setptr.c | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/xinput/src/setptr.c b/xinput/src/setptr.c new file mode 100644 index 0000000..3dcf1ec --- /dev/null +++ b/xinput/src/setptr.c @@ -0,0 +1,67 @@ +/* + * Copyright 1996 by Frederic Lepied, France. <Frederic.Lepied@sugix.frmug.org> + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of the authors not be used in + * advertising or publicity pertaining to distribution of the software without + * specific, written prior permission. The authors make no + * representations about the suitability of this software for any purpose. It + * is provided "as is" without express or implied warranty. + * + * THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + * EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + * + */ + +#include "xinput.h" + +int +set_pointer(Display *display, + int argc, + char *argv[], + char *name, + char *desc) +{ + XDeviceInfo *info; + XDevice *device; + int xaxis = 0; + int yaxis = 1; + + if ((argc != 1) && (argc != 3)) { + fprintf(stderr, "usage: xinput %s %s\n", name, desc); + return EXIT_FAILURE; + } + + if (argc == 3) { + xaxis = atoi(argv[1]); + yaxis = atoi(argv[2]); + } + + info = find_device_info(display, argv[0], True); + + if (!info) { + fprintf(stderr, "unable to find device '%s'\n", argv[0]); + return EXIT_FAILURE; + } + + device = XOpenDevice(display, info->id); + + if (device) { + XChangePointerDevice(display, device, xaxis, yaxis); + + return EXIT_SUCCESS; + } else { + fprintf(stderr, "Unable to open device\n"); + return EXIT_FAILURE; + } +} + +/* end of setptr.c */ |