52 {
"sidebar-first", OP_SIDEBAR_FIRST },
53 {
"sidebar-last", OP_SIDEBAR_LAST },
54 {
"sidebar-next", OP_SIDEBAR_NEXT },
55 {
"sidebar-next-new", OP_SIDEBAR_NEXT_NEW },
56 {
"sidebar-open", OP_SIDEBAR_OPEN },
57 {
"sidebar-page-down", OP_SIDEBAR_PAGE_DOWN },
58 {
"sidebar-page-up", OP_SIDEBAR_PAGE_UP },
59 {
"sidebar-prev", OP_SIDEBAR_PREV },
60 {
"sidebar-prev-new", OP_SIDEBAR_PREV_NEW },
61 {
"sidebar-start-search", OP_SIDEBAR_START_SEARCH },
62 {
"sidebar-toggle-virtual", OP_SIDEBAR_TOGGLE_VIRTUAL },
63 {
"sidebar-toggle-visible", OP_SIDEBAR_TOGGLE_VISIBLE },
120 if (!(*sbep)->is_hidden)
122 wdata->
hil_index = ARRAY_FOREACH_IDX_sbep;
140 for (
int i = 0; i < count; i++)
158 for (
int i = 0; i < count; i++)
179 if ((*sbep)->mailbox->has_new || ((*sbep)->mailbox->msg_unread != 0))
192 struct SbEntry **sbep = NULL, **prev = NULL;
195 if (!(*sbep)->is_hidden)
218 struct SbEntry **sbep = NULL, **prev = NULL;
221 if ((*sbep)->mailbox->has_new || ((*sbep)->mailbox->msg_unread != 0))
242 int orig_hil_index =
wdata->hil_index;
244 wdata->hil_index = 0;
247 wdata->hil_index = orig_hil_index;
249 if (orig_hil_index ==
wdata->hil_index)
268 int orig_hil_index =
wdata->hil_index;
272 wdata->hil_index = orig_hil_index;
274 if (orig_hil_index ==
wdata->hil_index)
293 const int count =
event->count;
324 if ((max_entries == 0) || (
wdata->hil_index < 0))
327 const int count =
MAX(event->
count, 1);
328 const bool c_sidebar_next_new_wrap =
cs_subset_bool(fdata->
n->
sub,
"sidebar_next_new_wrap");
329 int orig_hil_index =
wdata->hil_index;
331 for (
int i = 0; i < count; i++)
379 int orig_hil_index =
wdata->hil_index;
380 const int page_size =
wdata->win->state.rows;
381 const int count =
MAX(event->
count, 1);
390 if (orig_hil_index ==
wdata->hil_index)
393 wdata->repage =
true;
410 int orig_hil_index =
wdata->hil_index;
411 const int page_size =
wdata->win->state.rows;
412 const int count =
MAX(event->
count, 1);
421 if (orig_hil_index ==
wdata->hil_index)
424 wdata->repage =
true;
441 const int count =
event->count;
472 if ((max_entries == 0) || (
wdata->hil_index < 0))
475 const int count =
MAX(event->
count, 1);
476 const bool c_sidebar_next_new_wrap =
cs_subset_bool(fdata->
n->
sub,
"sidebar_next_new_wrap");
477 int orig_hil_index =
wdata->hil_index;
479 for (
int i = 0; i < count; i++)
483 (c_sidebar_next_new_wrap &&
549 if (!event || !win || !win->
wdata)
552 const int op =
event->op;
#define ARRAY_IDX(head, elem)
Return the index of an element of the array.
#define ARRAY_EMPTY(head)
Check if an array is empty.
#define ARRAY_FOREACH_TO(elem, head, to)
Iterate from the beginning to an index.
#define ARRAY_SIZE(head)
The number of elements stored.
#define ARRAY_FOREACH_FROM(elem, head, from)
Iterate from an index to the end.
#define ARRAY_GET(head, idx)
Return the element at index.
#define ARRAY_FOREACH_FROM_TO(elem, head, from, to)
Iterate between two indexes.
int bool_str_toggle(struct ConfigSubset *sub, const char *name, struct Buffer *err)
Toggle the value of a bool.
bool cs_subset_bool(const struct ConfigSubset *sub, const char *name)
Get a boolean config item by name.
Convenience wrapper for the config headers.
Convenience wrapper for the core headers.
struct MuttWindow * dialog_find(struct MuttWindow *win)
Find the parent Dialog of a Window.
const char * dispatcher_get_retval_name(int rv)
Get the name of a return value.
void dispatcher_flush_on_error(int rv)
Flush pending keys after a dispatch error.
@ FR_SUCCESS
Valid function - successfully performed.
@ FR_UNKNOWN
Unknown function.
@ FR_ERROR
Valid function - error occurred.
@ FR_NO_ACTION
Valid function - no action performed.
void index_change_folder(struct MuttWindow *dlg, struct Mailbox *m)
Change the current folder, cautiously.
struct SubMenu * editor_get_submenu(void)
Get the Editor SubMenu.
Sidebar fuzzy search functions.
int sb_function_dispatcher(struct MuttWindow *win, const struct KeyEvent *event)
Perform a Sidebar function - Implements function_dispatcher_t -.
#define mutt_message(...)
#define mutt_debug(LEVEL,...)
Convenience wrapper for the gui headers.
GUI manage the main index (list of emails)
void km_menu_add_submenu(struct MenuDefinition *md, struct SubMenu *sm)
Add a SubMenu to a Menu Definition.
struct SubMenu * km_register_submenu(const struct MenuFuncOp functions[])
Register a submenu.
struct MenuDefinition * km_register_menu(int menu, const char *name)
Register a menu.
void km_menu_add_bindings(struct MenuDefinition *md, const struct MenuOpSeq bindings[])
Add Keybindings to a Menu.
@ LL_DEBUG1
Log at debug level 1.
#define MAX(a, b)
Return the maximum of two values.
@ MODULE_ID_SIDEBAR
ModuleSidebar, Sidebar
Convenience wrapper for the library headers.
bool mutt_window_is_visible(struct MuttWindow *win)
Is the Window visible?
void mutt_window_reflow(struct MuttWindow *win)
Resize a Window and its children.
@ WA_RECALC
Recalculate the contents of the Window.
void * neomutt_get_module_data(struct NeoMutt *n, enum ModuleId id)
Get the private data for a Module.
const char * opcodes_get_name(int op)
Get the name of an opcode.
An event such as a keypress.
int count
Optional count prefix, e.g. 3 for 3j
void * wdata
Private data.
WindowActionFlags actions
Actions to be performed, e.g. WA_RECALC.
Container for Accounts, Notifications.
struct ConfigSubset * sub
Inherited config items.
Info about folders in the sidebar.
@ MENU_SIDEBAR
Sidebar menu.