0.9.0claws55
[claws.git] / src / folder.h
index a8d4d9c0c1d38ccf4990c090739de37739150c38..5b80bc8bea8cac0cfc4ec3d09aa6aa2785f137fd 100644 (file)
@@ -31,6 +31,8 @@ typedef struct _RemoteFolder          RemoteFolder;
 typedef struct _MaildirFolder          MaildirFolder;
 #endif
 typedef struct _FolderItem             FolderItem;
+
+typedef struct _FolderUpdateData       FolderUpdateData;
 typedef struct _FolderItemUpdateData   FolderItemUpdateData;
 
 #define FOLDER(obj)            ((Folder *)obj)
@@ -50,6 +52,7 @@ typedef struct _FolderItemUpdateData  FolderItemUpdateData;
 
 #define FOLDER_ITEM(obj)       ((FolderItem *)obj)
 
+#define FOLDER_UPDATE_HOOKLIST "folder_update"
 #define FOLDER_ITEM_UPDATE_HOOKLIST "folder_item_update"
 
 typedef enum
@@ -104,6 +107,16 @@ typedef enum
        F_MOVE_FAILED = -4,
 } FolderItemMoveResult;
 
+typedef enum
+{
+       FOLDER_TREE_CHANGED = 1 << 0,
+/*
+       maybe enhance with:
+       FOLDER_NEW_FOLDERITEM
+       FOLDER_REMOVE_FOLDERITEM
+*/
+} FolderUpdateFlags;
+
 typedef enum
 {
        F_ITEM_UPDATE_MSGCNT = 1 << 0,
@@ -300,6 +313,15 @@ typedef struct {
        guint           ret_rcpt        : 1; /* CLAWS */
 } PersistPrefs;
 
+struct _FolderUpdateData
+{
+       Folder                  *folder;
+       FolderUpdateFlags        update_flags;
+/*
+       FolderItem              *item
+*/
+};
+
 struct _FolderItemUpdateData
 {
        FolderItem              *item;