📄 lbxstr.h
字号:
/* $XConsortium: lbxstr.h /main/27 1996/12/15 21:24:11 rws $ *//* * 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. * */ #ifndef _LBXSTR_H_#define _LBXSTR_H_#include "XLbx.h"#define LBXNAME "LBX"#define LBX_MAJOR_VERSION 1#define LBX_MINOR_VERSION 0typedef struct { BOOL success; /* TRUE */ BOOL changeType; CARD16 majorVersion B16, minorVersion B16; CARD16 length B16; /* 1/4 additional bytes in setup info */ CARD32 tag B32;} xLbxConnSetupPrefix;typedef struct _LbxQueryVersion { CARD8 reqType; /* always LbxReqCode */ CARD8 lbxReqType; /* always X_LbxQueryVersion */ CARD16 length B16;} xLbxQueryVersionReq;#define sz_xLbxQueryVersionReq 4typedef struct { BYTE type; /* X_Reply */ CARD8 unused; CARD16 sequenceNumber B16; CARD32 length B32; CARD16 majorVersion B16; /* major version of LBX protocol */ CARD16 minorVersion B16; /* minor version of LBX protocol */ CARD32 pad0 B32; CARD32 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; CARD32 pad4 B32;} xLbxQueryVersionReply;#define sz_xLbxQueryVersionReply 32typedef struct _LbxStartProxy { CARD8 reqType; /* always LbxReqCode */ CARD8 lbxReqType; /* always X_LbxStartProxy */ CARD16 length B16;} xLbxStartProxyReq;#define sz_xLbxStartProxyReq 4typedef struct _LbxStopProxy { CARD8 reqType; /* always LbxReqCode */ CARD8 lbxReqType; /* always X_LbxStopProxy */ CARD16 length B16;} xLbxStopProxyReq;#define sz_xLbxStopProxyReq 4typedef struct _LbxSwitch { CARD8 reqType; /* always LbxReqCode */ CARD8 lbxReqType; /* always X_LbxSwitch */ CARD16 length B16; CARD32 client B32; /* new client */} xLbxSwitchReq;#define sz_xLbxSwitchReq 8typedef struct _LbxNewClient { CARD8 reqType; /* always LbxReqCode */ CARD8 lbxReqType; /* always X_LbxNewClient */ CARD16 length B16; CARD32 client B32; /* new client */} xLbxNewClientReq;#define sz_xLbxNewClientReq 8typedef struct _LbxCloseClient { CARD8 reqType; /* always LbxReqCode */ CARD8 lbxReqType; /* always X_LbxCloseClient */ CARD16 length B16; CARD32 client B32; /* new client */} xLbxCloseClientReq;#define sz_xLbxCloseClientReq 8typedef struct _LbxModifySequence { CARD8 reqType; /* always LbxReqCode */ CARD8 lbxReqType; /* always X_LbxModifySequence */ CARD16 length B16; CARD32 adjust B32;} xLbxModifySequenceReq;#define sz_xLbxModifySequenceReq 8 typedef struct _LbxAllowMotion { CARD8 reqType; /* always LbxReqCode */ CARD8 lbxReqType; /* always X_LbxAllowMotion */ CARD16 length B16; CARD32 num B32;} xLbxAllowMotionReq;#define sz_xLbxAllowMotionReq 8 typedef struct { CARD8 reqType; /* always LbxReqCode */ CARD8 lbxReqType; /* always X_LbxGrabCmap */ CARD16 length B16; Colormap cmap B32;} xLbxGrabCmapReq; #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 5typedef struct { BYTE type; /* X_Reply */ CARD8 flags; CARD16 sequenceNumber B16; CARD32 length B32; CARD32 pad0 B16; CARD32 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; CARD32 pad4 B32; CARD32 pad5 B16;} xLbxGrabCmapReply;#define sz_xLbxGrabCmapReply 32#define sz_xLbxGrabCmapReplyHdr 8typedef struct { CARD8 reqType; /* always LbxReqCode */ CARD8 lbxReqType; /* always X_LbxReleaseCmap */ CARD16 length B16; Colormap cmap B32;} xLbxReleaseCmapReq; #define sz_xLbxReleaseCmapReq 8typedef struct { CARD8 reqType; /* always LbxReqCode */ CARD8 lbxReqType; /* always X_LbxAllocColor */ CARD16 length B16; Colormap cmap B32; CARD32 pixel B32; CARD16 red B16, green B16, blue B16; CARD16 pad B16;} xLbxAllocColorReq; #define sz_xLbxAllocColorReq 20typedef struct _LbxIncrementPixel { CARD8 reqType; /* always LbxReqCode */ CARD8 lbxReqType; /* always X_LbxIncrementPixel */ CARD16 length B16; CARD32 cmap B32; CARD32 pixel B32;} xLbxIncrementPixelReq;#define sz_xLbxIncrementPixelReq 12typedef struct _LbxDelta { CARD8 reqType; /* always LbxReqCode */ CARD8 lbxReqType; /* always X_LbxDelta */ CARD16 length B16; CARD8 diffs; /* number of diffs */ CARD8 cindex; /* cache index */ /* list of diffs follows */} xLbxDeltaReq;#define sz_xLbxDeltaReq 6typedef struct _LbxGetModifierMapping { CARD8 reqType; /* always LbxReqCode */ CARD8 lbxReqType; /* always X_LbxGetModifierMapping */ CARD16 length B16;} xLbxGetModifierMappingReq;#define sz_xLbxGetModifierMappingReq 4typedef struct { BYTE type; /* X_Reply */ CARD8 keyspermod; CARD16 sequenceNumber B16; CARD32 length B32; CARD32 tag B32; CARD32 pad0 B32; CARD32 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; CARD32 pad4 B32;} xLbxGetModifierMappingReply;#define sz_xLbxGetModifierMappingReply 32typedef struct _LbxGetKeyboardMapping { CARD8 reqType; /* always LbxReqCode */ CARD8 lbxReqType; /* always X_LbxGetKeyboardMapping */ CARD16 length B16; KeyCode firstKeyCode; CARD8 count; CARD16 pad1 B16;} xLbxGetKeyboardMappingReq;#define sz_xLbxGetKeyboardMappingReq 8typedef struct { BYTE type; /* X_Reply */ CARD8 keysperkeycode; CARD16 sequenceNumber B16; CARD32 length B32; CARD32 tag B32; CARD32 pad0 B32; CARD32 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; CARD32 pad4 B32;} xLbxGetKeyboardMappingReply;#define sz_xLbxGetKeyboardMappingReply 32typedef struct _LbxQueryFont { CARD8 reqType; /* always LbxReqCode */ CARD8 lbxReqType; /* always X_LbxQueryFont */ CARD16 length B16; CARD32 fid B32;} xLbxQueryFontReq;#define sz_xLbxQueryFontReq 8typedef struct _LbxInternAtoms { CARD8 reqType; /* always LbxReqCode */ CARD8 lbxReqType; /* always X_LbxInternAtoms */ CARD16 length B16; CARD16 num B16;} xLbxInternAtomsReq;#define sz_xLbxInternAtomsReq 6 typedef struct { BYTE type; /* X_Reply */ CARD8 unused; CARD16 sequenceNumber B16; CARD32 length B32; CARD32 atomsStart B32; CARD32 pad0 B32; CARD32 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; CARD32 pad4 B32;} xLbxInternAtomsReply;#define sz_xLbxInternAtomsReply 32#define sz_xLbxInternAtomsReplyHdr 8typedef struct _LbxGetWinAttrAndGeom { CARD8 reqType; /* always LbxReqCode */ CARD8 lbxReqType; /* always X_LbxGetWinAttrAndGeom */ CARD16 length B16; CARD32 id B32; /* window id */} xLbxGetWinAttrAndGeomReq;#define sz_xLbxGetWinAttrAndGeomReq 8typedef struct { BYTE type; /* X_Reply */ CARD8 backingStore; CARD16 sequenceNumber B16; CARD32 length B32; /* NOT 0; this is an extra-large reply */ VisualID visualID B32;#if defined(__cplusplus) || defined(c_plusplus) CARD16 c_class B16;#else CARD16 class B16;#endif CARD8 bitGravity; CARD8 winGravity; CARD32 backingBitPlanes B32; CARD32 backingPixel B32; BOOL saveUnder; BOOL mapInstalled; CARD8 mapState; BOOL override; Colormap colormap B32; CARD32 allEventMasks B32; CARD32 yourEventMask B32; CARD16 doNotPropagateMask B16; CARD16 pad1 B16; Window root B32; INT16 x B16, y B16; CARD16 width B16, height B16; CARD16 borderWidth B16; CARD8 depth; CARD8 pad2;} xLbxGetWinAttrAndGeomReply;#define sz_xLbxGetWinAttrAndGeomReply 60typedef struct { CARD8 reqType; /* always LbxReqCode */ CARD8 lbxReqType; /* always X_LbxSync */ CARD16 length B16;} xLbxSyncReq;#define sz_xLbxSyncReq 4typedef struct { BYTE type; /* X_Reply */ CARD8 pad0; CARD16 sequenceNumber B16; CARD32 length B32; CARD32 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; CARD32 pad4 B32; CARD32 pad5 B32; CARD32 pad6 B32;} xLbxSyncReply;#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#define LBX_MASK_BITS(val, n) ((unsigned int) ((val) & ((1 << (n)) - 1)))typedef struct { CARD32 metrics B32;} xLbxCharInfo;/* note that this is identical to xQueryFontReply except for missing * first 2 words */typedef struct { xCharInfo minBounds; /* XXX do we need to leave this gunk? */#ifndef WORD64 CARD32 walign1 B32;#endif xCharInfo maxBounds; #ifndef WORD64 CARD32 walign2 B32;#endif CARD16 minCharOrByte2 B16, maxCharOrByte2 B16; CARD16 defaultChar B16; CARD16 nFontProps B16; /* followed by this many xFontProp structures */ CARD8 drawDirection; CARD8 minByte1, maxByte1; BOOL allCharsExist; INT16 fontAscent B16, fontDescent B16; CARD32 nCharInfos B32; /* followed by this many xLbxCharInfo structures */} xLbxFontInfo;typedef struct { BYTE type; /* X_Reply */ CARD8 compression; CARD16 sequenceNumber B16; CARD32 length B32; CARD32 tag B32; CARD32 pad0 B32; CARD32 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; CARD32 pad4 B32; /* 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 */} xLbxQueryFontReply;#define sz_xLbxQueryFontReply 32typedef struct _LbxChangeProperty { CARD8 reqType; /* always LbxReqCode */ CARD8 lbxReqType; /* always X_LbxChangeProperty */ CARD16 length B16; Window window B32; Atom property B32; Atom type B32; CARD8 format; CARD8 mode; BYTE pad[2]; CARD32 nUnits B32;} xLbxChangePropertyReq;#define sz_xLbxChangePropertyReq 24typedef struct { BYTE type; /* X_Reply */ CARD8 pad; CARD16 sequenceNumber B16; CARD32 length B32; CARD32 tag B32; CARD32 pad0 B32; CARD32 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; CARD32 pad4 B32;} xLbxChangePropertyReply;#define sz_xLbxChangePropertyReply 32typedef struct _LbxGetProperty { CARD8 reqType; /* always LbxReqCode */ CARD8 lbxReqType; /* always X_LbxGetProperty */ CARD16 length B16; Window window B32; Atom property B32; Atom type B32; CARD8 delete; BYTE pad[3]; CARD32 longOffset B32; CARD32 longLength B32;} xLbxGetPropertyReq;#define sz_xLbxGetPropertyReq 28typedef struct { BYTE type; /* X_Reply */ CARD8 format; CARD16 sequenceNumber B16; CARD32 length B32; Atom propertyType B32; CARD32 bytesAfter B32; CARD32 nItems B32; CARD32 tag B32; CARD32 pad1 B32; CARD32 pad2 B32;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -