lbxstr.h revision 677833bc953b6cb418c701facbdcf4aa18d6c44e
/* $Xorg: lbxstr.h,v 1.4 2001/02/13 20:14:04 pookie Exp $ */
/*
* Copyright 1992 Network Computing Devices
*
* 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 NCD. not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. NCD. makes no representations about the
* suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* NCD. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NCD.
* 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.
*
*/
/* $XFree86: xc/include/extensions/lbxstr.h,v 1.2 2001/08/01 00:44:35 tsi Exp $ */
#ifndef _LBXSTR_H_
#define _LBXSTR_H_
#define LBXNAME "LBX"
#define LBX_MAJOR_VERSION 1
#define LBX_MINOR_VERSION 0
/*
* Redefine some basic types used by structures defined herein. This removes
* any possibility on 64-bit architectures of one entity viewing communicated
* data as 32-bit quantities and another entity viewing the same data as 64-bit
* quantities.
*/
typedef struct {
typedef struct _LbxQueryVersion {
#define sz_xLbxQueryVersionReq 4
typedef struct {
#define sz_xLbxQueryVersionReply 32
typedef struct _LbxStartProxy {
#define sz_xLbxStartProxyReq 4
typedef struct _LbxStopProxy {
#define sz_xLbxStopProxyReq 4
typedef struct _LbxSwitch {
#define sz_xLbxSwitchReq 8
typedef struct _LbxNewClient {
#define sz_xLbxNewClientReq 8
typedef struct _LbxCloseClient {
#define sz_xLbxCloseClientReq 8
typedef struct _LbxModifySequence {
#define sz_xLbxModifySequenceReq 8
typedef struct _LbxAllowMotion {
#define sz_xLbxAllowMotionReq 8
typedef struct {
#define sz_xLbxGrabCmapReq 8
#define LBX_SMART_GRAB 0x80
#define LBX_AUTO_RELEASE 0x40
#define LBX_3CHANNELS 0x20
#define LBX_2BYTE_PIXELS 0x10
#define LBX_RGB_BITS_MASK 0x0f
#define LBX_LIST_END 0
#define LBX_PIXEL_PRIVATE 1
#define LBX_PIXEL_SHARED 2
#define LBX_PIXEL_RANGE_PRIVATE 3
#define LBX_PIXEL_RANGE_SHARED 4
#define LBX_NEXT_CHANNEL 5
typedef struct {
#define sz_xLbxGrabCmapReply 32
#define sz_xLbxGrabCmapReplyHdr 8
typedef struct {
#define sz_xLbxReleaseCmapReq 8
typedef struct {
#define sz_xLbxAllocColorReq 20
typedef struct _LbxIncrementPixel {
#define sz_xLbxIncrementPixelReq 12
typedef struct _LbxDelta {
/* list of diffs follows */
} xLbxDeltaReq;
#define sz_xLbxDeltaReq 6
typedef struct _LbxGetModifierMapping {
#define sz_xLbxGetModifierMappingReq 4
typedef struct {
#define sz_xLbxGetModifierMappingReply 32
typedef struct _LbxGetKeyboardMapping {
#define sz_xLbxGetKeyboardMappingReq 8
typedef struct {
#define sz_xLbxGetKeyboardMappingReply 32
typedef struct _LbxQueryFont {
#define sz_xLbxQueryFontReq 8
typedef struct _LbxInternAtoms {
#define sz_xLbxInternAtomsReq 6
typedef struct {
#define sz_xLbxInternAtomsReply 32
#define sz_xLbxInternAtomsReplyHdr 8
typedef struct _LbxGetWinAttrAndGeom {
#define sz_xLbxGetWinAttrAndGeomReq 8
typedef struct {
#if defined(__cplusplus) || defined(c_plusplus)
#else
#endif
#define sz_xLbxGetWinAttrAndGeomReply 60
typedef struct {
} xLbxSyncReq;
#define sz_xLbxSyncReq 4
typedef struct {
#define sz_xLbxSyncReply 32
/* an LBX squished charinfo packs the data in a CARD32 as follows */
#define LBX_WIDTH_SHIFT 26
#define LBX_LEFT_SHIFT 20
#define LBX_RIGHT_SHIFT 13
#define LBX_ASCENT_SHIFT 7
#define LBX_DESCENT_SHIFT 0
#define LBX_WIDTH_BITS 6
#define LBX_LEFT_BITS 6
#define LBX_RIGHT_BITS 7
#define LBX_ASCENT_BITS 6
#define LBX_DESCENT_BITS 7
#define LBX_WIDTH_MASK 0xfc000000
#define LBX_LEFT_MASK 0x03f00000
#define LBX_RIGHT_MASK 0x000fe000
#define LBX_ASCENT_MASK 0x00001f80
#define LBX_DESCENT_MASK 0x0000007f
typedef struct {
} xLbxCharInfo;
/* note that this is identical to xQueryFontReply except for missing
* first 2 words
*/
typedef struct {
/* XXX do we need to leave this gunk? */
#ifndef WORD64
#endif
#ifndef WORD64
#endif
} xLbxFontInfo;
typedef struct {
/* X_QueryFont sticks much of the data in the base reply packet,
* but we hope that it won't be needed, (and it won't fit in 32 bytes
* with the tag anyways)
*
* if any additional data is needed, its sent in a xLbxFontInfo
*/
#define sz_xLbxQueryFontReply 32
typedef struct _LbxChangeProperty {
#define sz_xLbxChangePropertyReq 24
typedef struct {
#define sz_xLbxChangePropertyReply 32
typedef struct _LbxGetProperty {
#define sz_xLbxGetPropertyReq 28
typedef struct {
#define sz_xLbxGetPropertyReply 32
typedef struct _LbxTagData {
/* data */
#define sz_xLbxTagDataReq 12
typedef struct _LbxInvalidateTag {
#define sz_xLbxInvalidateTagReq 8
typedef struct _LbxPutImage {
/* rest is variable */
#define sz_xLbxPutImageReq 7
typedef struct {
#define sz_xLbxGetImageReq 24
typedef struct {
#define sz_xLbxGetImageReply 32
/* Following used for LbxPolyPoint, LbxPolyLine, LbxPolySegment,
LbxPolyRectangle, LbxPolyArc, LbxPolyFillRectangle and LbxPolyFillArc */
#define GFX_CACHE_SIZE 15
#define GFXdCacheEnt(e) ((e) & 0xf)
#define GFXCacheNone 0xf
typedef struct _LbxPolyPoint {
#define sz_xLbxPolyPointReq 6
typedef xLbxPolyPointReq xLbxPolyLineReq;
typedef xLbxPolyPointReq xLbxPolySegmentReq;
typedef xLbxPolyPointReq xLbxPolyRectangleReq;
typedef xLbxPolyPointReq xLbxPolyArcReq;
typedef xLbxPolyPointReq xLbxPolyFillRectangleReq;
typedef xLbxPolyPointReq xLbxPolyFillArcReq;
#define sz_xLbxPolyArcReq sz_xLbxPolyPointReq
typedef struct _LbxFillPoly {
#define sz_xLbxFillPolyReq 7
typedef struct _LbxCopyArea {
/* followed by encoded src x, src y, dst x, dst y, width, height */
#define sz_xLbxCopyAreaReq 6
typedef struct _LbxCopyPlane {
/* followed by encoded src x, src y, dst x, dst y, width, height */
#define sz_xLbxCopyPlaneReq 10
typedef struct _LbxPolyText {
/* followed by encoded src x, src y coordinates and text elts */
#define sz_xLbxPolyTextReq 5
typedef xLbxPolyTextReq xLbxPolyText8Req;
typedef xLbxPolyTextReq xLbxPolyText16Req;
#define sz_xLbxPolyTextReq 5
#define sz_xLbxPolyText8Req 5
#define sz_xLbxPolyText16Req 5
typedef struct _LbxImageText {
/* followed by encoded src x, src y coordinates and string */
typedef xLbxImageTextReq xLbxImageText8Req;
typedef xLbxImageTextReq xLbxImageText16Req;
#define sz_xLbxImageTextReq 6
#define sz_xLbxImageText8Req 6
#define sz_xLbxImageText16Req 6
typedef struct {
} xLbxDiffItem;
#define sz_xLbxDiffItem 2
typedef struct {
#define sz_xLbxStartReply 32
#define sz_xLbxStartReplyHdr 8
typedef struct _LbxQueryExtension {
#define sz_xLbxQueryExtensionReq 8
typedef struct _LbxQueryExtensionReply {
/* reply & event generating requests */
#define sz_xLbxQueryExtensionReply 32
typedef struct _LbxBeginLargeRequest {
#define sz_BeginLargeRequestReq 8
typedef struct _LbxLargeRequestData {
/* followed by LISTofCARD8 data */
#define sz_LargeRequestDataReq 4
typedef struct _LbxEndLargeRequest {
#define sz_EndLargeRequestReq 4
typedef struct _LbxSwitchEvent {
#define sz_xLbxSwitchEvent 8
typedef struct _LbxCloseEvent {
#define sz_xLbxCloseEvent 32
typedef struct _LbxInvalidateTagEvent {
#define sz_xLbxInvalidateTagEvent 32
typedef struct _LbxSendTagDataEvent {
#define sz_xLbxSendTagDataEvent 32
typedef struct _LbxListenToOneEvent {
#define sz_xLbxListenToOneEvent 32
typedef struct _LbxListenToAllEvent {
#define sz_xLbxListenToOneEvent 32
typedef struct _LbxReleaseCmapEvent {
#define sz_xLbxReleaseCmapEvent 32
typedef struct _LbxFreeCellsEvent {
#define sz_xLbxFreeCellsEvent 32
/*
* squished X event sizes. If these change, be sure to update lbxquish.c
* and unsquish.c appropriately
*
* lbxsz_* is the padded squished length
* lbxupsz_* is the unpadded squished length
*/
#define lbxsz_KeyButtonEvent 32
#define lbxupsz_KeyButtonEvent 31
#define lbxsz_EnterLeaveEvent 32
#define lbxupsz_EnterLeaveEvent 32
#define lbxsz_FocusEvent 12
#define lbxupsz_FocusEvent 9
#define lbxsz_KeymapEvent 32
#define lbxupsz_KeymapEvent 32
#define lbxsz_ExposeEvent 20
#define lbxupsz_ExposeEvent 18
#define lbxsz_GfxExposeEvent 24
#define lbxupsz_GfxExposeEvent 21
#define lbxsz_NoExposeEvent 12
#define lbxupsz_NoExposeEvent 11
#define lbxsz_VisibilityEvent 12
#define lbxupsz_VisibilityEvent 9
#define lbxsz_CreateNotifyEvent 24
#define lbxupsz_CreateNotifyEvent 23
#define lbxsz_DestroyNotifyEvent 12
#define lbxupsz_DestroyNotifyEvent 12
#define lbxsz_UnmapNotifyEvent 16
#define lbxupsz_UnmapNotifyEvent 13
#define lbxsz_MapNotifyEvent 16
#define lbxupsz_MapNotifyEvent 13
#define lbxsz_MapRequestEvent 12
#define lbxupsz_MapRequestEvent 12
#define lbxsz_ReparentEvent 24
#define lbxupsz_ReparentEvent 21
#define lbxsz_ConfigureNotifyEvent 28
#define lbxupsz_ConfigureNotifyEvent 27
#define lbxsz_ConfigureRequestEvent 28
#define lbxupsz_ConfigureRequestEvent 28
#define lbxsz_GravityEvent 16
#define lbxupsz_GravityEvent 16
#define lbxsz_ResizeRequestEvent 12
#define lbxupsz_ResizeRequestEvent 12
#define lbxsz_CirculateEvent 20
#define lbxupsz_CirculateEvent 17
#define lbxsz_PropertyEvent 20
#define lbxupsz_PropertyEvent 17
#define lbxsz_SelectionClearEvent 16
#define lbxupsz_SelectionClearEvent 16
#define lbxsz_SelectionRequestEvent 28
#define lbxupsz_SelectionRequestEvent 28
#define lbxsz_SelectionNotifyEvent 24
#define lbxupsz_SelectionNotifyEvent 24
#define lbxsz_ColormapEvent 16
#define lbxupsz_ColormapEvent 14
#define lbxsz_MappingNotifyEvent 8
#define lbxupsz_MappingNotifyEvent 7
#define lbxsz_ClientMessageEvent 32
#define lbxupsz_ClientMessageEvent 32
#define lbxsz_UnknownEvent 32
#ifdef DEBUG
#define DBG_SWITCH 0x00000001
#define DBG_CLOSE 0x00000002
#define DBG_IO 0x00000004
#define DBG_READ_REQ 0x00000008
#define DBG_LEN 0x00000010
#define DBG_BLOCK 0x00000020
#define DBG_CLIENT 0x00000040
#define DBG_DELTA 0x00000080
extern int lbxDebug;
#else
#define DBG(n,m)
#endif
/*
* Cancel the previous redefinition of the basic types, thus restoring their
* X.h definitions.
*/
#endif /* _LBXSTR_H_ */