#include <glib.h>
#include <time.h>
-typedef struct _Folder Folder;
-typedef struct _LocalFolder LocalFolder;
-typedef struct _RemoteFolder RemoteFolder;
+typedef struct _Folder Folder;
+typedef struct _LocalFolder LocalFolder;
+typedef struct _RemoteFolder RemoteFolder;
#if 0
-typedef struct _MaildirFolder MaildirFolder;
+typedef struct _MaildirFolder MaildirFolder;
#endif
-typedef struct _FolderItem FolderItem;
+typedef struct _FolderItem FolderItem;
+typedef struct _FolderItemUpdateData FolderItemUpdateData;
#include "prefs_folder_item.h"
#define FOLDER_ITEM(obj) ((FolderItem *)obj)
+#define FOLDER_ITEM_UPDATE_HOOKLIST "folder_item_update"
+
typedef enum
{
F_MH,
SORT_DESCENDING
} FolderSortType;
+typedef enum
+{
+ F_MOVE_OK,
+ F_MOVE_FAILED_DEST_IS_PARENT,
+ F_MOVE_FAILED_DEST_IS_CHILD,
+ F_MOVE_FAILED_DEST_OUTSIDE_MAILBOX,
+ F_MOVE_FAILED
+} FolderMoveStatus;
+
typedef void (*FolderUIFunc) (Folder *folder,
FolderItem *item,
gpointer data);
gpointer data);
typedef void (*FolderItemFunc) (FolderItem *item,
gpointer data);
-typedef void (*FolderItemUpdateFunc) (FolderItem *item,
- gboolean contentchange,
- gpointer data);
struct _Folder
{
gchar * (*fetch_msg) (Folder *folder,
FolderItem *item,
gint num);
- MsgInfo *(*fetch_msginfo) (Folder *folder,
+ MsgInfo * (*get_msginfo) (Folder *folder,
FolderItem *item,
gint num);
- GSList *(*fetch_msginfos) (Folder *folder,
+ GSList * (*get_msginfos) (Folder *folder,
FolderItem *item,
GSList *msgnum_list);
gint (*add_msg) (Folder *folder,
gint new;
gint unread;
gint total;
+ gint unreadmarked;
gint last_num;
guint ret_rcpt : 1; /* CLAWS */
} PersistPrefs;
+struct _FolderItemUpdateData
+{
+ FolderItem *item;
+ gboolean content_change;
+};
+
Folder *folder_new (FolderType type,
const gchar *name,
const gchar *path);
gpointer data);
void folder_count_total_msgs (guint *new,
guint *unread,
+ guint *unreadmarked,
guint *total);
Folder *folder_find_from_path (const gchar *path);
gchar *folder_get_path (Folder *folder);
gchar *folder_item_get_path (FolderItem *item);
+gint folder_item_open (FolderItem *item);
+void folder_item_close (FolderItem *item);
gint folder_item_scan (FolderItem *item);
void folder_item_scan_foreach (GHashTable *table);
-MsgInfo *folder_item_fetch_msginfo (FolderItem *item,
+MsgInfo *folder_item_get_msginfo (FolderItem *item,
gint num);
-MsgInfo *folder_item_fetch_msginfo_by_id(FolderItem *item,
+MsgInfo *folder_item_get_msginfo_by_msgid(FolderItem *item,
const gchar *msgid);
GSList *folder_item_get_msg_list (FolderItem *item);
gchar *folder_item_fetch_msg (FolderItem *item,
gint folder_item_add_msg (FolderItem *dest,
const gchar *file,
gboolean remove_source);
-FolderItem *folder_item_move_to (FolderItem *src,
- FolderItem *dest);
+gint folder_item_move_to (FolderItem *src,
+ FolderItem *dest,
+ FolderItem **new_item);
gint folder_item_move_msg (FolderItem *dest,
MsgInfo *msginfo);
gint folder_item_move_msgs_with_dest (FolderItem *dest,
void folder_update_items_when_required (gboolean contentchange);
void folder_update_item_recursive (FolderItem *item,
gboolean update_summary);
-gint folder_item_update_callback_register(FolderItemUpdateFunc func,
- gpointer data);
-void folder_item_update_callback_unregister(gint id);
#endif /* __FOLDER_H__ */