version 1.16, 2005/06/14 18:14:40 |
version 1.17, 2005/11/18 20:56:53 |
|
|
* kbd.h: type definitions for symbol.c and kbd.c for mg experimental |
* kbd.h: type definitions for symbol.c and kbd.c for mg experimental |
*/ |
*/ |
|
|
typedef struct { |
struct map_element { |
KCHAR k_base; /* first key in element */ |
KCHAR k_base; /* first key in element */ |
KCHAR k_num; /* last key in element */ |
KCHAR k_num; /* last key in element */ |
PF *k_funcp; /* pointer to array of pointers */ |
PF *k_funcp; /* pointer to array of pointers */ |
/* to functions */ |
/* to functions */ |
struct keymap_s *k_prefmap; /* keymap of ONLY prefix key in */ |
struct keymap_s *k_prefmap; /* keymap of ONLY prefix key in */ |
/* element */ |
/* element */ |
} MAP_ELEMENT; |
}; |
|
|
/* |
/* |
* Predefined keymaps are NOT type KEYMAP because final array needs |
* Predefined keymaps are NOT type KEYMAP because final array needs |
|
|
*/ |
*/ |
|
|
#define KEYMAPE(NUM) { \ |
#define KEYMAPE(NUM) { \ |
short map_num; /* elements used */ \ |
short map_num; /* elements used */ \ |
short map_max; /* elements allocated */ \ |
short map_max; /* elements allocated */\ |
PF map_default; /* default function */ \ |
PF map_default; /* default function */ \ |
MAP_ELEMENT map_element[NUM]; /* really [e_max] */ \ |
struct map_element map_element[NUM]; /* really [e_max] */ \ |
} |
} |
typedef struct keymap_s KEYMAPE(1) KEYMAP; |
typedef struct keymap_s KEYMAPE(1) KEYMAP; |
|
|
|
|
/* Max number of default bindings added to avoid creating new element */ |
/* Max number of default bindings added to avoid creating new element */ |
#define MAPELEDEF 4 |
#define MAPELEDEF 4 |
|
|
typedef struct MAPS_S { |
struct maps_s { |
KEYMAP *p_map; |
KEYMAP *p_map; |
const char *p_name; |
const char *p_name; |
struct MAPS_S *p_next; |
struct maps_s *p_next; |
} MAPS; |
}; |
|
|
extern MAPS *maps; |
extern struct maps_s *maps; |
extern MAPS fundamental_mode; |
extern struct maps_s fundamental_mode; |
#define fundamental_map (fundamental_mode.p_map) |
#define fundamental_map (fundamental_mode.p_map) |
|
|
int dobindkey(KEYMAP *, const char *, const char *); |
int dobindkey(KEYMAP *, const char *, const char *); |
KEYMAP *name_map(const char *); |
KEYMAP *name_map(const char *); |
MAPS *name_mode(const char *); |
struct maps_s *name_mode(const char *); |
PF doscan(KEYMAP *, int, KEYMAP **); |
PF doscan(KEYMAP *, int, KEYMAP **); |
const char *map_name(KEYMAP *); |
const char *map_name(KEYMAP *); |
void maps_init(void); |
void maps_init(void); |
int maps_add(KEYMAP *, const char *); |
int maps_add(KEYMAP *, const char *); |
|
|
extern MAP_ELEMENT *ele; |
extern struct map_element *ele; |
extern MAPS *defb_modes[]; |
extern struct maps_s *defb_modes[]; |