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

📄 win_keymap.h

📁 操作系统SunOS 4.1.3版本的源码
💻 H
字号:
/*	@(#)win_keymap.h 1.1 92/07/30 SMI *//****************************************************************************** *	keymap.h -- keymap declarations ******************************************************************************/#ifndef keymap_h#define keymap_h#ifdef ADA_DEBUG#include "win_input.h"#else#include <sunwindow/win_input.h>#endif#ifndef KB_SUN3#include <sundev/kbd.h>#endif#include <sunwindow/bitmask.h>/* This macro may be used for data compression */#define event_into_word(e)	((unsigned)(e).ie_code << 16 \	|| (unsigned)(e).ie_flags << 8 || (e).ie_shiftmask)typedef struct sie_ {	short		sie_code;		/* event code */	short		sie_bits;		/* combined flags and shiftmask */} ShortEvent;#define shortevent_id(e)		((e)->sie_code)#define shortevent_bits(e)		((e)->sie_bits)#define eventbits_into_short(e)	(((e)->ie_flags << 8)|(e)->ie_shiftmask)#define flags_from_short(s)		((unsigned)((s)->sie_bits) >> 8)#define shiftmask_from_short(s)	((s)->sie_bits & 0xff)#define SIE_NEGEVENT 0x0100typedef struct el_ {	ShortEvent	el_event;	struct el_	*el_next;} EventList;typedef struct ke_ {	ShortEvent	ke_fromevent;	union {	    EventList	*ke_toevents;            ShortEvent  ke_oneevent;        } ke_u;	struct ke_  *ke_next;} KeymapEntry;#define KEYMAPTABLESIZE	3/* * Possible index values into the keymap table. There are only three * that are client-modifiable */#define	WIN_KEYMAP_ERASE_CHAR		0#define WIN_KEYMAP_ERASE_WORD		1#define WIN_KEYMAP_ERASE_LINE		2struct keymap_table {    unsigned short	code;    unsigned short	mask;};typedef struct km_ {	struct keymap_table	km_table[KEYMAPTABLESIZE];} Keymap;typedef struct kf_ {	Keymap		*keymap;	/* keymap for the few client-modifiable					 * semantic mapping. e.g. erase char, 					 * erase word, etc..					 */	Bitmask		*smask;} KeymapFileEntry;#define KeymapMap(e)			((e).kf_keymap)#define KeymapEventPending(e)	((e).kf_eventpending)#define KeymapLastEvent(e)		((e).kf_lastevent)#define ERR_NOEOM	1	/* missing end-of-modifier, '>' */#define ERR_NOEOA	2	/* missing end-of-argument, ')' */#define ERR_NOEON	3	/* missing end-of-keyname, ']' */#define ERR_BADMOD	4	/* invalid modifier name */#define ERR_BADNAME	5	/* invalid keyname */#define ERR_BADARG	6	/* bad argument */#define ERR_NOOPEN	7	/* couldn't open file *//* (int) keymap_debug_mask mask bits */#define KEYMAP_SHOW_TRANSLATION		0x01#define KEYMAP_SHOW_EVENT_STREAM	0x02#define KEYMAP_SHOW_MAP_TRANSITIONS	0x04#define KEYMAP_SHOW_KEYMAP_STATE	0x08#define KEYMAP_SHOW_SPARE			0x10/* semantic event classes */typedef enum {    KEYMAP_FUNCT_KEYS,    KEYMAP_EDIT_KEYS,    KEYMAP_MOTION_KEYS,    KEYMAP_TEXT_KEYS} Event_class;/****************************************************************************** *	win_keymap.c external declarations ******************************************************************************/#ifndef win_keymap_cextern void		win_keymap_enable();extern void		win_keymap_disable();#endif win_keymap_c#ifndef win_keymap2_cextern KeymapFileEntry keymap_from_fd[];	/* Keymap tables by fd */extern int keymap_initialized;	/* Keymap initialized flag */extern int keymap_enable;	/* Keymapping enabled flag */#endif win_keymap2_ctypedef struct kkm_ {	struct keyboard *kkm_keyboard;	int	kkm_mouseorder;} KernelKeymapEntry;typedef struct df_ {	char	*df_name;	char	*df_value;} Defaults_List;typedef enum {KEYMAP_DIRECTORY = 0,KEYMAP_INHERIT = 1,KEYMAP_SUNVIEW_KEYS = 2,KEYMAP_ARROW_KEYS = 3,KEYMAP_LEFTY = 4,KEYMAP_EDIT_CHAR = 5,KEYMAP_EDIT_WORD = 6,KEYMAP_EDIT_LINE = 7,KEYMAP_COMPAT = 8,KEYMAP_INHIBIT = 9,} Keymap_List_Selector;#ifdef KEYMAP_DEBUG/* Debug mask */extern unsigned	keymap_debug_mask;#endif KEYMAP_DEBUG#endif keymap_h

⌨️ 快捷键说明

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