Thanks to visit codestin.com
Credit goes to code.neomutt.org

NeoMutt  2025-12-11-219-g274730
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 "menu/lib.h"
29#include "get.h"
30#include "keymap.h"
31
33#define MAX_SEQ 8
34
39{
40 const char *name;
41 int op;
43};
44
49{
50 int op;
51 const char *seq;
52};
53
58{
59 int menu;
60 const char *function;
61 int op;
62};
63ARRAY_HEAD(MenuFunctionOpArray, struct MenuFunctionOp);
64
68struct SubMenu
69{
71 const struct MenuFuncOp *functions;
72 struct KeymapList keymaps;
73};
74ARRAY_HEAD(SubMenuArray, struct SubMenu);
75ARRAY_HEAD(SubMenuPArray, struct SubMenu *);
76
81{
82 int id;
83 const char *name;
84 struct SubMenuPArray submenus;
85};
86ARRAY_HEAD(MenuDefinitionArray, struct MenuDefinition);
87
96typedef void (*init_keys_t)(struct SubMenu *sm_generic);
97
98bool is_bound (const struct MenuDefinition *md, int op);
99struct Keymap * km_find_func (enum MenuType menu, int func);
100int km_get_menu_id (const char *name);
101const char * km_get_menu_name (int mtype);
102int km_get_op (const char *func);
103int km_get_op_menu (int mtype, const char *func);
104struct MenuDefinition *menu_find (int menu);
105
106#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:42
Keymap handling.
GUI present the user with a selectable list.
void(* init_keys_t)(struct SubMenu *sm_generic)
Definition menu.h:96
int km_get_op_menu(int mtype, const char *func)
Get the OpCode for a Function from a Menu.
Definition menu.c:257
struct MenuDefinition * menu_find(int menu)
Find a Menu Definition by Menu type.
Definition menu.c:287
struct Keymap * km_find_func(enum MenuType menu, int func)
Find a function's mapping in a Menu.
Definition menu.c:164
bool is_bound(const struct MenuDefinition *md, int op)
Does a function have a keybinding?
Definition menu.c:305
const char * km_get_menu_name(int mtype)
Get the name of a Menu.
Definition menu.c:195
int km_get_op(const char *func)
Get the OpCode for a Function.
Definition menu.c:229
int km_get_menu_id(const char *name)
Get the ID of a Menu.
Definition menu.c:212
Convenience wrapper for the library headers.
A keyboard mapping.
Definition keymap.h:43
Functions for a Dialog or Window.
Definition menu.h:81
const char * name
Menu name, e.g. "alias".
Definition menu.h:83
int id
Menu ID, e.g. MENU_ALIAS.
Definition menu.h:82
struct SubMenuPArray submenus
Parts making up the Menu.
Definition menu.h:84
Mapping between a function and an operation.
Definition menu.h:39
const char * name
Name of the function.
Definition menu.h:40
MenuFuncFlags flags
Flags, e.g. MFF_DEPRECATED.
Definition menu.h:42
int op
Operation, e.g. OP_DELETE.
Definition menu.h:41
Mapping between a function and an operation.
Definition menu.h:58
const char * function
Name of the function.
Definition menu.h:60
int menu
Menu, e.g. MENU_ALIAS.
Definition menu.h:59
int op
Operation, e.g. OP_DELETE.
Definition menu.h:61
Mapping between an operation and a key sequence.
Definition menu.h:49
int op
Operation, e.g. OP_DELETE.
Definition menu.h:50
const char * seq
Default key binding.
Definition menu.h:51
Collection of related functions.
Definition menu.h:69
const struct MenuFuncOp * functions
All available functions.
Definition menu.h:71
struct KeymapList keymaps
All keybindings.
Definition menu.h:72
struct MenuDefinition * parent
Primary parent.
Definition menu.h:70
MenuType
Types of GUI selections.
Definition type.h:33