129 lines
4.8 KiB
C
129 lines
4.8 KiB
C
/* $XFree86$ */
|
|
#ifndef __XTRAPLIB__
|
|
#define __XTRAPLIB__
|
|
|
|
|
|
/*****************************************************************************
|
|
Copyright 1987, 1988, 1989, 1990, 1991, 1994 by Digital Equipment Corp.,
|
|
Maynard, MA
|
|
|
|
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 Digital not be
|
|
used in advertising or publicity pertaining to distribution of the
|
|
software without specific, written prior permission.
|
|
|
|
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
|
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
|
DIGITAL 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.
|
|
|
|
*****************************************************************************/
|
|
/*
|
|
*
|
|
* CONTRIBUTORS:
|
|
*
|
|
* Dick Annicchiarico
|
|
* Robert Chesler
|
|
* Dan Coutu
|
|
* Gene Durso
|
|
* Marc Evans
|
|
* Alan Jamison
|
|
* Mark Henry
|
|
* Ken Miller
|
|
*
|
|
* DESCRIPTION:
|
|
* This header file describes all the structures/constants required
|
|
* for interfacing with the client toolkit *except* the common
|
|
* client/extension definitions in xtrapdi.h. Namely, *no* extension-
|
|
* only information or client/extension information can be found here.
|
|
*/
|
|
#ifdef SMT
|
|
#define NEED_EVENTS
|
|
#define NEED_REPLIES
|
|
#endif
|
|
#include <X11/Xlib.h>
|
|
#include <X11/Intrinsic.h>
|
|
#include <X11/extensions/xtrapdi.h>
|
|
#include <X11/extensions/xtrapemacros.h>
|
|
|
|
typedef struct /* Callback structure */
|
|
{
|
|
void_function func;
|
|
BYTE *data;
|
|
} XETrapCB;
|
|
|
|
/* Data structure for setting trap context */
|
|
typedef struct
|
|
{
|
|
CARD8 tc_flags[2L]; /* Toolkit-side specific flags */
|
|
XETrapCfg v; /* XTrap configuration values */
|
|
XETrapCB *req_cb; /* Pointer to Request Callbacks */
|
|
XETrapCB *evt_cb; /* Pointer to Event Callbacks (starting at 2) */
|
|
CARD32 last_time B32; /* Last (delta) timestamp */
|
|
} XETCValues;
|
|
|
|
/* bits 0 thru 6 are formerly "families" (now obsolete) */
|
|
#define XETCDeltaTimes 7
|
|
#define XETCTrapActive 8
|
|
/* bits 9 thru 15 are reserved for future expansion */
|
|
|
|
/* Values bit masks (used when determining what's dirty */
|
|
#define TCStatistics (1L<<0L)
|
|
#define TCRequests (1L<<1L)
|
|
#define TCEvents (1L<<2L)
|
|
#define TCMaxPacket (1L<<3L)
|
|
#define TCCmdKey (1L<<4L)
|
|
#define TCTimeStamps (1L<<5L)
|
|
#define TCWinXY (1L<<6L)
|
|
#define TCXInput (1L<<7L)
|
|
#define TCReqCBs (1L<<8L)
|
|
#define TCEvtCBs (1L<<9L)
|
|
#define TCCursor (1L<<10L)
|
|
#define TCColorReplies (1L<<11L)
|
|
#define TCGrabServer (1L<<12L)
|
|
|
|
/* This is the representation we use in the library code for XLib transport */
|
|
typedef struct {
|
|
int type;
|
|
unsigned long serial;
|
|
Bool synthetic;
|
|
Display *display;
|
|
int detail;
|
|
unsigned long idx;
|
|
unsigned char data[sz_EventData];
|
|
} XETrapDataEvent;
|
|
|
|
/* Trap Context structure for maintaining XTrap State for client */
|
|
typedef struct _XETC
|
|
{
|
|
struct _XETC *next; /* Ptr to next linked-listed TC */
|
|
Display *dpy; /* Display ptr of current TC */
|
|
INT32 eventBase /*B32*/; /* First event value */
|
|
INT32 errorBase /*B32*/; /* First error value */
|
|
INT32 extOpcode /*B32*/; /* Major opcode of the extension */
|
|
BYTE *xbuff; /* Pointer to buffer for XLib Communications */
|
|
CARD16 xmax_size /*B16*/; /* Max Size of a request */
|
|
XExtData *ext_data; /* hook for extension to hang data */
|
|
/*
|
|
* The following are initialized with the client-side version number
|
|
* However, when either a GetAvailable or GetVersion reply is received,
|
|
* these values are updated with the *oldest* version numbers.
|
|
*/
|
|
CARD16 release /*B16*/; /* The extension release number */
|
|
CARD16 version /*B16*/; /* The xtrap extension version number */
|
|
CARD16 revision /*B16*/; /* The xtrap extension revision number */
|
|
CARD16 protocol /*B16*/; /* The xtrap extension protocol number */
|
|
unsigned dirty /*B32*/; /* cache dirty bits */
|
|
XETCValues values; /* shadow structure of values */
|
|
Boolean (*eventFunc[XETrapNumberEvents])(XETrapDataEvent *event, struct _XETC *tc);
|
|
} XETC;
|
|
|
|
|
|
#endif /* __XTRAPLIB__ */
|