inital gtk2 patch
[claws.git] / src / folder.h
index 35abd7d1210eba2f8374d3fda239103cdb5b36ea..7a75f683fc3764a3b2e0bec29db2177f716c2d4c 100644 (file)
@@ -110,11 +110,8 @@ typedef enum
 typedef enum
 {
        FOLDER_TREE_CHANGED = 1 << 0,
-/*
-       maybe enhance with:
-       FOLDER_NEW_FOLDERITEM
-       FOLDER_REMOVE_FOLDERITEM
-*/
+       FOLDER_NEW_FOLDERITEM = 1 << 1,
+       FOLDER_REMOVE_FOLDERITEM = 1 << 2,
 } FolderUpdateFlags;
 
 typedef enum
@@ -214,7 +211,8 @@ struct _FolderClass
        GSList          *(*get_msginfos)        (Folder         *folder,
                                                 FolderItem     *item,
                                                 MsgNumberList  *msgnum_list);
-       gchar           *(*fetch_msg)           (Folder         *folder,
+       /* return value is locale charset */
+       gchar           *(*fetch_msg)           (Folder         *folder,
                                                 FolderItem     *item,
                                                 gint            num);
        gint            (*add_msg)              (Folder         *folder,
@@ -271,8 +269,8 @@ struct _FolderItem
 {
        SpecialFolderItemType stype;
 
-       gchar *name;
-       gchar *path;
+       gchar *name; /* UTF-8 */
+       gchar *path; /* UTF-8 */
 
        time_t mtime;
 
@@ -332,9 +330,7 @@ struct _FolderUpdateData
 {
        Folder                  *folder;
        FolderUpdateFlags        update_flags;
-/*
-       FolderItem              *item
-*/
+       FolderItem              *item;
 };
 
 struct _FolderItemUpdateData
@@ -359,13 +355,14 @@ void        folder_destroy                (Folder         *folder);
 void        folder_local_folder_destroy        (LocalFolder    *lfolder);
 void        folder_remote_folder_destroy(RemoteFolder  *rfolder);
 
-FolderItem *folder_item_new    (Folder         *folder,
-                                const gchar    *name,
-                                const gchar    *path);
-void        folder_item_append (FolderItem     *parent,
-                                FolderItem     *item);
-void        folder_item_remove (FolderItem     *item);
-void        folder_item_destroy        (FolderItem     *item);
+FolderItem *folder_item_new            (Folder         *folder,
+                                        const gchar    *name,
+                                        const gchar    *path);
+void        folder_item_append         (FolderItem     *parent,
+                                        FolderItem     *item);
+void        folder_item_remove         (FolderItem     *item);
+void        folder_item_remove_children        (FolderItem     *item);
+void        folder_item_destroy                (FolderItem     *item);
 
 void        folder_set_ui_func (Folder         *folder,
                                 FolderUIFunc    func,
@@ -411,6 +408,7 @@ FolderItem *folder_get_default_processing (void);
 void folder_set_missing_folders                (void);
 void folder_unref_account_all          (PrefsAccount   *account);
 
+/* return value is locale encoded file name */
 gchar *folder_item_get_path            (FolderItem     *item);
 
 gint   folder_item_open                        (FolderItem     *item);
@@ -422,6 +420,7 @@ MsgInfo *folder_item_get_msginfo    (FolderItem     *item,
 MsgInfo *folder_item_get_msginfo_by_msgid(FolderItem   *item,
                                         const gchar    *msgid);
 GSList *folder_item_get_msg_list       (FolderItem     *item);
+/* return value is locale charset */
 gchar *folder_item_fetch_msg           (FolderItem     *item,
                                         gint            num);
 gint   folder_item_add_msg             (FolderItem     *dest,
@@ -452,6 +451,7 @@ void        folder_item_change_msg_flags    (FolderItem     *item,
                                         MsgPermFlags    newflags);
 gboolean folder_item_is_msg_changed    (FolderItem     *item,
                                         MsgInfo        *msginfo);
+/* return value is locale chaset */
 gchar *folder_item_get_cache_file      (FolderItem     *item);
 gchar *folder_item_get_mark_file       (FolderItem     *item);
 gchar * folder_item_get_identifier     (FolderItem * item);