在X11编程中,有时我们使用XQueryPointer函数来确定鼠标在屏幕上的位置。
在xlib.h中,我们还可以看到此函数填充了一个名为mask_return的整数,其中包含表示按键的单独标志:
--from=markdown+definition_lists+attribute_headers
我已经使用以下代码对此进行了实验:
extern Bool XQueryPointer(
Display*,
Window,
Window*,
Window*,
int*,
int*,
int*,
int*,
unsigned int* /* mask_return */
);
使用此方法,我已经能够隔离以下标志:
您会认为对于30多年的API,这些标志的文档将可以广泛使用,但我似乎在任何地方都找不到提及它们的信息。
有人知道其余标志是否/用于什么用途,或者在哪里可以了解更多有关它们的信息?
此外,我可以相信相同的标志在不同系统上始终意味着相同的事情吗?
答案 0 :(得分:1)
直接来自X.h
:
/* Key masks. Used as modifiers to GrabButton and GrabKey, results of QueryPointer,
state in various key-, mouse-, and button-related events. */
#define ShiftMask (1<<0)
#define LockMask (1<<1)
#define ControlMask (1<<2)
#define Mod1Mask (1<<3)
#define Mod2Mask (1<<4)
#define Mod3Mask (1<<5)
#define Mod4Mask (1<<6)
#define Mod5Mask (1<<7)
以及稍后在同一文件中
/* button masks. Used in same manner as Key masks above. Not to be confused
with button names below. */
#define Button1Mask (1<<8)
#define Button2Mask (1<<9)
#define Button3Mask (1<<10)
#define Button4Mask (1<<11)
#define Button5Mask (1<<12)