add directory Linux-0.98

This commit is contained in:
gohigh
2024-02-19 00:21:16 -05:00
parent 265896c4ae
commit 56596ada90
13765 changed files with 3471432 additions and 0 deletions

View File

@@ -0,0 +1,63 @@
/************************************************************
Copyright 1989 by The Massachusetts Institute of Technology
Permission to use, copy, modify, and distribute this
software and its documentation for any purpose and without
fee is hereby granted, provided that the above copyright
no- tice appear in all copies and that both that copyright
no- tice and this permission notice appear in supporting
docu- mentation, and that the name of MIT not be used in
advertising or publicity pertaining to distribution of the
software without specific prior written permission.
M.I.T. makes no representation about the suitability of
this software for any purpose. It is provided "as is"
without any express or implied warranty.
********************************************************/
/* RANDOM CRUFT! THIS HAS NO OFFICIAL X CONSORTIUM BLESSING */
/* $XConsortium: MITMisc.h,v 1.4 91/07/12 10:06:43 rws Exp $ */
#ifndef _XMITMISC_H_
#define _XMITMISC_H_
#include <X11/Xfuncproto.h>
#define X_MITSetBugMode 0
#define X_MITGetBugMode 1
#define MITMiscNumberEvents 0
#define MITMiscNumberErrors 0
#ifndef _MITMISC_SERVER_
_XFUNCPROTOBEGIN
Bool XMITMiscQueryExtension(
#if NeedFunctionPrototypes
Display* /* dpy */,
int* /* event_basep */,
int* /* error_basep */
#endif
);
Status XMITMiscSetBugMode(
#if NeedFunctionPrototypes
Display* /* dpy */,
Bool /* onOff */
#endif
);
Bool XMITMiscGetBugMode(
#if NeedFunctionPrototypes
Display* /* dpy */
#endif
);
_XFUNCPROTOEND
#endif
#endif

View File

@@ -0,0 +1,238 @@
/* $Header: XI.h,v 1.13 91/07/24 15:32:36 rws Exp $ */
/************************************************************
Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, California, and the
Massachusetts Institute of Technology, Cambridge, Massachusetts.
All Rights Reserved
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
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 names of Hewlett-Packard or MIT not be
used in advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
HEWLETT-PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
HEWLETT-PACKARD 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.
********************************************************/
/* Definitions used by the server, library and client */
#ifndef _XI_H_
#define _XI_H_
#define sz_xGetExtensionVersionReq 8
#define sz_xGetExtensionVersionReply 32
#define sz_xListInputDevicesReq 4
#define sz_xListInputDevicesReply 32
#define sz_xOpenDeviceReq 8
#define sz_xOpenDeviceReply 32
#define sz_xCloseDeviceReq 8
#define sz_xSetDeviceModeReq 8
#define sz_xSetDeviceModeReply 32
#define sz_xSelectExtensionEventReq 12
#define sz_xGetSelectedExtensionEventsReq 8
#define sz_xGetSelectedExtensionEventsReply 32
#define sz_xChangeDeviceDontPropagateListReq 12
#define sz_xGetDeviceDontPropagateListReq 8
#define sz_xGetDeviceDontPropagateListReply 32
#define sz_xGetDeviceMotionEventsReq 16
#define sz_xGetDeviceMotionEventsReply 32
#define sz_xChangeKeyboardDeviceReq 8
#define sz_xChangeKeyboardDeviceReply 32
#define sz_xChangePointerDeviceReq 8
#define sz_xChangePointerDeviceReply 32
#define sz_xGrabDeviceReq 20
#define sz_xGrabDeviceReply 32
#define sz_xUngrabDeviceReq 12
#define sz_xGrabDeviceKeyReq 20
#define sz_xGrabDeviceKeyReply 32
#define sz_xUngrabDeviceKeyReq 16
#define sz_xGrabDeviceButtonReq 20
#define sz_xGrabDeviceButtonReply 32
#define sz_xUngrabDeviceButtonReq 16
#define sz_xAllowDeviceEventsReq 12
#define sz_xGetDeviceFocusReq 8
#define sz_xGetDeviceFocusReply 32
#define sz_xSetDeviceFocusReq 16
#define sz_xGetFeedbackControlReq 8
#define sz_xGetFeedbackControlReply 32
#define sz_xChangeFeedbackControlReq 12
#define sz_xGetDeviceKeyMappingReq 8
#define sz_xGetDeviceKeyMappingReply 32
#define sz_xChangeDeviceKeyMappingReq 8
#define sz_xGetDeviceModifierMappingReq 8
#define sz_xSetDeviceModifierMappingReq 8
#define sz_xSetDeviceModifierMappingReply 32
#define sz_xGetDeviceButtonMappingReq 8
#define sz_xGetDeviceButtonMappingReply 32
#define sz_xSetDeviceButtonMappingReq 8
#define sz_xSetDeviceButtonMappingReply 32
#define sz_xQueryDeviceStateReq 8
#define sz_xQueryDeviceStateReply 32
#define sz_xSendExtensionEventReq 16
#define sz_xDeviceBellReq 8
#define sz_xSetDeviceValuatorsReq 8
#define sz_xSetDeviceValuatorsReply 32
#define sz_xGetDeviceControlReq 8
#define sz_xGetDeviceControlReply 32
#define sz_xChangeDeviceControlReq 8
#define sz_xChangeDeviceControlReply 32
#define INAME "XInputExtension"
#define XI_KEYBOARD "KEYBOARD"
#define XI_MOUSE "MOUSE"
#define XI_TABLET "TABLET"
#define XI_TOUCHSCREEN "TOUCHSCREEN"
#define XI_TOUCHPAD "TOUCHPAD"
#define XI_BARCODE "BARCODE"
#define XI_BUTTONBOX "BUTTONBOX"
#define XI_KNOB_BOX "KNOB_BOX"
#define XI_ONE_KNOB "ONE_KNOB"
#define XI_NINE_KNOB "NINE_KNOB"
#define XI_TRACKBALL "TRACKBALL"
#define XI_QUADRATURE "QUADRATURE"
#define XI_ID_MODULE "ID_MODULE"
#define XI_SPACEBALL "SPACEBALL"
#define XI_DATAGLOVE "DATAGLOVE"
#define XI_EYETRACKER "EYETRACKER"
#define XI_CURSORKEYS "CURSORKEYS"
#define XI_FOOTMOUSE "FOOTMOUSE"
#define Dont_Check 0
#define XInput_Initial_Release 1
#define XInput_Add_XDeviceBell 2
#define XInput_Add_XSetDeviceValuators 3
#define XInput_Add_XChangeDeviceControl 4
#define XI_Absent 0
#define XI_Present 1
#define XI_Initial_Release_Major 1
#define XI_Initial_Release_Minor 0
#define XI_Add_XDeviceBell_Major 1
#define XI_Add_XDeviceBell_Minor 1
#define XI_Add_XSetDeviceValuators_Major 1
#define XI_Add_XSetDeviceValuators_Minor 2
#define XI_Add_XChangeDeviceControl_Major 1
#define XI_Add_XChangeDeviceControl_Minor 3
#define DEVICE_RESOLUTION 1
#define NoSuchExtension 1
#define COUNT 0
#define CREATE 1
#define NewPointer 0
#define NewKeyboard 1
#define XPOINTER 0
#define XKEYBOARD 1
#define UseXKeyboard 0xFF
#define IsXPointer 0
#define IsXKeyboard 1
#define IsXExtensionDevice 2
#define AsyncThisDevice 0
#define SyncThisDevice 1
#define ReplayThisDevice 2
#define AsyncOtherDevices 3
#define AsyncAll 4
#define SyncAll 5
#define FollowKeyboard 3
#ifndef RevertToFollowKeyboard
#define RevertToFollowKeyboard 3
#endif
#define DvAccelNum (1L << 0)
#define DvAccelDenom (1L << 1)
#define DvThreshold (1L << 2)
#define DvKeyClickPercent (1L<<0)
#define DvPercent (1L<<1)
#define DvPitch (1L<<2)
#define DvDuration (1L<<3)
#define DvLed (1L<<4)
#define DvLedMode (1L<<5)
#define DvKey (1L<<6)
#define DvAutoRepeatMode (1L<<7)
#define DvString (1L << 0)
#define DvInteger (1L << 0)
#define DeviceMode (1L << 0)
#define Relative 0
#define Absolute 1
#define ProximityState (1L << 1)
#define InProximity (0L << 1)
#define OutOfProximity (1L << 1)
#define AddToList 0
#define DeleteFromList 1
#define KeyClass 0
#define ButtonClass 1
#define ValuatorClass 2
#define FeedbackClass 3
#define ProximityClass 4
#define FocusClass 5
#define OtherClass 6
#define KbdFeedbackClass 0
#define PtrFeedbackClass 1
#define StringFeedbackClass 2
#define IntegerFeedbackClass 3
#define LedFeedbackClass 4
#define BellFeedbackClass 5
#define _devicePointerMotionHint 0
#define _deviceButton1Motion 1
#define _deviceButton2Motion 2
#define _deviceButton3Motion 3
#define _deviceButton4Motion 4
#define _deviceButton5Motion 5
#define _deviceButtonMotion 6
#define _deviceButtonGrab 7
#define _deviceOwnerGrabButton 8
#define _noExtensionEvent 9
#define XI_BadDevice 0
#define XI_BadEvent 1
#define XI_BadMode 2
#define XI_DeviceBusy 3
#define XI_BadClass 4
typedef unsigned long XEventClass;
/*******************************************************************
*
* Extension version structure.
*
*/
typedef struct {
int present;
short major_version;
short minor_version;
} XExtensionVersion;
#endif /* _XI_H_ */

View File

@@ -0,0 +1,824 @@
/* $Header: XInput.h,v 1.14 91/07/24 15:33:51 rws Exp $ */
/************************************************************
Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, California, and the
Massachusetts Institute of Technology, Cambridge, Massachusetts.
All Rights Reserved
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
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 names of Hewlett-Packard or MIT not be
used in advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
HEWLETT-PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
HEWLETT-PACKARD 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.
********************************************************/
/* Definitions used by the library and client */
#ifndef _XINPUT_H_
#define _XINPUT_H_
#ifndef _XLIB_H_
#include <X11/Xlib.h>
#endif
#ifndef _XI_H_
#include "XI.h"
#endif
#define _deviceKeyPress 0
#define _deviceKeyRelease 1
#define _deviceButtonPress 0
#define _deviceButtonRelease 1
#define _deviceMotionNotify 0
#define _deviceFocusIn 0
#define _deviceFocusOut 1
#define _proximityIn 0
#define _proximityOut 1
#define _deviceStateNotify 0
#define _deviceMappingNotify 1
#define _changeDeviceNotify 2
#define FindTypeAndClass(d,type,_class,classid,offset) \
{ int i; XInputClassInfo *ip; \
type = 0; _class = 0; \
for (i=0, ip= ((XDevice *) d)->classes; \
i< ((XDevice *) d)->num_classes; \
i++, ip++) \
if (ip->input_class == classid) \
{type = ip->event_type_base + offset; \
_class = ((XDevice *) d)->device_id << 8 | type;}}
#define DeviceKeyPress(d,type,_class) \
FindTypeAndClass(d, type, _class, KeyClass, _deviceKeyPress)
#define DeviceKeyRelease(d,type,_class) \
FindTypeAndClass(d, type, _class, KeyClass, _deviceKeyRelease)
#define DeviceButtonPress(d,type,_class) \
FindTypeAndClass(d, type, _class, ButtonClass, _deviceButtonPress)
#define DeviceButtonRelease(d,type,_class) \
FindTypeAndClass(d, type, _class, ButtonClass, _deviceButtonRelease)
#define DeviceMotionNotify(d,type,_class) \
FindTypeAndClass(d, type, _class, ValuatorClass, _deviceMotionNotify)
#define DeviceFocusIn(d,type,_class) \
FindTypeAndClass(d, type, _class, FocusClass, _deviceFocusIn)
#define DeviceFocusOut(d,type,_class) \
FindTypeAndClass(d, type, _class, FocusClass, _deviceFocusOut)
#define ProximityIn(d,type,_class) \
FindTypeAndClass(d, type, _class, ProximityClass, _proximityIn)
#define ProximityOut(d,type,_class) \
FindTypeAndClass(d, type, _class, ProximityClass, _proximityOut)
#define DeviceStateNotify(d,type,_class) \
FindTypeAndClass(d, type, _class, OtherClass, _deviceStateNotify)
#define DeviceMappingNotify(d,type,_class) \
FindTypeAndClass(d, type, _class, OtherClass, _deviceMappingNotify)
#define ChangeDeviceNotify(d,type,_class) \
FindTypeAndClass(d, type, _class, OtherClass, _changeDeviceNotify)
#define DevicePointerMotionHint(d,type,_class) \
{ _class = ((XDevice *) d)->device_id << 8 | _devicePointerMotionHint;}
#define DeviceButton1Motion(d,type,_class) \
{ _class = ((XDevice *) d)->device_id << 8 | _deviceButton1Motion;}
#define DeviceButton2Motion(d,type,_class) \
{ _class = ((XDevice *) d)->device_id << 8 | _deviceButton2Motion;}
#define DeviceButton3Motion(d,type,_class) \
{ _class = ((XDevice *) d)->device_id << 8 | _deviceButton3Motion;}
#define DeviceButton4Motion(d,type,class) \
{ _class = ((XDevice *) d)->device_id << 8 | _deviceButton4Motion;}
#define DeviceButton5Motion(d,type,_class) \
{ _class = ((XDevice *) d)->device_id << 8 | _deviceButton5Motion;}
#define DeviceButtonMotion(d,type,class) \
{ _class = ((XDevice *) d)->device_id << 8 | _deviceButtonMotion;}
#define DeviceOwnerGrabButton(d,type,_class) \
{ _class = ((XDevice *) d)->device_id << 8 | _deviceOwnerGrabButton;}
#define DeviceButtonPressGrab(d,type,_class) \
{ _class = ((XDevice *) d)->device_id << 8 | _deviceButtonGrab;}
#define NoExtensionEvent(d,type,_class) \
{ _class = ((XDevice *) d)->device_id << 8 | _noExtensionEvent;}
#define BadDevice(dpy,error) _xibaddevice(dpy, &error)
#define BadClass(dpy,error) _xibadclass(dpy, &error)
#define BadEvent(dpy,error) _xibadevent(dpy, &error)
#define BadMode(dpy,error) _xibadmode(dpy, &error)
#define DeviceBusy(dpy,error) _xidevicebusy(dpy, &error)
/***************************************************************
*
* DeviceKey events. These events are sent by input devices that
* support input class Keys.
* The location of the X pointer is reported in the coordinate
* fields of the x,y and x_root,y_root fields.
*
*/
typedef struct
{
int type; /* of event */
unsigned long serial; /* # of last request processed */
Bool send_event; /* true if from SendEvent request */
Display *display; /* Display the event was read from */
Window window; /* "event" window reported relative to */
XID deviceid;
Window root; /* root window event occured on */
Window subwindow; /* child window */
Time time; /* milliseconds */
int x, y; /* x, y coordinates in event window */
int x_root; /* coordinates relative to root */
int y_root; /* coordinates relative to root */
unsigned int state; /* key or button mask */
unsigned int keycode; /* detail */
Bool same_screen; /* same screen flag */
unsigned int device_state; /* device key or button mask */
unsigned char axes_count;
unsigned char first_axis;
int axis_data[6];
} XDeviceKeyEvent;
typedef XDeviceKeyEvent XDeviceKeyPressedEvent;
typedef XDeviceKeyEvent XDeviceKeyReleasedEvent;
/*******************************************************************
*
* DeviceButton events. These events are sent by extension devices
* that support input class Buttons.
*
*/
typedef struct {
int type; /* of event */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if from a SendEvent request */
Display *display; /* Display the event was read from */
Window window; /* "event" window reported relative to */
XID deviceid;
Window root; /* root window that the event occured on */
Window subwindow; /* child window */
Time time; /* milliseconds */
int x, y; /* x, y coordinates in event window */
int x_root; /* coordinates relative to root */
int y_root; /* coordinates relative to root */
unsigned int state; /* key or button mask */
unsigned int button; /* detail */
Bool same_screen; /* same screen flag */
unsigned int device_state; /* device key or button mask */
unsigned char axes_count;
unsigned char first_axis;
int axis_data[6];
} XDeviceButtonEvent;
typedef XDeviceButtonEvent XDeviceButtonPressedEvent;
typedef XDeviceButtonEvent XDeviceButtonReleasedEvent;
/*******************************************************************
*
* DeviceMotionNotify event. These events are sent by extension devices
* that support input class Valuators.
*
*/
typedef struct
{
int type; /* of event */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if from a SendEvent request */
Display *display; /* Display the event was read from */
Window window; /* "event" window reported relative to */
XID deviceid;
Window root; /* root window that the event occured on */
Window subwindow; /* child window */
Time time; /* milliseconds */
int x, y; /* x, y coordinates in event window */
int x_root; /* coordinates relative to root */
int y_root; /* coordinates relative to root */
unsigned int state; /* key or button mask */
char is_hint; /* detail */
Bool same_screen; /* same screen flag */
unsigned int device_state; /* device key or button mask */
unsigned char axes_count;
unsigned char first_axis;
int axis_data[6];
} XDeviceMotionEvent;
/*******************************************************************
*
* DeviceFocusChange events. These events are sent when the focus
* of an extension device that can be focused is changed.
*
*/
typedef struct
{
int type; /* of event */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if from a SendEvent request */
Display *display; /* Display the event was read from */
Window window; /* "event" window reported relative to */
XID deviceid;
int mode; /* NotifyNormal, NotifyGrab, NotifyUngrab */
int detail;
/*
* NotifyAncestor, NotifyVirtual, NotifyInferior,
* NotifyNonLinear,NotifyNonLinearVirtual, NotifyPointer,
* NotifyPointerRoot, NotifyDetailNone
*/
Time time;
} XDeviceFocusChangeEvent;
typedef XDeviceFocusChangeEvent XDeviceFocusInEvent;
typedef XDeviceFocusChangeEvent XDeviceFocusOutEvent;
/*******************************************************************
*
* ProximityNotify events. These events are sent by those absolute
* positioning devices that are capable of generating proximity information.
*
*/
typedef struct
{
int type; /* ProximityIn or ProximityOut */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
Window window;
XID deviceid;
Window root;
Window subwindow;
Time time;
int x, y;
int x_root, y_root;
unsigned int state;
Bool same_screen;
unsigned int device_state; /* device key or button mask */
unsigned char axes_count;
unsigned char first_axis;
int axis_data[6];
} XProximityNotifyEvent;
typedef XProximityNotifyEvent XProximityInEvent;
typedef XProximityNotifyEvent XProximityOutEvent;
/*******************************************************************
*
* DeviceStateNotify events are generated on EnterWindow and FocusIn
* for those clients who have selected DeviceState.
*
*/
typedef struct
{
#if defined(__cplusplus) || defined(c_plusplus)
unsigned char c_class;
#else
unsigned char class;
#endif
unsigned char length;
} XInputClass;
typedef struct {
int type;
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
Window window;
XID deviceid;
Time time;
int num_classes;
char data[64];
} XDeviceStateNotifyEvent;
typedef struct {
#if defined(__cplusplus) || defined(c_plusplus)
unsigned char c_class;
#else
unsigned char class;
#endif
unsigned char length;
unsigned char num_valuators;
unsigned char mode;
int valuators[6];
} XValuatorStatus;
typedef struct {
#if defined(__cplusplus) || defined(c_plusplus)
unsigned char c_class;
#else
unsigned char class;
#endif
unsigned char length;
short num_keys;
char keys[32];
} XKeyStatus;
typedef struct {
#if defined(__cplusplus) || defined(c_plusplus)
unsigned char c_class;
#else
unsigned char class;
#endif
unsigned char length;
short num_buttons;
char buttons[32];
} XButtonStatus;
/*******************************************************************
*
* DeviceMappingNotify event. This event is sent when the key mapping,
* modifier mapping, or button mapping of an extension device is changed.
*
*/
typedef struct {
int type;
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
Window window; /* unused */
XID deviceid;
Time time;
int request; /* one of MappingModifier, MappingKeyboard,
MappingPointer */
int first_keycode;/* first keycode */
int count; /* defines range of change w. first_keycode*/
} XDeviceMappingEvent;
/*******************************************************************
*
* ChangeDeviceNotify event. This event is sent when an
* XChangeKeyboard or XChangePointer request is made.
*
*/
typedef struct {
int type;
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
Window window; /* unused */
XID deviceid;
Time time;
int request; /* NewPointer or NewKeyboard */
} XChangeDeviceNotifyEvent;
/*******************************************************************
*
* Control structures for input devices that support input class
* Feedback. These are used by the XGetFeedbackControl and
* XChangeFeedbackControl functions.
*
*/
typedef struct {
#if defined(__cplusplus) || defined(c_plusplus)
XID c_class;
#else
XID class;
#endif
int length;
XID id;
} XFeedbackState;
typedef struct {
#if defined(__cplusplus) || defined(c_plusplus)
XID c_class;
#else
XID class;
#endif
int length;
XID id;
int click;
int percent;
int pitch;
int duration;
int led_mask;
int global_auto_repeat;
char auto_repeats[32];
} XKbdFeedbackState;
typedef struct {
#if defined(__cplusplus) || defined(c_plusplus)
XID c_class;
#else
XID class;
#endif
int length;
XID id;
int accelNum;
int accelDenom;
int threshold;
} XPtrFeedbackState;
typedef struct {
#if defined(__cplusplus) || defined(c_plusplus)
XID c_class;
#else
XID class;
#endif
int length;
XID id;
int resolution;
int minVal;
int maxVal;
} XIntegerFeedbackState;
typedef struct {
#if defined(__cplusplus) || defined(c_plusplus)
XID c_class;
#else
XID class;
#endif
int length;
XID id;
int max_symbols;
int num_syms_supported;
KeySym *syms_supported;
} XStringFeedbackState;
typedef struct {
#if defined(__cplusplus) || defined(c_plusplus)
XID c_class;
#else
XID class;
#endif
int length;
XID id;
int percent;
int pitch;
int duration;
} XBellFeedbackState;
typedef struct {
#if defined(__cplusplus) || defined(c_plusplus)
XID c_class;
#else
XID class;
#endif
int length;
XID id;
int led_values;
int led_mask;
} XLedFeedbackState;
typedef struct {
#if defined(__cplusplus) || defined(c_plusplus)
XID c_class;
#else
XID class;
#endif
int length;
XID id;
} XFeedbackControl;
typedef struct {
#if defined(__cplusplus) || defined(c_plusplus)
XID c_class;
#else
XID class;
#endif
int length;
XID id;
int accelNum;
int accelDenom;
int threshold;
} XPtrFeedbackControl;
typedef struct {
#if defined(__cplusplus) || defined(c_plusplus)
XID c_class;
#else
XID class;
#endif
int length;
XID id;
int click;
int percent;
int pitch;
int duration;
int led_mask;
int led_value;
int key;
int auto_repeat_mode;
} XKbdFeedbackControl;
typedef struct {
#if defined(__cplusplus) || defined(c_plusplus)
XID c_class;
#else
XID class;
#endif
int length;
XID id;
int num_keysyms;
KeySym *syms_to_display;
} XStringFeedbackControl;
typedef struct {
#if defined(__cplusplus) || defined(c_plusplus)
XID c_class;
#else
XID class;
#endif
int length;
XID id;
int int_to_display;
} XIntegerFeedbackControl;
typedef struct {
#if defined(__cplusplus) || defined(c_plusplus)
XID c_class;
#else
XID class;
#endif
int length;
XID id;
int percent;
int pitch;
int duration;
} XBellFeedbackControl;
typedef struct {
#if defined(__cplusplus) || defined(c_plusplus)
XID c_class;
#else
XID class;
#endif
int length;
XID id;
int led_mask;
int led_values;
} XLedFeedbackControl;
/*******************************************************************
*
* Device control structures.
*
*/
typedef struct {
XID control;
int length;
} XDeviceControl;
typedef struct {
XID control;
int length;
int first_valuator;
int num_valuators;
int *resolutions;
} XDeviceResolutionControl;
typedef struct {
XID control;
int length;
int num_valuators;
int *resolutions;
int *min_resolutions;
int *max_resolutions;
} XDeviceResolutionState;
/*******************************************************************
*
* An array of XDeviceList structures is returned by the
* XListInputDevices function. Each entry contains information
* about one input device. Among that information is an array of
* pointers to structures that describe the characteristics of
* the input device.
*
*/
typedef struct _XAnyClassinfo *XAnyClassPtr;
typedef struct _XAnyClassinfo {
#if defined(__cplusplus) || defined(c_plusplus)
XID c_class;
#else
XID class;
#endif
int length;
} XAnyClassInfo;
typedef struct _XDeviceInfo *XDeviceInfoPtr;
typedef struct _XDeviceInfo
{
XID id;
Atom type;
char *name;
int num_classes;
int use;
XAnyClassPtr inputclassinfo;
} XDeviceInfo;
typedef struct _XKeyInfo *XKeyInfoPtr;
typedef struct _XKeyInfo
{
#if defined(__cplusplus) || defined(c_plusplus)
XID c_class;
#else
XID class;
#endif
int length;
unsigned short min_keycode;
unsigned short max_keycode;
unsigned short num_keys;
} XKeyInfo;
typedef struct _XButtonInfo *XButtonInfoPtr;
typedef struct _XButtonInfo {
#if defined(__cplusplus) || defined(c_plusplus)
XID c_class;
#else
XID class;
#endif
int length;
short num_buttons;
} XButtonInfo;
typedef struct _XAxisInfo *XAxisInfoPtr;
typedef struct _XAxisInfo {
int resolution;
int min_value;
int max_value;
} XAxisInfo;
typedef struct _XValuatorInfo *XValuatorInfoPtr;
typedef struct _XValuatorInfo
{
#if defined(__cplusplus) || defined(c_plusplus)
XID c_class;
#else
XID class;
#endif
int length;
unsigned char num_axes;
unsigned char mode;
unsigned long motion_buffer;
XAxisInfoPtr axes;
} XValuatorInfo;
/*******************************************************************
*
* An XDevice structure is returned by the XOpenDevice function.
* It contains an array of pointers to XInputClassInfo structures.
* Each contains information about a class of input supported by the
* device, including a pointer to an array of data for each type of event
* the device reports.
*
*/
typedef struct {
unsigned char input_class;
unsigned char event_type_base;
} XInputClassInfo;
typedef struct {
XID device_id;
int num_classes;
XInputClassInfo *classes;
} XDevice;
/*******************************************************************
*
* The following structure is used to return information for the
* XGetSelectedExtensionEvents function.
*
*/
typedef struct {
XEventClass event_type;
XID device;
} XEventList;
/*******************************************************************
*
* The following structure is used to return motion history data from
* an input device that supports the input class Valuators.
* This information is returned by the XGetDeviceMotionEvents function.
*
*/
typedef struct {
Time time;
int *data;
} XDeviceTimeCoord;
/*******************************************************************
*
* Device state structure.
* This is returned by the XQueryDeviceState request.
*
*/
typedef struct {
XID device_id;
int num_classes;
XInputClass *data;
} XDeviceState;
/*******************************************************************
*
* Note that the mode field is a bitfield that reports the Proximity
* status of the device as well as the mode. The mode field should
* be OR'd with the mask DeviceMode and compared with the values
* Absolute and Relative to determine the mode, and should be OR'd
* with the mask ProximityState and compared with the values InProximity
* and OutOfProximity to determine the proximity state.
*
*/
typedef struct {
#if defined(__cplusplus) || defined(c_plusplus)
unsigned char c_class;
#else
unsigned char class;
#endif
unsigned char length;
unsigned char num_valuators;
unsigned char mode;
int *valuators;
} XValuatorState;
typedef struct {
#if defined(__cplusplus) || defined(c_plusplus)
unsigned char c_class;
#else
unsigned char class;
#endif
unsigned char length;
short num_keys;
char keys[32];
} XKeyState;
typedef struct {
#if defined(__cplusplus) || defined(c_plusplus)
unsigned char c_class;
#else
unsigned char class;
#endif
unsigned char length;
short num_buttons;
char buttons[32];
} XButtonState;
/*******************************************************************
*
* Function definitions.
*
*/
XDevice *XOpenDevice();
XDeviceInfo *XListInputDevices();
XDeviceTimeCoord *XGetDeviceMotionEvents();
KeySym *XGetDeviceKeyMapping();
XModifierKeymap *XGetDeviceModifierMapping();
XFeedbackState *XGetFeedbackControl();
XExtensionVersion *XGetExtensionVersion();
XDeviceState *XQueryDeviceState();
XEventClass *XGetDeviceDontPropagateList();
#endif /* _XINPUT_H_ */

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,149 @@
/************************************************************
Copyright 1989 by The Massachusetts Institute of Technology
Permission to use, copy, modify, and distribute this
software and its documentation for any purpose and without
fee is hereby granted, provided that the above copyright
no- tice appear in all copies and that both that copyright
no- tice and this permission notice appear in supporting
docu- mentation, and that the name of MIT not be used in
advertising or publicity pertaining to distribution of the
software without specific prior written permission.
M.I.T. makes no representation about the suitability of
this software for any purpose. It is provided "as is"
without any express or implied warranty.
********************************************************/
/* THIS IS NOT AN X CONSORTIUM STANDARD */
/* $XConsortium: XShm.h,v 1.5 91/07/12 09:54:34 rws Exp $ */
#ifndef _XSHM_H_
#define _XSHM_H_
#include <X11/Xfuncproto.h>
#define X_ShmQueryVersion 0
#define X_ShmAttach 1
#define X_ShmDetach 2
#define X_ShmPutImage 3
#define X_ShmGetImage 4
#define X_ShmCreatePixmap 5
#define ShmCompletion 0
#define ShmNumberEvents (ShmCompletion + 1)
#define BadShmSeg 0
#define ShmNumberErrors (BadShmSeg + 1)
typedef unsigned long ShmSeg;
#ifndef _XSHM_SERVER_
typedef struct {
int type; /* of event */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came frome a SendEvent request */
Display *display; /* Display the event was read from */
Drawable drawable; /* drawable of request */
int major_code; /* ShmReqCode */
int minor_code; /* X_ShmPutImage */
ShmSeg shmseg; /* the ShmSeg used in the request */
unsigned long offset; /* the offset into ShmSeg used in the request */
} XShmCompletionEvent;
typedef struct {
ShmSeg shmseg; /* resource id */
int shmid; /* kernel id */
char *shmaddr; /* address in client */
Bool readOnly; /* how the server should attach it */
} XShmSegmentInfo;
_XFUNCPROTOBEGIN
Bool XShmQueryVersion(
#if NeedFunctionPrototypes
Display* /* dpy */,
int* /* majorVersion */,
int* /* minorVersion */,
Bool* /* sharedPixmaps */
#endif
);
int XShmPixmapFormat(
#if NeedFunctionPrototypes
Display* /* dpy */
#endif
);
Status XShmAttach(
#if NeedFunctionPrototypes
Display* /* dpy */,
XShmSegmentInfo* /* shminfo */
#endif
);
Status XShmDetach(
#if NeedFunctionPrototypes
Display* /* dpy */,
XShmSegmentInfo* /* shminfo */
#endif
);
Status XShmPutImage(
#if NeedFunctionPrototypes
Display* /* dpy */,
Drawable /* d */,
GC /* gc */,
XImage* /* image */,
int /* src_x */,
int /* src_y */,
int /* dst_x */,
int /* dst_y */,
unsigned int /* src_width */,
unsigned int /* src_height */,
Bool /* send_event */
#endif
);
Status XShmGetImage(
#if NeedFunctionPrototypes
Display* /* dpy */,
Drawable /* d */,
XImage* /* image */,
int /* x */,
int /* y */,
unsigned long /* plane_mask */
#endif
);
XImage *XShmCreateImage(
#if NeedFunctionPrototypes
Display* /* dpy */,
Visual* /* visual */,
unsigned int /* depth */,
int /* format */,
char* /* data */,
XShmSegmentInfo* /* shminfo */,
unsigned int /* width */,
unsigned int /* height */
#endif
);
Pixmap XShmCreatePixmap(
#if NeedFunctionPrototypes
Display* /* dpy */,
Drawable /* d */,
char* /* data */,
XShmSegmentInfo* /* shminfo */,
unsigned int /* width */,
unsigned int /* height */,
unsigned int /* depth */
#endif
);
_XFUNCPROTOEND
#endif
#endif

View File

@@ -0,0 +1,49 @@
/*
* $XConsortium: Xext.h,v 1.2 91/07/12 10:28:17 rws Exp $
*
* Copyright 1989 Massachusetts Institute of Technology
*
* 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 M.I.T. not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. M.I.T. makes no representations about the
* suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL M.I.T.
* 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.
*/
#ifndef _XEXT_H_
#define _XEXT_H_
#include <X11/Xfuncproto.h>
_XFUNCPROTOBEGIN
extern int (*XSetExtensionErrorHandler())(
#if NeedFunctionPrototypes
int (*handler)()
#endif
);
extern int XMissingExtension(
#if NeedFunctionPrototypes
Display* /* dpy */,
_Xconst char* /* ext_name */
#endif
);
_XFUNCPROTOEND
#define X_EXTENSION_UNKNOWN "unknown"
#define X_EXTENSION_MISSING "missing"
#endif /* _XEXT_H_ */

View File

@@ -0,0 +1,280 @@
/*
* $XConsortium: multibuf.h,v 1.15 91/07/12 10:20:42 rws Exp $
*
* Copyright 1989 Massachusetts Institute of Technology
*
* 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 M.I.T. not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. M.I.T. makes no representations about the
* suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL M.I.T.
* 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.
*/
#ifndef _MULTIBUF_H_
#define _MULTIBUF_H_
#include <X11/Xfuncproto.h>
#define MULTIBUFFER_PROTOCOL_NAME "Multi-Buffering"
#define MULTIBUFFER_MAJOR_VERSION 1 /* current version numbers */
#define MULTIBUFFER_MINOR_VERSION 0
#define X_MbufGetBufferVersion 0
#define X_MbufCreateImageBuffers 1
#define X_MbufDestroyImageBuffers 2
#define X_MbufDisplayImageBuffers 3
#define X_MbufSetMBufferAttributes 4
#define X_MbufGetMBufferAttributes 5
#define X_MbufSetBufferAttributes 6
#define X_MbufGetBufferAttributes 7
#define X_MbufGetBufferInfo 8
#define X_MbufCreateStereoWindow 9
/*
* update_action field
*/
#define MultibufferUpdateActionUndefined 0
#define MultibufferUpdateActionBackground 1
#define MultibufferUpdateActionUntouched 2
#define MultibufferUpdateActionCopied 3
/*
* update_hint field
*/
#define MultibufferUpdateHintFrequent 0
#define MultibufferUpdateHintIntermittent 1
#define MultibufferUpdateHintStatic 2
/*
* valuemask fields
*/
#define MultibufferWindowUpdateHint (1L << 0)
#define MultibufferBufferEventMask (1L << 0)
/*
* mono vs. stereo and left vs. right
*/
#define MultibufferModeMono 0
#define MultibufferModeStereo 1
#define MultibufferSideMono 0
#define MultibufferSideLeft 1
#define MultibufferSideRight 2
/*
* clobber state
*/
#define MultibufferUnclobbered 0
#define MultibufferPartiallyClobbered 1
#define MultibufferFullyClobbered 2
/*
* event stuff
*/
#define MultibufferClobberNotifyMask 0x02000000
#define MultibufferUpdateNotifyMask 0x04000000
#define MultibufferClobberNotify 0
#define MultibufferUpdateNotify 1
#define MultibufferNumberEvents (MultibufferUpdateNotify + 1)
#define MultibufferBadBuffer 0
#define MultibufferNumberErrors (MultibufferBadBuffer + 1)
#ifndef _MULTIBUF_SERVER_
/*
* Extra definitions that will only be needed in the client
*/
typedef XID Multibuffer;
typedef struct {
int type; /* of event */
unsigned long serial; /* # of last request processed by server */
int send_event; /* true if this came frome a SendEvent request */
Display *display; /* Display the event was read from */
Multibuffer buffer; /* buffer of event */
int state; /* see Clobbered constants above */
} XmbufClobberNotifyEvent;
typedef struct {
int type; /* of event */
unsigned long serial; /* # of last request processed by server */
int send_event; /* true if this came frome a SendEvent request */
Display *display; /* Display the event was read from */
Multibuffer buffer; /* buffer of event */
} XmbufUpdateNotifyEvent;
/*
* per-window attributes that can be got
*/
typedef struct {
int displayed_index; /* which buffer is being displayed */
int update_action; /* Undefined, Background, Untouched, Copied */
int update_hint; /* Frequent, Intermittent, Static */
int window_mode; /* Mono, Stereo */
int nbuffers; /* Number of buffers */
Multibuffer *buffers; /* Buffers */
} XmbufWindowAttributes;
/*
* per-window attributes that can be set
*/
typedef struct {
int update_hint; /* Frequent, Intermittent, Static */
} XmbufSetWindowAttributes;
/*
* per-buffer attributes that can be got
*/
typedef struct {
Window window; /* which window this belongs to */
unsigned long event_mask; /* events that have been selected */
int buffer_index; /* which buffer is this */
int side; /* Mono, Left, Right */
} XmbufBufferAttributes;
/*
* per-buffer attributes that can be set
*/
typedef struct {
unsigned long event_mask; /* events that have been selected */
} XmbufSetBufferAttributes;
/*
* per-screen buffer info (there will be lists of them)
*/
typedef struct {
VisualID visualid; /* visual usuable at this depth */
int max_buffers; /* most buffers for this visual */
int depth; /* depth of buffers to be created */
} XmbufBufferInfo;
_XFUNCPROTOBEGIN
extern Bool XmbufQueryExtension(
#if NeedFunctionPrototypes
Display* /* dpy */,
int* /* event_base_return */,
int* /* error_base_return */
#endif
);
extern Status XmbufGetVersion(
#if NeedFunctionPrototypes
Display* /* dpy */,
int* /* major_version_return */,
int* /* minor_version_return */
#endif
);
extern int XmbufCreateBuffers(
#if NeedFunctionPrototypes
Display* /* dpy */,
Window /* w */,
int /* count */,
int /* update_action */,
int /* update_hint */,
Multibuffer* /* buffers */
#endif
);
extern void XmbufDestroyBuffers(
#if NeedFunctionPrototypes
Display* /* dpy */,
Window /* window */
#endif
);
extern void XmbufDisplayBuffers(
#if NeedFunctionPrototypes
Display* /* dpy */,
int /* count */,
Multibuffer* /* buffers */,
int /* min_delay */,
int /* max_delay */
#endif
);
extern Status XmbufGetWindowAttributes(
#if NeedFunctionPrototypes
Display* /* dpy */,
Window /* w */,
XmbufWindowAttributes* /* attr */
#endif
);
extern void XmbufChangeWindowAttributes(
#if NeedFunctionPrototypes
Display* /* dpy */,
Window /* w */,
unsigned long /* valuemask */,
XmbufSetWindowAttributes* /* attr */
#endif
);
extern Status XmbufGetBufferAttributes(
#if NeedFunctionPrototypes
Display* /* dpy */,
Multibuffer /* b */,
XmbufBufferAttributes* /* attr */
#endif
);
extern void XmbufChangeBufferAttributes(
#if NeedFunctionPrototypes
Display* /* dpy */,
Multibuffer /* b */,
unsigned long /* valuemask */,
XmbufSetBufferAttributes* /* attr */
#endif
);
extern Status XmbufGetScreenInfo(
#if NeedFunctionPrototypes
Display* /* dpy */,
Drawable /* d */,
int* /* nmono_return */,
XmbufBufferInfo** /* mono_info_return */,
int* /* nstereo_return */,
XmbufBufferInfo** /* stereo_info_return */
#endif
);
extern Window XmbufCreateStereoWindow(
#if NeedFunctionPrototypes
Display* /* dpy */,
Window /* parent */,
int /* x */,
int /* y */,
unsigned int /* width */,
unsigned int /* height */,
unsigned int /* border_width */,
int /* depth */,
unsigned int /* class */,
Visual* /* visual */,
unsigned long /* valuemask */,
XSetWindowAttributes* /* attr */,
Multibuffer* /* leftp */,
Multibuffer* /* rightp */
#endif
);
_XFUNCPROTOEND
#endif /* _MULTIBUF_SERVER_ */
#endif /* _MULTIBUF_H_ */

