* sync with main changes of 2002-10-04
[claws.git] / src / folder.h
index c0d29d85dcbc13aa10c2d7a12f06bf3247bbb971..d0862c2cc78a9ae6d28d96968716e6d89d89e146 100644 (file)
@@ -180,6 +180,8 @@ struct _Folder
                                         const gchar    *name);
        gint     (*remove_folder)       (Folder         *folder,
                                         FolderItem     *item);
+
+       void     (*destroy)             (Folder         *folder);
        void     (*update_mark)         (Folder         *folder,
                                         FolderItem     *item);
        void     (*change_flags)        (Folder         *folder,
@@ -217,7 +219,6 @@ struct _FolderItem
 
        gchar *name;
        gchar *path;
-       PrefsAccount *account;
 
        time_t mtime;
 
@@ -239,6 +240,7 @@ struct _FolderItem
 
        gint op_count;
        guint opened    : 1; /* opened by summary view */
+       guint need_update    : 1; /* folderview for this folder should be updated */
 
        FolderSortKey sort_key;
        FolderSortType sort_type;
@@ -247,6 +249,10 @@ struct _FolderItem
 
        Folder *folder;
 
+       PrefsAccount *account;
+
+       gboolean apply_sub;
+       
        GSList *mark_queue;
 
        gpointer data;
@@ -277,7 +283,8 @@ void        folder_destroy          (Folder         *folder);
 void        folder_local_folder_destroy        (LocalFolder    *lfolder);
 void        folder_remote_folder_destroy(RemoteFolder  *rfolder);
 
-FolderItem *folder_item_new    (const gchar    *name,
+FolderItem *folder_item_new    (Folder         *folder,
+                                const gchar    *name,
                                 const gchar    *path);
 void        folder_item_append (FolderItem     *parent,
                                 FolderItem     *item);
@@ -297,6 +304,7 @@ GList *folder_get_list              (void);
 gint   folder_read_list                (void);
 void   folder_write_list       (void);
 void   folder_scan_tree                (Folder *folder);
+FolderItem *folder_create_folder(FolderItem    *parent, const gchar *name);
 void   folder_update_op_count          (void);
 void   folder_func_to_all_folders      (FolderItemFunc function,
                                         gpointer data);
@@ -321,7 +329,9 @@ FolderItem *folder_get_default_trash        (void);
 FolderItem *folder_get_default_processing (void);
 void folder_set_missing_folders                (void);
 
+gchar *folder_get_path                 (Folder         *folder);
 gchar *folder_item_get_path            (FolderItem     *item);
+
 gint   folder_item_scan                        (FolderItem     *item);
 void   folder_item_scan_foreach                (GHashTable     *table);
 MsgInfo *folder_item_fetch_msginfo     (FolderItem     *item,
@@ -364,4 +374,6 @@ void folder_clean_cache_memory              ();
 void folder_item_write_cache           (FolderItem *item);
 void folder_item_set_default_flags     (FolderItem *dest, MsgFlags *flags);
 
+void folder_item_apply_processing      (FolderItem *item);
+
 #endif /* __FOLDER_H__ */