NeoMutt  2025-12-11-860-g80c9cc
Teaching an old dog new tricks
DOXYGEN
Loading...
Searching...
No Matches
menu.h
Go to the documentation of this file.
1
22
23#ifndef MUTT_KEY_MENU_H
24#define MUTT_KEY_MENU_H
25
26#include <stdbool.h>
27#include "mutt/lib.h"
28#include "get.h"
29#include "keymap.h"
30
35{
36 const char *name;
37 int op;
39};
40
45{
46 int op;
47 const char *seq;
48};
49
54{
55 int menu;
56 const char *function;
57 int op;
58};
59ARRAY_HEAD(MenuFunctionOpArray, struct MenuFunctionOp);
60
64struct SubMenu
65{
67 const struct MenuFuncOp *functions;
68 struct KeymapList keymaps;
69};
70ARRAY_HEAD(SubMenuArray, struct SubMenu);
71ARRAY_HEAD(SubMenuPArray, struct SubMenu *);
72
77{
78 int id;
79 const char *name;
80 struct SubMenuPArray submenus;
81};
82ARRAY_HEAD(MenuDefinitionArray, struct MenuDefinition *);
83
92typedef void (*init_keys_t)(struct SubMenu *sm_generic);
93
94bool is_bound (const struct MenuDefinition *md, int op);
95struct Keymap * km_find_func (const struct MenuDefinition *md, int func);
96int km_get_op (const char *func);
97int km_get_op_menu (int mtype, const char *func);
98struct MenuDefinition *menu_find (int menu);
99struct MenuDefinition *menu_find_by_name (const char *name);
100
101#endif /* MUTT_KEY_MENU_H */
#define ARRAY_HEAD(name, T)
Define a named struct for arrays of elements of a certain type.
Definition array.h:47
Get a key from the user.
uint8_t MenuFuncFlags
Flags, e.g. MFF_DEPRECATED.
Definition get.h:49
Keymap handling.
void(* init_keys_t)(struct SubMenu *sm_generic)
Definition menu.h:92
int km_get_op_menu(int mtype, const char *func)
Get the OpCode for a Function from a Menu.
Definition menu.c:198
struct MenuDefinition * menu_find(int menu)
Find a Menu Definition by Menu type.
Definition menu.c:231
struct MenuDefinition * menu_find_by_name(const char *name)
Find a Menu Definition by its name.
Definition menu.c:251
struct Keymap * km_find_func(const struct MenuDefinition *md, int func)
Find a function's mapping in a Menu.
Definition menu.c:141
bool is_bound(const struct MenuDefinition *md, int op)
Does a function have a keybinding?
Definition menu.c:275
int km_get_op(const char *func)
Get the OpCode for a Function.
Definition menu.c:168
Convenience wrapper for the library headers.
A keyboard mapping.
Definition keymap.h:43
Functions for a Dialog or Window.
Definition menu.h:77
const char * name
Menu name, e.g. "alias".
Definition menu.h:79
int id
Menu ID, e.g. MENU_ALIAS.
Definition menu.h:78
struct SubMenuPArray submenus
Parts making up the Menu.
Definition menu.h:80
Mapping between a function and an operation.
Definition menu.h:35
const char * name
Name of the function.
Definition menu.h:36
MenuFuncFlags flags
Flags, e.g. MFF_DEPRECATED.
Definition menu.h:38
int op
Operation, e.g. OP_DELETE.
Definition menu.h:37
Mapping between a function and an operation.
Definition menu.h:54
const char * function
Name of the function.
Definition menu.h:56
int menu
Menu, e.g. MENU_ALIAS.
Definition menu.h:55
int op
Operation, e.g. OP_DELETE.
Definition menu.h:57
Mapping between an operation and a key sequence.
Definition menu.h:45
int op
Operation, e.g. OP_DELETE.
Definition menu.h:46
const char * seq
Default key binding.
Definition menu.h:47
Collection of related functions.
Definition menu.h:65
const struct MenuFuncOp * functions
All available functions.
Definition menu.h:67
struct KeymapList keymaps
All keybindings.
Definition menu.h:68
struct MenuDefinition * parent
Primary parent.
Definition menu.h:66