View File

@@ -0,0 +1,197 @@
/************************************************************
Copyright 1989 by The Massachusetts Institute of Technology
Permission to use, copy, modify, and distribute this
software and its documentation for any purpose and without
fee is hereby granted, provided that the above copyright
no- tice appear in all copies and that both that copyright
no- tice and this permission notice appear in supporting
docu- mentation, and that the name of MIT not be used in
advertising or publicity pertaining to distribution of the
software without specific prior written permission.
M.I.T. makes no representation about the suitability of
this software for any purpose. It is provided "as is"
without any express or implied warranty.
MIT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FIT-
NESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SUN BE LI-
ABLE 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.
********************************************************/
/* $XConsortium: shape.h,v 1.15 91/02/17 13:09:32 rws Exp $ */
#ifndef _SHAPE_H_
#define _SHAPE_H_
#include <X11/Xfuncproto.h>
#define X_ShapeQueryVersion 0
#define X_ShapeRectangles 1
#define X_ShapeMask 2
#define X_ShapeCombine 3
#define X_ShapeOffset 4
#define X_ShapeQueryExtents 5
#define X_ShapeSelectInput 6
#define X_ShapeInputSelected 7
#define X_ShapeGetRectangles 8
#define ShapeSet 0
#define ShapeUnion 1
#define ShapeIntersect 2
#define ShapeSubtract 3
#define ShapeInvert 4
#define ShapeBounding 0
#define ShapeClip 1
#define ShapeNotifyMask (1L << 0)
#define ShapeNotify 0
#define ShapeNumberEvents (ShapeNotify + 1)
#ifndef _SHAPE_SERVER_
typedef struct {
int type; /* of event */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came frome a SendEvent request */
Display *display; /* Display the event was read from */
Window window; /* window of event */
int kind; /* ShapeBounding or ShapeClip */
int x, y; /* extents of new region */
unsigned width, height;
Time time; /* server timestamp when region changed */
Bool shaped; /* true if the region exists */
} XShapeEvent;
_XFUNCPROTOBEGIN
extern Bool XShapeQueryExtension (
#if NeedFunctionPrototypes
Display* /* display */,
int* /* event_base */,
int* /* error_base */
#endif
);
extern Status XShapeQueryVersion (
#if NeedFunctionPrototypes
Display* /* display */,
int* /* major_version */,
int* /* minor_version */
#endif
);
extern void XShapeCombineRegion (
#if NeedFunctionPrototypes
Display* /* display */,
Window /* dest */,
int /* dest_kind */,
int /* x_off */,
int /* y_off */,
Region /* region */,
int /* op */
#endif
);
extern void XShapeCombineRectangles (
#if NeedFunctionPrototypes
Display* /* display */,
Window /* dest */,
int /* dest_kind */,
int /* x_off */,
int /* y_off */,
XRectangle* /* rectangles */,
int /* n_rects */,
int /* op */,
int /* ordering */
#endif
);
extern void XShapeCombineMask (
#if NeedFunctionPrototypes
Display* /* display */,
Window /* dest */,
int /* dest_kind */,
int /* x_off */,
int /* y_off */,
Pixmap /* src */,
int /* op */
#endif
);
extern void XShapeCombineShape (
#if NeedFunctionPrototypes
Display* /* display */,
Window /* dest */,
int /* dest_kind */,
int /* x_off */,
int /* y_off */,
Window /* src */,
int /* src_kind */,
int /* op */
#endif
);
extern void XShapeOffsetShape (
#if NeedFunctionPrototypes
Display* /* display */,
Window /* dest */,
int /* dest_kind */,
int /* x_off */,
int /* y_off */
#endif
);
extern Status XShapeQueryExtents (
#if NeedFunctionPrototypes
Display* /* display */,
Window /* window */,
Bool* /* bounding_shaped */,
int* /* x_bounding */,
int* /* y_bounding */,
unsigned int* /* w_bounding */,
unsigned int* /* h_bounding */,
Bool* /* clip_shaped */,
int* /* x_clip */,
int* /* y_clip */,
unsigned int* /* w_clip */,
unsigned int* /* h_clip */
#endif
);
extern void XShapeSelectInput (
#if NeedFunctionPrototypes
Display* /* display */,
Window /* window */,
unsigned long /* mask */
#endif
);
extern unsigned long XShapeInputSelected (
#if NeedFunctionPrototypes
Display* /* display */,
Window /* window */
#endif
);
extern XRectangle *XShapeGetRectangles (
#if NeedFunctionPrototypes
Display* /* display */,
Window /* window */,
int /* kind */,
int* /* count */,
int* /* ordering */
#endif
);
_XFUNCPROTOEND
#endif /* _SHAPE_SERVER_ */
#endif /* _SHAPE_H_ */

