5 #include <sys/time.h> /* time_t */
7 #include "lib/global.h"
9 /*** typedefs(not structures) and defined constants **********************************************/
12 #define KEYMAP_SECTION_MAIN "main"
13 #define KEYMAP_SECTION_MAIN_EXT "main:xmap"
14 #define KEYMAP_SECTION_PANEL "panel"
15 #define KEYMAP_SECTION_DIALOG "dialog"
16 #define KEYMAP_SECTION_INPUT "input"
17 #define KEYMAP_SECTION_LISTBOX "listbox"
18 #define KEYMAP_SECTION_TREE "tree"
19 #define KEYMAP_SECTION_HELP "help"
20 #define KEYMAP_SECTION_EDITOR "editor"
21 #define KEYMAP_SECTION_EDITOR_EXT "editor:xmap"
22 #define KEYMAP_SECTION_VIEWER "viewer"
23 #define KEYMAP_SECTION_VIEWER_HEX "viewer:hex"
24 #define KEYMAP_SECTION_DIFFVIEWER "diffviewer"
26 #define KEYMAP_SHORTCUT_LENGTH 32 /* FIXME: is 32 bytes enough for shortcut? */
28 #define CK_PipeBlock(i) (10000+(i))
29 #define CK_Macro(i) (20000+(i))
30 #define CK_MacroLast CK_Macro(0x7FFF)
32 /*** enums ***************************************************************************************/
36 /* special commands */
106 CK_DeleteToWordBegin
,
131 CK_EditForceInternal
= 100,
139 CK_PanelListingChange
,
145 CK_OptionsDisplayBits
,
146 CK_EditExtensionsFile
,
147 CK_EditFileHighlightFile
,
166 CK_PanelListingSwitch
,
177 CK_LinkSymbolicRelative
,
187 CK_PanelOtherCd
= 200,
226 /* cursor movements */
263 CK_MarkParagraphDown
,
264 /* column mark commands */
266 CK_MarkColumnPageDown
,
271 CK_MarkColumnScrollUp
,
272 CK_MarkColumnScrollDown
,
273 CK_MarkColumnParagraphUp
,
274 CK_MarkColumnParagraphDown
,
278 CK_MacroStartStopRecord
,
280 CK_RepeatStartRecord
,
282 CK_RepeatStartStopRecord
,
283 /* window commands */
292 CK_SpellCheckCurrentWord
,
293 CK_SpellCheckSelectLang
,
318 CK_SearchForwardContinue
,
319 CK_SearchBackwardContinue
,
322 CK_ShowSymbols
= 700,
334 /*** structures declarations (and typedefs of structures)*****************************************/
336 typedef struct name_keymap_t
342 typedef struct key_config_t
344 time_t mtime
; /* mtime at the moment we read config file */
350 /* The global keymaps are of this type */
351 typedef struct global_keymap_t
354 unsigned long command
;
355 char caption
[KEYMAP_SHORTCUT_LENGTH
];
358 /*** global variables defined in .c file *********************************************************/
360 /*** declarations of public functions ************************************************************/
362 void keybind_cmd_bind (GArray
* keymap
, const char *keybind
, unsigned long action
);
363 unsigned long keybind_lookup_action (const char *name
);
364 const char *keybind_lookup_actionname (unsigned long action
);
365 const char *keybind_lookup_keymap_shortcut (const global_keymap_t
* keymap
, unsigned long action
);
366 unsigned long keybind_lookup_keymap_command (const global_keymap_t
* keymap
, long key
);
368 /*** inline functions ****************************************************************************/
370 #endif /* MC__KEYBIND_H */