efl/src/lib/efreet/Efreet_Trash.h

105 lines
2.5 KiB
C

#ifndef EFREET_TRASH_H
#define EFREET_TRASH_H
#ifdef EAPI
# undef EAPI
#endif
#ifdef _WIN32
# ifdef EFL_EFREET_TRASH_BUILD
# ifdef DLL_EXPORT
# define EAPI __declspec(dllexport)
# else
# define EAPI
# endif /* ! DLL_EXPORT */
# else
# define EAPI __declspec(dllimport)
# endif /* ! EFL_EFREET_TRASH_BUILD */
#else
# ifdef __GNUC__
# if __GNUC__ >= 4
# define EAPI __attribute__ ((visibility("default")))
# else
# define EAPI
# endif
# else
# define EAPI
# endif
#endif
#ifdef __cplusplus
extern "C" {
#endif
/**
* @file Efreet_Trash.h
* @brief Contains the methods used to support the FDO trash specification.
* @addtogroup Efreet_Trash Efreet_Trash: The XDG Trash Specification
* Efreet_Trash.h provides all of the necessary headers and includes to
* work with Efreet_Trash.
*
* @ingroup Efreet
* @{
*/
/**
* @return @c 1 on success or @c 0 on failure.
* @brief Initializes the efreet trash system
*/
EAPI int efreet_trash_init(void);
/**
* @return No value.
* @brief Cleans up the efreet trash system
*/
EAPI int efreet_trash_shutdown(void);
/**
* @return The XDG Trash local directory or @c NULL on errors.
* Return value must be freed with eina_stringshare_del.
* @brief Retrieves the XDG Trash local directory
*/
EAPI const char *efreet_trash_dir_get(const char *for_file);
/**
* @param uri The local uri to move in the trash
* @param force_delete If you set this to @c 1 than files on different filesystems
* will be deleted permanently
* @return @c 1 on success, @c 0 on failure or @c -1 in case the uri is not on
* the same filesystem and force_delete is not set.
* @brief This function try to move the given uri to the trash. Files on
* different filesystem can't be moved to trash. If force_delete
* is @c 0 than non-local files will be ignored and @c -1 is returned, if you set
* force_delete to @c 1 non-local files will be deleted without asking.
*/
EAPI int efreet_trash_delete_uri(Efreet_Uri *uri, int force_delete);
/**
* @return A list of strings with filename (remember to free the list
* when you don't need anymore).
* @brief List all the files and directory currently inside the trash.
*/
EAPI Eina_List *efreet_trash_ls(void);
/**
* @return @c 1 if the trash is empty or @c 0 if some file are in.
* @brief Check if the trash is currently empty
*/
EAPI int efreet_trash_is_empty(void);
/**
* @return @c 1 on success or @c 0 on failure.
* @brief Delete all the files inside the trash.
*/
EAPI int efreet_trash_empty_trash(void);
/**
* @}
*/
#ifdef __cplusplus
}
#endif
#endif