selinput.c
来自「Nxlib,一个模拟xlib的程序。使用microwindows的库来运行需要x」· C语言 代码 · 共 58 行
C
58 行
#include "nxlib.h"#include <stdio.h>static struct { unsigned long xevent; GR_EVENT_MASK mwevent;} events[] = { { KeyPressMask, GR_EVENT_MASK_KEY_DOWN }, { KeyReleaseMask, GR_EVENT_MASK_KEY_UP }, { ButtonPressMask, GR_EVENT_MASK_BUTTON_DOWN }, { ButtonReleaseMask, GR_EVENT_MASK_BUTTON_UP }, { EnterWindowMask, GR_EVENT_MASK_MOUSE_ENTER }, { LeaveWindowMask, GR_EVENT_MASK_MOUSE_EXIT }, { PointerMotionMask, GR_EVENT_MASK_MOUSE_MOTION }, { ExposureMask, GR_EVENT_MASK_EXPOSURE }, { StructureNotifyMask, GR_EVENT_MASK_UPDATE }, { SubstructureNotifyMask, GR_EVENT_MASK_CHLD_UPDATE }, { ButtonMotionMask, GR_EVENT_MASK_MOUSE_MOTION }, { FocusChangeMask, (GR_EVENT_MASK_FOCUS_IN | GR_EVENT_MASK_FOCUS_OUT) }, { 0, 0 }};GR_EVENT_MASK_nxTranslateEventMask(unsigned long mask){ unsigned long notmask = mask; GR_EVENT_MASK nxmask = 0L; int i; for (i = 0; events[i].xevent != 0; i++) { if (mask & events[i].xevent) { nxmask |= events[i].mwevent; notmask &= ~events[i].xevent; } } if (notmask) { printf("nxTranslateEventMask no handler for event mask (%08lx): ", mask); for (i = 0; i < 31; i++) { if (notmask & (1L << i)) printf("%d ", i); } printf("\n"); } return nxmask;}intXSelectInput(Display * dpy, Window w, long mask){ GR_EVENT_MASK nxmask; nxmask = _nxTranslateEventMask(mask); GrSelectEvents(w, nxmask); return 1;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?