* src/compose.c
[claws.git] / src / folder.h
index dde2f22b10305301dde0bd42d4c4d2f8c50bf531..4cdf09b9c09e5b53bad3b01654c540957c3185a7 100644 (file)
@@ -104,6 +104,9 @@ typedef void (*FolderDestroyNotify) (Folder         *folder,
                                         gpointer        data);
 typedef void (*FolderItemFunc)         (FolderItem     *item,
                                         gpointer        data);
+typedef void (*FolderItemUpdateFunc)   (FolderItem     *item,
+                                        gboolean        contentchange,
+                                        gpointer        data);
 
 struct _Folder
 {
@@ -133,6 +136,9 @@ struct _Folder
                                         FolderItem     *item,
                                         gboolean        use_cache);
 */
+       FolderItem *(*item_new)         (Folder         *folder);
+       void     (*item_destroy)        (Folder         *folder,
+                                        FolderItem     *item);
        gchar *  (*fetch_msg)           (Folder         *folder,
                                         FolderItem     *item,
                                         gint            num);
@@ -170,8 +176,9 @@ struct _Folder
                                         FolderItem     *item,
                                         MsgInfo        *msginfo);
        gint     (*scan)                (Folder         *folder);
-       GSList  * (*get_num_list)       (Folder         *folder,
-                                        FolderItem     *item);
+       gint     (*get_num_list)        (Folder         *folder,
+                                        FolderItem     *item,
+                                        GSList        **list);
        void     (*scan_tree)           (Folder         *folder);
 
        gint     (*create_tree)         (Folder         *folder);
@@ -348,6 +355,8 @@ 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_msg            (FolderItem     *dest,
                                         MsgInfo        *msginfo);
 gint   folder_item_move_msgs_with_dest (FolderItem     *dest,
@@ -366,7 +375,6 @@ gboolean folder_item_is_msg_changed (FolderItem     *item,
 gchar *folder_item_get_cache_file      (FolderItem     *item);
 gchar *folder_item_get_mark_file       (FolderItem     *item);
 gchar * folder_item_get_identifier(FolderItem * item);
-FolderItem * folder_find_item_from_identifier(const gchar *identifier);
 
 GHashTable *folder_persist_prefs_new   (Folder *folder);
 void folder_persist_prefs_free         (GHashTable *pptable);
@@ -380,4 +388,13 @@ void folder_item_set_default_flags (FolderItem *dest, MsgFlags *flags);
 
 void folder_item_apply_processing      (FolderItem *item);
 
+void folder_update_item                        (FolderItem *item,
+                                        gboolean contentchange);
+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__ */