X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fmodest-tny-folder.h;h=03c12b6b558e51df138c5a444aaf3817f729975a;hb=4a090c7aa0e2db13c93f4c04575dd18b0e5bcbfd;hp=fb08ebc9c8fc112c8f980e7e6e8d6b886eb2ac9f;hpb=d49cdf96f078545d3965f321c8f6a3251cc327dc;p=modest diff --git a/src/modest-tny-folder.h b/src/modest-tny-folder.h index fb08ebc..03c12b6 100644 --- a/src/modest-tny-folder.h +++ b/src/modest-tny-folder.h @@ -40,14 +40,23 @@ G_BEGIN_DECLS typedef enum { - MODEST_FOLDER_RULES_FOLDER_NON_WRITEABLE = 1 << 1, - MODEST_FOLDER_RULES_FOLDER_NON_DELETABLE = 1 << 2, - MODEST_FOLDER_RULES_FOLDER_NON_MOVEABLE = 1 << 3, - MODEST_FOLDER_RULES_FOLDER_NON_RENAMEABLE = 1 << 4, - MODEST_FOLDER_RULES_FOLDER_DONT_ACCEPT_FOLDERS = 1 << 5, - MODEST_FOLDER_RULES_FOLDER_DONT_ACCEPT_MSGS = 1 << 6 + MODEST_FOLDER_RULES_FOLDER_NON_WRITEABLE = 1 << 1, + MODEST_FOLDER_RULES_FOLDER_NON_DELETABLE = 1 << 2, + MODEST_FOLDER_RULES_FOLDER_NON_MOVEABLE = 1 << 3, + MODEST_FOLDER_RULES_FOLDER_NON_RENAMEABLE = 1 << 4, } ModestTnyFolderRules; +/** Note: This is not a derived TnyFolder type. These are just convenience + * functions for working with a TnyFolder. tinymail does not seem to offer any + * easy way to cause derived TnyFolders to be instantiated. + */ + +/* TODO: These "const TnyFolder*" arguments will eventually need to + * be "TnyFolder*". C cannot support constness for complex objects like C++ + * can, because it lacks the mutable keyword and doesn't allow both const + * and non-const get function overloads. + */ + /** * modest_tny_folder_guess_type: * @folder: a valid tnymail folder @@ -75,6 +84,16 @@ TnyFolderType modest_tny_folder_guess_folder_type (const TnyFolder *folder); TnyFolderType modest_tny_folder_guess_folder_type_from_name (const gchar *folder_name); +/** + * modest_tny_folder_is_remote_folder: + * @folder: a valid tnymail folder + * + * checks if the folder is part of the "remote" account + * + * Returns: TRUE if it's a remote folder, FALSE otherwise + */ +gboolean +modest_tny_folder_is_remote_folder (TnyFolder *folder); /** * modest_tny_folder_is_local_folder: @@ -84,8 +103,18 @@ TnyFolderType modest_tny_folder_guess_folder_type_from_name (const gchar *fol * * Returns: TRUE if it's a local folder, FALSE otherwise */ -gboolean modest_tny_folder_is_local_folder (const TnyFolder *folder); +gboolean modest_tny_folder_is_local_folder (TnyFolder *folder); +/** + * modest_tny_folder_is_memory_card_folder: + * @folder: a valid tnymail folder + * + * checks if the folder is part of the memory card account. + * + * Returns: TRUE if it's a memory card folder, FALSE otherwise + */ +gboolean +modest_tny_folder_is_memory_card_folder (TnyFolder *folder); /** * modest_tny_folder_get_local_folder_type: @@ -95,7 +124,7 @@ gboolean modest_tny_folder_is_local_folder (const TnyFolder *folder); * * Returns: TRUE if it's a local folder, FALSE otherwise */ -TnyFolderType modest_tny_folder_get_local_folder_type (const TnyFolder *folder); +TnyFolderType modest_tny_folder_get_local_or_mmc_folder_type (TnyFolder *folder); /** @@ -108,7 +137,72 @@ TnyFolderType modest_tny_folder_get_local_folder_type (const TnyFolder *folder) * Returns: the ModestTnyFolderRules rules (bitwise-OR) for this * folder */ -ModestTnyFolderRules modest_tny_folder_get_rules (const TnyFolder *folder); +ModestTnyFolderRules modest_tny_folder_get_rules (TnyFolder *folder); + +/** + * modest_tny_folder_is_outbox_for_account: + * @folder: a valid tnymail folder + * + * Discover whether this folder is the per-account outbox for the specified + * account. + * + * Returns: TRUE if this folder is the per-account outbox for the account. + */ +gboolean modest_tny_folder_is_outbox_for_account (TnyFolder *folder, + TnyAccount *account); + +/** + * modest_tny_folder_get_account: + * @folder: a folder + * + * Get the parent account of the folder or, for TnyMergeFolder + * instances, get the local-folders account. + * + * Returns: the account. You should call g_object_unref() on this. + */ +TnyAccount *modest_tny_folder_get_account (TnyFolder *folder); + +/** + * modest_tny_msg_get_header_unique_id: + * @header: a #TnyHeader + * + * This function returns a unique id for a message summary from + * a TnyHeader retrieved with tny_folder_get_headers. You can not use + * the TnyHeader returned by tny_msg_get_header because it has no uid. + * + * This uid is built from the folder URL string and the header uid, + * the caller of the function must free the unique id when no longer + * needed + * + * Returns: a unique identificator for a header object + **/ +gchar* modest_tny_folder_get_header_unique_id (TnyHeader *header); + +/** + * modest_tny_folder_has_subfolder_with_name: + * @folder: a #TnyFolderStore + * @name: the name to check into subfolders. + * + * This function check if subfolders of @folder has the same + * name as @name. + * + * Returns: TRUE if some subfolder has the name @name. + **/ +gboolean modest_tny_folder_has_subfolder_with_name (TnyFolderStore *folder, + const gchar *name); + +/** + * modest_tny_folder_is_ancestor: + * @folder: a #TnyFolder + * @ancestor: a #TnyFolderStore + * + * This function checks if @ancestor is an ancestor of @folder + * + * Returns: TRUE if @ancestor is an ancestor of @folder, FALSE + * otherwise + **/ +gboolean modest_tny_folder_is_ancestor (TnyFolder *folder, + TnyFolderStore *ancestor); G_END_DECLS