NeoMutt  2021-02-05-666-ge300cd
Teaching an old dog new tricks
DOXYGEN
lib.h
Go to the documentation of this file.
1 
40 #ifndef MUTT_INDEX_LIB_H
41 #define MUTT_INDEX_LIB_H
42 
43 #include <stdbool.h>
44 #include <stdint.h>
45 #include <stdio.h>
46 #include "mutt/lib.h"
47 #include "core/lib.h"
48 #include "functions.h"
49 #include "mx.h" // IWYU pragma: keep
50 #include "shared_data.h" // IWYU pragma: keep
51 
52 struct Context;
53 struct Email;
54 struct Menu;
55 struct MuttWindow;
56 
57 typedef uint8_t NotifyIndex;
58 #define NT_INDEX_NO_FLAGS 0
59 #define NT_INDEX_ADD (1 << 0)
60 #define NT_INDEX_DELETE (1 << 1)
61 #define NT_INDEX_SUBSET (1 << 2)
62 #define NT_INDEX_ACCOUNT (1 << 3)
63 #define NT_INDEX_CONTEXT (1 << 4)
64 #define NT_INDEX_MAILBOX (1 << 5)
65 #define NT_INDEX_EMAIL (1 << 6)
66 
67 typedef uint8_t CheckFlags;
68 #define CHECK_NO_FLAGS 0
69 #define CHECK_IN_MAILBOX (1 << 0)
70 #define CHECK_MSGCOUNT (1 << 1)
71 #define CHECK_VISIBLE (1 << 2)
72 #define CHECK_READONLY (1 << 3)
73 #define CHECK_ATTACH (1 << 4)
74 
75 int index_color(struct Menu *menu, int line);
76 void index_make_entry(struct Menu *menu, char *buf, size_t buflen, int line);
77 void mutt_draw_statusline(struct MuttWindow *win, int cols, const char *buf, size_t buflen);
78 struct Mailbox *mutt_index_menu(struct MuttWindow *dlg, struct Mailbox *m);
79 void mutt_set_header_color(struct Mailbox *m, struct Email *e);
80 void mutt_update_index(struct Menu *menu, struct Context *ctx, enum MxStatus check, int oldcount, struct IndexSharedData *shared);
81 struct MuttWindow *index_pager_init(void);
83 bool check_acl(struct Mailbox *m, AclFlags acl, const char *msg);
84 int ci_next_undeleted(struct Mailbox *m, int msgno);
85 void update_index(struct Menu *menu, struct Context *ctx, enum MxStatus check, int oldcount, const struct IndexSharedData *shared);
86 void change_folder_mailbox(struct Menu *menu, struct Mailbox *m, int *oldcount, struct IndexSharedData *shared, bool read_only);
87 void collapse_all(struct Context *ctx, struct Menu *menu, int toggle);
88 void change_folder_string(struct Menu *menu, char *buf, size_t buflen, int *oldcount, struct IndexSharedData *shared, bool *pager_return, bool read_only);
89 int ci_previous_undeleted(struct Mailbox *m, int msgno);
90 int ci_first_message(struct Mailbox *m);
91 void resort_index(struct Context *ctx, struct Menu *menu);
92 int mx_toggle_write(struct Mailbox *m);
93 extern const struct Mapping IndexNewsHelp[];
94 struct Mailbox *change_folder_notmuch(struct Menu *menu, char *buf, int buflen, int *oldcount, struct IndexSharedData *shared, bool read_only);
95 
96 #endif /* MUTT_INDEX_LIB_H */
The "current" mailbox.
Definition: context.h:37
The envelope/body of an email.
Definition: email.h:37
Definition: lib.h:67
Data passed to a notification function.
Definition: observer.h:39
void mutt_draw_statusline(struct MuttWindow *win, int cols, const char *buf, size_t buflen)
Draw a highlighted status bar.
Definition: dlg_index.c:875
int index_color(struct Menu *menu, int line)
Calculate the colour for a line of the index - Implements Menu::color() -.
Definition: dlg_index.c:843
struct MuttWindow * index_pager_init(void)
Allocate the Windows for the Index/Pager.
Definition: dlg_index.c:1406
int ci_next_undeleted(struct Mailbox *m, int msgno)
Find the next undeleted email.
Definition: dlg_index.c:227
uint8_t NotifyIndex
Flags, e.g. NT_INDEX_ACCOUNT.
Definition: lib.h:55
Data shared between Index, Pager and Sidebar.
Definition: shared_data.h:36
void change_folder_string(struct Menu *menu, char *buf, size_t buflen, int *oldcount, struct IndexSharedData *shared, bool *pager_return, bool read_only)
Change to a different Mailbox by string.
Definition: dlg_index.c:720
Index functions.
int mx_toggle_write(struct Mailbox *m)
Toggle the mailbox&#39;s readonly flag.
Definition: mx.c:1830
const struct Mapping IndexNewsHelp[]
Help Bar for the News Index dialog.
Definition: dlg_index.c:122
void change_folder_mailbox(struct Menu *menu, struct Mailbox *m, int *oldcount, struct IndexSharedData *shared, bool read_only)
Change to a different Mailbox by pointer.
Definition: dlg_index.c:577
void update_index(struct Menu *menu, struct Context *ctx, enum MxStatus check, int oldcount, const struct IndexSharedData *shared)
Update the index.
Definition: dlg_index.c:496
uint8_t CheckFlags
Flags, e.g. CHECK_IN_MAILBOX.
Definition: lib.h:67
API for mailboxes.
void mutt_update_index(struct Menu *menu, struct Context *ctx, enum MxStatus check, int oldcount, struct IndexSharedData *shared)
Update the index.
Definition: dlg_index.c:541
Convenience wrapper for the core headers.
struct Mailbox * mutt_index_menu(struct MuttWindow *dlg, struct Mailbox *m)
Display a list of emails.
Definition: dlg_index.c:1035
int ci_previous_undeleted(struct Mailbox *m, int msgno)
Find the previous undeleted email.
Definition: dlg_index.c:250
void resort_index(struct Context *ctx, struct Menu *menu)
Resort the index.
Definition: dlg_index.c:330
uint16_t AclFlags
ACL Rights - These show permission to...
Definition: mailbox.h:62
int mutt_dlgindex_observer(struct NotifyCallback *nc)
A mailbox.
Definition: mailbox.h:81
void collapse_all(struct Context *ctx, struct Menu *menu, int toggle)
Collapse/uncollapse all threads.
Definition: dlg_index.c:171
int ci_first_message(struct Mailbox *m)
Get index of first new message.
Definition: dlg_index.c:274
void index_make_entry(struct Menu *menu, char *buf, size_t buflen, int line)
Format a menu item for the index list - Implements Menu::make_entry() -.
Definition: dlg_index.c:761
struct Mailbox * change_folder_notmuch(struct Menu *menu, char *buf, int buflen, int *oldcount, struct IndexSharedData *shared, bool read_only)
Change to a different Notmuch Mailbox by string.
Definition: dlg_index.c:695
Mapping between user-readable string and a constant.
Definition: mapping.h:31
bool check_acl(struct Mailbox *m, AclFlags acl, const char *msg)
Check the ACLs for a function.
Definition: dlg_index.c:144
Convenience wrapper for the library headers.
MxStatus
Return values from mbox_check(), mbox_check_stats(), mbox_snc(), and mbox_close() ...
Definition: mxapi.h:75
void mutt_set_header_color(struct Mailbox *m, struct Email *e)
Select a colour for a message.
Definition: dlg_index.c:1382
Data shared between Index, Pager and Sidebar.