View File

@@ -0,0 +1,302 @@
/*
* xtestext1.h
*
* X11 Input Synthesis Extension include file
*/
/*
Copyright 1986, 1987, 1988 by Hewlett-Packard Corporation
Copyright 1986, 1987, 1988 by the Massachusetts Institute of Technology
Permission to use, copy, modify, and distribute this
software and its documentation for any purpose and without
fee is hereby granted, 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 M.I.T. not be used in
advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
Hewlett-Packard and M.I.T. make no representations about the
suitability of this software for any purpose. It is provided
"as is" without express or implied warranty.
This software is not subject to any license of the American
Telephone and Telegraph Company or of the Regents of the
University of California.
*/
/*
* the typedefs for CARD8, CARD16, and CARD32 are defined in Xmd.h
*/
/*
* used in the XTestPressButton and XTestPressKey functions
*/
#define XTestPRESS 1 << 0
#define XTestRELEASE 1 << 1
#define XTestSTROKE 1 << 2
/*
* When doing a key or button stroke, the number of milliseconds
* to delay between the press and the release of a key or button
* in the XTestPressButton and XTestPressKey functions.
*/
#define XTestSTROKE_DELAY_TIME 10
/*
* used in the XTestGetInput function
*/
#define XTestEXCLUSIVE 1 << 0
#define XTestPACKED_ACTIONS 1 << 1
#define XTestPACKED_MOTION 1 << 2
/*
* used in the XTestFakeInput function
*/
#define XTestFAKE_ACK_NOT_NEEDED 0
#define XTestFAKE_ACK_REQUEST 1
/*
* used in the XTest extension initialization routine
*/
#define XTestEXTENSION_NAME "XTestExtension1"
#define XTestEVENT_COUNT 2
/*
* XTest request type values
*
* used in the XTest extension protocol requests
*/
#define X_TestFakeInput 1
#define X_TestGetInput 2
#define X_TestStopInput 3
#define X_TestReset 4
#define X_TestQueryInputSize 5
/*
* This defines the maximum size of a list of input actions
* to be sent to the server. It should always be a multiple of
* 4 so that the entire xTestFakeInputReq structure size is a
* multiple of 4.
*/
#define XTestMAX_ACTION_LIST_SIZE 64
typedef struct {
CARD8 reqType; /* always XTestReqCode */
CARD8 XTestReqType; /* always X_TestFakeInput */
CARD16 length B16; /* 2 + XTestMAX_ACTION_LIST_SIZE/4 */
CARD32 ack B32;
CARD8 action_list[XTestMAX_ACTION_LIST_SIZE];
} xTestFakeInputReq;
#define sz_xTestFakeInputReq (XTestMAX_ACTION_LIST_SIZE + 8)
typedef struct {
CARD8 reqType; /* always XTestReqCode */
CARD8 XTestReqType; /* always X_TestGetInput */
CARD16 length B16; /* 2 */
CARD32 mode B32;
} xTestGetInputReq;
#define sz_xTestGetInputReq 8
typedef struct {
CARD8 reqType; /* always XTestReqCode */
CARD8 XTestReqType; /* always X_TestStopInput */
CARD16 length B32; /* 1 */
} xTestStopInputReq;
#define sz_xTestStopInputReq 4
typedef struct {
CARD8 reqType; /* always XTestReqCode */
CARD8 XTestReqType; /* always X_TestReset */
CARD16 length B16; /* 1 */
} xTestResetReq;
#define sz_xTestResetReq 4
typedef struct {
CARD8 reqType; /* always XTestReqCode */
CARD8 XTestReqType; /* always X_TestQueryInputSize */
CARD16 length B16; /* 1 */
} xTestQueryInputSizeReq;
#define sz_xTestQueryInputSizeReq 4
/*
* This is the definition of the reply for the xTestQueryInputSize
* request. It should remain the same minimum size as other replies
* (32 bytes).
*/
typedef struct {
CARD8 type; /* always X_Reply */
CARD8 pad1;
CARD16 sequenceNumber B16;
CARD32 length B32; /* always 0 */
CARD32 size_return B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xTestQueryInputSizeReply;
/*
* This is the definition for the input action wire event structure.
* This event is sent to the client when the server has one or
* more user input actions to report to the client. It must
* remain the same size as all other wire events (32 bytes).
*/
#define XTestACTIONS_SIZE 28
typedef struct {
CARD8 type; /* always XTestInputActionType */
CARD8 pad00;
CARD16 sequenceNumber B16;
CARD8 actions[XTestACTIONS_SIZE];
} xTestInputActionEvent;
/*
* This is the definition for the xTestFakeAck wire event structure.
* This event is sent to the client when the server has completely
* processed its input action buffer, and is ready for more.
* It must remain the same size as all other wire events (32 bytes).
*/
typedef struct {
CARD8 type; /* always XTestFakeAckType */
CARD8 pad00;
CARD16 sequenceNumber B16;
CARD32 pad02 B32;
CARD32 pad03 B32;
CARD32 pad04 B32;
CARD32 pad05 B32;
CARD32 pad06 B32;
CARD32 pad07 B32;
CARD32 pad08 B32;
} xTestFakeAckEvent;
/*
* The server side of this extension does not (and should not) have
* definitions for Display and Window. The ifndef allows the server
* side of the extension to ignore the following typedefs.
*/
#ifndef XTestSERVER_SIDE
/*
* This is the definition for the input action host format event structure.
* This is the form that a client using this extension will see when
* it receives an input action event.
*/
typedef struct {
int type; /* always XTestInputActionType */
Display *display;
Window window;
CARD8 actions[XTestACTIONS_SIZE];
} XTestInputActionEvent;
/*
* This is the definition for the xTestFakeAck host format event structure.
* This is the form that a client using this extension will see when
* it receives an XTestFakeAck event.
*/
typedef struct {
int type; /* always XTestFakeAckType */
Display *display;
Window window;
} XTestFakeAckEvent;
#endif
/*
* This is the definition for the format of the header byte
* in the input action structures.
*/
#define XTestACTION_TYPE_MASK 0x03 /* bits 0 and 1 */
#define XTestKEY_STATE_MASK 0x04 /* bit 2 (key action) */
#define XTestX_SIGN_BIT_MASK 0x04 /* bit 2 (motion action) */
#define XTestY_SIGN_BIT_MASK 0x08 /* bit 3 (motion action) */
#define XTestDEVICE_ID_MASK 0xf0 /* bits 4 through 7 */
#define XTestMAX_DEVICE_ID 0x0f
#define XTestPackDeviceID(x) (((x) & XTestMAX_DEVICE_ID) << 4)
#define XTestUnpackDeviceID(x) (((x) & XTestDEVICE_ID_MASK) >> 4)
/*
* These are the possible action types.
*/
#define XTestDELAY_ACTION 0
#define XTestKEY_ACTION 1
#define XTestMOTION_ACTION 2
#define XTestJUMP_ACTION 3
/*
* These are the definitions for key/button motion input actions.
*/
#define XTestKEY_UP 0x04
#define XTestKEY_DOWN 0x00
typedef struct {
CARD8 header; /* which device, key up/down */
CARD8 keycode; /* which key/button to move */
CARD16 delay_time B16; /* how long to delay (in ms) */
} XTestKeyInfo;
/*
* This is the definition for pointer jump input actions.
*/
typedef struct {
CARD8 header; /* which pointer */
CARD8 pad1; /* unused padding byte */
CARD16 jumpx B16; /* x coord to jump to */
CARD16 jumpy B16; /* y coord to jump to */
CARD16 delay_time B16; /* how long to delay (in ms) */
} XTestJumpInfo;
/*
* These are the definitions for pointer relative motion input
* actions.
*
* The sign bits for the x and y relative motions are contained
* in the header byte. The x and y relative motions are packed
* into one byte to make things fit in 32 bits. If the relative
* motion range is larger than +/-15, use the pointer jump action.
*/
#define XTestMOTION_MAX 15
#define XTestMOTION_MIN -15
#define XTestX_NEGATIVE 0x04
#define XTestY_NEGATIVE 0x08
#define XTestX_MOTION_MASK 0x0f
#define XTestY_MOTION_MASK 0xf0
#define XTestPackXMotionValue(x) ((x) & XTestX_MOTION_MASK)
#define XTestPackYMotionValue(x) (((x) << 4) & XTestY_MOTION_MASK)
#define XTestUnpackXMotionValue(x) ((x) & XTestX_MOTION_MASK)
#define XTestUnpackYMotionValue(x) (((x) & XTestY_MOTION_MASK) >> 4)
typedef struct {
CARD8 header; /* which pointer */
CARD8 motion_data; /* x,y relative motion */
CARD16 delay_time B16; /* how long to delay (in ms) */
} XTestMotionInfo;
/*
* These are the definitions for a long delay input action. It is
* used when more than XTestSHORT_DELAY_TIME milliseconds of delay
* (approximately one minute) is needed.
*
* The device ID for a delay is always set to XTestDELAY_DEVICE_ID.
* This guarantees that a header byte with a value of 0 is not
* a valid header, so it can be used as a flag to indicate that
* there are no more input actions in an XTestInputAction event.
*/
#define XTestSHORT_DELAY_TIME 0xffff
#define XTestDELAY_DEVICE_ID 0x0f
typedef struct {
CARD8 header; /* always XTestDELAY_DEVICE_ID */
CARD8 pad1; /* unused padding byte */
CARD16 pad2 B16; /* unused padding word */
CARD32 delay_time B32; /* how long to delay (in ms) */
} XTestDelayInfo;