NeoMutt
2025-12-11-1009-ga75d9e
Teaching an old dog new tricks
DOXYGEN
Toggle main menu visibility
Loading...
Searching...
No Matches
functions.c
Go to the documentation of this file.
1
22
28
29
#include "config.h"
30
#include <string.h>
31
#include "
mutt/lib.h
"
32
#include "
core/lib.h
"
33
#include "
gui/lib.h
"
34
#include "
fuzzy/lib.h
"
35
#include "
key/lib.h
"
36
#include "
menu/lib.h
"
37
#include "
module_data.h
"
38
39
// clang-format off
43
static
const
struct
MenuFuncOp
OpFuzzy
[] = {
/* map: fuzzy */
44
{
"first-entry"
, OP_FIRST_ENTRY },
45
{
"last-entry"
, OP_LAST_ENTRY },
46
{
"next-entry"
, OP_NEXT_ENTRY },
47
{
"next-page"
, OP_NEXT_PAGE },
48
{
"previous-entry"
, OP_PREV_ENTRY },
49
{
"previous-page"
, OP_PREV_PAGE },
50
{ NULL, 0 },
51
};
52
56
const
struct
MenuOpSeq
FuzzyDefaultBindings
[] = {
/* map: fuzzy */
57
{ OP_FIRST_ENTRY,
"<home>"
},
58
{ OP_LAST_ENTRY,
"<end>"
},
59
{ OP_NEXT_ENTRY,
"<down>"
},
60
{ OP_NEXT_PAGE,
"<pagedown>"
},
61
{ OP_PREV_ENTRY,
"<up>"
},
62
{ OP_PREV_PAGE,
"<pageup>"
},
63
{ 0, NULL },
64
};
65
// clang-format on
66
70
void
fuzzy_init_keys
(
struct
NeoMutt
*n,
struct
SubMenu
*sm_generic)
71
{
72
struct
FuzzyModuleData
*mod_data =
neomutt_get_module_data
(n,
MODULE_ID_FUZZY
);
73
ASSERT
(mod_data);
74
75
struct
MenuDefinition
*md = NULL;
76
struct
SubMenu
*sm = NULL;
77
78
sm =
km_register_submenu
(
OpFuzzy
);
79
md =
km_register_menu
(
MENU_FUZZY
,
"fuzzy"
);
80
km_menu_add_submenu
(md, sm);
81
km_menu_add_bindings
(md,
FuzzyDefaultBindings
);
82
83
mod_data->
md_fuzzy
= md;
84
mod_data->
sm_fuzzy
= sm;
85
}
86
91
struct
SubMenu
*
fuzzy_get_submenu
(
void
)
92
{
93
struct
FuzzyModuleData
*mod_data =
neomutt_get_module_data
(
NeoMutt
,
MODULE_ID_FUZZY
);
94
ASSERT
(mod_data);
95
96
return
mod_data->
sm_fuzzy
;
97
}
lib.h
Convenience wrapper for the core headers.
FuzzyDefaultBindings
const struct MenuOpSeq FuzzyDefaultBindings[]
Key bindings for the Fuzzy Window.
Definition
functions.c:56
OpFuzzy
static const struct MenuFuncOp OpFuzzy[]
Functions for the Fuzzy Window.
Definition
functions.c:43
fuzzy_get_submenu
struct SubMenu * fuzzy_get_submenu(void)
Get the Fuzzy SubMenu.
Definition
functions.c:91
fuzzy_init_keys
void fuzzy_init_keys(struct NeoMutt *n, struct SubMenu *sm_generic)
Initialise the Fuzzy Keybindings - Implements init_keys_api.
Definition
functions.c:70
lib.h
Fuzzy matching library.
module_data.h
Fuzzy private Module data.
lib.h
Convenience wrapper for the gui headers.
km_menu_add_submenu
void km_menu_add_submenu(struct MenuDefinition *md, struct SubMenu *sm)
Add a SubMenu to a Menu Definition.
Definition
init.c:123
km_register_submenu
struct SubMenu * km_register_submenu(const struct MenuFuncOp functions[])
Register a submenu.
Definition
init.c:88
km_register_menu
struct MenuDefinition * km_register_menu(int menu, const char *name)
Register a menu.
Definition
init.c:105
km_menu_add_bindings
void km_menu_add_bindings(struct MenuDefinition *md, const struct MenuOpSeq bindings[])
Add Keybindings to a Menu.
Definition
init.c:136
lib.h
Manage keymappings.
lib.h
GUI present the user with a selectable list.
MODULE_ID_FUZZY
@ MODULE_ID_FUZZY
ModuleFuzzy, Fuzzy matching library
Definition
module_api.h:67
lib.h
Convenience wrapper for the library headers.
neomutt_get_module_data
void * neomutt_get_module_data(struct NeoMutt *n, enum ModuleId id)
Get the private data for a Module.
Definition
neomutt.c:666
ASSERT
#define ASSERT(COND)
Definition
signal2.h:59
FuzzyModuleData
Fuzzy private Module data.
Definition
module_data.h:32
FuzzyModuleData::md_fuzzy
struct MenuDefinition * md_fuzzy
Fuzzy Menu Definition.
Definition
module_data.h:33
FuzzyModuleData::sm_fuzzy
struct SubMenu * sm_fuzzy
Fuzzy functions.
Definition
module_data.h:34
MenuDefinition
Functions for a Dialog or Window.
Definition
menudef.h:44
MenuFuncOp
Mapping between a function and an operation.
Definition
menu.h:37
MenuOpSeq
Mapping between an operation and a key sequence.
Definition
menu.h:47
NeoMutt
Container for Accounts, Notifications.
Definition
neomutt.h:41
SubMenu
Collection of related functions.
Definition
menudef.h:33
MENU_FUZZY
@ MENU_FUZZY
Fuzzy searcher.
Definition
type.h:43