2006-10-04 [colin] 2.5.2cvs42
[claws.git] / src / folder.h
index 834320ecca7db140a9a0568852dc017b51b30ba8..a349e9a16864375ced6f99026138e0a0ae7cd7c1 100644 (file)
@@ -2,7 +2,7 @@
 
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2003 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2006 Hiroyuki Yamamoto and the Sylpheed-Claws team
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -104,7 +104,8 @@ typedef enum
        FOLDER_REMOVE_FOLDER            = 1 << 1,
        FOLDER_TREE_CHANGED             = 1 << 2,
        FOLDER_ADD_FOLDERITEM           = 1 << 3,
-       FOLDER_REMOVE_FOLDERITEM        = 1 << 4
+       FOLDER_REMOVE_FOLDERITEM        = 1 << 4,
+       FOLDER_RENAME_FOLDERITEM        = 1 << 5
 } FolderUpdateFlags;
 
 typedef enum
@@ -573,6 +574,11 @@ struct _FolderClass
                                                 FolderItem     *item,
                                                 gboolean        batch);
        void            (*synchronise)          (FolderItem     *item);
+       gboolean        (*subscribe)            (Folder         *folder,
+                                                const gchar    *uri);
+       void            (*get_sort_type)        (Folder         *folder,
+                                                FolderSortKey  *sort_key,
+                                                FolderSortType *sort_type);
 };
 
 struct _FolderItem
@@ -628,6 +634,7 @@ struct _FolderItem
        /* for faster search of special parents */
        SpecialFolderItemType parent_stype;
        gboolean processing_pending;
+       gboolean scanning;
 };
 
 struct _PersistPrefs
@@ -741,6 +748,8 @@ gchar *folder_item_get_path         (FolderItem     *item);
 gint   folder_item_open                        (FolderItem     *item);
 gint   folder_item_close               (FolderItem     *item);
 gint   folder_item_scan                        (FolderItem     *item);
+gint   folder_item_scan_full           (FolderItem     *item, 
+                                        gboolean        filtering);
 gint   folder_item_syncronize_flags    (FolderItem     *item);
 void   folder_item_scan_foreach                (GHashTable     *table);
 MsgInfo *folder_item_get_msginfo       (FolderItem     *item,
@@ -795,7 +804,7 @@ const PersistPrefs *folder_get_persist_prefs
                                        (GHashTable *pptable, const char *name);
 
 void folder_item_restore_persist_prefs (FolderItem *item, GHashTable *pptable);
-void folder_clean_cache_memory         (void);
+void folder_clean_cache_memory         (FolderItem *protected_item);
 void folder_clean_cache_memory_force   (void);
 void folder_item_write_cache           (FolderItem *item);
 void folder_item_set_default_flags     (FolderItem *dest, MsgFlags *flags);
@@ -816,4 +825,13 @@ void folder_item_process_open              (FolderItem *item,
                                         void (*before_proc_func)(gpointer data),
                                         void (*after_proc_func)(gpointer data),
                                         gpointer data);
+gboolean folder_subscribe              (const gchar *uri);
+gboolean folder_have_mailbox           (void);
+gboolean folder_item_free_cache                (FolderItem *item, gboolean force);
+void folder_item_change_type           (FolderItem *item,
+                                        SpecialFolderItemType newtype);
+gboolean folder_get_sort_type          (Folder         *folder,
+                                        FolderSortKey  *sort_key,
+                                        FolderSortType *sort_type);
+
 #endif /* __FOLDER_H__ */