1 /* src/client/keybindings.h
3 * Database of keybindings and functions to read and manipulate it.
9 #include <stdint.h> /* uint8_t, uint16_t */
17 struct Command * command; /* command in command DB to which key is bound */
22 struct KeyBinding * kbs;
23 uint8_t n_of_kbs; /* how many KeyBinding structs are stored below .kbs? */
24 uint8_t select; /* linear list index of keybinding selected for editing */
25 uint8_t edit; /* 1 if currently editing a keybinding, else 0 */
30 /* Return command bound to "keycode" in "kbdb"; NULL if none found. */
31 extern struct Command * get_command_to_keycode(struct KeyBindingDB * kbdb,
34 /* Return human-readable name (of maximum 9 chars) for "keycode" as matched by
35 * ncurses.h; if none is found, return "(unknown)".
37 extern char * get_keyname_to_keycode(uint16_t keycode);
39 /* Mark keybinding in KeybindingDB (char_selected_kb_db()-) selected by "kb_c"
40 * as being edited, get user input to modify it, then unmark it again. Ensure
41 * there are max. three digits in the ASCII string of the kecode read from user.
43 extern void mod_selected_keyb(char kb_c);
45 /* Move .select in KeybindingDB (char-selected_kb_db()-) selected by "kb_c"
46 * upwards ("dir"=="u") or downwards ("dir"=="d") within KeyBindingDB limits.
48 extern void move_keyb_selection(char kb_c, char dir);