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

📄 kbd.h

📁 举世闻名的joe记事本源程序
💻 H
字号:
/* *	Key-map handler *	Copyright *		(C) 1992 Joseph H. Allen * *	This file is part of JOE (Joe's Own Editor) */#ifndef _JOE_KBD_H#define _JOE_KBD_H 1/* A key binding */struct key {	int	k;			/* Flag: 0=binding, 1=submap */	union {		void	*bind;		/* What key is bound to */		KMAP	*submap;	/* Sub KMAP address (for prefix keys) */	} value;};/* A map of keycode to command/sub-map bindings */struct kmap {	KEY	keys[KEYS];	/* KEYs */};/** A keyboard handler **/struct kbd {	KMAP	*curmap;	/* Current keymap */	KMAP	*topmap;	/* Top-level keymap */	int	seq[16];	/* Current sequence of keys */	int	x;		/* What we're up to */};/* KMAP *mkkmap(void); * Create an empty keymap */KMAP *mkkmap PARAMS((void));/* void rmkmap(KMAP *kmap); * Free a key map */void rmkmap PARAMS((KMAP *kmap));/* int kadd(KMAP *kmap,char *seq,void *bind); * Add a key sequence binding to a key map * * Returns 0 for success *        -1 for for invalid key sequence * * A valid key sequence is one or more keys seperated with spaces.  A key * is a single character or one of the following strings: * *    ^?	                   127 (DEL) * *    ^@   -   ^_                  Control characters * *    SP                           32 (space character) * *    UP, DOWN, LEFT, RIGHT, *    F0 - F10, DEL, INS, HOME, *    END, PGUP, PGDN              termcap special characters * * In addition, the last key of a key sequence may be replaced with * a range-fill of the form: <KEY> TO <KEY> * * So for example, if the sequence: ^K A TO Z * is speicified, then the key sequences * ^K A, ^K B, ^K C, ... ^K Z are all bound. */int kadd PARAMS((CAP *cap, KMAP *kmap, unsigned char *seq, void *bind));/* void kcpy(KMAP *dest,KMAP *src); * Copy all of the entries in the 'src' keymap into the 'dest' keymap */void kcpy PARAMS((KMAP *dest, KMAP *src));/* int kdel(KMAP *kmap,char *seq); * Delete a binding from a keymap * * Returns 0 for success *        -1 if the given key sequence was invalid *         1 if the given key sequence did not exist */int kdel PARAMS((KMAP *kmap, unsigned char *seq));/* KBD *mkkbd(KMAP *kmap);   Create a keyboard handler which uses the given keymap*/KBD *mkkbd PARAMS((KMAP *kmap));/* void rmkbd(KBD *); * * Eliminate a keyboard handler */void rmkbd PARAMS((KBD *k));/* void *dokey(KBD *kbd,int k);   Handle a key for a KBD:     Returns 0 for invalid or prefix keys     Returns binding for a completed key sequence*/void *dokey PARAMS((KBD *kbd, int n));/* JM - user command handler */int ukeymap();#endif

⌨️ 快捷键说明

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