1 | #ifndef NVIM_MENU_H |
2 | #define |
3 | |
4 | #include <stdbool.h> // for bool |
5 | |
6 | #include "nvim/types.h" // for char_u and expand_T |
7 | #include "nvim/ex_cmds_defs.h" // for exarg_T |
8 | |
9 | /// Indices into vimmenu_T->strings[] and vimmenu_T->noremap[] for each mode |
10 | /// \addtogroup MENU_INDEX |
11 | /// @{ |
12 | #define -1 |
13 | #define 0 |
14 | #define 1 |
15 | #define 2 |
16 | #define 3 |
17 | #define 4 |
18 | #define 5 |
19 | #define 6 |
20 | #define 7 |
21 | /// @} |
22 | /// note MENU_INDEX_TIP is not a 'real' mode |
23 | |
24 | /// Menu modes |
25 | /// \addtogroup MENU_MODES |
26 | /// @{ |
27 | #define (1 << MENU_INDEX_NORMAL) |
28 | #define (1 << MENU_INDEX_VISUAL) |
29 | #define (1 << MENU_INDEX_SELECT) |
30 | #define (1 << MENU_INDEX_OP_PENDING) |
31 | #define (1 << MENU_INDEX_INSERT) |
32 | #define (1 << MENU_INDEX_CMDLINE) |
33 | #define (1 << MENU_INDEX_TIP) |
34 | #define ((1 << MENU_INDEX_TIP) - 1) |
35 | /// @} |
36 | |
37 | /// Start a menu name with this to not include it on the main menu bar |
38 | #define MNU_HIDDEN_CHAR ']' |
39 | |
40 | typedef struct VimMenu ; |
41 | |
42 | struct { |
43 | int ; ///< Which modes is this menu visible for |
44 | int ; ///< for which modes the menu is enabled |
45 | char_u *; ///< Name of menu, possibly translated |
46 | char_u *; ///< Displayed Name ("name" without '&') |
47 | char_u *; ///< "name" untranslated, NULL when |
48 | ///< was not translated |
49 | char_u *; ///< NULL when "dname" untranslated |
50 | int ; ///< mnemonic key (after '&') |
51 | char_u *; ///< accelerator text (after TAB) |
52 | long ; ///< Menu order priority |
53 | char_u *[MENU_MODES]; ///< Mapped string for each mode |
54 | int [MENU_MODES]; ///< A \ref REMAP_VALUES flag for each mode |
55 | bool [MENU_MODES]; ///< A silent flag for each mode |
56 | vimmenu_T *; ///< Children of sub-menu |
57 | vimmenu_T *; ///< Parent of menu |
58 | vimmenu_T *; ///< Next item in menu |
59 | }; |
60 | |
61 | |
62 | #ifdef INCLUDE_GENERATED_DECLARATIONS |
63 | # include "menu.h.generated.h" |
64 | #endif |
65 | #endif // NVIM_MENU_H |
66 | |