aboutsummaryrefslogtreecommitdiffstats
path: root/mail/message-list.h
diff options
context:
space:
mode:
Diffstat (limited to 'mail/message-list.h')
-rw-r--r--mail/message-list.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/mail/message-list.h b/mail/message-list.h
index 0cdf0f78ea..8e150c8a3d 100644
--- a/mail/message-list.h
+++ b/mail/message-list.h
@@ -41,6 +41,11 @@ enum {
#define MESSAGE_LIST_COLUMN_IS_ACTIVE(col) (col == COL_MESSAGE_STATUS || \
col == COL_FLAGGED)
+#define ML_HIDE_NONE_START (0)
+#define ML_HIDE_NONE_END (2147483647)
+/* dont change */
+#define ML_HIDE_SAME (2147483646)
+
struct _MessageList {
ETableScrolled parent;
@@ -56,6 +61,13 @@ struct _MessageList {
GHashTable *uid_rowmap;
struct _EMemPool *uid_pool;
+ /* UID's to hide. Keys in the mempool */
+ /* IMPORTANT: You MUST have obtained the camel lock, to operate on these structures */
+ GHashTable *hidden;
+ struct _EMemPool *hidden_pool;
+ int hide_unhidden, /* total length, before hiding */
+ hide_before, hide_after; /* hide ranges of messages */
+
/* Current search string, or %NULL */
char *search;
@@ -100,6 +112,14 @@ void message_list_select (MessageList *message_list,
MessageListSelectDirection direction,
guint32 flags, guint32 mask);
+/* info */
+unsigned int message_list_length(MessageList *ml);
+
+/* hide specific messages */
+void message_list_hide_add(MessageList *ml, const char *expr, unsigned int lower, unsigned int upper);
+void message_list_hide_uids(MessageList *ml, GPtrArray *uids);
+void message_list_hide_clear(MessageList *ml);
+
void message_list_set_threaded(MessageList *ml, gboolean threaded);
void message_list_set_search(MessageList *ml, const char *search);