menu_defs.h (2186B)
1 #pragma once 2 3 #include <stdbool.h> 4 5 /// Indices into vimmenu_T->strings[] and vimmenu_T->noremap[] for each mode 6 /// \addtogroup MENU_INDEX 7 /// @{ 8 enum { 9 MENU_INDEX_INVALID = -1, 10 MENU_INDEX_NORMAL = 0, 11 MENU_INDEX_VISUAL = 1, 12 MENU_INDEX_SELECT = 2, 13 MENU_INDEX_OP_PENDING = 3, 14 MENU_INDEX_INSERT = 4, 15 MENU_INDEX_CMDLINE = 5, 16 MENU_INDEX_TERMINAL = 6, 17 MENU_INDEX_TIP = 7, 18 MENU_MODES = 8, 19 }; 20 /// @} 21 22 /// Menu modes 23 /// \addtogroup MENU_MODES 24 /// @{ 25 enum { 26 MENU_NORMAL_MODE = 1 << MENU_INDEX_NORMAL, 27 MENU_VISUAL_MODE = 1 << MENU_INDEX_VISUAL, 28 MENU_SELECT_MODE = 1 << MENU_INDEX_SELECT, 29 MENU_OP_PENDING_MODE = 1 << MENU_INDEX_OP_PENDING, 30 MENU_INSERT_MODE = 1 << MENU_INDEX_INSERT, 31 MENU_CMDLINE_MODE = 1 << MENU_INDEX_CMDLINE, 32 MENU_TERMINAL_MODE = 1 << MENU_INDEX_TERMINAL, 33 MENU_TIP_MODE = 1 << MENU_INDEX_TIP, 34 MENU_ALL_MODES = (1 << MENU_INDEX_TIP) - 1, 35 }; 36 /// @} 37 /// note MENU_INDEX_TIP is not a 'real' mode 38 39 /// Start a menu name with this to not include it on the main menu bar 40 #define MNU_HIDDEN_CHAR ']' 41 42 typedef struct VimMenu vimmenu_T; 43 44 struct VimMenu { 45 int modes; ///< Which modes is this menu visible for 46 int enabled; ///< for which modes the menu is enabled 47 char *name; ///< Name of menu, possibly translated 48 char *dname; ///< Displayed Name ("name" without '&') 49 char *en_name; ///< "name" untranslated, NULL when 50 ///< was not translated 51 char *en_dname; ///< NULL when "dname" untranslated 52 int mnemonic; ///< mnemonic key (after '&') 53 char *actext; ///< accelerator text (after TAB) 54 int priority; ///< Menu order priority 55 char *strings[MENU_MODES]; ///< Mapped string for each mode 56 int noremap[MENU_MODES]; ///< A \ref REMAP_VALUES flag for each mode 57 bool silent[MENU_MODES]; ///< A silent flag for each mode 58 vimmenu_T *children; ///< Children of sub-menu 59 vimmenu_T *parent; ///< Parent of menu 60 vimmenu_T *next; ///< Next item in menu 61 };