diff options
Diffstat (limited to 'bindings.cc')
-rw-r--r-- | bindings.cc | 510 |
1 files changed, 510 insertions, 0 deletions
diff --git a/bindings.cc b/bindings.cc new file mode 100644 index 0000000..887110e --- /dev/null +++ b/bindings.cc @@ -0,0 +1,510 @@ +// Copyright (C) 2003 Mooffie <mooffie@typo.co.il> +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + +#include <config.h> + +#include "editbox.h" +#include "editor.h" +#include "helpbox.h" +#include "dialogline.h" +#include "inputline.h" +#include "speller.h" +#include "basemenu.h" + +#define ESC 27 + +EditBox::action_entry EditBox::actions_table[] = { + ADD_ACTION(EditBox, key_left, + N_("Move a character left")), + ADD_ACTION(EditBox, key_right, + N_("Move a character right")), + ADD_ACTION(EditBox, move_previous_line, + N_("Move to the previous line")), + ADD_ACTION(EditBox, move_next_line, + N_("Move to the next line")), + ADD_ACTION(EditBox, move_forward_page, + N_("Move to the next page")), + ADD_ACTION(EditBox, move_backward_page, + N_("Move to the previous page")), + ADD_ACTION(EditBox, move_forward_char, + N_("Move forward a character")), + ADD_ACTION(EditBox, move_backward_char, + N_("Move back a character")), + ADD_ACTION(EditBox, move_beginning_of_line, + N_("Move to the beginning of the current line, logical")), + ADD_ACTION(EditBox, move_beginning_of_visual_line, + N_("Move to the beginning of the current line, visual")), + ADD_ACTION(EditBox, key_home, + N_("Move to the beginning of the current line")), + ADD_ACTION(EditBox, move_end_of_line, + N_("Move to the end of the current line")), + ADD_ACTION(EditBox, move_last_modification, + N_("Jump to the place of the last editing operation")), + ADD_ACTION(EditBox, delete_backward_char, + N_("Delete the previous character")), + ADD_ACTION(EditBox, delete_forward_char, + N_("Delete the character the cursor is on")), + ADD_ACTION(EditBox, copy, + N_("Copy the selected text to clipboard")), + ADD_ACTION(EditBox, cut, + N_("Copy the selected text to clipboard and delete it from the buffer")), + ADD_ACTION(EditBox, paste, + N_("Paste the text in the clipboard into the buffer")), + ADD_ACTION(EditBox, move_end_of_buffer, + N_("Move to the end of the buffer")), + ADD_ACTION(EditBox, move_beginning_of_buffer, + N_("Move to the beginning of the buffer")), + ADD_ACTION(EditBox, move_backward_word, + N_("Move to the beginning of the current or previous word")), + ADD_ACTION(EditBox, move_forward_word, + N_("Move to the end of the current or next word")), + ADD_ACTION(EditBox, delete_backward_word, + N_("Delete to the beginning of the current or previous word")), + ADD_ACTION(EditBox, delete_forward_word, + N_("Delete to the end of the current or next word")), + ADD_ACTION(EditBox, toggle_dir_algo, + N_("Change the algorithm used to determine the base direction of paragraphs")), + ADD_ACTION(EditBox, set_dir_algo_unicode, + N_("Unicode's TR #9: First strong character determines base dir. Neutral gets LTR.")), + ADD_ACTION(EditBox, set_dir_algo_context_strong, + N_("Contextual-strong: Unicode's TR #9 + neutral paras now inherit surroundings")), + ADD_ACTION(EditBox, set_dir_algo_context_rtl, + N_("Contextual-rtl: like Contextual-strong, but if there's any RTL char, para is RTL")), + ADD_ACTION(EditBox, set_dir_algo_force_ltr, + N_("Force LTR")), + ADD_ACTION(EditBox, set_dir_algo_force_rtl, + N_("Force RTL")), + ADD_ACTION(EditBox, toggle_wrap, + N_("Change the way long lines are displayed (whether to wrap or not, and how)")), + ADD_ACTION(EditBox, set_wrap_type_at_white_space, + N_("Wrap lines, do not break words (just like a word processor)")), + ADD_ACTION(EditBox, set_wrap_type_anywhere, + N_("Wrap lines, break words")), + ADD_ACTION(EditBox, set_wrap_type_off, + N_("Don't wrap lines;you'll have to scroll horizontally to view the rest of the line")), + ADD_ACTION(EditBox, toggle_alt_kbd, + N_("Toogle Hebrew keyboard emulation")), + ADD_ACTION(EditBox, set_translate_next_char, + N_("Translate next character")), + ADD_ACTION(EditBox, justify, + N_("Justify the current or next paragraph")), + ADD_ACTION(EditBox, cut_end_of_paragraph, + N_("Cut [to] end of paragraph")), + ADD_ACTION(EditBox, undo, + N_("Undo the last change")), + ADD_ACTION(EditBox, redo, + N_("Redo the last change you canceled")), + ADD_ACTION(EditBox, delete_paragraph, + N_("Delete the current paragraph")), + ADD_ACTION(EditBox, toggle_primary_mark, + N_("Start/cancel selection")), + ADD_ACTION(EditBox, toggle_auto_justify, + N_("Toggle auto-justify")), + ADD_ACTION(EditBox, toggle_auto_indent, + N_("Toggle auto-indent")), + ADD_ACTION(EditBox, toggle_formatting_marks, + N_("Toggle display of formatting marks (paragraph ends, explicit BiDi marks, tabs)")), + ADD_ACTION(EditBox, toggle_rtl_nsm, + N_("Toggle display of Hebrew/Arabic points (off/transliterated/as-is)")), + ADD_ACTION(EditBox, set_rtl_nsm_asis, + N_("Display Hebrew/Arabic points as-is (for capable terminals only)")), + ADD_ACTION(EditBox, set_rtl_nsm_transliterated, + N_("Display Hebrew/Arabic points as highlighted ASCII characters")), + ADD_ACTION(EditBox, set_rtl_nsm_off, + N_("Hide Hebrew/Arabic points")), + ADD_ACTION(EditBox, toggle_maqaf, + N_("Toggle Hebrew maqaf highlighting and/or enable its ASCII transliteration")), + ADD_ACTION(EditBox, set_maqaf_display_transliterated, + N_("Display the maqaf as ASCII dash")), + ADD_ACTION(EditBox, set_maqaf_display_highlighted, + N_("Highlight the maqaf")), + ADD_ACTION(EditBox, set_maqaf_display_asis, + N_("Display the maqaf as-is (for capable terminals)")), + ADD_ACTION(EditBox, toggle_smart_typing, + N_("Toggle smart-typing mode: auto replace some plain characters with typographical ones")), + ADD_ACTION(EditBox, insert_maqaf, + N_("Insert Hebrew maqaf")), + ADD_ACTION(EditBox, toggle_read_only, + N_("Toggle read-only status of buffer")), + ADD_ACTION(EditBox, toggle_eops, + N_("Change end-of-paragraphs type")), + ADD_ACTION(EditBox, set_eops_unix, + N_("Set end-of-paragraphs type to Unix")), + ADD_ACTION(EditBox, set_eops_dos, + N_("Set end-of-paragraphs type to DOS/Windows")), + ADD_ACTION(EditBox, set_eops_mac, + N_("Set end-of-paragraphs type to Macintosh")), + ADD_ACTION(EditBox, set_eops_unicode, + N_("Set end-of-paragraphs type to Unicode PS")), + ADD_ACTION(EditBox, toggle_key_for_key_undo, + N_("Toggle key-for-key undo (whether to group small editing operations)")), + ADD_ACTION(EditBox, toggle_bidi, + N_("Turn off/on the BiDi algorithm (useful when editing complicated bi-di texts)")), + ADD_ACTION(EditBox, toggle_visual_cursor_movement, + N_("Toggle between logical and visual cursor movement")), + ADD_ACTION(EditBox, menu_set_syn_hlt_none, N_("Don't do syntax-highlighting")), + ADD_ACTION(EditBox, menu_set_syn_hlt_html, N_("Highlight HTML tags")), + ADD_ACTION(EditBox, menu_set_syn_hlt_email, N_("Highlight lines starting with '>'")), + ADD_ACTION(EditBox, toggle_underline, N_("Whether to highlight *text* and _text_ on your terminal")), + END_ACTIONS +}; + +binding_entry EditBox::bindings_table[] = { + { Event(KEY_LEFT), "key_left" }, + { Event(KEY_RIGHT), "key_right" }, + { Event(KEY_UP), "move_previous_line" }, + { Event(KEY_DOWN), "move_next_line" }, + { Event(KEY_NPAGE), "move_forward_page" }, + { Event(KEY_PPAGE), "move_backward_page" }, + { Event(KEY_HOME), "key_home" }, + { Event(KEY_END), "move_end_of_line" }, + { Event(CTRL, 'b'), "move_backward_char" }, + { Event(CTRL, 'f'), "move_forward_char" }, + { Event(CTRL, 'p'), "move_previous_line" }, + { Event(CTRL, 'n'), "move_next_line" }, + { Event(CTRL, 'a'), "move_beginning_of_line" }, + { Event(CTRL, 'e'), "move_end_of_line" }, + { Event(CTRL, 'o'), "move_last_modification" }, + { Event(ALT, 'o'), "move_last_modification" }, + { Event(KEY_BACKSPACE), "delete_backward_char" }, + { Event(KEY_DC), "delete_forward_char" }, + { Event(CTRL, 'd'), "delete_forward_char" }, + { Event(ALT, 'h'), "toggle_alt_kbd" }, + { Event(KEY_F(12)), "toggle_alt_kbd" }, + { Event(ALT, '>'), "move_end_of_buffer" }, + { Event(ALT, '<'), "move_beginning_of_buffer" }, + { Event(ALT, 'b'), "move_backward_word" }, + { Event(ALT, 'f'), "move_forward_word" }, + { Event(ALT, 'F'), "toggle_formatting_marks" }, + { Event(ALT, 'n'), "toggle_rtl_nsm" }, + { Event(ALT, 'd'), "delete_forward_word" }, + { Event(ALT, 0, KEY_BACKSPACE), "delete_backward_word" }, + { Event(ALT, 't'), "toggle_dir_algo" }, + { Event(ALT, 'w'), "toggle_wrap" }, + { Event(CTRL, 'q'), "set_translate_next_char" }, + { Event(CTRL, 'j'), "justify" }, + { Event(CTRL, 'k'), "cut_end_of_paragraph" }, + { Event(CTRL, 'r'), "redo" }, + { Event(CTRL, 'u'), "undo" }, + { Event(CTRL, 'c'), "copy" }, + { Event(CTRL, 'x'), "cut" }, + { Event(CTRL, 'v'), "paste" }, + { Event(CTRL, 'y'), "delete_paragraph" }, + { Event(CTRL, '^'), "toggle_primary_mark" }, + { Event(CTRL, '@'), "toggle_primary_mark" }, + { Event(KEY_F(11)), "toggle_primary_mark" }, // cygwin + { Event(ALT, 'J'), "toggle_auto_justify" }, + { Event(ALT, 'i'), "toggle_auto_indent" }, + { Event(ALT, 'k'), "toggle_maqaf" }, + { Event(ALT, 'q'), "toggle_smart_typing" }, + { Event(ALT, '-'), "insert_maqaf" }, + { Event(ALT, 'R'), "toggle_read_only" }, + { Event(CTRL | ALT, 'e'), "toggle_eops" }, + { Event(VIRTUAL, 2001), "set_eops_unix" }, + { Event(VIRTUAL, 2002), "set_eops_dos" }, + { Event(VIRTUAL, 2003), "set_eops_mac" }, + { Event(VIRTUAL, 2004), "set_eops_unicode" }, + { Event(VIRTUAL, 2005), "set_rtl_nsm_off" }, + { Event(VIRTUAL, 2006), "set_rtl_nsm_asis" }, + { Event(VIRTUAL, 2007), "set_rtl_nsm_transliterated" }, + { Event(VIRTUAL, 2008), "set_maqaf_display_transliterated" }, + { Event(VIRTUAL, 2009), "set_maqaf_display_highlighted" }, + { Event(VIRTUAL, 2010), "set_maqaf_display_asis" }, + { Event(VIRTUAL, 2011), "set_wrap_type_at_white_space" }, + { Event(VIRTUAL, 2012), "set_wrap_type_anywhere" }, + { Event(VIRTUAL, 2013), "set_wrap_type_off" }, + { Event(ALT, '1'), "set_dir_algo_unicode" }, + { Event(ALT, '2'), "set_dir_algo_context_strong" }, + { Event(ALT, '3'), "set_dir_algo_context_rtl" }, + { Event(ALT, '4'), "set_dir_algo_force_ltr" }, + { Event(ALT, '5'), "set_dir_algo_force_rtl" }, + { Event(VIRTUAL, 2300), "toggle_key_for_key_undo" }, + { Event(CTRL | ALT, 'b'), "toggle_bidi" }, + { Event(VIRTUAL, 4000), "menu_set_syn_hlt_none" }, + { Event(VIRTUAL, 4001), "menu_set_syn_hlt_html" }, + { Event(VIRTUAL, 4002), "menu_set_syn_hlt_email" }, + { Event(VIRTUAL, 4010), "toggle_underline" }, + { Event(ALT, 'v'), "toggle_visual_cursor_movement" }, + END_BINDINGS +}; + +Editor::action_entry Editor::actions_table[] = { + ADD_ACTION(Editor, layout_windows, NULL), + ADD_ACTION(Editor, load_file, + N_("Load file from disk")), + ADD_ACTION(Editor, save_file, + N_("Save file to disk")), + ADD_ACTION(Editor, save_file_as, + N_("Save file in another name")), + ADD_ACTION(Editor, insert_file, + N_("Insert file from disk (or read from pipe) into the buffer")), + ADD_ACTION(Editor, change_tab_width, + N_("Change the TAB character size")), + ADD_ACTION(Editor, change_justification_column, + N_("Change the column used to justify paragraphs")), + ADD_ACTION(Editor, insert_unicode_char, + N_("Insert a specific Unicode character using its known code number")), + ADD_ACTION(Editor, go_to_line, + N_("Go to a specific line")), + ADD_ACTION(Editor, search_forward, + N_("Search for a string, starting from the cursor")), + ADD_ACTION(Editor, search_forward_next, + N_("Search for the next occurrence of the string")), + ADD_ACTION(Editor, toggle_cursor_position_report, + N_("Toggle continuous display of cursor position in the status line")), + ADD_ACTION(Editor, refresh_and_center, + N_("Repaint the terminal screen (if it was garbled for some reason)")), + ADD_ACTION(Editor, show_character_code, + N_("Print the unicode value and UTF-8 sequence of the character the cursor is on")), + ADD_ACTION(Editor, show_character_info, + N_("Print the corresponding UnicodeData.txt line of the character the cursor is on")), + ADD_ACTION(Editor, quit, + N_("Quit the editor")), + ADD_ACTION(Editor, help, + N_("Get help for using this editor")), + ADD_ACTION(Editor, describe_key, + N_("Gives a short description for a shortcut key")), + ADD_ACTION(Editor, change_directory, + N_("Change current directory")), + ADD_ACTION(Editor, toggle_arabic_shaping, + N_("Toggle Arabic shaping and Lam-Alif ligature")), + ADD_ACTION(Editor, write_selection_to_file, + N_("Write the selected text (or the whole text, if none selected) to a file/pipe")), + ADD_ACTION(Editor, change_scroll_step, + N_("Change the scroll step (# of lines to scroll up/down when cursor at top/bottom)")), + ADD_ACTION(Editor, load_unload_speller, + N_("Explicitly load or unload the speller process")), + ADD_ACTION(Editor, spell_check_all, + N_("Spell check all the document")), + ADD_ACTION(Editor, spell_check_forward, + N_("Spell check the document, from the cursor onward")), + ADD_ACTION(Editor, spell_check_word, + N_("Spell check the word on which the cursor stands")), + ADD_ACTION(Editor, menu, + N_("Activate menu")), + ADD_ACTION(Editor, toggle_big_cursor, + N_("Toogle big cursor (console only); useful if you're visually impaired")), + ADD_ACTION(Editor, toggle_graphical_boxes, + N_("Use graphical characters for the menus and scrollbar")), + ADD_ACTION(Editor, external_edit_prompt, + N_("Edit this file with an external editor, prompt for editor command")), + ADD_ACTION(Editor, external_edit_no_prompt, + N_("Edit this file with an external editor (using previously entered command)")), + ADD_ACTION(Editor, menu_set_scrollbar_none, NULL), + ADD_ACTION(Editor, menu_set_scrollbar_left, NULL), + ADD_ACTION(Editor, menu_set_scrollbar_right, NULL), + ADD_ACTION(Editor, toggle_syntax_auto_detection, N_("Whether to try to detect HTML files and email messages")), + ADD_ACTION(Editor, set_default_theme, NULL), + END_ACTIONS +}; + +binding_entry Editor::bindings_table[] = { +#ifdef KEY_RESIZE + { Event(KEY_RESIZE), "layout_windows" }, +#endif + { Event(KEY_F(1)), "help" }, + { Event(KEY_F(2)), "save_file" }, + { Event(CTRL, 's'), "save_file_as" }, + { Event(CTRL, 'w'), "write_selection_to_file" }, + { Event(KEY_F(3)), "load_file" }, + { Event(KEY_F(7)), "search_forward" }, + { Event(KEY_F(17)), "search_forward_next" }, + { Event(ALT, 'r'), "insert_file" }, + { Event(CTRL | ALT, 'c'), "change_directory" }, + { Event(ALT, 'x'), "quit" }, + { Event(ALT, 'X'), "quit" }, + { Event(ALT, 'c'), "toggle_cursor_position_report" }, + { Event(CTRL | ALT, 't'), "change_tab_width" }, + { Event(CTRL | ALT, 'j'), "change_justification_column" }, + { Event(CTRL | ALT, 'v'), "insert_unicode_char"}, + { Event(CTRL | ALT, 'u'), "show_character_code"}, + { Event(CTRL | ALT, 's'), "change_scroll_step"}, + { Event(ALT, 'a'), "toggle_arabic_shaping"}, + { Event(ALT, '\t'), "show_character_info"}, + { Event(CTRL, 'g'), "go_to_line"}, + { Event(CTRL, 'l'), "refresh_and_center"}, + { Event(KEY_F(4)), "describe_key"}, + { Event(KEY_F(5)), "spell_check_all" }, + { Event(KEY_F(6)), "spell_check_forward" }, + { Event(ALT, '$'), "spell_check_word" }, + { Event(ALT, 'S'), "load_unload_speller" }, + { Event(KEY_F(9)), "menu" }, + { Event(KEY_F(10)), "menu" }, + { Event(ALT, 0, KEY_F(8)), "external_edit_prompt" }, + { Event(KEY_F(8)), "external_edit_no_prompt" }, + { Event(VIRTUAL, 3000), "toggle_big_cursor" }, + { Event(VIRTUAL, 1100), "toggle_graphical_boxes" }, + { Event(VIRTUAL, 1200), "menu_set_scrollbar_none" }, + { Event(VIRTUAL, 1201), "menu_set_scrollbar_left" }, + { Event(VIRTUAL, 1202), "menu_set_scrollbar_right" }, + { Event(VIRTUAL, 1300), "toggle_syntax_auto_detection" }, + { Event(VIRTUAL, 1400), "set_default_theme" }, + END_BINDINGS +}; + +DialogLine::action_entry DialogLine::actions_table[] = { + ADD_ACTION(DialogLine, layout_windows, NULL), + ADD_ACTION(DialogLine, cancel_modal, NULL), + ADD_ACTION(DialogLine, refresh, NULL), + END_ACTIONS +}; + +binding_entry DialogLine::bindings_table[] = { +#ifdef KEY_RESIZE + { Event(KEY_RESIZE), "layout_windows" }, +#endif + { Event(CTRL, 'g'), "cancel_modal" }, + { Event(CTRL, 'c'), "cancel_modal" }, + { Event(0, ESC), "cancel_modal" }, + { Event(CTRL, 'l'), "refresh" }, + END_BINDINGS +}; + +InputLine::action_entry InputLine::actions_table[] = { + ADD_ACTION(InputLine, previous_completion, NULL), + ADD_ACTION(InputLine, next_completion, NULL), + ADD_ACTION(InputLine, end_modal, NULL), + ADD_ACTION(InputLine, previous_history, NULL), + ADD_ACTION(InputLine, next_history, NULL), + END_ACTIONS +}; + +binding_entry InputLine::bindings_table[] = { + { Event(0, '\r'), "end_modal" }, + { Event(0, '\t'), "next_completion" }, + { Event(ALT, '\t'), "previous_completion" }, + { Event(CTRL, 'p'), "previous_history" }, + { Event(CTRL, 'n'), "next_history" }, + { Event(KEY_UP), "previous_history" }, + { Event(KEY_DOWN), "next_history" }, + END_BINDINGS +}; + +HelpBox::action_entry HelpBox::actions_table[] = { + ADD_ACTION(HelpBox, end_modal, NULL), + ADD_ACTION(HelpBox, layout_windows, NULL), + ADD_ACTION(HelpBox, refresh_and_center, NULL), + ADD_ACTION(HelpBox, move_to_toc, NULL), + ADD_ACTION(HelpBox, pop_position, NULL), + END_ACTIONS +}; + +binding_entry HelpBox::bindings_table[] = { +#ifdef KEY_RESIZE + { Event(KEY_RESIZE), "layout_windows" }, +#endif + { Event(CTRL, 'l'), "refresh_and_center"}, + { Event(KEY_F(1)), "end_modal" }, + { Event(ALT, 'x'), "end_modal" }, + { Event(ALT, 'X'), "end_modal" }, + { Event(0, ESC), "end_modal" }, + { Event(ALT, 'b'), "pop_position" }, + { Event(ALT, 't'), "move_to_toc" }, + END_BINDINGS +}; + +SpellerWnd::action_entry SpellerWnd::actions_table[] = { + ADD_ACTION(SpellerWnd, layout_windows, NULL), + ADD_ACTION(SpellerWnd, ignore_word, NULL), + ADD_ACTION(SpellerWnd, abort_spelling, NULL), + ADD_ACTION(SpellerWnd, abort_spelling_restore_cursor, NULL), + ADD_ACTION(SpellerWnd, add_to_dict, NULL), + ADD_ACTION(SpellerWnd, edit_replacement, NULL), + ADD_ACTION(SpellerWnd, set_global_decision, NULL), + ADD_ACTION(SpellerWnd, refresh, NULL), + END_ACTIONS +}; + +binding_entry SpellerWnd::bindings_table[] = { +#ifdef KEY_RESIZE + { Event(KEY_RESIZE), "layout_windows" }, +#endif + { Event(CTRL, 'g'), "abort_spelling" }, + { Event(CTRL, 'c'), "abort_spelling" }, + { Event(0, ESC), "abort_spelling" }, + { Event(ALT, 'x'), "abort_spelling_restore_cursor" }, + { Event(0, 'q'), "abort_spelling_restore_cursor" }, + { Event(0, 'x'), "abort_spelling_restore_cursor" }, + { Event(CTRL, 'l'), "refresh" }, + { Event(0, ' '), "ignore_word" }, + { Event(0, 'a'), "add_to_dict" }, + { Event(0, 'r'), "edit_replacement" }, + { Event(0, 'g'), "set_global_decision" }, + END_BINDINGS +}; + +PopupMenu::action_entry PopupMenu::actions_table[] = { + ADD_ACTION(PopupMenu, cancel_menu, NULL), + ADD_ACTION(PopupMenu, prev_menu, NULL), + ADD_ACTION(PopupMenu, next_menu, NULL), + ADD_ACTION(PopupMenu, select, NULL), + ADD_ACTION(PopupMenu, move_previous_item, NULL), + ADD_ACTION(PopupMenu, move_next_item, NULL), + ADD_ACTION(PopupMenu, move_first_item, NULL), + ADD_ACTION(PopupMenu, move_last_item, NULL), + ADD_ACTION(PopupMenu, screen_resize, NULL), + END_ACTIONS +}; + +binding_entry PopupMenu::bindings_table[] = { +#ifdef KEY_RESIZE + { Event(KEY_RESIZE), "screen_resize" }, +#endif + { Event(KEY_F(9)), "cancel_menu" }, + { Event(KEY_F(10)), "cancel_menu" }, + { Event(CTRL, 'c'), "cancel_menu" }, + { Event(CTRL, 'g'), "cancel_menu" }, + { Event(0, ESC), "cancel_menu" }, + { Event(KEY_LEFT), "prev_menu" }, + { Event(KEY_RIGHT), "next_menu" }, + { Event(0, '\r'), "select" }, + { Event(KEY_UP), "move_previous_item" }, + { Event(KEY_DOWN), "move_next_item" }, + { Event(KEY_HOME), "move_first_item" }, + { Event(KEY_END), "move_last_item" }, + { Event(KEY_PPAGE), "move_first_item" }, + { Event(KEY_NPAGE), "move_last_item" }, + { Event(CTRL, 'p'), "move_previous_item" }, + { Event(CTRL, 'n'), "move_next_item" }, + END_BINDINGS +}; + +Menubar::action_entry Menubar::actions_table[] = { + ADD_ACTION(Menubar, select, NULL), + ADD_ACTION(Menubar, next_menu, NULL), + ADD_ACTION(Menubar, prev_menu, NULL), + ADD_ACTION(Menubar, end_modal, NULL), + ADD_ACTION(Menubar, screen_resize, NULL), + END_ACTIONS +}; + +binding_entry Menubar::bindings_table[] = { +#ifdef KEY_RESIZE + { Event(KEY_RESIZE), "screen_resize" }, +#endif + { Event(KEY_F(9)), "end_modal" }, + { Event(KEY_F(10)), "end_modal" }, + { Event(CTRL, 'c'), "end_modal" }, + { Event(CTRL, 'g'), "end_modal" }, + { Event(0, ESC), "end_modal" }, + { Event(KEY_LEFT), "prev_menu" }, + { Event(KEY_RIGHT), "next_menu" }, + { Event(KEY_DOWN), "select" }, + { Event(0, '\r'), "select" }, + END_BINDINGS +}; + + |