⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xkbstr.h

📁 远程桌面连接工具
💻 H
📖 第 1 页 / 共 2 页
字号:
/* $TOG: XKBstr.h /main/16 1997/06/10 06:53:12 kaleb $ *//************************************************************Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.Permission to use, copy, modify, and distribute thissoftware and its documentation for any purpose and withoutfee is hereby granted, provided that the above copyrightnotice appear in all copies and that both that copyrightnotice and this permission notice appear in supportingdocumentation, and that the name of Silicon Graphics not be used in advertising or publicity pertaining to distribution of the software without specific prior written permission.Silicon Graphics makes no representation about the suitability of this software for any purpose. It is provided "as is"without any express or implied warranty.SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICONGRAPHICS 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  WITHTHE USE OR PERFORMANCE OF THIS SOFTWARE.********************************************************/#ifndef _XKBSTR_H_#define	_XKBSTR_H_#include <X11/extensions/XKB.h>#define	XkbCharToInt(v)		((v)&0x80?(int)((v)|(~0xff)):(int)((v)&0x7f))#define	XkbIntTo2Chars(i,h,l)	(((h)=((i>>8)&0xff)),((l)=((i)&0xff)))#if defined(WORD64) && defined(UNSIGNEDBITFIELDS)#define	Xkb2CharsToInt(h,l)	((h)&0x80?(int)(((h)<<8)|(l)|(~0xffff)):\					  (int)(((h)<<8)|(l)&0x7fff))#else#define	Xkb2CharsToInt(h,l)	((short)(((h)<<8)|(l)))#endif	/*	 * Common data structures and access macros	 */typedef struct _XkbStateRec {	unsigned char	group;	unsigned char   locked_group;	unsigned short	base_group;	unsigned short	latched_group;	unsigned char	mods;	unsigned char	base_mods;	unsigned char	latched_mods;	unsigned char	locked_mods;	unsigned char	compat_state;	unsigned char	grab_mods;	unsigned char	compat_grab_mods;	unsigned char	lookup_mods;	unsigned char	compat_lookup_mods;	unsigned short	ptr_buttons;} XkbStateRec,*XkbStatePtr;#define	XkbModLocks(s)	 ((s)->locked_mods)#define	XkbStateMods(s)	 ((s)->base_mods|(s)->latched_mods|XkbModLocks(s))#define	XkbGroupLock(s)	 ((s)->locked_group)#define	XkbStateGroup(s) ((s)->base_group+(s)->latched_group+XkbGroupLock(s))#define	XkbStateFieldFromRec(s)	XkbBuildCoreState((s)->lookup_mods,(s)->group)#define	XkbGrabStateFromRec(s)	XkbBuildCoreState((s)->grab_mods,(s)->group)typedef struct _XkbMods {	unsigned char	mask;	/* effective mods */	unsigned char	real_mods;	unsigned short	vmods;} XkbModsRec,*XkbModsPtr;typedef struct _XkbKTMapEntry {	Bool		active;	unsigned char	level;	XkbModsRec	mods;} XkbKTMapEntryRec,*XkbKTMapEntryPtr;typedef struct _XkbKeyType {	XkbModsRec		mods;	unsigned char	  	num_levels;	unsigned char	  	map_count;	XkbKTMapEntryPtr  	map;	XkbModsPtr  		preserve;	Atom		  	name;	Atom *			level_names;} XkbKeyTypeRec, *XkbKeyTypePtr;#define	XkbNumGroups(g)			((g)&0x0f)#define	XkbOutOfRangeGroupInfo(g)	((g)&0xf0)#define	XkbOutOfRangeGroupAction(g)	((g)&0xc0)#define	XkbOutOfRangeGroupNumber(g)	(((g)&0x30)>>4)#define	XkbSetGroupInfo(g,w,n)	(((w)&0xc0)|(((n)&3)<<4)|((g)&0x0f))#define	XkbSetNumGroups(g,n)	(((g)&0xf0)|((n)&0x0f))	/*	 * Structures and access macros used primarily by the server	 */typedef struct _XkbBehavior {	unsigned char	type;	unsigned char	data;} XkbBehavior;#define	XkbAnyActionDataSize 7typedef	struct _XkbAnyAction {	unsigned char	type;	unsigned char	data[XkbAnyActionDataSize];} XkbAnyAction;typedef struct _XkbModAction {	unsigned char	type;	unsigned char	flags;	unsigned char	mask;	unsigned char	real_mods;	unsigned char	vmods1;	unsigned char	vmods2;} XkbModAction;#define	XkbModActionVMods(a)      \	((short)(((a)->vmods1<<8)|((a)->vmods2)))#define	XkbSetModActionVMods(a,v) \	(((a)->vmods1=(((v)>>8)&0xff)),(a)->vmods2=((v)&0xff))typedef struct _XkbGroupAction {	unsigned char	type;	unsigned char	flags;	char		group_XXX;} XkbGroupAction;#define	XkbSAGroup(a)		(XkbCharToInt((a)->group_XXX))#define	XkbSASetGroup(a,g)	((a)->group_XXX=(g))typedef struct _XkbISOAction {	unsigned char	type;	unsigned char	flags;	unsigned char	mask;	unsigned char	real_mods;	char		group_XXX;	unsigned char	affect;	unsigned char	vmods1;	unsigned char	vmods2;} XkbISOAction;typedef struct _XkbPtrAction {	unsigned char	type;	unsigned char	flags;	unsigned char	high_XXX;	unsigned char	low_XXX;	unsigned char	high_YYY;	unsigned char	low_YYY;} XkbPtrAction;#define	XkbPtrActionX(a)      (Xkb2CharsToInt((a)->high_XXX,(a)->low_XXX))#define	XkbPtrActionY(a)      (Xkb2CharsToInt((a)->high_YYY,(a)->low_YYY))#define	XkbSetPtrActionX(a,x) (XkbIntTo2Chars(x,(a)->high_XXX,(a)->low_XXX))#define	XkbSetPtrActionY(a,y) (XkbIntTo2Chars(y,(a)->high_YYY,(a)->low_YYY))typedef struct _XkbPtrBtnAction {	unsigned char	type;	unsigned char	flags;	unsigned char	count;	unsigned char	button;} XkbPtrBtnAction;typedef struct _XkbPtrDfltAction {	unsigned char	type;	unsigned char	flags;	unsigned char	affect;	char		valueXXX;} XkbPtrDfltAction;#define	XkbSAPtrDfltValue(a)		(XkbCharToInt((a)->valueXXX))#define	XkbSASetPtrDfltValue(a,c)	((a)->valueXXX= ((c)&0xff))typedef struct _XkbSwitchScreenAction {	unsigned char	type;	unsigned char	flags;	char		screenXXX;} XkbSwitchScreenAction;#define	XkbSAScreen(a)			(XkbCharToInt((a)->screenXXX))#define	XkbSASetScreen(a,s)		((a)->screenXXX= ((s)&0xff))typedef struct _XkbCtrlsAction {	unsigned char	type;	unsigned char	flags;	unsigned char	ctrls3;	unsigned char	ctrls2;	unsigned char	ctrls1;	unsigned char	ctrls0;} XkbCtrlsAction;#define	XkbActionSetCtrls(a,c)	(((a)->ctrls3=(((c)>>24)&0xff)),\					((a)->ctrls2=(((c)>>16)&0xff)),\					((a)->ctrls1=(((c)>>8)&0xff)),\					((a)->ctrls0=((c)&0xff)))#define	XkbActionCtrls(a) ((((unsigned int)(a)->ctrls3)<<24)|\			   (((unsigned int)(a)->ctrls2)<<16)|\			   (((unsigned int)(a)->ctrls1)<<8)|\			   ((unsigned int)((a)->ctrls0)))typedef struct _XkbMessageAction {	unsigned char	type;	unsigned char	flags;	unsigned char	message[6];} XkbMessageAction;typedef struct	_XkbRedirectKeyAction {	unsigned char	type;	unsigned char	new_key;	unsigned char	mods_mask;	unsigned char	mods;	unsigned char	vmods_mask0;	unsigned char	vmods_mask1;	unsigned char	vmods0;	unsigned char	vmods1;} XkbRedirectKeyAction;#define	XkbSARedirectVMods(a)		((((unsigned int)(a)->vmods1)<<8)|\					((unsigned int)(a)->vmods0))#define	XkbSARedirectSetVMods(a,m)	(((a)->vmods_mask1=(((m)>>8)&0xff)),\					 ((a)->vmods_mask0=((m)&0xff)))#define	XkbSARedirectVModsMask(a)	((((unsigned int)(a)->vmods_mask1)<<8)|\					((unsigned int)(a)->vmods_mask0))#define	XkbSARedirectSetVModsMask(a,m)	(((a)->vmods_mask1=(((m)>>8)&0xff)),\					 ((a)->vmods_mask0=((m)&0xff)))typedef struct _XkbDeviceBtnAction {	unsigned char	type;	unsigned char	flags;	unsigned char	count;	unsigned char	button;	unsigned char	device;} XkbDeviceBtnAction;typedef struct _XkbDeviceValuatorAction {	unsigned char	type;	unsigned char	device;	unsigned char	v1_what;	unsigned char	v1_ndx;	unsigned char	v1_value;	unsigned char	v2_what;	unsigned char	v2_ndx;	unsigned char	v2_value;} XkbDeviceValuatorAction;typedef	union _XkbAction {	XkbAnyAction		any;	XkbModAction		mods;	XkbGroupAction		group;	XkbISOAction		iso;	XkbPtrAction		ptr;	XkbPtrBtnAction		btn;	XkbPtrDfltAction	dflt;	XkbSwitchScreenAction	screen;	XkbCtrlsAction		ctrls;	XkbMessageAction	msg;	XkbRedirectKeyAction	redirect;	XkbDeviceBtnAction	devbtn;	XkbDeviceValuatorAction	devval;	unsigned char 		type;} XkbAction;typedef	struct _XkbControls {	unsigned char	mk_dflt_btn;	unsigned char	num_groups;	unsigned char	groups_wrap;	XkbModsRec	internal;	XkbModsRec	ignore_lock;	unsigned int	enabled_ctrls;	unsigned short	repeat_delay;	unsigned short	repeat_interval;	unsigned short	slow_keys_delay;	unsigned short	debounce_delay;	unsigned short	mk_delay;	unsigned short	mk_interval;	unsigned short	mk_time_to_max;	unsigned short	mk_max_speed;		 short	mk_curve;	unsigned short	ax_options;	unsigned short	ax_timeout;	unsigned short	axt_opts_mask;	unsigned short	axt_opts_values;	unsigned int	axt_ctrls_mask;	unsigned int	axt_ctrls_values;	unsigned char	per_key_repeat[XkbPerKeyBitArraySize];} XkbControlsRec, *XkbControlsPtr;#define	XkbAX_AnyFeedback(c)	((c)->enabled_ctrls&XkbAccessXFeedbackMask)#define	XkbAX_NeedOption(c,w)	((c)->ax_options&(w))#define	XkbAX_NeedFeedback(c,w)	(XkbAX_AnyFeedback(c)&&XkbAX_NeedOption(c,w))typedef struct _XkbServerMapRec {	unsigned short		 num_acts;	unsigned short		 size_acts;	XkbAction		*acts;	XkbBehavior		*behaviors;	unsigned short		*key_acts;#if defined(__cplusplus) || defined(c_plusplus)	/* explicit is a C++ reserved word */	unsigned char		*c_explicit;#else	unsigned char		*explicit;#endif	unsigned char		 vmods[XkbNumVirtualMods];	unsigned short		*vmodmap;} XkbServerMapRec, *XkbServerMapPtr;#define	XkbSMKeyActionsPtr(m,k) (&(m)->acts[(m)->key_acts[k]])

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -