diff options
author | Felipe Oliveira Carvalho <felipekde@gmail.com> | 2014-03-06 16:11:38 -0300 |
---|---|---|
committer | Thiago de Arruda <tpadilha84@gmail.com> | 2014-03-07 08:02:38 -0300 |
commit | a86da86d9822e16ffe0e9da7fe21864cd869ddf8 (patch) | |
tree | 5d744ba3716192dbd672e78acdb448f8ee333a45 /src/menu.h | |
parent | 3005681a02ca0478231329b5deae83a308687b21 (diff) | |
download | rneovim-a86da86d9822e16ffe0e9da7fe21864cd869ddf8.tar.gz rneovim-a86da86d9822e16ffe0e9da7fe21864cd869ddf8.tar.bz2 rneovim-a86da86d9822e16ffe0e9da7fe21864cd869ddf8.zip |
Move some types and consts from structs.h to other headers
- `foldinfo_T` to `fold.h`
- `context_sha256_T` to `sha256.h`
- `tagname_T` to `tag.h`
- `pumitem_T` to `popupmnu.h`
- `prt_*_T` to hardcopy.h`
- `CPT_*` consts to `edit.h`
- `vimmenu_T`, `MNU_HIDDEN_CHAR`, and `MENU_*` constants to `menu.h`
Diffstat (limited to 'src/menu.h')
-rw-r--r-- | src/menu.h | 49 |
1 files changed, 48 insertions, 1 deletions
diff --git a/src/menu.h b/src/menu.h index a7fe6b7e8e..6d1732703f 100644 --- a/src/menu.h +++ b/src/menu.h @@ -1,6 +1,53 @@ #ifndef NEOVIM_MENU_H #define NEOVIM_MENU_H -/* menu.c */ + +/* Indices into vimmenu_T->strings[] and vimmenu_T->noremap[] for each mode */ +#define MENU_INDEX_INVALID -1 +#define MENU_INDEX_NORMAL 0 +#define MENU_INDEX_VISUAL 1 +#define MENU_INDEX_SELECT 2 +#define MENU_INDEX_OP_PENDING 3 +#define MENU_INDEX_INSERT 4 +#define MENU_INDEX_CMDLINE 5 +#define MENU_INDEX_TIP 6 +#define MENU_MODES 7 + +/* Menu modes */ +#define MENU_NORMAL_MODE (1 << MENU_INDEX_NORMAL) +#define MENU_VISUAL_MODE (1 << MENU_INDEX_VISUAL) +#define MENU_SELECT_MODE (1 << MENU_INDEX_SELECT) +#define MENU_OP_PENDING_MODE (1 << MENU_INDEX_OP_PENDING) +#define MENU_INSERT_MODE (1 << MENU_INDEX_INSERT) +#define MENU_CMDLINE_MODE (1 << MENU_INDEX_CMDLINE) +#define MENU_TIP_MODE (1 << MENU_INDEX_TIP) +#define MENU_ALL_MODES ((1 << MENU_INDEX_TIP) - 1) +/*note MENU_INDEX_TIP is not a 'real' mode*/ + +/* Start a menu name with this to not include it on the main menu bar */ +#define MNU_HIDDEN_CHAR ']' + +typedef struct VimMenu vimmenu_T; + +struct VimMenu { + int modes; /* Which modes is this menu visible for? */ + int enabled; /* for which modes the menu is enabled */ + char_u *name; /* Name of menu, possibly translated */ + char_u *dname; /* Displayed Name ("name" without '&') */ + char_u *en_name; /* "name" untranslated, NULL when "name" + * was not translated */ + char_u *en_dname; /* "dname" untranslated, NULL when "dname" + * was not translated */ + int mnemonic; /* mnemonic key (after '&') */ + char_u *actext; /* accelerator text (after TAB) */ + int priority; /* Menu order priority */ + char_u *strings[MENU_MODES]; /* Mapped string for each mode */ + int noremap[MENU_MODES]; /* A REMAP_ flag for each mode */ + char silent[MENU_MODES]; /* A silent flag for each mode */ + vimmenu_T *children; /* Children of sub-menu */ + vimmenu_T *parent; /* Parent of menu */ + vimmenu_T *next; /* Next item in menu */ +}; + void ex_menu(exarg_T *eap); char_u *set_context_in_menu_cmd(expand_T *xp, char_u *cmd, char_u *arg, int forceit); |