EFL 1.7 svn doobies
[profile/ivi/efreet.git] / src / lib / Efreet.h
1 #ifndef EFREET_H
2 #define EFREET_H
3
4 /**
5  * @file Efreet.h
6  * @brief The file that must be included by any project wishing to use
7  * Efreet. Efreet.h provides all of the necessary headers and includes to
8  * work with Efreet.
9  */
10
11 /**
12  * @mainpage The Efreet Library
13  *
14  * @section intro Introduction
15  *
16  * Efreet is a library designed to help apps work several of the
17  * Freedesktop.org standards regarding Icons, Desktop files and Menus. To
18  * that end it implements the following specifications:
19  *
20  * @li XDG Base Directory Specification
21  * @li Icon Theme Specification
22  * @li Desktop Entry Specification
23  * @li Desktop Menu Specification
24  * @li FDO URI Specification
25  * @li Shared Mime Info Specification
26  * @li Trash Specification
27  */
28
29 #include <Eina.h>
30
31 #ifdef EAPI
32 # undef EAPI
33 #endif
34
35 #ifdef _WIN32
36 # ifdef EFL_EFREET_BUILD
37 #  ifdef DLL_EXPORT
38 #   define EAPI __declspec(dllexport)
39 #  else
40 #   define EAPI
41 #  endif /* ! DLL_EXPORT */
42 # else
43 #  define EAPI __declspec(dllimport)
44 # endif /* ! EFL_EFREET_BUILD */
45 #else
46 # ifdef __GNUC__
47 #  if __GNUC__ >= 4
48 #   define EAPI __attribute__ ((visibility("default")))
49 #  else
50 #   define EAPI
51 #  endif
52 # else
53 #  define EAPI
54 # endif
55 #endif
56
57 #ifdef __cplusplus
58 extern "C" {
59 #endif
60
61 #define EFREET_VERSION_MAJOR 1
62 #define EFREET_VERSION_MINOR 7
63    
64    typedef struct _Efreet_Version
65      {
66         int major;
67         int minor;
68         int micro;
69         int revision;
70      } Efreet_Version;
71    
72    EAPI extern Efreet_Version *efreet_version;
73    
74 #include "efreet_base.h"
75 #include "efreet_ini.h"
76 #include "efreet_icon.h"
77 #include "efreet_desktop.h"
78 #include "efreet_menu.h"
79 #include "efreet_utils.h"
80 #include "efreet_uri.h"
81
82 /**
83  * @return Value > @c 0 if the initialization was successful, @c 0 otherwise.
84  * @brief Initializes the Efreet system
85  */
86 EAPI int efreet_init(void);
87
88 /**
89  * @return The number of times the init function has been called minus the
90  * corresponding init call.
91  * @brief Shuts down Efreet if a balanced number of init/shutdown calls have
92  * been made
93  */
94 EAPI int efreet_shutdown(void);
95
96 /**
97  * @brief Resets language dependent variables and resets language dependent
98  * caches This must be called whenever the locale is changed.
99  * @since 1.7
100  */
101 EAPI void efreet_lang_reset(void);
102
103 #ifdef __cplusplus
104 }
105 #endif
106
107 #endif