summaryrefslogtreecommitdiff
path: root/src/lib/efreet/Efreet.h
diff options
context:
space:
mode:
authorGustavo Sverzut Barbieri <barbieri@gmail.com>2012-12-29 23:04:40 +0000
committerGustavo Sverzut Barbieri <barbieri@gmail.com>2012-12-29 23:04:40 +0000
commit4bc0210bd31ed1de6554441562bd93ea863ee9d9 (patch)
tree5d83be12538f8c8d3816bbf65916ce383d050c2e /src/lib/efreet/Efreet.h
parent727ddbeaf0c53f31cd62c254fdebe26823d537eb (diff)
efl: merge efreet.
seems to be fine, pass distcheck and friends. please report. changes: - documentation hierarchy fixes - replaced __UNUSED__ with EINA_UNUSED - replaced PKG_DATA_DIR with PACKAGE_DATA_DIR"/efreet" SVN revision: 81889
Diffstat (limited to 'src/lib/efreet/Efreet.h')
-rw-r--r--src/lib/efreet/Efreet.h152
1 files changed, 152 insertions, 0 deletions
diff --git a/src/lib/efreet/Efreet.h b/src/lib/efreet/Efreet.h
new file mode 100644
index 0000000..ae1ec18
--- /dev/null
+++ b/src/lib/efreet/Efreet.h
@@ -0,0 +1,152 @@
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 * @page efreet_main Efreet
13 *
14 * @section toc Table of Contents
15 *
16 * @li @ref efreet_main_intro
17 * @li @ref efreet_main_compiling
18 * @li @ref efreet_main_next_steps
19 *
20 * @section efreet_main_intro Introduction
21 *
22 * Efreet is a library designed to help apps work several of the
23 * Freedesktop.org standards regarding Icons, Desktop files and Menus. To
24 * that end it implements the following specifications:
25 *
26 * @li XDG Base Directory Specification
27 * @li Icon Theme Specification
28 * @li Desktop Entry Specification
29 * @li Desktop Menu Specification
30 * @li FDO URI Specification
31 * @li Shared Mime Info Specification
32 * @li Trash Specification
33 *
34 * @section efreet_main_compiling How to compile
35 *
36 * Efreet is a library your application links to. The procedure for
37 * this is very simple. You simply have to compile your application
38 * with the appropriate compiler flags that the @c pkg-config script
39 * outputs. Mime and Thrash are separated modules. For example, to
40 * compile with mime support:
41 *
42 * Compiling C or C++ files into object files:
43 *
44 * @verbatim
45 gcc -c -o main.o main.c `pkg-config --cflags efreet efreet-mime`
46 @endverbatim
47 *
48 * Linking object files into a binary executable:
49 *
50 * @verbatim
51 gcc -o my_application main.o `pkg-config --libs efreet efreet-mime`
52 @endverbatim
53 *
54 * See @ref pkgconfig
55 *
56 * @section efreet_main_next_steps Next Steps
57 *
58 * After you understood what Efreet is and installed it in your system
59 * you should proceed understanding the programming interface.
60 *
61 * Recommended reading:
62 *
63 * @li @ref Efreet_Base for base directory specification (XDG variables).
64 * @li @ref Efreet_Desktop to access .desktop files
65 * @li @ref Efreet_Menu to access menus of .desktop files
66 * @li @ref Efreet_Mime to identify files based on extension or header.
67 * @li @ref Efreet_Trash to access file trash implementation.
68 * @li @ref Efreet_Ini for parsing INI-like key-value files.
69 * @li @ref Efreet_Uri for URI parsing and encoding.
70 * @li @ref Efreet_Utils general utilities.
71 *
72 */
73
74#include <Eina.h>
75
76#ifdef EAPI
77# undef EAPI
78#endif
79
80#ifdef _WIN32
81# ifdef EFL_EFREET_BUILD
82# ifdef DLL_EXPORT
83# define EAPI __declspec(dllexport)
84# else
85# define EAPI
86# endif /* ! DLL_EXPORT */
87# else
88# define EAPI __declspec(dllimport)
89# endif /* ! EFL_EFREET_BUILD */
90#else
91# ifdef __GNUC__
92# if __GNUC__ >= 4
93# define EAPI __attribute__ ((visibility("default")))
94# else
95# define EAPI
96# endif
97# else
98# define EAPI
99# endif
100#endif
101
102#ifdef __cplusplus
103extern "C" {
104#endif
105
106#define EFREET_VERSION_MAJOR 1
107#define EFREET_VERSION_MINOR 8
108
109 typedef struct _Efreet_Version
110 {
111 int major;
112 int minor;
113 int micro;
114 int revision;
115 } Efreet_Version;
116
117 EAPI extern Efreet_Version *efreet_version;
118
119#include "efreet_base.h"
120#include "efreet_ini.h"
121#include "efreet_icon.h"
122#include "efreet_desktop.h"
123#include "efreet_menu.h"
124#include "efreet_utils.h"
125#include "efreet_uri.h"
126
127/**
128 * @return Value > @c 0 if the initialization was successful, @c 0 otherwise.
129 * @brief Initializes the Efreet system
130 */
131EAPI int efreet_init(void);
132
133/**
134 * @return The number of times the init function has been called minus the
135 * corresponding init call.
136 * @brief Shuts down Efreet if a balanced number of init/shutdown calls have
137 * been made
138 */
139EAPI int efreet_shutdown(void);
140
141/**
142 * @brief Resets language dependent variables and resets language dependent
143 * caches This must be called whenever the locale is changed.
144 * @since 1.7
145 */
146EAPI void efreet_lang_reset(void);
147
148#ifdef __cplusplus
149}
150#endif
151
152#endif