[controlbar] remove APIs about diasble, animation
[framework/uifw/elementary.git] / src / lib / Elementary.h.in
1 /*
2  *
3  * vim:ts=8:sw=3:sts=3:expandtab:cino=>5n-3f0^-2{2(0W1st0
4  */
5 #ifndef ELEMENTARY_H
6 #define ELEMENTARY_H
7
8 /**
9  * @file Elementary.h
10  * @brief Elementary's API
11  *
12  * Elementary API.
13  */
14
15 @ELM_UNIX_DEF@ ELM_UNIX
16 @ELM_WIN32_DEF@ ELM_WIN32
17 @ELM_WINCE_DEF@ ELM_WINCE
18 @ELM_EDBUS_DEF@ ELM_EDBUS
19 @ELM_EFREET_DEF@ ELM_EFREET
20 @ELM_ETHUMB_DEF@ ELM_ETHUMB
21 @ELM_DEBUG_DEF@ ELM_DEBUG
22 @ELM_ALLOCA_H_DEF@ ELM_ALLOCA_H
23 @ELM_LIBINTL_H_DEF@ ELM_LIBINTL_H
24
25 /* Standard headers for standard system calls etc. */
26 #include <stdio.h>
27 #include <stdlib.h>
28 #include <unistd.h>
29 #include <string.h>
30 #include <sys/types.h>
31 #include <sys/stat.h>
32 #include <sys/time.h>
33 #include <sys/param.h>
34 #include <dlfcn.h>
35 #include <math.h>
36 #include <fnmatch.h>
37 #include <limits.h>
38 #include <ctype.h>
39 #include <time.h>
40 #include <dirent.h>
41 #include <pwd.h>
42 #include <errno.h>
43
44 #ifdef ELM_UNIX
45 # include <locale.h>
46 # ifdef ELM_LIBINTL_H
47 #  include <libintl.h>
48 # endif
49 # include <signal.h>
50 # include <grp.h>
51 # include <glob.h>
52 #endif
53
54 #ifdef ELM_ALLOCA_H
55 # include <alloca.h>
56 #endif
57
58 #if defined (ELM_WIN32) || defined (ELM_WINCE)
59 # include <malloc.h>
60 # ifndef alloca
61 #  define alloca _alloca
62 # endif
63 #endif
64
65
66 /* EFL headers */
67 #include <Eina.h>
68 #include <Eet.h>
69 #include <Evas.h>
70 #include <Ecore.h>
71 #include <Ecore_Evas.h>
72 #include <Ecore_File.h>
73 #include <Ecore_IMF.h>
74 #include <Edje.h>
75
76 #ifdef ELM_EDBUS
77 # include <E_DBus.h>
78 # include <E_Hal.h>
79 #endif
80
81 #ifdef ELM_EFREET
82 # include <Efreet.h>
83 # include <Efreet_Mime.h>
84 # include <Efreet_Trash.h>
85 #endif
86
87 #ifdef ELM_ETHUMB
88 # include <Ethumb_Client.h>
89 #endif
90
91 #ifdef EAPI
92 # undef EAPI
93 #endif
94
95 #ifdef _WIN32
96 # ifdef ELEMENTARY_BUILD
97 #  ifdef DLL_EXPORT
98 #   define EAPI __declspec(dllexport)
99 #  else
100 #   define EAPI
101 #  endif /* ! DLL_EXPORT */
102 # else
103 #  define EAPI __declspec(dllimport)
104 # endif /* ! EFL_EVAS_BUILD */
105 #else
106 # ifdef __GNUC__
107 #  if __GNUC__ >= 4
108 #   define EAPI __attribute__ ((visibility("default")))
109 #  else
110 #   define EAPI
111 #  endif
112 # else
113 #  define EAPI
114 # endif
115 #endif /* ! _WIN32 */
116
117
118 /* allow usage from c++ */
119 #ifdef __cplusplus
120 extern "C" {
121 #endif
122
123 #define ELM_VERSION_MAJOR @VMAJ@
124 #define ELM_VERSION_MINOR @VMIN@
125
126    typedef struct _Elm_Version
127      {
128         int major;
129         int minor;
130         int micro;
131         int revision;
132      } Elm_Version;
133
134    EAPI extern Elm_Version *elm_version;
135
136 /* handy macros */
137 #define ELM_RECTS_INTERSECT(x, y, w, h, xx, yy, ww, hh) (((x) < ((xx) + (ww))) && ((y) < ((yy) + (hh))) && (((x) + (w)) > (xx)) && (((y) + (h)) > (yy)))
138 #define ELM_PI 3.14159265358979323846
139
140   /**
141    * Defines couple of standard Evas_Object layers to be used
142    * with evas_object_layer_set().
143    *
144    * @note whenever extending with new values, try to keep some padding
145    *       to siblings so there is room for further extensions.
146    */
147   typedef enum _Elm_Object_Layer
148     {
149        ELM_OBJECT_LAYER_BACKGROUND = EVAS_LAYER_MIN + 64, /**< where to place backgrounds */
150        ELM_OBJECT_LAYER_DEFAULT = 0, /**< Evas_Object default layer (and thus for Elementary) */
151        ELM_OBJECT_LAYER_FOCUS = EVAS_LAYER_MAX - 128, /**< where focus object visualization is */
152        ELM_OBJECT_LAYER_TOOLTIP = EVAS_LAYER_MAX - 64, /**< where to show tooltips */
153        ELM_OBJECT_LAYER_CURSOR = EVAS_LAYER_MAX - 32, /**< where to show cursors */
154        ELM_OBJECT_LAYER_LAST /**< last layer known by Elementary */
155     } Elm_Object_Layer;
156
157 /**************************************************************************/
158    EAPI extern int ELM_ECORE_EVENT_ETHUMB_CONNECT;
159
160    /* Objects */
161    /**
162     * Emitted when policy value changed.
163     */
164    EAPI extern int ELM_EVENT_POLICY_CHANGED;
165    typedef struct _Elm_Event_Policy_Changed
166      {
167         unsigned int policy;
168         int          new_value;
169         int          old_value;
170      } Elm_Event_Policy_Changed;
171
172    /**
173     * Policy identifiers.
174     *
175     * @see elm_policy_set()
176     */
177    typedef enum _Elm_Policy
178      {
179         ELM_POLICY_QUIT, /**< when should quit application automatically.
180                           * @see Elm_Policy_Quit.
181                           */
182         ELM_POLICY_LAST
183      } Elm_Policy;
184
185    typedef enum _Elm_Policy_Quit
186      {
187         ELM_POLICY_QUIT_NONE = 0, /**< never quit application automatically */
188         ELM_POLICY_QUIT_LAST_WINDOW_CLOSED /**< quit when last window is closed */
189      } Elm_Policy_Quit;
190
191    typedef enum _Elm_Focus_Direction
192      {
193         ELM_FOCUS_PREVIOUS,
194         ELM_FOCUS_NEXT
195      } Elm_Focus_Direction;
196
197    typedef enum _Elm_Text_Format
198      {
199         ELM_TEXT_FORMAT_PLAIN_UTF8,
200         ELM_TEXT_FORMAT_MARKUP_UTF8
201      } Elm_Text_Format;
202
203    /**
204     * Called back when a widget's tooltip is activated and needs content.
205     * @param data user-data given to elm_object_tooltip_content_cb_set()
206     * @param obj owner widget.
207     */
208    typedef Evas_Object *(*Elm_Tooltip_Content_Cb) (void *data, Evas_Object *obj);
209
210    /**
211     * Called back when a widget's item tooltip is activated and needs content.
212     * @param data user-data given to elm_object_tooltip_content_cb_set()
213     * @param obj owner widget.
214     * @param item context dependent item. As an example, if tooltip was
215     *        set on Elm_List_Item, then it is of this type.
216     */
217    typedef Evas_Object *(*Elm_Tooltip_Item_Content_Cb) (void *data, Evas_Object *obj, void *item);
218
219    typedef Eina_Bool (*Elm_Event_Cb) (void *data, Evas_Object *obj, Evas_Object *src, Evas_Callback_Type type, void *event_info);
220
221 #ifndef ELM_LIB_QUICKLAUNCH
222 #define ELM_MAIN() int main(int argc, char **argv) {elm_init(argc, argv); return elm_main(argc, argv);}
223 #else
224 #define ELM_MAIN() int main(int argc, char **argv) {return elm_quicklaunch_fallback(argc, argv);}
225 #endif
226
227 /**************************************************************************/
228    /* General calls */
229    EAPI int          elm_init(int argc, char **argv);
230    EAPI int          elm_shutdown(void);
231    EAPI void         elm_run(void);
232    EAPI void         elm_exit(void);
233
234    EAPI void         elm_quicklaunch_mode_set(Eina_Bool ql_on);
235    EAPI Eina_Bool    elm_quicklaunch_mode_get(void);
236    EAPI int          elm_quicklaunch_init(int argc, char **argv);
237    EAPI int          elm_quicklaunch_sub_init(int argc, char **argv);
238    EAPI int          elm_quicklaunch_sub_shutdown(void);
239    EAPI int          elm_quicklaunch_shutdown(void);
240    EAPI void         elm_quicklaunch_seed(void);
241    EAPI Eina_Bool    elm_quicklaunch_prepare(int argc, char **argv);
242    EAPI Eina_Bool    elm_quicklaunch_fork(int argc, char **argv, char *cwd, void (postfork_func) (void *data), void *postfork_data);
243    EAPI void         elm_quicklaunch_cleanup(void);
244    EAPI int          elm_quicklaunch_fallback(int argc, char **argv);
245    EAPI char        *elm_quicklaunch_exe_path_get(const char *exe);
246
247    EAPI Eina_Bool    elm_need_efreet(void);
248    EAPI Eina_Bool    elm_need_e_dbus(void);
249    EAPI Eina_Bool    elm_need_ethumb(void);
250
251    EAPI Eina_Bool    elm_policy_set(unsigned int policy, int value);
252    EAPI int          elm_policy_get(unsigned int policy);
253
254    EAPI void         elm_all_flush(void);
255    EAPI int          elm_cache_flush_interval_get(void);
256    EAPI void         elm_cache_flush_interval_set(int size);
257    EAPI void         elm_cache_flush_interval_all_set(int size);
258    EAPI Eina_Bool    elm_cache_flush_enabled_get(void);
259    EAPI void         elm_cache_flush_enabled_set(Eina_Bool enabled);
260    EAPI void         elm_cache_flush_enabled_all_set(Eina_Bool enabled);
261    EAPI int          elm_font_cache_get(void);
262    EAPI void         elm_font_cache_set(int size);
263    EAPI void         elm_font_cache_all_set(int size);
264    EAPI int          elm_image_cache_get(void);
265    EAPI void         elm_image_cache_set(int size);
266    EAPI void         elm_image_cache_all_set(int size);
267    EAPI int          elm_edje_file_cache_get(void);
268    EAPI void         elm_edje_file_cache_set(int size);
269    EAPI void         elm_edje_file_cache_all_set(int size);
270    EAPI int          elm_edje_collection_cache_get(void);
271    EAPI void         elm_edje_collection_cache_set(int size);
272    EAPI void         elm_edje_collection_cache_all_set(int size);
273
274    EAPI void         elm_object_scale_set(Evas_Object *obj, double scale) EINA_ARG_NONNULL(1);
275    EAPI double       elm_object_scale_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
276    EAPI Eina_Bool    elm_object_mirrored_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
277    EAPI void         elm_object_mirrored_set(Evas_Object *obj, Eina_Bool mirrored) EINA_ARG_NONNULL(1);
278    EAPI Eina_Bool    elm_object_mirrored_automatic_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
279    EAPI void         elm_object_mirrored_automatic_set(Evas_Object *obj, Eina_Bool automatic) EINA_ARG_NONNULL(1);
280    EAPI void         elm_object_style_set(Evas_Object *obj, const char *style) EINA_ARG_NONNULL(1);
281    EAPI const char  *elm_object_style_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
282    EAPI void         elm_object_disabled_set(Evas_Object *obj, Eina_Bool disabled) EINA_ARG_NONNULL(1);
283    EAPI Eina_Bool    elm_object_disabled_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
284
285    EAPI Eina_Bool    elm_object_widget_check(const Evas_Object *obj) EINA_ARG_NONNULL(1);
286    EAPI Evas_Object *elm_object_parent_widget_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
287    EAPI Evas_Object *elm_object_top_widget_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
288    EAPI const char  *elm_object_widget_type_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
289
290    EAPI double       elm_scale_get(void);
291    EAPI void         elm_scale_set(double scale);
292    EAPI void         elm_scale_all_set(double scale);
293
294    EAPI Eina_Bool    elm_mirrored_get(void);
295    EAPI void         elm_mirrored_set(Eina_Bool mirrored);
296
297    EAPI Eina_Bool    elm_config_save(void);
298    EAPI void         elm_config_reload(void);
299
300    EAPI const char  *elm_profile_current_get(void);
301    EAPI const char  *elm_profile_dir_get(const char *profile, Eina_Bool is_user);
302    EAPI void         elm_profile_dir_free(const char *p_dir);
303    EAPI Eina_List   *elm_profile_list_get(void);
304    EAPI void         elm_profile_list_free(Eina_List *l);
305    EAPI void         elm_profile_set(const char *profile);
306    EAPI void         elm_profile_all_set(const char *profile);
307
308    EAPI const char  *elm_engine_current_get(void);
309    EAPI void         elm_engine_set(const char *engine);
310
311   typedef struct _Elm_Text_Class
312     {
313        const char *name;
314        const char *desc;
315     } Elm_Text_Class;
316
317   typedef struct _Elm_Font_Overlay
318     {
319        const char     *text_class;
320        const char     *font;
321        Evas_Font_Size  size;
322     } Elm_Font_Overlay;
323
324   typedef struct _Elm_Font_Properties
325     {
326        const char *name;
327        Eina_List  *styles;
328     } Elm_Font_Properties;
329
330    EAPI const Eina_List     *elm_text_classes_list_get(void);
331    EAPI void                 elm_text_classes_list_free(const Eina_List *list);
332
333    EAPI const Eina_List     *elm_font_overlay_list_get(void);
334    EAPI void                 elm_font_overlay_set(const char *text_class, const char *font, Evas_Font_Size size);
335    EAPI void                 elm_font_overlay_unset(const char *text_class);
336    EAPI void                 elm_font_overlay_apply(void);
337    EAPI void                 elm_font_overlay_all_apply(void);
338
339    EAPI Elm_Font_Properties *elm_font_properties_get(const char *font) EINA_ARG_NONNULL(1);
340    EAPI void                 elm_font_properties_free(Elm_Font_Properties *efp) EINA_ARG_NONNULL(1);
341    EAPI const char          *elm_font_fontconfig_name_get(const char *name, const char *style) EINA_ARG_NONNULL(1);
342    EAPI void                 elm_font_fontconfig_name_free(const char *name) EINA_ARG_NONNULL(1);
343    EAPI Eina_Hash           *elm_font_available_hash_add(Eina_List *list);
344    EAPI void                 elm_font_available_hash_del(Eina_Hash *hash);
345
346    EAPI Evas_Coord       elm_finger_size_get(void);
347    EAPI void             elm_finger_size_set(Evas_Coord size);
348    EAPI void             elm_finger_size_all_set(Evas_Coord size);
349
350    EAPI Eina_Bool        elm_focus_highlight_enabled_get(void);
351    EAPI void             elm_focus_highlight_enabled_set(Eina_Bool enable);
352    EAPI Eina_Bool        elm_focus_highlight_animate_get(void);
353    EAPI void             elm_focus_highlight_animate_set(Eina_Bool animate);
354
355    EAPI Eina_Bool        elm_object_focus_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
356    EAPI void             elm_object_focus(Evas_Object *obj) EINA_ARG_NONNULL(1);
357    EAPI void             elm_object_unfocus(Evas_Object *obj) EINA_ARG_NONNULL(1);
358    EAPI void             elm_object_focus_allow_set(Evas_Object *obj, Eina_Bool enable) EINA_ARG_NONNULL(1);
359    EAPI Eina_Bool        elm_object_focus_allow_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
360
361    EAPI void             elm_object_focus_custom_chain_set(Evas_Object *obj, Eina_List *objs) EINA_ARG_NONNULL(1);
362    EAPI void             elm_object_focus_custom_chain_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
363    EAPI const Eina_List *elm_object_focus_custom_chain_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
364    EAPI void             elm_object_focus_custom_chain_append(Evas_Object *obj, Evas_Object *child, Evas_Object *relative_child) EINA_ARG_NONNULL(1, 2);
365    EAPI void             elm_object_focus_custom_chain_prepend(Evas_Object *obj, Evas_Object *child, Evas_Object *relative_child) EINA_ARG_NONNULL(1, 2);
366    EAPI void             elm_object_focus_cycle(Evas_Object *obj, Elm_Focus_Direction dir) EINA_ARG_NONNULL(1);
367    EAPI void             elm_object_focus_direction_go(Evas_Object *obj, int x, int y) EINA_ARG_NONNULL(1);
368
369    EAPI Eina_Bool        elm_scroll_bounce_enabled_get(void);
370    EAPI void             elm_scroll_bounce_enabled_set(Eina_Bool enabled);
371    EAPI void             elm_scroll_bounce_enabled_all_set(Eina_Bool enabled);
372    EAPI double           elm_scroll_bounce_friction_get(void);
373    EAPI void             elm_scroll_bounce_friction_set(double friction);
374    EAPI void             elm_scroll_bounce_friction_all_set(double friction);
375    EAPI double           elm_scroll_page_scroll_friction_get(void);
376    EAPI void             elm_scroll_page_scroll_friction_set(double friction);
377    EAPI void             elm_scroll_page_scroll_friction_all_set(double friction);
378    EAPI double           elm_scroll_bring_in_scroll_friction_get(void);
379    EAPI void             elm_scroll_bring_in_scroll_friction_set(double friction);
380    EAPI void             elm_scroll_bring_in_scroll_friction_all_set(double friction);
381    EAPI double           elm_scroll_zoom_friction_get(void);
382    EAPI void             elm_scroll_zoom_friction_set(double friction);
383    EAPI void             elm_scroll_zoom_friction_all_set(double friction);
384    EAPI Eina_Bool        elm_scroll_thumbscroll_enabled_get(void);
385    EAPI void             elm_scroll_thumbscroll_enabled_set(Eina_Bool enabled);
386    EAPI void             elm_scroll_thumbscroll_enabled_all_set(Eina_Bool enabled);
387    EAPI unsigned int     elm_scroll_thumbscroll_threshold_get(void);
388    EAPI void             elm_scroll_thumbscroll_threshold_set(unsigned int threshold);
389    EAPI void             elm_scroll_thumbscroll_threshold_all_set(unsigned int threshold);
390    EAPI double           elm_scroll_thumbscroll_momentum_threshold_get(void);
391    EAPI void             elm_scroll_thumbscroll_momentum_threshold_set(double threshold);
392    EAPI void             elm_scroll_thumbscroll_momentum_threshold_all_set(double threshold);
393    EAPI double           elm_scroll_thumbscroll_friction_get(void);
394    EAPI void             elm_scroll_thumbscroll_friction_set(double friction);
395    EAPI void             elm_scroll_thumbscroll_friction_all_set(double friction);
396    EAPI double           elm_scroll_thumbscroll_border_friction_get(void);
397    EAPI void             elm_scroll_thumbscroll_border_friction_set(double friction);
398    EAPI void             elm_scroll_thumbscroll_border_friction_all_set(double friction);
399
400    EAPI void             elm_object_scroll_hold_push(Evas_Object *obj) EINA_ARG_NONNULL(1);
401    EAPI void             elm_object_scroll_hold_pop(Evas_Object *obj) EINA_ARG_NONNULL(1);
402    EAPI void             elm_object_scroll_freeze_push(Evas_Object *obj) EINA_ARG_NONNULL(1);
403    EAPI void             elm_object_scroll_freeze_pop(Evas_Object *obj) EINA_ARG_NONNULL(1);
404    EAPI void             elm_object_scroll_lock_x_set(Evas_Object *obj, Eina_Bool lock) EINA_ARG_NONNULL(1);
405    EAPI void             elm_object_scroll_lock_y_set(Evas_Object *obj, Eina_Bool lock) EINA_ARG_NONNULL(1);
406    EAPI Eina_Bool        elm_object_scroll_lock_x_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
407    EAPI Eina_Bool        elm_object_scroll_lock_y_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
408
409    EAPI void             elm_object_signal_emit(Evas_Object *obj, const char *emission, const char *source) EINA_ARG_NONNULL(1);
410    EAPI void             elm_object_signal_callback_add(Evas_Object *obj, const char *emission, const char *source, void (*func) (void *data, Evas_Object *o, const char *emission, const char *source), void *data) EINA_ARG_NONNULL(1, 4);
411    EAPI void            *elm_object_signal_callback_del(Evas_Object *obj, const char *emission, const char *source, void (*func) (void *data, Evas_Object *o, const char *emission, const char *source)) EINA_ARG_NONNULL(1, 4);
412
413    EAPI void             elm_object_event_callback_add(Evas_Object *obj, Elm_Event_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
414    EAPI void            *elm_object_event_callback_del(Evas_Object *obj, Elm_Event_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
415
416    EAPI void             elm_coords_finger_size_adjust(int times_w, Evas_Coord *w, int times_h, Evas_Coord *h);
417
418    EAPI double           elm_longpress_timeout_get(void);
419    EAPI void             elm_longpress_timeout_set(double longpress_timeout);
420
421    /* debug
422     * don't use it unless you are sure
423     */
424    EAPI void             elm_object_tree_dump(const Evas_Object *top);
425    EAPI void             elm_object_tree_dot_dump(const Evas_Object *top, const char *file);
426
427    EAPI void             elm_autocapitalization_allow_all_set(Eina_Bool autocap);
428    EAPI void             elm_autoperiod_allow_all_set(Eina_Bool autoperiod);
429
430    /* theme */
431    typedef struct _Elm_Theme Elm_Theme;
432
433    EAPI Elm_Theme       *elm_theme_new(void);
434    EAPI void             elm_theme_free(Elm_Theme *th);
435    EAPI void             elm_theme_copy(Elm_Theme *th, Elm_Theme *thdst);
436    EAPI void             elm_theme_ref_set(Elm_Theme *th, Elm_Theme *thref);
437    EAPI Elm_Theme       *elm_theme_ref_get(Elm_Theme *th);
438    EAPI Elm_Theme       *elm_theme_default_get(void);
439    EAPI void             elm_theme_overlay_add(Elm_Theme *th, const char *item);
440    EAPI void             elm_theme_overlay_del(Elm_Theme *th, const char *item);
441    EAPI void             elm_theme_extension_add(Elm_Theme *th, const char *item);
442    EAPI void             elm_theme_extension_del(Elm_Theme *th, const char *item);
443    EAPI void             elm_theme_set(Elm_Theme *th, const char *theme);
444    EAPI const char      *elm_theme_get(Elm_Theme *th);
445    EAPI const Eina_List *elm_theme_list_get(const Elm_Theme *th);
446    EAPI char            *elm_theme_list_item_path_get(const char *f, Eina_Bool *in_search_path);
447    EAPI void             elm_theme_flush(Elm_Theme *th);
448    EAPI void             elm_theme_full_flush(void);
449
450    EAPI void             elm_theme_all_set(const char *theme);
451
452    EAPI Eina_List       *elm_theme_name_available_list_new(void);
453    EAPI void             elm_theme_name_available_list_free(Eina_List *list);
454
455    EAPI void             elm_object_theme_set(Evas_Object *obj, Elm_Theme *th) EINA_ARG_NONNULL(1);
456    EAPI Elm_Theme       *elm_object_theme_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
457
458    /* win */
459    typedef enum _Elm_Win_Type
460      {
461         ELM_WIN_BASIC,
462         ELM_WIN_DIALOG_BASIC,
463         ELM_WIN_DESKTOP,
464         ELM_WIN_DOCK,
465         ELM_WIN_TOOLBAR,
466         ELM_WIN_MENU,
467         ELM_WIN_UTILITY,
468         ELM_WIN_SPLASH,
469         ELM_WIN_DROPDOWN_MENU,
470         ELM_WIN_POPUP_MENU,
471         ELM_WIN_TOOLTIP,
472         ELM_WIN_NOTIFICATION,
473         ELM_WIN_COMBO,
474         ELM_WIN_DND
475      } Elm_Win_Type;
476
477    typedef enum _Elm_Win_Keyboard_Mode
478      {
479         ELM_WIN_KEYBOARD_UNKNOWN,
480         ELM_WIN_KEYBOARD_OFF,
481         ELM_WIN_KEYBOARD_ON,
482         ELM_WIN_KEYBOARD_ALPHA,
483         ELM_WIN_KEYBOARD_NUMERIC,
484         ELM_WIN_KEYBOARD_PIN,
485         ELM_WIN_KEYBOARD_PHONE_NUMBER,
486         ELM_WIN_KEYBOARD_HEX,
487         ELM_WIN_KEYBOARD_TERMINAL,
488         ELM_WIN_KEYBOARD_PASSWORD,
489         ELM_WIN_KEYBOARD_IP,
490         ELM_WIN_KEYBOARD_HOST,
491         ELM_WIN_KEYBOARD_FILE,
492         ELM_WIN_KEYBOARD_URL,
493         ELM_WIN_KEYBOARD_KEYPAD,
494         ELM_WIN_KEYBOARD_J2ME
495      } Elm_Win_Keyboard_Mode;
496
497    typedef enum _Elm_Illume_Command
498      {
499         ELM_ILLUME_COMMAND_FOCUS_BACK,
500         ELM_ILLUME_COMMAND_FOCUS_FORWARD,
501         ELM_ILLUME_COMMAND_FOCUS_HOME,
502         ELM_ILLUME_COMMAND_CLOSE
503      } Elm_Illume_Command;
504
505    EAPI Evas_Object *elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type);
506    EAPI void         elm_win_resize_object_add(Evas_Object *obj, Evas_Object *subobj) EINA_ARG_NONNULL(1);
507    EAPI void         elm_win_resize_object_del(Evas_Object *obj, Evas_Object *subobj) EINA_ARG_NONNULL(1);
508    EAPI void         elm_win_title_set(Evas_Object *obj, const char *title) EINA_ARG_NONNULL(1);
509    EAPI const char  *elm_win_title_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
510    EAPI void         elm_win_autodel_set(Evas_Object *obj, Eina_Bool autodel) EINA_ARG_NONNULL(1);
511    EAPI Eina_Bool    elm_win_autodel_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
512    EAPI void         elm_win_activate(Evas_Object *obj) EINA_ARG_NONNULL(1);
513    EAPI void         elm_win_lower(Evas_Object *obj) EINA_ARG_NONNULL(1);
514    EAPI void         elm_win_raise(Evas_Object *obj) EINA_ARG_NONNULL(1);
515    EAPI void         elm_win_borderless_set(Evas_Object *obj, Eina_Bool borderless) EINA_ARG_NONNULL(1);
516    EAPI Eina_Bool    elm_win_borderless_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
517    EAPI void         elm_win_shaped_set(Evas_Object *obj, Eina_Bool shaped) EINA_ARG_NONNULL(1);
518    EAPI Eina_Bool    elm_win_shaped_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
519    EAPI void         elm_win_alpha_set(Evas_Object *obj, Eina_Bool alpha) EINA_ARG_NONNULL(1);
520    EAPI Eina_Bool    elm_win_transparent_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
521    EAPI void         elm_win_transparent_set(Evas_Object *obj, Eina_Bool transparent) EINA_ARG_NONNULL(1);
522    EAPI Eina_Bool    elm_win_alpha_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
523    EAPI void         elm_win_override_set(Evas_Object *obj, Eina_Bool override) EINA_ARG_NONNULL(1);
524    EAPI Eina_Bool    elm_win_override_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
525    EAPI void         elm_win_fullscreen_set(Evas_Object *obj, Eina_Bool fullscreen) EINA_ARG_NONNULL(1);
526    EAPI Eina_Bool    elm_win_fullscreen_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
527    EAPI void         elm_win_maximized_set(Evas_Object *obj, Eina_Bool maximized) EINA_ARG_NONNULL(1);
528    EAPI Eina_Bool    elm_win_maximized_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
529    EAPI void         elm_win_iconified_set(Evas_Object *obj, Eina_Bool iconified) EINA_ARG_NONNULL(1);
530    EAPI Eina_Bool    elm_win_iconified_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
531    EAPI void         elm_win_layer_set(Evas_Object *obj, int layer) EINA_ARG_NONNULL(1);
532    EAPI int          elm_win_layer_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
533    EAPI void         elm_win_rotation_set(Evas_Object *obj, int rotation) EINA_ARG_NONNULL(1);
534    EAPI void         elm_win_rotation_with_resize_set(Evas_Object *obj, int rotation) EINA_ARG_NONNULL(1);
535    EAPI int          elm_win_rotation_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
536    EAPI void         elm_win_sticky_set(Evas_Object *obj, Eina_Bool sticky) EINA_ARG_NONNULL(1);
537    EAPI Eina_Bool    elm_win_sticky_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
538    EAPI void         elm_win_conformant_set(Evas_Object *obj, Eina_Bool conformant) EINA_ARG_NONNULL(1);
539    EAPI Eina_Bool    elm_win_conformant_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
540    EAPI void         elm_win_quickpanel_set(Evas_Object *obj, Eina_Bool quickpanel) EINA_ARG_NONNULL(1);
541    EAPI Eina_Bool    elm_win_quickpanel_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
542    EAPI void         elm_win_quickpanel_priority_major_set(Evas_Object *obj, int priority) EINA_ARG_NONNULL(1);
543    EAPI int          elm_win_quickpanel_priority_major_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
544    EAPI void         elm_win_quickpanel_priority_minor_set(Evas_Object *obj, int priority) EINA_ARG_NONNULL(1);
545    EAPI int          elm_win_quickpanel_priority_minor_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
546    EAPI void         elm_win_quickpanel_zone_set(Evas_Object *obj, int zone) EINA_ARG_NONNULL(1);
547    EAPI int          elm_win_quickpanel_zone_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
548    EAPI void         elm_win_prop_focus_skip_set(Evas_Object *obj, Eina_Bool skip); EINA_ARG_NONNULL(1);
549    EAPI void         elm_win_illume_command_send(Evas_Object *obj, Elm_Illume_Command command, void *params); EINA_ARG_NONNULL(1);
550    EAPI void         elm_win_focus_highlight_enabled_set(Evas_Object *obj, Eina_Bool enabled) EINA_ARG_NONNULL(1);
551    EAPI Eina_Bool    elm_win_focus_highlight_enabled_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
552    EAPI void         elm_win_focus_highlight_style_set(Evas_Object *obj, const char *style) EINA_ARG_NONNULL(1);
553    EAPI const char  *elm_win_focus_highlight_style_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
554    EAPI void         elm_win_indicator_state_set(Evas_Object *obj, int show_state);
555    EAPI int          elm_win_indicator_state_get(Evas_Object *obj);
556    /*...
557     * ecore_x_icccm_hints_set -> accepts_focus (add to ecore_evas)
558     * ecore_x_icccm_hints_set -> window_group (add to ecore_evas)
559     * ecore_x_icccm_size_pos_hints_set -> request_pos (add to ecore_evas)
560     * ecore_x_icccm_client_leader_set -> l (add to ecore_evas)
561     * ecore_x_icccm_window_role_set -> role (add to ecore_evas)
562     * ecore_x_icccm_transient_for_set -> forwin (add to ecore_evas)
563     * ecore_x_netwm_window_type_set -> type (add to ecore_evas)
564     *
565     * (add to ecore_x) set netwm argb icon! (add to ecore_evas)
566     * (blank mouse, private mouse obj, defaultmouse)
567     *
568     */
569    EAPI void                  elm_win_keyboard_mode_set(Evas_Object *obj, Elm_Win_Keyboard_Mode mode) EINA_ARG_NONNULL(1);
570    EAPI Elm_Win_Keyboard_Mode elm_win_keyboard_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
571    EAPI void                  elm_win_keyboard_win_set(Evas_Object *obj, Eina_Bool is_keyboard) EINA_ARG_NONNULL(1);
572    EAPI Eina_Bool             elm_win_keyboard_win_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
573
574    EAPI void                  elm_win_screen_position_get(const Evas_Object *obj, int *x, int *y) EINA_ARG_NONNULL(1);
575
576    EAPI Evas_Object          *elm_win_inwin_add(Evas_Object *obj) EINA_ARG_NONNULL(1);
577    EAPI void                  elm_win_inwin_activate(Evas_Object *obj) EINA_ARG_NONNULL(1);
578    EAPI void                  elm_win_inwin_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
579    EAPI Evas_Object          *elm_win_inwin_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
580    EAPI Evas_Object          *elm_win_inwin_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
581    /* available styles:
582     * default
583     * minimal
584     * minimal_vertical
585     */
586    /* X specific calls - won't work on non-x engines (return 0) */
587    EAPI Ecore_X_Window elm_win_xwindow_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
588    /* smart callbacks called:
589     * "delete,request" - the user requested to delete the window
590     * "focus,in" - window got focus
591     * "focus,out" - window lost focus
592     * "moved" - window that holds the canvas was moved
593     */
594
595    /* bg */
596    typedef enum _Elm_Bg_Option
597      {
598         ELM_BG_OPTION_CENTER,  /**< center the background */
599         ELM_BG_OPTION_SCALE,   /**< scale the background retaining aspect ratio */
600         ELM_BG_OPTION_STRETCH, /**< stretch the background to fill */
601         ELM_BG_OPTION_TILE     /**< tile background at its original size */
602      } Elm_Bg_Option;
603
604    EAPI Evas_Object  *elm_bg_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
605    EAPI void          elm_bg_file_set(Evas_Object *obj, const char *file, const char *group) EINA_ARG_NONNULL(1);
606    EAPI void          elm_bg_file_get(const Evas_Object *obj, const char **file, const char **group) EINA_ARG_NONNULL(1);
607    EAPI void          elm_bg_option_set(Evas_Object *obj, Elm_Bg_Option option) EINA_ARG_NONNULL(1);
608    EAPI Elm_Bg_Option elm_bg_option_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
609    EAPI void          elm_bg_color_set(Evas_Object *obj, int r, int g, int b) EINA_ARG_NONNULL(1);
610    EAPI void          elm_bg_color_get(const Evas_Object *obj, int *r, int *g, int *b) EINA_ARG_NONNULL(1);
611    EAPI void          elm_bg_overlay_set(Evas_Object *obj, Evas_Object *overlay) EINA_ARG_NONNULL(1);
612    EAPI Evas_Object  *elm_bg_overlay_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
613    EAPI Evas_Object  *elm_bg_overlay_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
614    EAPI void          elm_bg_load_size_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h) EINA_ARG_NONNULL(1);
615    /* smart callbacks called:
616     */
617
618    /* icon */
619    typedef enum _Elm_Icon_Lookup_Order
620      {
621         ELM_ICON_LOOKUP_FDO_THEME, /**< icon look up order: freedesktop, theme */
622         ELM_ICON_LOOKUP_THEME_FDO, /**< icon look up order: theme, freedesktop */
623         ELM_ICON_LOOKUP_FDO,       /**< icon look up order: freedesktop */
624         ELM_ICON_LOOKUP_THEME      /**< icon look up order: theme */
625      } Elm_Icon_Lookup_Order;
626
627    EAPI Evas_Object          *elm_icon_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
628    EAPI Eina_Bool             elm_icon_file_set(Evas_Object *obj, const char *file, const char *group) EINA_ARG_NONNULL(1, 2);
629    EAPI void                  elm_icon_file_get(const Evas_Object *obj, const char **file, const char **group) EINA_ARG_NONNULL(1);
630    EAPI Eina_Bool             elm_icon_standard_set(Evas_Object *obj, const char *name) EINA_ARG_NONNULL(1);
631    EAPI const char           *elm_icon_standard_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
632    EAPI void                  elm_icon_smooth_set(Evas_Object *obj, Eina_Bool smooth) EINA_ARG_NONNULL(1);
633    EAPI Eina_Bool             elm_icon_smooth_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
634    EAPI void                  elm_icon_no_scale_set(Evas_Object *obj, Eina_Bool no_scale) EINA_ARG_NONNULL(1);
635    EAPI Eina_Bool             elm_icon_no_scale_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
636    EAPI void                  elm_icon_scale_set(Evas_Object *obj, Eina_Bool scale_up, Eina_Bool scale_down) EINA_ARG_NONNULL(1);
637    EAPI void                  elm_icon_scale_get(const Evas_Object *obj, Eina_Bool *scale_up, Eina_Bool *scale_down) EINA_ARG_NONNULL(1);
638    EAPI void                  elm_icon_fill_outside_set(Evas_Object *obj, Eina_Bool fill_outside) EINA_ARG_NONNULL(1);
639    EAPI Eina_Bool             elm_icon_fill_outside_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
640    EAPI void                  elm_icon_prescale_set(Evas_Object *obj, int size) EINA_ARG_NONNULL(1);
641    EAPI int                   elm_icon_prescale_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
642    EAPI void                  elm_icon_order_lookup_set(Evas_Object *obj, Elm_Icon_Lookup_Order order) EINA_ARG_NONNULL(1);
643    EAPI Elm_Icon_Lookup_Order elm_icon_order_lookup_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
644    /* smart callbacks called:
645     * "clicked" - the user clicked the icon
646     */
647
648    /* image */
649    typedef enum _Elm_Image_Orient
650      {
651         ELM_IMAGE_ORIENT_NONE,
652         ELM_IMAGE_ROTATE_90_CW,
653         ELM_IMAGE_ROTATE_180_CW,
654         ELM_IMAGE_ROTATE_90_CCW,
655         ELM_IMAGE_FLIP_HORIZONTAL,
656         ELM_IMAGE_FLIP_VERTICAL,
657         ELM_IMAGE_FLIP_TRANSPOSE,
658         ELM_IMAGE_FLIP_TRANSVERSE
659      } Elm_Image_Orient;
660    EAPI Evas_Object     *elm_image_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
661    EAPI Eina_Bool        elm_image_file_set(Evas_Object *obj, const char *file, const char *group) EINA_ARG_NONNULL(1, 2);
662    EAPI void             elm_image_file_get(const Evas_Object *obj, const char **file, const char **group) EINA_ARG_NONNULL(1);
663    EAPI void             elm_image_smooth_set(Evas_Object *obj, Eina_Bool smooth) EINA_ARG_NONNULL(1);
664    EAPI Eina_Bool        elm_image_smooth_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
665    EAPI void             elm_image_object_size_get(const Evas_Object *obj, int *w, int *h) EINA_ARG_NONNULL(1);
666    EAPI void             elm_image_no_scale_set(Evas_Object *obj, Eina_Bool no_scale) EINA_ARG_NONNULL(1);
667    EAPI Eina_Bool        elm_image_no_scale_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
668    EAPI void             elm_image_scale_set(Evas_Object *obj, Eina_Bool scale_up, Eina_Bool scale_down) EINA_ARG_NONNULL(1);
669    EAPI void             elm_image_scale_get(const Evas_Object *obj, Eina_Bool *scale_up, Eina_Bool *scale_down) EINA_ARG_NONNULL(1);
670    EAPI void             elm_image_fill_outside_set(Evas_Object *obj, Eina_Bool fill_outside) EINA_ARG_NONNULL(1);
671    EAPI Eina_Bool        elm_image_fill_outside_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
672    EAPI void             elm_image_prescale_set(Evas_Object *obj, int size) EINA_ARG_NONNULL(1);
673    EAPI int              elm_image_prescale_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
674    EAPI void             elm_image_orient_set(Evas_Object *obj, Elm_Image_Orient orient) EINA_ARG_NONNULL(1);
675    EAPI Elm_Image_Orient elm_image_orient_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
676    EAPI void             elm_image_editable_set(Evas_Object *obj, Eina_Bool set) EINA_ARG_NONNULL(1);
677    EAPI Eina_Bool        elm_image_editable_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
678    /* smart callbacks called:
679     * "clicked" - the user clicked the image
680     */
681
682    /* box */
683    typedef struct _Elm_Box_Transition Elm_Box_Transition;
684
685    EAPI Evas_Object        *elm_box_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
686    EAPI void                elm_box_horizontal_set(Evas_Object *obj, Eina_Bool horizontal) EINA_ARG_NONNULL(1);
687    EAPI Eina_Bool           elm_box_horizontal_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
688    EAPI void                elm_box_homogenous_set(Evas_Object *obj, Eina_Bool homogenous) EINA_ARG_NONNULL(1);
689    EAPI Eina_Bool           elm_box_homogenous_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
690    EAPI void                elm_box_extended_mode_set(Evas_Object *obj, Eina_Bool extended) EINA_ARG_NONNULL(1);
691    EAPI Eina_Bool           elm_box_extended_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
692    EAPI void                elm_box_pack_start(Evas_Object *obj, Evas_Object *subobj) EINA_ARG_NONNULL(1);
693    EAPI void                elm_box_pack_end(Evas_Object *obj, Evas_Object *subobj) EINA_ARG_NONNULL(1);
694    EAPI void                elm_box_pack_before(Evas_Object *obj, Evas_Object *subobj, Evas_Object *before) EINA_ARG_NONNULL(1);
695    EAPI void                elm_box_pack_after(Evas_Object *obj, Evas_Object *subobj, Evas_Object *after) EINA_ARG_NONNULL(1);
696    EAPI void                elm_box_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
697    EAPI void                elm_box_unpack(Evas_Object *obj, Evas_Object *subobj) EINA_ARG_NONNULL(1);
698    EAPI void                elm_box_unpack_all(Evas_Object *obj) EINA_ARG_NONNULL(1);
699    EAPI const Eina_List    *elm_box_children_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
700    EAPI void                elm_box_padding_set(Evas_Object *obj, Evas_Coord horizontal, Evas_Coord vertical) EINA_ARG_NONNULL(1);
701    EAPI void                elm_box_padding_get(const Evas_Object *obj, Evas_Coord *horizontal, Evas_Coord *vertical) EINA_ARG_NONNULL(1);
702    EAPI void                elm_box_align_set(Evas_Object *obj, double horizontal, double vertical) EINA_ARG_NONNULL(1);
703    EAPI void                elm_box_align_get(const Evas_Object *obj, double *horizontal, double *vertical) EINA_ARG_NONNULL(1);
704
705    EAPI void                elm_box_layout_set(Evas_Object *obj, Evas_Object_Box_Layout cb, const void *data, void (*free_data)(void *data)) EINA_ARG_NONNULL(1);
706    EAPI void                elm_box_layout_transition(Evas_Object *obj, Evas_Object_Box_Data *priv, void *data);
707    EAPI Elm_Box_Transition *elm_box_transition_new(const double duration, Evas_Object_Box_Layout start_layout, void *start_layout_data, void(*start_layout_free_data)(void *data), Evas_Object_Box_Layout end_layout, void *end_layout_data, void(*end_layout_free_data)(void *data), void(*transition_end_cb)(void *data), void *transition_end_data) EINA_ARG_NONNULL(2, 5);
708    EAPI void                elm_box_transition_free(void *data);
709    /* smart callbacks called:
710     */
711    typedef enum
712      {
713         UIControlStateDefault,
714         UIControlStateHighlighted,
715         UIControlStateDisabled,
716         UIControlStateFocused,
717         UIControlStateReserved
718      } UIControlState;
719
720  /* button */
721    EAPI Evas_Object *elm_button_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
722    EAPI void         elm_button_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
723    EAPI void         elm_button_label_set_for_state(Evas_Object *obj, const char *label, UIControlState state);
724    EAPI const char  *elm_button_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
725    EAPI const char  *elm_button_label_get_for_state(const Evas_Object *obj, UIControlState state);
726    EAPI void         elm_button_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
727    EAPI Evas_Object *elm_button_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
728    EAPI Evas_Object *elm_button_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
729    EAPI void         elm_button_autorepeat_set(Evas_Object *obj, Eina_Bool on) EINA_ARG_NONNULL(1);
730    EAPI Eina_Bool    elm_button_autorepeat_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
731    EAPI void         elm_button_autorepeat_initial_timeout_set(Evas_Object *obj, double t) EINA_ARG_NONNULL(1);
732    EAPI double       elm_button_autorepeat_initial_timeout_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
733    EAPI void         elm_button_autorepeat_gap_timeout_set(Evas_Object *obj, double t) EINA_ARG_NONNULL(1);
734    EAPI double       elm_button_autorepeat_gap_timeout_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
735    /* available styles:
736     * default
737     * anchor
738     * hoversel_vertical
739     * hoversel_vertical_entry
740     */
741    /* smart callbacks called:
742     * "clicked" - the user clicked the button
743     * "repeated" - the user pressed the button without releasing it
744     * "unpressed" - when the button is unpressed (released)
745     */
746
747    /* fileselector */
748    EAPI Evas_Object *elm_fileselector_button_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
749    EAPI void         elm_fileselector_button_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
750    EAPI const char  *elm_fileselector_button_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
751    EAPI void         elm_fileselector_button_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
752    EAPI Evas_Object *elm_fileselector_button_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
753    EAPI Evas_Object *elm_fileselector_button_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
754    EAPI void         elm_fileselector_button_window_title_set(Evas_Object *obj, const char *title) EINA_ARG_NONNULL(1);
755    EAPI const char  *elm_fileselector_button_window_title_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
756    EAPI void         elm_fileselector_button_window_size_set(Evas_Object *obj, Evas_Coord width, Evas_Coord height) EINA_ARG_NONNULL(1);
757    EAPI void         elm_fileselector_button_window_size_get(const Evas_Object *obj, Evas_Coord *width, Evas_Coord *height) EINA_ARG_NONNULL(1);
758    EAPI void         elm_fileselector_button_path_set(Evas_Object *obj, const char *path) EINA_ARG_NONNULL(1);
759    EAPI const char  *elm_fileselector_button_path_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
760    EAPI void         elm_fileselector_button_expandable_set(Evas_Object *obj, Eina_Bool value) EINA_ARG_NONNULL(1);
761    EAPI Eina_Bool    elm_fileselector_button_expandable_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
762    EAPI void         elm_fileselector_button_folder_only_set(Evas_Object *obj, Eina_Bool value) EINA_ARG_NONNULL(1);
763    EAPI Eina_Bool    elm_fileselector_button_folder_only_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
764    EAPI void         elm_fileselector_button_is_save_set(Evas_Object *obj, Eina_Bool value) EINA_ARG_NONNULL(1);
765    EAPI Eina_Bool    elm_fileselector_button_is_save_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
766    EAPI void         elm_fileselector_button_inwin_mode_set(Evas_Object *obj, Eina_Bool value) EINA_ARG_NONNULL(1);
767    EAPI Eina_Bool    elm_fileselector_button_inwin_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
768    /* available styles:
769     * default
770     * anchor
771     * hoversel_vertical
772     * hoversel_vertical_entry
773     */
774    /* smart callbacks called:
775     * "file,chosen" - the user has selected a path, whose string pointer comes
776                       as event info
777     */
778
779    EAPI Evas_Object *elm_fileselector_entry_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
780    EAPI void         elm_fileselector_entry_button_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
781    EAPI const char  *elm_fileselector_entry_button_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
782    EAPI void         elm_fileselector_entry_button_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
783    EAPI Evas_Object *elm_fileselector_entry_button_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
784    EAPI Evas_Object *elm_fileselector_entry_button_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
785    EAPI void         elm_fileselector_entry_window_title_set(Evas_Object *obj, const char *title) EINA_ARG_NONNULL(1);
786    EAPI const char  *elm_fileselector_entry_window_title_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
787    EAPI void         elm_fileselector_entry_window_size_set(Evas_Object *obj, Evas_Coord width, Evas_Coord height) EINA_ARG_NONNULL(1);
788    EAPI void         elm_fileselector_entry_window_size_get(const Evas_Object *obj, Evas_Coord *width, Evas_Coord *height) EINA_ARG_NONNULL(1);
789    EAPI void         elm_fileselector_entry_path_set(Evas_Object *obj, const char *path) EINA_ARG_NONNULL(1);
790    EAPI const char  *elm_fileselector_entry_path_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
791    EAPI void         elm_fileselector_entry_expandable_set(Evas_Object *obj, Eina_Bool value) EINA_ARG_NONNULL(1);
792    EAPI Eina_Bool    elm_fileselector_entry_expandable_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
793    EAPI void         elm_fileselector_entry_folder_only_set(Evas_Object *obj, Eina_Bool value) EINA_ARG_NONNULL(1);
794    EAPI Eina_Bool    elm_fileselector_entry_folder_only_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
795    EAPI void         elm_fileselector_entry_is_save_set(Evas_Object *obj, Eina_Bool value) EINA_ARG_NONNULL(1);
796    EAPI Eina_Bool    elm_fileselector_entry_is_save_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
797    EAPI void         elm_fileselector_entry_inwin_mode_set(Evas_Object *obj, Eina_Bool value) EINA_ARG_NONNULL(1);
798    EAPI Eina_Bool    elm_fileselector_entry_inwin_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
799    EAPI void         elm_fileselector_entry_selected_set(Evas_Object *obj, const char *path) EINA_ARG_NONNULL(1);
800    EAPI const char  *elm_fileselector_entry_selected_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
801
802    /* scroller policy */
803    typedef enum _Elm_Scroller_Policy
804      {
805         ELM_SCROLLER_POLICY_AUTO = 0,
806         ELM_SCROLLER_POLICY_ON,
807         ELM_SCROLLER_POLICY_OFF,
808         ELM_SCROLLER_POLICY_LAST
809      } Elm_Scroller_Policy;
810
811    EAPI Evas_Object *elm_scroller_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
812    EAPI void         elm_scroller_content_set(Evas_Object *obj, Evas_Object *child) EINA_ARG_NONNULL(1);
813    EAPI Evas_Object *elm_scroller_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
814    EAPI Evas_Object *elm_scroller_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
815    EAPI void         elm_scroller_custom_widget_base_theme_set(Evas_Object *obj, const char *widget, const char *base) EINA_ARG_NONNULL(1, 2, 3);
816    EAPI void         elm_scroller_content_min_limit(Evas_Object *obj, Eina_Bool w, Eina_Bool h) EINA_ARG_NONNULL(1);
817    EAPI void         elm_scroller_region_show(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h) EINA_ARG_NONNULL(1);
818    EAPI void         elm_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v) EINA_ARG_NONNULL(1);
819    EAPI void         elm_scroller_policy_get(const Evas_Object *obj, Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v) EINA_ARG_NONNULL(1);
820    EAPI void         elm_scroller_region_get(const Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) EINA_ARG_NONNULL(1);
821    EAPI void         elm_scroller_child_size_get(const Evas_Object *obj, Evas_Coord *w, Evas_Coord *h) EINA_ARG_NONNULL(1);
822    EAPI void         elm_scroller_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce) EINA_ARG_NONNULL(1);
823    EAPI void         elm_scroller_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce) EINA_ARG_NONNULL(1);
824    EAPI void         elm_scroller_page_relative_set(Evas_Object *obj, double h_pagerel, double v_pagerel) EINA_ARG_NONNULL(1);
825    EAPI void         elm_scroller_page_size_set(Evas_Object *obj, Evas_Coord h_pagesize, Evas_Coord v_pagesize) EINA_ARG_NONNULL(1);
826    EAPI void         elm_scroller_region_bring_in(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h) EINA_ARG_NONNULL(1);
827    EAPI void         elm_scroller_propagate_events_set(Evas_Object *obj, Eina_Bool propagation);
828    EAPI Eina_Bool    elm_scroller_propagate_events_get(const Evas_Object *obj);
829    EINA_DEPRECATED EAPI void         elm_scroller_page_move_set(Evas_Object *obj, Eina_Bool set);
830    /* smart callbacks called:
831     * "edge,left" - the left edge of the content has been reached
832     * "edge,right" - the right edge of the content has been reached
833     * "edge,top" - the top edge of the content has been reached
834     * "edge,bottom" - the bottom edge of the content has been reached
835     * "scroll" - the content has been scrolled (moved)
836     * "scroll,anim,start" - scrolling animation has started
837     * "scroll,anim,stop" - scrolling animation has stopped
838     * "scroll,drag,start" - dragging the contents around has started
839     * "scroll,drag,stop" - dragging the contents around has stopped
840     */
841
842    /* label */
843    EAPI Evas_Object *elm_label_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
844    EAPI void         elm_label_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
845    EAPI const char  *elm_label_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
846    EAPI void         elm_label_line_wrap_set(Evas_Object *obj, Eina_Bool wrap) EINA_ARG_NONNULL(1);
847    EAPI Eina_Bool    elm_label_line_wrap_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
848    EAPI void         elm_label_wrap_width_set(Evas_Object *obj, Evas_Coord w) EINA_ARG_NONNULL(1);
849    EAPI Evas_Coord   elm_label_wrap_width_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
850    EAPI void         elm_label_wrap_height_set(Evas_Object *obj, Evas_Coord h) EINA_ARG_NONNULL(1);
851    EAPI Evas_Coord   elm_label_wrap_height_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
852    EAPI void         elm_label_fontsize_set(Evas_Object *obj, int fontsize) EINA_ARG_NONNULL(1);
853    EAPI void         elm_label_text_color_set(Evas_Object *obj, unsigned int r, unsigned int g, unsigned int b, unsigned int a) EINA_ARG_NONNULL(1);
854    EAPI void         elm_label_text_align_set(Evas_Object *obj, const char *alignmode) EINA_ARG_NONNULL(1);
855    EAPI void         elm_label_background_color_set(Evas_Object *obj, unsigned int r, unsigned int g, unsigned int b, unsigned int a) EINA_ARG_NONNULL(1);
856    EAPI void         elm_label_ellipsis_set(Evas_Object *obj, Eina_Bool ellipsis) EINA_ARG_NONNULL(1);
857    EAPI void         elm_label_wrap_mode_set(Evas_Object *obj, Eina_Bool wrapmode) EINA_ARG_NONNULL(1);
858    EAPI void         elm_label_slide_set(Evas_Object *obj, Eina_Bool slide) EINA_ARG_NONNULL(1);
859    EAPI Eina_Bool    elm_label_slide_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
860    EAPI void         elm_label_slide_duration_set(Evas_Object *obj, int duration) EINA_ARG_NONNULL(1);
861    EAPI int          elm_label_slide_duration_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
862    /* available styles:
863     * default
864     * marker
865     */
866    /* smart callbacks called:
867     */
868
869    /* toggle */
870    EAPI Evas_Object *elm_toggle_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
871    EAPI void         elm_toggle_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
872    EAPI const char  *elm_toggle_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
873    EAPI void         elm_toggle_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
874    EAPI Evas_Object *elm_toggle_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
875    EAPI Evas_Object *elm_toggle_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
876    EAPI void         elm_toggle_states_labels_set(Evas_Object *obj, const char *onlabel, const char *offlabel) EINA_ARG_NONNULL(1);
877    EAPI void         elm_toggle_states_labels_get(const Evas_Object *obj, const char **onlabel, const char **offlabel) EINA_ARG_NONNULL(1);
878    EAPI void         elm_toggle_state_set(Evas_Object *obj, Eina_Bool state) EINA_ARG_NONNULL(1);
879    EAPI Eina_Bool    elm_toggle_state_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
880    EAPI void         elm_toggle_state_pointer_set(Evas_Object *obj, Eina_Bool *statep) EINA_ARG_NONNULL(1);
881    /* smart callbacks called:
882     * "changed" - Whenever the toggle value has been changed.  Is not called
883     *             until the toggle is released by the cursor (assuming it has been triggered
884     *             by the cursor in the first place).
885     */
886
887    /* frame */
888    EAPI Evas_Object *elm_frame_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
889    EAPI void         elm_frame_label_set(Evas_Object *obj, const char *label); EINA_ARG_NONNULL(1)
890    EAPI const char  *elm_frame_label_get(const Evas_Object *obj); EINA_ARG_NONNULL(1)
891    EAPI void         elm_frame_content_set(Evas_Object *obj, Evas_Object *content); EINA_ARG_NONNULL(1)
892    EAPI Evas_Object *elm_frame_content_get(const Evas_Object *obj); EINA_ARG_NONNULL(1)
893    EAPI Evas_Object *elm_frame_content_unset(Evas_Object *obj); EINA_ARG_NONNULL(1)
894    /* available styles:
895     * default
896     * pad_small
897     * pad_medium
898     * pad_large
899     * pad_huge
900     * outdent_top
901     * outdent_bottom
902     */
903    /* smart callbacks called:
904     */
905
906    /* table */
907    EAPI Evas_Object *elm_table_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
908    EAPI void         elm_table_homogenous_set(Evas_Object *obj, Eina_Bool homogenous) EINA_ARG_NONNULL(1);
909    EAPI Eina_Bool    elm_table_homogeneous_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
910    EAPI void         elm_table_padding_set(Evas_Object *obj, Evas_Coord horizontal, Evas_Coord vertical) EINA_ARG_NONNULL(1);
911    EAPI void         elm_table_padding_get(const Evas_Object *obj, Evas_Coord *horizontal, Evas_Coord *vertical) EINA_ARG_NONNULL(1);
912    EAPI void         elm_table_pack(Evas_Object *obj, Evas_Object *subobj, int x, int y, int w, int h) EINA_ARG_NONNULL(1);
913    EAPI void         elm_table_unpack(Evas_Object *obj, Evas_Object *subobj) EINA_ARG_NONNULL(1);
914    EAPI void         elm_table_clear(Evas_Object *obj, Eina_Bool clear) EINA_ARG_NONNULL(1);
915
916    /* gengrid */
917    typedef struct _Elm_Gengrid_Item_Class Elm_Gengrid_Item_Class;
918    typedef struct _Elm_Gengrid_Item_Class_Func Elm_Gengrid_Item_Class_Func;
919    typedef struct _Elm_Gengrid_Item Elm_Gengrid_Item; /**< Item of Elm_Gengrid. Sub-type of Elm_Widget_Item */
920    typedef char        *(*GridItemLabelGetFunc) (void *data, Evas_Object *obj, const char *part);
921    typedef Evas_Object *(*GridItemIconGetFunc)  (void *data, Evas_Object *obj, const char *part);
922    typedef Eina_Bool    (*GridItemStateGetFunc) (void *data, Evas_Object *obj, const char *part);
923    typedef void         (*GridItemDelFunc)      (void *data, Evas_Object *obj);
924
925    struct _Elm_Gengrid_Item_Class
926      {
927         const char             *item_style;
928         struct _Elm_Gengrid_Item_Class_Func
929           {
930              GridItemLabelGetFunc  label_get;
931              GridItemIconGetFunc   icon_get;
932              GridItemStateGetFunc  state_get;
933              GridItemDelFunc       del;
934           } func;
935      };
936
937    EAPI Evas_Object       *elm_gengrid_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
938    EAPI void               elm_gengrid_item_size_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h) EINA_ARG_NONNULL(1);
939    EAPI void               elm_gengrid_item_size_get(const Evas_Object *obj, Evas_Coord *w, Evas_Coord *h) EINA_ARG_NONNULL(1);
940    EAPI void               elm_gengrid_align_set(Evas_Object *obj, double align_x, double align_y) EINA_ARG_NONNULL(1);
941    EAPI void               elm_gengrid_align_get(const Evas_Object *obj, double *align_x, double *align_y) EINA_ARG_NONNULL(1);
942
943    EAPI void               elm_gengrid_reorder_mode_set(Evas_Object *obj, Eina_Bool reorder_mode) EINA_ARG_NONNULL(1);
944    EAPI Eina_Bool          elm_gengrid_reorder_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
945    EAPI void               elm_gengrid_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select) EINA_ARG_NONNULL(1);
946    EAPI Eina_Bool          elm_gengrid_always_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
947    EAPI void               elm_gengrid_no_select_mode_set(Evas_Object *obj, Eina_Bool no_select) EINA_ARG_NONNULL(1);
948    EAPI Eina_Bool          elm_gengrid_no_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
949    EAPI void               elm_gengrid_multi_select_set(Evas_Object *obj, Eina_Bool multi) EINA_ARG_NONNULL(1);
950    EAPI Eina_Bool          elm_gengrid_multi_select_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
951    EAPI void               elm_gengrid_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce) EINA_ARG_NONNULL(1);
952    EAPI void               elm_gengrid_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce) EINA_ARG_NONNULL(1);
953    EAPI void               elm_gengrid_page_relative_set(Evas_Object *obj, double h_pagerel, double v_pagerel) EINA_ARG_NONNULL(1);
954    EAPI void               elm_gengrid_page_size_set(Evas_Object *obj, Evas_Coord h_pagesize, Evas_Coord v_pagesize) EINA_ARG_NONNULL(1);
955    EAPI void               elm_gengrid_horizontal_set(Evas_Object *obj, Eina_Bool setting) EINA_ARG_NONNULL(1);
956
957    EAPI Elm_Gengrid_Item  *elm_gengrid_first_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
958    EAPI Elm_Gengrid_Item  *elm_gengrid_last_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
959
960    EAPI Elm_Gengrid_Item  *elm_gengrid_item_next_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
961    EAPI Elm_Gengrid_Item  *elm_gengrid_item_prev_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
962    EAPI Evas_Object       *elm_gengrid_item_gengrid_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
963    EAPI void               elm_gengrid_item_del(Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
964    EAPI void               elm_gengrid_item_update(Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
965    EAPI void              *elm_gengrid_item_data_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
966    EAPI void               elm_gengrid_item_data_set(Elm_Gengrid_Item *item, const void *data) EINA_ARG_NONNULL(1);
967    EAPI void               elm_gengrid_item_pos_get(const Elm_Gengrid_Item *item, unsigned int *x, unsigned int *y) EINA_ARG_NONNULL(1);
968    EAPI void               elm_gengrid_item_selected_set(Elm_Gengrid_Item *item, Eina_Bool selected) EINA_ARG_NONNULL(1);
969    EAPI Eina_Bool          elm_gengrid_item_selected_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
970    EAPI const Evas_Object *elm_gengrid_item_object_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
971    EAPI void               elm_gengrid_item_show(Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
972    EAPI void               elm_gengrid_item_bring_in(Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
973    EAPI void               elm_gengrid_item_disabled_set(Elm_Gengrid_Item *item, Eina_Bool disabled) EINA_ARG_NONNULL(1);
974    EAPI Eina_Bool          elm_gengrid_item_disabled_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
975
976    EAPI void               elm_gengrid_item_tooltip_text_set(Elm_Gengrid_Item *item, const char *text) EINA_ARG_NONNULL(1);
977    EAPI void               elm_gengrid_item_tooltip_content_cb_set(Elm_Gengrid_Item *item, Elm_Tooltip_Item_Content_Cb func, const void *data, Evas_Smart_Cb del_cb) EINA_ARG_NONNULL(1);
978    EAPI void               elm_gengrid_item_tooltip_unset(Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
979    EAPI void               elm_gengrid_item_tooltip_style_set(Elm_Gengrid_Item *item, const char *style) EINA_ARG_NONNULL(1);
980    EAPI const char        *elm_gengrid_item_tooltip_style_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
981    EAPI void               elm_gengrid_item_cursor_set(Elm_Gengrid_Item *item, const char *cursor) EINA_ARG_NONNULL(1);
982    EAPI const char        *elm_gengrid_item_cursor_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
983    EAPI void               elm_gengrid_item_cursor_unset(Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
984    EAPI void               elm_gengrid_item_cursor_style_set(Elm_Gengrid_Item *item, const char *style) EINA_ARG_NONNULL(1);
985    EAPI const char        *elm_gengrid_item_cursor_style_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
986    EAPI void               elm_gengrid_item_cursor_engine_only_set(Elm_Gengrid_Item *item, Eina_Bool engine_only) EINA_ARG_NONNULL(1);
987    EAPI Eina_Bool          elm_gengrid_item_cursor_engine_only_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
988
989    EAPI void               elm_gengrid_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
990    EAPI Elm_Gengrid_Item  *elm_gengrid_selected_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
991    EAPI const Eina_List   *elm_gengrid_selected_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
992
993    EAPI Elm_Gengrid_Item  *elm_gengrid_item_append(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic,  const void *data, Evas_Smart_Cb func, const void *func_data) EINA_ARG_NONNULL(1);
994    EAPI Elm_Gengrid_Item  *elm_gengrid_item_prepend(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic, const void *data, Evas_Smart_Cb func, const void *func_data) EINA_ARG_NONNULL(1);
995    EAPI Elm_Gengrid_Item  *elm_gengrid_item_insert_before(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic, const void *data, Elm_Gengrid_Item *relative, Evas_Smart_Cb func, const void *func_data) EINA_ARG_NONNULL(1);
996    EAPI Elm_Gengrid_Item  *elm_gengrid_item_insert_after(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic, const void *data, Elm_Gengrid_Item *relative, Evas_Smart_Cb func, const void *func_data) EINA_ARG_NONNULL(1);
997    /* smart callbacks called:
998     *
999     * selected - User has selected a item.
1000     * unselected - User has unselected a item.
1001     * clicked - User has double-clicked or pressed enter on a item.
1002     * realized - An evas object for a item was built.
1003     * unrealized - An evas object for a item was deleted.
1004     * changed - An item has been added, removed, resized or moved,
1005     * or gengrid has been resized or horizontal property has been changed.
1006     * scroll - the content has been scrolled (moved).
1007     * "scroll,drag,start" - dragging the contents around has started.
1008     * "scroll,drag,stop" - dragging the contents around has stopped.
1009     * drag - Gengrid is being dragged.
1010     * "drag,start,up" - Gengrid has been dragged (not scrolled) up.
1011     * "drag,start,down" - Gengrid has been dragged (not scrolled) down.
1012     * "drag,start,left" - Gengrid has been dragged (not scrolled) left.
1013     * "drag,start,rigth" - Gengrid has been dragged (nto scrolled) right.
1014     * "drag,stop" - Gengrid is not being dragged.
1015     */
1016
1017    /* clock */
1018    typedef enum _Elm_Clock_Digedit
1019      {
1020         ELM_CLOCK_NONE         = 0,
1021         ELM_CLOCK_HOUR_DECIMAL = 1 << 0,
1022         ELM_CLOCK_HOUR_UNIT    = 1 << 1,
1023         ELM_CLOCK_MIN_DECIMAL  = 1 << 2,
1024         ELM_CLOCK_MIN_UNIT     = 1 << 3,
1025         ELM_CLOCK_SEC_DECIMAL  = 1 << 4,
1026         ELM_CLOCK_SEC_UNIT     = 1 << 5,
1027         ELM_CLOCK_ALL          = (1 << 6) - 1
1028      } Elm_Clock_Digedit;
1029
1030    EAPI Evas_Object      *elm_clock_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
1031    EAPI void              elm_clock_time_set(Evas_Object *obj, int hrs, int min, int sec) EINA_ARG_NONNULL(1);
1032    EAPI void              elm_clock_time_get(const Evas_Object *obj, int *hrs, int *min, int *sec) EINA_ARG_NONNULL(1);
1033    EAPI void              elm_clock_edit_set(Evas_Object *obj, Eina_Bool edit) EINA_ARG_NONNULL(1);
1034    EAPI Eina_Bool         elm_clock_edit_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1035    EAPI void              elm_clock_digit_edit_set(Evas_Object *obj, Elm_Clock_Digedit digedit) EINA_ARG_NONNULL(1);
1036    EAPI Elm_Clock_Digedit elm_clock_digit_edit_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1037    EAPI void              elm_clock_show_am_pm_set(Evas_Object *obj, Eina_Bool am_pm) EINA_ARG_NONNULL(1);
1038    EAPI Eina_Bool         elm_clock_show_am_pm_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1039    EAPI void              elm_clock_show_seconds_set(Evas_Object *obj, Eina_Bool seconds) EINA_ARG_NONNULL(1);
1040    EAPI Eina_Bool         elm_clock_show_seconds_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1041    EAPI void              elm_clock_interval_set(Evas_Object *obj, double interval) EINA_ARG_NONNULL(1);
1042    EAPI double            elm_clock_interval_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1043    /* smart callbacks called:
1044     * "changed" - the user changed the time
1045     */
1046
1047    /* layout */
1048    EAPI Evas_Object       *elm_layout_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
1049    EAPI Eina_Bool          elm_layout_file_set(Evas_Object *obj, const char *file, const char *group) EINA_ARG_NONNULL(1);
1050    EAPI Eina_Bool          elm_layout_theme_set(Evas_Object *obj, const char *clas, const char *group, const char *style) EINA_ARG_NONNULL(1);
1051    EAPI void               elm_layout_content_set(Evas_Object *obj, const char *swallow, Evas_Object *content) EINA_ARG_NONNULL(1);
1052    EAPI const Evas_Object *elm_layout_content_get(const Evas_Object *obj, const char *swallow) EINA_ARG_NONNULL(1);
1053    EAPI Evas_Object       *elm_layout_content_unset(Evas_Object *obj, const char *swallow) EINA_ARG_NONNULL(1);
1054    EAPI void               elm_layout_text_set(Evas_Object *obj, const char *part, const char *text) EINA_ARG_NONNULL(1);
1055    EAPI const char        *elm_layout_text_get(const Evas_Object *obj, const char *part) EINA_ARG_NONNULL(1);
1056    EAPI void               elm_layout_box_append(Evas_Object *obj, const char *part, Evas_Object *child) EINA_ARG_NONNULL(1);
1057    EAPI void               elm_layout_box_prepend(Evas_Object *obj, const char *part, Evas_Object *child) EINA_ARG_NONNULL(1);
1058    EAPI void               elm_layout_box_insert_before(Evas_Object *obj, const char *part, Evas_Object *child, const Evas_Object *reference) EINA_ARG_NONNULL(1);
1059    EAPI void               elm_layout_box_insert_at(Evas_Object *obj, const char *part, Evas_Object *child, unsigned int pos) EINA_ARG_NONNULL(1);
1060    EAPI Evas_Object       *elm_layout_box_remove(Evas_Object *obj, const char *part, Evas_Object *child) EINA_ARG_NONNULL(1, 2, 3);
1061    EAPI void               elm_layout_box_remove_all(Evas_Object *obj, const char *part, Eina_Bool clear) EINA_ARG_NONNULL(1, 2);
1062    EAPI void               elm_layout_table_pack(Evas_Object *obj, const char *part, Evas_Object *child_obj, unsigned short col, unsigned short row, unsigned short colspan, unsigned short rowspan) EINA_ARG_NONNULL(1);
1063    EAPI Evas_Object       *elm_layout_table_unpack(Evas_Object *obj, const char *part, Evas_Object *child_obj) EINA_ARG_NONNULL(1, 2, 3);
1064    EAPI void               elm_layout_table_clear(Evas_Object *obj, const char *part, Eina_Bool clear) EINA_ARG_NONNULL(1, 2);
1065    EAPI Evas_Object       *elm_layout_edje_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1066    EAPI const char        *elm_layout_data_get(const Evas_Object *obj, const char *key) EINA_ARG_NONNULL(1, 2);
1067    EAPI void               elm_layout_sizing_eval(Evas_Object *obj) EINA_ARG_NONNULL(1);
1068    EAPI Eina_Bool          elm_layout_part_cursor_set(Evas_Object *obj, const char *part_name, const char *cursor) EINA_ARG_NONNULL(1, 2);
1069    EAPI const char        *elm_layout_part_cursor_get(const Evas_Object *obj, const char *part_name) EINA_ARG_NONNULL(1, 2);
1070    EAPI void               elm_layout_part_cursor_unset(Evas_Object *obj, const char *part_name) EINA_ARG_NONNULL(1, 2);
1071    EAPI Eina_Bool          elm_layout_part_cursor_style_set(Evas_Object *obj, const char *part_name, const char *style) EINA_ARG_NONNULL(1, 2);
1072    EAPI const char        *elm_layout_part_cursor_style_get(const Evas_Object *obj, const char *part_name) EINA_ARG_NONNULL(1, 2);
1073    EAPI Eina_Bool          elm_layout_part_cursor_engine_only_set(Evas_Object *obj, const char *part_name, Eina_Bool engine_only) EINA_ARG_NONNULL(1, 2);
1074    EAPI Eina_Bool          elm_layout_part_cursor_engine_only_get(const Evas_Object *obj, const char *part_name) EINA_ARG_NONNULL(1, 2);
1075 /**
1076  * @def elm_layout_icon_set
1077  * Convienience macro to set the icon object in a layout that follows the
1078  * Elementary naming convention for its parts.
1079  *
1080  * @ingroup Layout
1081  */
1082 #define elm_layout_icon_set(_ly, _obj) \
1083   do { \
1084     const char *sig; \
1085     elm_layout_content_set((_ly), "elm.swallow.icon", (_obj)); \
1086     if ((_obj)) sig = "elm,state,icon,visible"; \
1087     else sig = "elm,state,icon,hidden"; \
1088     elm_object_signal_emit((_ly), sig, "elm"); \
1089   } while (0)
1090
1091 /**
1092  * @def elm_layout_icon_get
1093  * Convienience macro to get the icon object from a layout that follows the
1094  * Elementary naming convention for its parts.
1095  *
1096  * @ingroup Layout
1097  */
1098 #define elm_layout_icon_get(_ly) \
1099   elm_layout_content_get((_ly), "elm.swallow.icon")
1100
1101 /**
1102  * @def elm_layout_end_set
1103  * Convienience macro to set the end object in a layout that follows the
1104  * Elementary naming convention for its parts.
1105  *
1106  * @ingroup Layout
1107  */
1108 #define elm_layout_end_set(_ly, _obj) \
1109   do { \
1110     const char *sig; \
1111     elm_layout_content_set((_ly), "elm.swallow.end", (_obj)); \
1112     if ((_obj)) sig = "elm,state,end,visible"; \
1113     else sig = "elm,state,end,hidden"; \
1114     elm_object_signal_emit((_ly), sig, "elm"); \
1115   } while (0)
1116
1117 /**
1118  * @def elm_layout_end_get
1119  * Convienience macro to get the end object in a layout that follows the
1120  * Elementary naming convention for its parts.
1121  *
1122  * @ingroup Layout
1123  */
1124 #define elm_layout_end_get(_ly) \
1125   elm_layout_content_get((_ly), "elm.swallow.end")
1126
1127 /**
1128  * @def elm_layout_label_set
1129  * Convienience macro to set the label in a layout that follows the
1130  * Elementary naming convention for its parts.
1131  *
1132  * @ingroup Layout
1133  */
1134 #define elm_layout_label_set(_ly, _txt) \
1135   elm_layout_text_set((_ly), "elm.text", (_txt))
1136
1137 /**
1138  * @def elm_layout_label_get
1139  * Convienience macro to get the label in a layout that follows the
1140  * Elementary naming convention for its parts.
1141  *
1142  * @ingroup Layout
1143  */
1144 #define elm_layout_label_get(_ly) \
1145   elm_layout_text_get((_ly), "elm.text")
1146
1147    /* smart callbacks called:
1148     */
1149
1150    /* notify */
1151    typedef enum _Elm_Notify_Orient
1152      {
1153         ELM_NOTIFY_ORIENT_TOP,
1154         ELM_NOTIFY_ORIENT_CENTER,
1155         ELM_NOTIFY_ORIENT_BOTTOM,
1156         ELM_NOTIFY_ORIENT_LEFT,
1157         ELM_NOTIFY_ORIENT_RIGHT,
1158         ELM_NOTIFY_ORIENT_TOP_LEFT,
1159         ELM_NOTIFY_ORIENT_TOP_RIGHT,
1160         ELM_NOTIFY_ORIENT_BOTTOM_LEFT,
1161         ELM_NOTIFY_ORIENT_BOTTOM_RIGHT,
1162         ELM_NOTIFY_ORIENT_LAST
1163      } Elm_Notify_Orient;
1164    EAPI Evas_Object      *elm_notify_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
1165    EAPI void              elm_notify_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
1166    EAPI Evas_Object      *elm_notify_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
1167    EAPI Evas_Object      *elm_notify_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1168    EAPI void              elm_notify_parent_set(Evas_Object *obj, Evas_Object *parent) EINA_ARG_NONNULL(1);
1169    EAPI Evas_Object      *elm_notify_parent_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1170    EAPI void              elm_notify_orient_set(Evas_Object *obj, Elm_Notify_Orient orient) EINA_ARG_NONNULL(1);
1171    EAPI Elm_Notify_Orient elm_notify_orient_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1172    EAPI void              elm_notify_timeout_set(Evas_Object *obj, double timeout) EINA_ARG_NONNULL(1);
1173    EAPI double            elm_notify_timeout_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1174    EAPI void              elm_notify_repeat_events_set(Evas_Object *obj, Eina_Bool repeat) EINA_ARG_NONNULL(1);
1175    EAPI Eina_Bool         elm_notify_repeat_events_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1176    /* smart callbacks called:
1177     * "timeout" - when timeout happens on notify and it's hidden
1178     * "block,clicked" - when it's hidden by a click outside of the notify's view
1179     */
1180
1181    /* hover */
1182    typedef enum _Elm_Hover_Axis
1183      {
1184         ELM_HOVER_AXIS_NONE,
1185         ELM_HOVER_AXIS_HORIZONTAL,
1186         ELM_HOVER_AXIS_VERTICAL,
1187         ELM_HOVER_AXIS_BOTH
1188      } Elm_Hover_Axis;
1189    EAPI Evas_Object *elm_hover_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
1190    EAPI void         elm_hover_target_set(Evas_Object *obj, Evas_Object *target) EINA_ARG_NONNULL(1);
1191    EAPI Evas_Object *elm_hover_target_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1192    EAPI void         elm_hover_parent_set(Evas_Object *obj, Evas_Object *parent) EINA_ARG_NONNULL(1);
1193    EAPI Evas_Object *elm_hover_parent_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1194    EAPI void         elm_hover_content_set(Evas_Object *obj, const char *swallow, Evas_Object *content) EINA_ARG_NONNULL(1);
1195    EAPI Evas_Object *elm_hover_content_get(const Evas_Object *obj, const char *swallow) EINA_ARG_NONNULL(1);
1196    EAPI Evas_Object *elm_hover_content_unset(Evas_Object *obj, const char *swallow) EINA_ARG_NONNULL(1);
1197    EAPI const char  *elm_hover_best_content_location_get(const Evas_Object *obj, Elm_Hover_Axis pref_axis) EINA_ARG_NONNULL(1);
1198    /* available styles:
1199     * default
1200     * popout
1201     * menu
1202     * hoversel_vertical
1203     */
1204    /* smart callbacks called:
1205     * "clicked" - the user clicked the empty space in the hover to dismiss
1206     * "smart,changed" - a content object placed under the "smart"
1207     *                   policy was replaced to a new slot direction.
1208     */
1209
1210    /* entry */
1211    typedef struct _Elm_Entry_Anchor_Info Elm_Entry_Anchor_Info;
1212    struct _Elm_Entry_Anchor_Info
1213      {
1214         const char *name;
1215         int         button;
1216         Evas_Coord  x, y, w, h;
1217      };
1218    typedef enum _Elm_Icon_Type
1219      {
1220         ELM_ICON_NONE,
1221         ELM_ICON_FILE,
1222         ELM_ICON_STANDARD
1223      } Elm_Icon_Type;
1224
1225    typedef enum _Elm_Input_Panel_Layout
1226      {
1227         ELM_INPUT_PANEL_LAYOUT_NORMAL,          /**< Default 4x4 layout */
1228         ELM_INPUT_PANEL_LAYOUT_NUMBER,          /**< Number layout */
1229         ELM_INPUT_PANEL_LAYOUT_EMAIL,           /**< Email layout */
1230         ELM_INPUT_PANEL_LAYOUT_URL,             /**< URL layout */
1231         ELM_INPUT_PANEL_LAYOUT_PHONENUMBER,     /**< Phone Number layout */
1232         ELM_INPUT_PANEL_LAYOUT_IP,              /**< IP layout */
1233         ELM_INPUT_PANEL_LAYOUT_MONTH,           /**< Month layout */
1234         ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,      /**< Number Only layout */
1235         ELM_INPUT_PANEL_LAYOUT_CUSTOM_1 = 100,  /* Reserved for future use */
1236         ELM_INPUT_PANEL_LAYOUT_CUSTOM_2,
1237         ELM_INPUT_PANEL_LAYOUT_CUSTOM_3,
1238         ELM_INPUT_PANEL_LAYOUT_CUSTOM_4,
1239         ELM_INPUT_PANEL_LAYOUT_CUSTOM_5,
1240         ELM_INPUT_PANEL_LAYOUT_CUSTOM_6,
1241         ELM_INPUT_PANEL_LAYOUT_CUSTOM_7,
1242         ELM_INPUT_PANEL_LAYOUT_CUSTOM_8,
1243         ELM_INPUT_PANEL_LAYOUT_CUSTOM_9,
1244         ELM_INPUT_PANEL_LAYOUT_CUSTOM_10
1245      } Elm_Input_Panel_Layout;
1246
1247    typedef struct _Elm_Hoversel_Item Elm_Hoversel_Item; /**< Item of Elm_Hoversel. Sub-type of Elm_Widget_Item */
1248
1249    EAPI Evas_Object *elm_entry_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
1250    EAPI void         elm_entry_single_line_set(Evas_Object *obj, Eina_Bool single_line) EINA_ARG_NONNULL(1);
1251    EAPI Eina_Bool    elm_entry_single_line_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1252    EAPI void         elm_entry_password_set(Evas_Object *obj, Eina_Bool password) EINA_ARG_NONNULL(1);
1253    EAPI Eina_Bool    elm_entry_password_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1254    EAPI void         elm_entry_entry_set(Evas_Object *obj, const char *entry) EINA_ARG_NONNULL(1);
1255    EAPI const char  *elm_entry_entry_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1256    EAPI Eina_Bool    elm_entry_is_empty(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1257    EAPI const char  *elm_entry_selection_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1258    EAPI void         elm_entry_entry_insert(Evas_Object *obj, const char *entry) EINA_ARG_NONNULL(1);
1259    EAPI void         elm_entry_line_wrap_set(Evas_Object *obj, Eina_Bool wrap) EINA_ARG_NONNULL(1);
1260    EAPI void         elm_entry_line_char_wrap_set(Evas_Object *obj, Eina_Bool wrap) EINA_ARG_NONNULL(1);
1261    EAPI void         elm_entry_editable_set(Evas_Object *obj, Eina_Bool editable) EINA_ARG_NONNULL(1);
1262    EAPI Eina_Bool    elm_entry_editable_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1263    EAPI void         elm_entry_select_none(Evas_Object *obj) EINA_ARG_NONNULL(1);
1264    EAPI void         elm_entry_select_all(Evas_Object *obj) EINA_ARG_NONNULL(1);
1265    EAPI Eina_Bool    elm_entry_cursor_next(Evas_Object *obj) EINA_ARG_NONNULL(1);
1266    EAPI Eina_Bool    elm_entry_cursor_prev(Evas_Object *obj) EINA_ARG_NONNULL(1);
1267    EAPI Eina_Bool    elm_entry_cursor_up(Evas_Object *obj) EINA_ARG_NONNULL(1);
1268    EAPI Eina_Bool    elm_entry_cursor_down(Evas_Object *obj) EINA_ARG_NONNULL(1);
1269    EAPI void         elm_entry_cursor_begin_set(Evas_Object *obj) EINA_ARG_NONNULL(1);
1270    EAPI void         elm_entry_cursor_end_set(Evas_Object *obj) EINA_ARG_NONNULL(1);
1271    EAPI void         elm_entry_cursor_line_begin_set(Evas_Object *obj) EINA_ARG_NONNULL(1);
1272    EAPI void         elm_entry_cursor_line_end_set(Evas_Object *obj) EINA_ARG_NONNULL(1);
1273    EAPI void         elm_entry_cursor_selection_begin(Evas_Object *obj) EINA_ARG_NONNULL(1);
1274    EAPI void         elm_entry_cursor_selection_end(Evas_Object *obj) EINA_ARG_NONNULL(1);
1275    EAPI Eina_Bool    elm_entry_cursor_is_format_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1276    EAPI Eina_Bool    elm_entry_cursor_is_visible_format_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1277    EAPI const char  *elm_entry_cursor_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1278    EAPI Eina_Bool    elm_entry_cursor_geometry_get(const Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) EINA_ARG_NONNULL(1);
1279    EAPI void         elm_entry_cursor_pos_set(Evas_Object *obj, int pos) EINA_ARG_NONNULL(1);
1280    EAPI int          elm_entry_cursor_pos_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1281    EAPI void         elm_entry_selection_cut(Evas_Object *obj) EINA_ARG_NONNULL(1);
1282    EAPI void         elm_entry_selection_copy(Evas_Object *obj) EINA_ARG_NONNULL(1);
1283    EAPI void         elm_entry_selection_paste(Evas_Object *obj) EINA_ARG_NONNULL(1);
1284    EAPI void         elm_entry_context_menu_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
1285    EAPI void         elm_entry_context_menu_item_add(Evas_Object *obj, const char *label, const char *icon_file, Elm_Icon_Type icon_type, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
1286    EAPI void         elm_entry_context_menu_disabled_set(Evas_Object *obj, Eina_Bool disabled) EINA_ARG_NONNULL(1);
1287    EAPI Eina_Bool    elm_entry_context_menu_disabled_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1288    EAPI void         elm_entry_item_provider_append(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item), void *data) EINA_ARG_NONNULL(1, 2);
1289    EAPI void         elm_entry_item_provider_prepend(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item), void *data) EINA_ARG_NONNULL(1, 2);
1290    EAPI void         elm_entry_item_provider_remove(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item), void *data) EINA_ARG_NONNULL(1, 2);
1291    EAPI void         elm_entry_text_filter_append(Evas_Object *obj, void (*func) (void *data, Evas_Object *entry, char **text), void *data) EINA_ARG_NONNULL(1, 2);
1292    EAPI void         elm_entry_text_filter_prepend(Evas_Object *obj, void (*func) (void *data, Evas_Object *entry, char **text), void *data) EINA_ARG_NONNULL(1, 2);
1293    EAPI void         elm_entry_text_filter_remove(Evas_Object *obj, void (*func) (void *data, Evas_Object *entry, char **text), void *data) EINA_ARG_NONNULL(1, 2);
1294    EAPI char        *elm_entry_markup_to_utf8(const char *s) EINA_MALLOC EINA_WARN_UNUSED_RESULT;
1295    EAPI char        *elm_entry_utf8_to_markup(const char *s) EINA_MALLOC EINA_WARN_UNUSED_RESULT;
1296    EINA_DEPRECATED EAPI void         elm_entry_wrap_width_set(Evas_Object *obj, Evas_Coord w);
1297    EINA_DEPRECATED EAPI Evas_Coord   elm_entry_wrap_width_get(const Evas_Object *obj);
1298    EINA_DEPRECATED EAPI void         elm_entry_fontsize_set(Evas_Object *obj, int fontsize);
1299    EINA_DEPRECATED EAPI void         elm_entry_text_color_set(Evas_Object *obj, unsigned int r, unsigned int g, unsigned int b, unsigned int a);
1300    EINA_DEPRECATED EAPI void         elm_entry_text_align_set(Evas_Object *obj, const char *alignmode);
1301    EAPI void         elm_entry_background_color_set(Evas_Object *obj, unsigned int r, unsigned int g, unsigned int b, unsigned int a);
1302    EAPI void         elm_entry_file_set(Evas_Object *obj, const char *file, Elm_Text_Format format) EINA_ARG_NONNULL(1);
1303    EAPI void         elm_entry_file_get(const Evas_Object *obj, const char **file, Elm_Text_Format *format) EINA_ARG_NONNULL(1);
1304    EAPI void         elm_entry_file_save(Evas_Object *obj) EINA_ARG_NONNULL(1);
1305    EAPI void         elm_entry_autosave_set(Evas_Object *obj, Eina_Bool autosave) EINA_ARG_NONNULL(1);
1306    EAPI Eina_Bool    elm_entry_autosave_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1307    EAPI void         elm_entry_cnp_textonly_set(Evas_Object *obj, Eina_Bool textonly) EINA_ARG_NONNULL(1);
1308    EAPI Eina_Bool    elm_entry_cnp_textonly_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
1309    EAPI void         elm_entry_autocapitalization_set(Evas_Object *obj, Eina_Bool autocap);
1310    EAPI void         elm_entry_autoperiod_set(Evas_Object *obj, Eina_Bool autoperiod);
1311    EAPI void         elm_entry_autoenable_returnkey_set(Evas_Object *obj, Eina_Bool on);
1312    EAPI void         elm_entry_input_panel_enabled_set(Evas_Object *obj, Eina_Bool enabled);
1313    EAPI void         elm_entry_input_panel_layout_set(Evas_Object *obj, Elm_Input_Panel_Layout layout);
1314    EAPI Ecore_IMF_Context *elm_entry_imf_context_get(Evas_Object *obj);
1315    EAPI void         elm_entry_matchlist_set(Evas_Object *obj, Eina_List *match_list, Eina_Bool case_sensitive);
1316    EAPI Eina_Bool    elm_entry_is_empty(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1317    EAPI void         elm_entry_magnifier_type_set(Evas_Object *obj, int type) EINA_ARG_NONNULL(1);
1318
1319
1320    /* pre-made filters for entries */
1321    typedef struct _Elm_Entry_Filter_Limit_Size Elm_Entry_Filter_Limit_Size;
1322    struct _Elm_Entry_Filter_Limit_Size
1323      {
1324         int max_char_count;
1325         int max_byte_count;
1326      };
1327    EAPI void         elm_entry_filter_limit_size(void *data, Evas_Object *entry, char **text) EINA_ARG_NONNULL(1, 2, 3);
1328    typedef struct _Elm_Entry_Filter_Accept_Set Elm_Entry_Filter_Accept_Set;
1329    struct _Elm_Entry_Filter_Accept_Set
1330      {
1331         const char *accepted;
1332         const char *rejected;
1333      };
1334    EAPI void         elm_entry_filter_accept_set(void *data, Evas_Object *entry, char **text) EINA_ARG_NONNULL(1, 3);
1335    /* smart callbacks called:
1336     * "changed" - the text content changed
1337     * "selection,start" - the user started selecting text
1338     * "selection,changed" - the user modified the selection size/location
1339     * "selection,cleared" - the user cleared the selection
1340     * "selection,paste" - the user requested a paste of text
1341     * "selection,copy" - the user copied the text
1342     * "selection,cut" - the user cut the text
1343     * "cursor,changed" - the cursor changed position
1344     * "anchor,clicked" - achor called was clicked | event_info = Elm_Entry_Anchor_Info
1345     * "activated" - when the enter key is pressed (useful for single line)
1346     * "press" - when finger/mouse is pressed down
1347     * "clicked" - when finger/mouse is pressed and released (without a drag etc.)
1348     * "clicked,double" - when finger/mouse is double-pressed
1349     * "longpressed" - the entry has been longpressed
1350     * "focused" - the entry has received keyboard focus
1351     * "unfocused" - keyboard focus is gone
1352     */
1353
1354    /* composite widgets - these basically put together basic widgets above
1355     * in convenient packages that do more than basic stuff */
1356
1357    /* anchorview */
1358    typedef struct _Elm_Entry_Anchorview_Info Elm_Entry_Anchorview_Info;
1359    struct _Elm_Entry_Anchorview_Info
1360      {
1361         const char     *name;
1362         int             button;
1363         Evas_Object    *hover;
1364         struct {
1365              Evas_Coord    x, y, w, h;
1366         } anchor, hover_parent;
1367         Eina_Bool       hover_left : 1;
1368         Eina_Bool       hover_right : 1;
1369         Eina_Bool       hover_top : 1;
1370         Eina_Bool       hover_bottom : 1;
1371      };
1372    EAPI Evas_Object *elm_anchorview_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
1373    EAPI void         elm_anchorview_text_set(Evas_Object *obj, const char *text) EINA_ARG_NONNULL(1);
1374    EAPI const char  *elm_anchorview_text_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1375
1376    EAPI void         elm_anchorview_hover_parent_set(Evas_Object *obj, Evas_Object *parent) EINA_ARG_NONNULL(1);
1377    EAPI Evas_Object *elm_anchorview_hover_parent_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1378    EAPI void         elm_anchorview_hover_style_set(Evas_Object *obj, const char *style) EINA_ARG_NONNULL(1);
1379    EAPI const char  *elm_anchorview_hover_style_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1380    EAPI void         elm_anchorview_hover_end(Evas_Object *obj) EINA_ARG_NONNULL(1);
1381    EAPI void         elm_anchorview_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce) EINA_ARG_NONNULL(1);
1382    EAPI void         elm_anchorview_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce) EINA_ARG_NONNULL(1);
1383    EAPI void         elm_anchorview_item_provider_append(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *anchorview, const char *item), void *data) EINA_ARG_NONNULL(1, 2);
1384    EAPI void         elm_anchorview_item_provider_prepend(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *anchorview, const char *item), void *data) EINA_ARG_NONNULL(1, 2);
1385    EAPI void         elm_anchorview_item_provider_remove(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *anchorview, const char *item), void *data) EINA_ARG_NONNULL(1, 2);
1386    /* smart callbacks called:
1387     * "anchor,clicked" - achor called was clicked | event_info = Elm_Entry_Anchorview_Info
1388     */
1389
1390    /* anchorblock */
1391    typedef struct _Elm_Entry_Anchorblock_Info Elm_Entry_Anchorblock_Info;
1392    struct _Elm_Entry_Anchorblock_Info
1393      {
1394         const char     *name;
1395         int             button;
1396         Evas_Object    *hover;
1397         struct {
1398              Evas_Coord    x, y, w, h;
1399         } anchor, hover_parent;
1400         Eina_Bool       hover_left : 1;
1401         Eina_Bool       hover_right : 1;
1402         Eina_Bool       hover_top : 1;
1403         Eina_Bool       hover_bottom : 1;
1404      };
1405    EAPI Evas_Object *elm_anchorblock_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
1406    EAPI void         elm_anchorblock_text_set(Evas_Object *obj, const char *text) EINA_ARG_NONNULL(1);
1407    EAPI const char  *elm_anchorblock_text_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1408    EAPI void         elm_anchorblock_hover_parent_set(Evas_Object *obj, Evas_Object *parent) EINA_ARG_NONNULL(1);
1409    EAPI Evas_Object *elm_anchorblock_hover_parent_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1410    EAPI void         elm_anchorblock_hover_style_set(Evas_Object *obj, const char *style) EINA_ARG_NONNULL(1);
1411    EAPI const char  *elm_anchorblock_hover_style_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1412    EAPI void         elm_anchorblock_hover_end(Evas_Object *obj) EINA_ARG_NONNULL(1);
1413    EAPI void         elm_anchorblock_item_provider_append(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *anchorblock, const char *item), void *data) EINA_ARG_NONNULL(1, 2);
1414    EAPI void         elm_anchorblock_item_provider_prepend(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *anchorblock, const char *item), void *data) EINA_ARG_NONNULL(1, 2);
1415    EAPI void         elm_anchorblock_item_provider_remove(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *anchorblock, const char *item), void *data) EINA_ARG_NONNULL(1, 2);
1416    /* smart callbacks called:
1417     * "anchor,clicked" - achor called was clicked | event_info = Elm_Entry_Anchorblock_Info
1418     */
1419
1420    /* bubble */
1421    EAPI Evas_Object *elm_bubble_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
1422    EAPI void         elm_bubble_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
1423    EAPI const char  *elm_bubble_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1424    EAPI void         elm_bubble_info_set(Evas_Object *obj, const char *info) EINA_ARG_NONNULL(1);
1425    EAPI const char  *elm_bubble_info_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1426
1427    EAPI void         elm_bubble_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
1428    EAPI Evas_Object *elm_bubble_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1429    EAPI Evas_Object *elm_bubble_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
1430    EAPI void         elm_bubble_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
1431    EAPI Evas_Object *elm_bubble_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1432    EAPI Evas_Object *elm_bubble_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
1433    EINA_DEPRECATED EAPI void         elm_bubble_sweep_layout_set(Evas_Object *obj, Evas_Object *sweep) EINA_ARG_NONNULL(1);
1434    EINA_DEPRECATED EAPI Evas_Object *elm_bubble_sweep_layout_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
1435    EAPI void         elm_bubble_corner_set(Evas_Object *obj, const char *corner) EINA_ARG_NONNULL(1, 2);
1436    EAPI const char  *elm_bubble_corner_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1437    /* smart callbacks called:
1438     * "clicked" - the user clicked the bubble
1439     * "sweep,left,right" - when bubble is sweeped from left to right, this signal is sent.
1440     * "sweep,right,left" - when bubble is sweeped from right to left, this signal is sent.
1441     */
1442
1443    /* photo */
1444    EAPI Evas_Object *elm_photo_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
1445    EAPI Eina_Bool    elm_photo_file_set(Evas_Object *obj, const char *file) EINA_ARG_NONNULL(1);
1446    EAPI void         elm_photo_size_set(Evas_Object *obj, int size) EINA_ARG_NONNULL(1);
1447    EAPI void         elm_photo_fill_inside_set(Evas_Object *obj, Eina_Bool fill) EINA_ARG_NONNULL(1);
1448    EAPI void         elm_photo_editable_set(Evas_Object *obj, Eina_Bool set) EINA_ARG_NONNULL(1);
1449    /* smart callbacks called:
1450     * "clicked" - the user clicked the icon
1451     * "drop" - Something was dropped on the widget
1452     * "drag,start" - Someone started dragging the image out of the object
1453     * "drag,end" - Dragged item was dropped (somewhere)
1454     */
1455
1456    /* thumb */
1457    typedef enum _Elm_Thumb_Animation_Setting
1458      {
1459         ELM_THUMB_ANIMATION_START = 0, /* Play animation once */
1460         ELM_THUMB_ANIMATION_LOOP,      /* Keep playing animation until stop is requested */
1461         ELM_THUMB_ANIMATION_STOP,
1462         ELM_THUMB_ANIMATION_LAST
1463      } Elm_Thumb_Animation_Setting;
1464
1465    EAPI Evas_Object                 *elm_thumb_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
1466    EAPI void                         elm_thumb_reload(Evas_Object *obj) EINA_ARG_NONNULL(1);
1467    EAPI void                         elm_thumb_file_set(Evas_Object *obj, const char *file, const char *key) EINA_ARG_NONNULL(1);
1468    EAPI void                         elm_thumb_file_get(const Evas_Object *obj, const char **file, const char **key) EINA_ARG_NONNULL(1);
1469    EAPI void                         elm_thumb_path_get(const Evas_Object *obj, const char **file, const char **key) EINA_ARG_NONNULL(1);
1470    EAPI void                         elm_thumb_animate_set(Evas_Object *obj, Elm_Thumb_Animation_Setting s) EINA_ARG_NONNULL(1);
1471    EAPI Elm_Thumb_Animation_Setting  elm_thumb_animate_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1472    EAPI void                        *elm_thumb_ethumb_client_get(void);
1473    EAPI Eina_Bool                    elm_thumb_ethumb_client_connected(void);
1474    EAPI Eina_Bool                    elm_thumb_editable_set(Evas_Object *obj, Eina_Bool edit) EINA_ARG_NONNULL(1);
1475    EAPI Eina_Bool                    elm_thumb_editable_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1476    /* available styles:
1477     * default
1478     * noframe
1479     */
1480    /* smart callbacks called:
1481     * "clicked" - This is called when a user has clicked the thumb without dragging around.
1482     * "clicked,double" - This is called when a user has double-clicked the thumb.
1483     * "press" - This is called when a user has pressed down the thumb.
1484     * "generate,start" - The thumbnail generation started.
1485     * "generate,stop" - The generation process stopped.
1486     * "generate,error" - The generation failed.
1487     * "load,error" - The thumbnail image loading failed.
1488     */
1489
1490    /* hoversel */
1491    EAPI Evas_Object       *elm_hoversel_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
1492    EAPI void               elm_hoversel_horizontal_set(Evas_Object *obj, Eina_Bool horizontal) EINA_ARG_NONNULL(1);
1493    EAPI Eina_Bool          elm_hoversel_horizontal_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1494    EAPI void               elm_hoversel_hover_parent_set(Evas_Object *obj, Evas_Object *parent) EINA_ARG_NONNULL(1);
1495    EAPI Evas_Object       *elm_hoversel_hover_parent_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1496    EAPI void               elm_hoversel_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
1497    EAPI const char        *elm_hoversel_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1498    EAPI void               elm_hoversel_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
1499    EAPI Evas_Object       *elm_hoversel_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1500    EAPI Evas_Object       *elm_hoversel_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
1501    EAPI void               elm_hoversel_hover_begin(Evas_Object *obj) EINA_ARG_NONNULL(1);
1502    EAPI void               elm_hoversel_hover_end(Evas_Object *obj) EINA_ARG_NONNULL(1);
1503    EAPI Eina_Bool          elm_hoversel_expanded_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1504    EAPI void               elm_hoversel_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
1505    EAPI const Eina_List   *elm_hoversel_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1506    EAPI Elm_Hoversel_Item *elm_hoversel_item_add(Evas_Object *obj, const char *label, const char *icon_file, Elm_Icon_Type icon_type, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
1507    EAPI void               elm_hoversel_item_del(Elm_Hoversel_Item *item) EINA_ARG_NONNULL(1);
1508    EAPI void               elm_hoversel_item_del_cb_set(Elm_Hoversel_Item *it, Evas_Smart_Cb func) EINA_ARG_NONNULL(1);
1509    EAPI void              *elm_hoversel_item_data_get(const Elm_Hoversel_Item *it) EINA_ARG_NONNULL(1);
1510    EAPI const char        *elm_hoversel_item_label_get(const Elm_Hoversel_Item *it) EINA_ARG_NONNULL(1);
1511    EAPI void               elm_hoversel_item_icon_set(Elm_Hoversel_Item *it, const char *icon_file, const char *icon_group, Elm_Icon_Type icon_type) EINA_ARG_NONNULL(1);
1512    EAPI void               elm_hoversel_item_icon_get(const Elm_Hoversel_Item *it, const char **icon_file, const char **icon_group, Elm_Icon_Type *icon_type) EINA_ARG_NONNULL(1);
1513    /* smart callbacks called:
1514     * "clicked" - the user clicked the hoversel button and popped up the sel
1515     * "selected" - an item in the hoversel list is selected
1516     * "dismissed" - the hover is dismissed
1517     */
1518
1519    /* toolbar */
1520    typedef enum _Elm_Toolbar_Shrink_Mode
1521      {
1522         ELM_TOOLBAR_SHRINK_NONE,   /**< set toolbar minimun size to fit all the items */
1523         ELM_TOOLBAR_SHRINK_HIDE,   /**< hide excess items */
1524         ELM_TOOLBAR_SHRINK_SCROLL, /**< allow accessing excess items through a scroller */
1525         ELM_TOOLBAR_SHRINK_MENU    /**< inserts a button to pop up a menu with excess items */
1526      } Elm_Toolbar_Shrink_Mode;
1527
1528    typedef struct _Elm_Toolbar_Item Elm_Toolbar_Item; /**< Item of Elm_Toolbar. Sub-type of Elm_Widget_Item */
1529    typedef struct _Elm_Toolbar_Item_State Elm_Toolbar_Item_State; /** State of a Elm_Toolbar_Item */
1530
1531    EAPI Evas_Object            *elm_toolbar_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
1532    EAPI void                    elm_toolbar_icon_size_set(Evas_Object *obj, int icon_size) EINA_ARG_NONNULL(1);
1533    EAPI int                     elm_toolbar_icon_size_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1534    EAPI void                    elm_toolbar_icon_order_lookup_set(Evas_Object *obj, Elm_Icon_Lookup_Order order) EINA_ARG_NONNULL(1);
1535    EAPI Elm_Icon_Lookup_Order   elm_toolbar_icon_order_lookup_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1536    EAPI void                    elm_toolbar_no_select_mode_set(Evas_Object *obj, Eina_Bool no_select) EINA_ARG_NONNULL(1);
1537    EAPI Eina_Bool               elm_toolbar_no_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1538    EAPI Elm_Toolbar_Item       *elm_toolbar_item_append(Evas_Object *obj, const char *icon, const char *label, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
1539    EAPI Elm_Toolbar_Item       *elm_toolbar_item_prepend(Evas_Object *obj, const char *icon, const char *label, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
1540    EAPI Elm_Toolbar_Item       *elm_toolbar_item_insert_before(Evas_Object *obj, Elm_Toolbar_Item *before, const char *icon, const char *label, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
1541    EAPI Elm_Toolbar_Item       *elm_toolbar_item_insert_after(Evas_Object *obj, Elm_Toolbar_Item *after, const char *icon, const char *label, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
1542    EAPI Elm_Toolbar_Item       *elm_toolbar_first_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1543    EAPI Elm_Toolbar_Item       *elm_toolbar_last_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1544    EAPI Elm_Toolbar_Item       *elm_toolbar_item_next_get(const Elm_Toolbar_Item *item) EINA_ARG_NONNULL(1);
1545    EAPI Elm_Toolbar_Item       *elm_toolbar_item_prev_get(const Elm_Toolbar_Item *item) EINA_ARG_NONNULL(1);
1546    EAPI Evas_Object            *elm_toolbar_item_toolbar_get(const Elm_Toolbar_Item *item) EINA_ARG_NONNULL(1);
1547    EAPI void                    elm_toolbar_item_priority_set(Elm_Toolbar_Item *item, int priority) EINA_ARG_NONNULL(1);
1548    EAPI int                     elm_toolbar_item_priority_get(const Elm_Toolbar_Item *item) EINA_ARG_NONNULL(1);
1549    EAPI const char             *elm_toolbar_item_icon_get(const Elm_Toolbar_Item *item) EINA_ARG_NONNULL(1);
1550    EAPI const char             *elm_toolbar_item_label_get(const Elm_Toolbar_Item *item) EINA_ARG_NONNULL(1);
1551    EAPI void                    elm_toolbar_item_label_set(Elm_Toolbar_Item *item, const char *label) EINA_ARG_NONNULL(1);
1552    EAPI void                   *elm_toolbar_item_data_get(const Elm_Toolbar_Item *item) EINA_ARG_NONNULL(1);
1553    EAPI void                    elm_toolbar_item_data_set(Elm_Toolbar_Item *item, const void *data) EINA_ARG_NONNULL(1);
1554    EAPI Elm_Toolbar_Item       *elm_toolbar_item_find_by_label(const Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
1555    EAPI Eina_Bool               elm_toolbar_item_selected_get(const Elm_Toolbar_Item *item) EINA_ARG_NONNULL(1);
1556    EAPI void                    elm_toolbar_item_selected_set(Elm_Toolbar_Item *item, Eina_Bool selected) EINA_ARG_NONNULL(1);
1557    EAPI Elm_Toolbar_Item       *elm_toolbar_selected_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1558    EAPI void                    elm_toolbar_item_icon_set(Elm_Toolbar_Item *item, const char *icon) EINA_ARG_NONNULL(1);
1559    EAPI void                    elm_toolbar_item_del(Elm_Toolbar_Item *item) EINA_ARG_NONNULL(1);
1560    EAPI void                    elm_toolbar_item_del_cb_set(Elm_Toolbar_Item *item, Evas_Smart_Cb func) EINA_ARG_NONNULL(1);
1561    EAPI Eina_Bool               elm_toolbar_item_disabled_get(const Elm_Toolbar_Item *item) EINA_ARG_NONNULL(1);
1562    EAPI void                    elm_toolbar_item_disabled_set(Elm_Toolbar_Item *item, Eina_Bool disabled) EINA_ARG_NONNULL(1);
1563    EAPI void                    elm_toolbar_item_separator_set(Elm_Toolbar_Item *item, Eina_Bool separator) EINA_ARG_NONNULL(1);
1564    EAPI Eina_Bool               elm_toolbar_item_separator_get(const Elm_Toolbar_Item *item) EINA_ARG_NONNULL(1);
1565    EAPI void                    elm_toolbar_mode_shrink_set(Evas_Object *obj, Elm_Toolbar_Shrink_Mode shrink_mode) EINA_ARG_NONNULL(1);
1566    EAPI Elm_Toolbar_Shrink_Mode elm_toolbar_mode_shrink_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1567    EAPI void                    elm_toolbar_homogenous_set(Evas_Object *obj, Eina_Bool homogenous) EINA_ARG_NONNULL(1);
1568    EAPI Eina_Bool               elm_toolbar_homogenous_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1569    EAPI void                    elm_toolbar_menu_parent_set(Evas_Object *obj, Evas_Object *parent) EINA_ARG_NONNULL(1);
1570    EAPI Evas_Object            *elm_toolbar_menu_parent_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1571    EAPI void                    elm_toolbar_align_set(Evas_Object *obj, double align) EINA_ARG_NONNULL(1);
1572    EAPI double                  elm_toolbar_align_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1573    EAPI void                    elm_toolbar_item_menu_set(Elm_Toolbar_Item *item, Eina_Bool menu) EINA_ARG_NONNULL(1);
1574    EAPI Evas_Object            *elm_toolbar_item_menu_get(Elm_Toolbar_Item *item) EINA_ARG_NONNULL(1);
1575    EAPI Elm_Toolbar_Item_State *elm_toolbar_item_state_add(Elm_Toolbar_Item *item, const char *icon, const char *label, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
1576    EAPI Eina_Bool               elm_toolbar_item_state_del(Elm_Toolbar_Item *item, Elm_Toolbar_Item_State *state) EINA_ARG_NONNULL(1);
1577    EAPI Eina_Bool               elm_toolbar_item_state_set(Elm_Toolbar_Item *it, Elm_Toolbar_Item_State *state) EINA_ARG_NONNULL(1);
1578    EAPI void                    elm_toolbar_item_state_unset(Elm_Toolbar_Item *it) EINA_ARG_NONNULL(1);
1579    EAPI Elm_Toolbar_Item_State *elm_toolbar_item_state_get(const Elm_Toolbar_Item *it) EINA_ARG_NONNULL(1);
1580    EAPI Elm_Toolbar_Item_State *elm_toolbar_item_state_next(Elm_Toolbar_Item *it) EINA_ARG_NONNULL(1);
1581    EAPI Elm_Toolbar_Item_State *elm_toolbar_item_state_prev(Elm_Toolbar_Item *it) EINA_ARG_NONNULL(1);
1582    EAPI void                    elm_toolbar_item_tooltip_text_set(Elm_Toolbar_Item *item, const char *text) EINA_ARG_NONNULL(1);
1583    EAPI void                    elm_toolbar_item_tooltip_content_cb_set(Elm_Toolbar_Item *item, Elm_Tooltip_Item_Content_Cb func, const void *data, Evas_Smart_Cb del_cb) EINA_ARG_NONNULL(1);
1584    EAPI void                    elm_toolbar_item_tooltip_unset(Elm_Toolbar_Item *item) EINA_ARG_NONNULL(1);
1585    EAPI void                    elm_toolbar_item_tooltip_style_set(Elm_Toolbar_Item *item, const char *style) EINA_ARG_NONNULL(1);
1586    EAPI const char             *elm_toolbar_item_tooltip_style_get(const Elm_Toolbar_Item *item) EINA_ARG_NONNULL(1);
1587    EAPI void                    elm_toolbar_item_cursor_set(Elm_Toolbar_Item *item, const char *cursor) EINA_ARG_NONNULL(1);
1588    EAPI const char             *elm_toolbar_item_cursor_get(const Elm_Toolbar_Item *item) EINA_ARG_NONNULL(1);
1589    EAPI void                    elm_toolbar_item_cursor_unset(Elm_Toolbar_Item *item) EINA_ARG_NONNULL(1);
1590    EAPI void                    elm_toolbar_item_cursor_style_set(Elm_Toolbar_Item *item, const char *style) EINA_ARG_NONNULL(1);
1591    EAPI const char             *elm_toolbar_item_cursor_style_get(const Elm_Toolbar_Item *item) EINA_ARG_NONNULL(1);
1592    EAPI void                    elm_toolbar_item_cursor_engine_only_set(Elm_Toolbar_Item *item, Eina_Bool engine_only) EINA_ARG_NONNULL(1);
1593    EAPI Eina_Bool               elm_toolbar_item_cursor_engine_only_get(const Elm_Toolbar_Item *item) EINA_ARG_NONNULL(1);
1594    /* smart callbacks called:
1595     * "clicked" - when the user clicks on a toolbar item and becomes selected
1596     */
1597    /* available styles:
1598     * default
1599     * transparent (no background or shadow, just show the provided content)
1600     */
1601
1602    /* tooltip */
1603    EAPI double       elm_tooltip_delay_get(void);
1604    EAPI Eina_Bool    elm_tooltip_delay_set(double delay);
1605    EAPI void         elm_object_tooltip_show(Evas_Object *obj) EINA_ARG_NONNULL(1);
1606    EAPI void         elm_object_tooltip_hide(Evas_Object *obj) EINA_ARG_NONNULL(1);
1607    EAPI void         elm_object_tooltip_text_set(Evas_Object *obj, const char *text) EINA_ARG_NONNULL(1, 2);
1608    EAPI void         elm_object_tooltip_content_cb_set(Evas_Object *obj, Elm_Tooltip_Content_Cb func, const void *data, Evas_Smart_Cb del_cb) EINA_ARG_NONNULL(1);
1609    EAPI void         elm_object_tooltip_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
1610    EAPI void         elm_object_tooltip_style_set(Evas_Object *obj, const char *style) EINA_ARG_NONNULL(1);
1611    EAPI const char  *elm_object_tooltip_style_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1612    EAPI void         elm_object_cursor_set(Evas_Object *obj, const char *cursor) EINA_ARG_NONNULL(1);
1613    EAPI const char  *elm_object_cursor_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1614    EAPI void         elm_object_cursor_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
1615    EAPI void         elm_object_cursor_style_set(Evas_Object *obj, const char *style) EINA_ARG_NONNULL(1);
1616    EAPI const char  *elm_object_cursor_style_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1617    EAPI void         elm_object_cursor_engine_only_set(Evas_Object *obj, Eina_Bool engine_only) EINA_ARG_NONNULL(1);
1618    EAPI Eina_Bool    elm_object_cursor_engine_only_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1619
1620    /* cursors */
1621    EAPI int          elm_cursor_engine_only_get(void);
1622    EAPI Eina_Bool    elm_cursor_engine_only_set(int engine_only);
1623
1624    /* menu */
1625    typedef struct _Elm_Menu_Item Elm_Menu_Item; /**< Item of Elm_Menu. Sub-type of Elm_Widget_Item */
1626    EAPI Evas_Object       *elm_menu_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
1627    EAPI void               elm_menu_parent_set(Evas_Object *obj, Evas_Object *parent) EINA_ARG_NONNULL(1);
1628    EAPI Evas_Object       *elm_menu_parent_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1629    EAPI void               elm_menu_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y) EINA_ARG_NONNULL(1);
1630    EAPI void               elm_menu_close(Evas_Object *obj) EINA_ARG_NONNULL(1);
1631    EAPI const Eina_List   *elm_menu_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1632    EAPI Evas_Object       *elm_menu_item_object_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1);
1633    EAPI Elm_Menu_Item     *elm_menu_item_add(Evas_Object *obj, Elm_Menu_Item *parent, const char *icon, const char *label, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
1634    EAPI void               elm_menu_item_label_set(Elm_Menu_Item *item, const char *label) EINA_ARG_NONNULL(1);
1635    EAPI const char        *elm_menu_item_label_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
1636    EAPI void               elm_menu_item_icon_set(Elm_Menu_Item *item, const char *icon) EINA_ARG_NONNULL(1, 2);
1637    EAPI const char        *elm_menu_item_icon_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
1638    EAPI const Evas_Object *elm_menu_item_object_icon_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
1639    EAPI void               elm_menu_item_selected_set(Elm_Menu_Item *item, Eina_Bool selected) EINA_ARG_NONNULL(1);
1640    EAPI Eina_Bool          elm_menu_item_selected_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
1641    EAPI void               elm_menu_item_disabled_set(Elm_Menu_Item *item, Eina_Bool disabled) EINA_ARG_NONNULL(1);
1642    EAPI Eina_Bool          elm_menu_item_disabled_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
1643    EAPI Elm_Menu_Item     *elm_menu_item_separator_add(Evas_Object *obj, Elm_Menu_Item *parent) EINA_ARG_NONNULL(1);
1644    EAPI Eina_Bool          elm_menu_item_is_separator(Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
1645    EAPI void               elm_menu_item_del(Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
1646    EAPI void               elm_menu_item_del_cb_set(Elm_Menu_Item *it, Evas_Smart_Cb func) EINA_ARG_NONNULL(1);
1647    EAPI void              *elm_menu_item_data_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1);
1648    EAPI void               elm_menu_item_data_set(Elm_Menu_Item *item, const void *data) EINA_ARG_NONNULL(1);
1649    EAPI const Eina_List   *elm_menu_item_subitems_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
1650    EAPI const Elm_Menu_Item *elm_menu_selected_item_get(const Evas_Object * obj) EINA_ARG_NONNULL(1);
1651    EAPI const Elm_Menu_Item *elm_menu_last_item_get(const Evas_Object * obj) EINA_ARG_NONNULL(1);
1652    EAPI const Elm_Menu_Item *elm_menu_first_item_get(const Evas_Object * obj) EINA_ARG_NONNULL(1);
1653    EAPI const Elm_Menu_Item *elm_menu_item_next_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1);
1654    EAPI const Elm_Menu_Item *elm_menu_item_prev_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1);
1655
1656    /* smart callbacks called:
1657     * "clicked" - the user clicked the empty space in the menu to dismiss. event_info is NULL.
1658     */
1659
1660    /* list */
1661    typedef enum _Elm_List_Mode
1662      {
1663         ELM_LIST_COMPRESS = 0,
1664         ELM_LIST_SCROLL,
1665         ELM_LIST_LIMIT,
1666         ELM_LIST_EXPAND,
1667         ELM_LIST_LAST
1668      } Elm_List_Mode;
1669    typedef struct _Elm_List_Item Elm_List_Item; /**< Item of Elm_List. Sub-type of Elm_Widget_Item */
1670    EAPI Evas_Object     *elm_list_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
1671    EAPI Elm_List_Item   *elm_list_item_append(Evas_Object *obj, const char *label, Evas_Object *icon, Evas_Object *end, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
1672    EAPI Elm_List_Item   *elm_list_item_prepend(Evas_Object *obj, const char *label, Evas_Object *icon, Evas_Object *end, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
1673    EAPI Elm_List_Item   *elm_list_item_insert_before(Evas_Object *obj, Elm_List_Item *before, const char *label, Evas_Object *icon, Evas_Object *end, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
1674    EAPI Elm_List_Item   *elm_list_item_insert_after(Evas_Object *obj, Elm_List_Item *after, const char *label, Evas_Object *icon, Evas_Object *end, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
1675    EAPI Elm_List_Item   *elm_list_item_sorted_insert(Evas_Object *obj, const char *label, Evas_Object *icon, Evas_Object *end, Evas_Smart_Cb func, const void *data, Eina_Compare_Cb cmp_func) EINA_ARG_NONNULL(1);
1676    EAPI void             elm_list_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
1677    EAPI void             elm_list_go(Evas_Object *obj) EINA_ARG_NONNULL(1);
1678    EAPI void             elm_list_multi_select_set(Evas_Object *obj, Eina_Bool multi) EINA_ARG_NONNULL(1);
1679    EAPI Eina_Bool        elm_list_multi_select_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1680    EAPI void             elm_list_mode_set(Evas_Object *obj, Elm_List_Mode mode) EINA_ARG_NONNULL(1);
1681    EAPI Elm_List_Mode    elm_list_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1682    EAPI void             elm_list_horizontal_set(Evas_Object *obj, Eina_Bool horizontal) EINA_ARG_NONNULL(1);
1683    EAPI Eina_Bool        elm_list_horizontal_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1684    EAPI void             elm_list_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select) EINA_ARG_NONNULL(1);
1685    EAPI Eina_Bool        elm_list_always_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1686    EAPI const Eina_List *elm_list_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1687    EAPI Elm_List_Item   *elm_list_selected_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1688    EAPI const Eina_List *elm_list_selected_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1689    EAPI void             elm_list_item_separator_set(Elm_List_Item *it, Eina_Bool setting) EINA_ARG_NONNULL(1);
1690    EAPI Eina_Bool        elm_list_item_separator_get(const Elm_List_Item *it) EINA_ARG_NONNULL(1);
1691    EAPI void             elm_list_item_selected_set(Elm_List_Item *item, Eina_Bool selected) EINA_ARG_NONNULL(1);
1692    EAPI Eina_Bool        elm_list_item_selected_get(const Elm_List_Item *item) EINA_ARG_NONNULL(1);
1693    EAPI void             elm_list_item_show(Elm_List_Item *item) EINA_ARG_NONNULL(1);
1694    EAPI void             elm_list_item_bring_in(Elm_List_Item *item) EINA_ARG_NONNULL(1);
1695    EAPI void             elm_list_item_del(Elm_List_Item *item) EINA_ARG_NONNULL(1);
1696    EAPI void             elm_list_item_del_cb_set(Elm_List_Item *item, Evas_Smart_Cb func) EINA_ARG_NONNULL(1);
1697    EAPI void            *elm_list_item_data_get(const Elm_List_Item *item) EINA_ARG_NONNULL(1);
1698    EAPI Evas_Object     *elm_list_item_icon_get(const Elm_List_Item *item) EINA_ARG_NONNULL(1);
1699    EAPI void             elm_list_item_icon_set(Elm_List_Item *item, Evas_Object *icon) EINA_ARG_NONNULL(1);
1700    EAPI Evas_Object     *elm_list_item_end_get(const Elm_List_Item *item) EINA_ARG_NONNULL(1);
1701    EAPI void             elm_list_item_end_set(Elm_List_Item *item, Evas_Object *end) EINA_ARG_NONNULL(1);
1702    EAPI Evas_Object     *elm_list_item_base_get(const Elm_List_Item *item) EINA_ARG_NONNULL(1);
1703    EAPI const char      *elm_list_item_label_get(const Elm_List_Item *item) EINA_ARG_NONNULL(1);
1704    EAPI void             elm_list_item_label_set(Elm_List_Item *item, const char *text) EINA_ARG_NONNULL(1);
1705    EAPI Elm_List_Item   *elm_list_item_prev(const Elm_List_Item *it) EINA_ARG_NONNULL(1);
1706    EAPI Elm_List_Item   *elm_list_item_next(const Elm_List_Item *it) EINA_ARG_NONNULL(1);
1707    EAPI void             elm_list_item_tooltip_text_set(Elm_List_Item *item, const char *text) EINA_ARG_NONNULL(1);
1708    EAPI void             elm_list_item_tooltip_content_cb_set(Elm_List_Item *item, Elm_Tooltip_Item_Content_Cb func, const void *data, Evas_Smart_Cb del_cb) EINA_ARG_NONNULL(1);
1709    EAPI void             elm_list_item_tooltip_unset(Elm_List_Item *item) EINA_ARG_NONNULL(1);
1710    EAPI void             elm_list_item_tooltip_style_set(Elm_List_Item *item, const char *style) EINA_ARG_NONNULL(1);
1711    EAPI const char      *elm_list_item_tooltip_style_get(const Elm_List_Item *item) EINA_ARG_NONNULL(1);
1712    EAPI void             elm_list_item_cursor_set(Elm_List_Item *item, const char *cursor) EINA_ARG_NONNULL(1);
1713    EAPI const char      *elm_list_item_cursor_get(const Elm_List_Item *item) EINA_ARG_NONNULL(1);
1714    EAPI void             elm_list_item_cursor_unset(Elm_List_Item *item) EINA_ARG_NONNULL(1);
1715    EAPI void             elm_list_item_cursor_style_set(Elm_List_Item *item, const char *style) EINA_ARG_NONNULL(1);
1716    EAPI const char      *elm_list_item_cursor_style_get(const Elm_List_Item *item) EINA_ARG_NONNULL(1);
1717    EAPI void             elm_list_item_cursor_engine_only_set(Elm_List_Item *item, Eina_Bool engine_only) EINA_ARG_NONNULL(1);
1718    EAPI Eina_Bool        elm_list_item_cursor_engine_only_get(const Elm_List_Item *item) EINA_ARG_NONNULL(1);
1719    EAPI void             elm_list_item_disabled_set(Elm_List_Item *it, Eina_Bool disabled) EINA_ARG_NONNULL(1);
1720    EAPI Eina_Bool        elm_list_item_disabled_get(const Elm_List_Item *it) EINA_ARG_NONNULL(1);
1721    EAPI void             elm_list_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce) EINA_ARG_NONNULL(1);
1722    EAPI void             elm_list_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce) EINA_ARG_NONNULL(1);
1723    EAPI void             elm_list_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v) EINA_ARG_NONNULL(1);
1724    EAPI void             elm_list_scroller_policy_get(const Evas_Object *obj, Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v) EINA_ARG_NONNULL(1);
1725    /* smart callbacks called:
1726     * "clicked" - when the user double-clicked an item
1727     * "selected" - when the user selected an item
1728     * "unselected" - when the user selected an item
1729     * "longpressed" - an item in the hoversel list is long-pressed
1730     * "scroll,edge,top" - the list is scrolled until the top edge
1731     * "scroll,edge,bottom" - the list is scrolled until the bottom edge
1732     * "scroll,edge,left" - the list is scrolled until the left edge
1733     * "scroll,edge,right" - the list is scrolled until the right edge
1734     */
1735
1736    // FIXME: incomplete - carousel. don't use this until this comment is removed
1737    typedef struct _Elm_Carousel_Item Elm_Carousel_Item;
1738    EAPI Evas_Object       *elm_carousel_add(Evas_Object *parent);
1739    EAPI Elm_Carousel_Item *elm_carousel_item_add(Evas_Object *obj, Evas_Object *icon, const char *label, Evas_Smart_Cb func, const void *data);
1740    EAPI void               elm_carousel_item_del(Elm_Carousel_Item *item);
1741    EAPI void               elm_carousel_item_select(Elm_Carousel_Item *item);
1742    /* smart callbacks called:
1743     * "clicked" - when the user clicks on a carousel item and becomes selected
1744     */
1745
1746    /* slider */
1747    EAPI Evas_Object       *elm_slider_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
1748    EAPI void               elm_slider_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
1749    EAPI const char        *elm_slider_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1750    EAPI void               elm_slider_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
1751    EAPI Evas_Object       *elm_slider_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
1752    EAPI Evas_Object       *elm_slider_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1753    EAPI void               elm_slider_end_set(Evas_Object *obj, Evas_Object *end) EINA_ARG_NONNULL(1);
1754    EAPI Evas_Object       *elm_slider_end_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
1755    EAPI Evas_Object       *elm_slider_end_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1756    EAPI void               elm_slider_span_size_set(Evas_Object *obj, Evas_Coord size) EINA_ARG_NONNULL(1);
1757    EAPI Evas_Coord         elm_slider_span_size_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1758    EAPI void               elm_slider_unit_format_set(Evas_Object *obj, const char *format) EINA_ARG_NONNULL(1);
1759    EAPI const char        *elm_slider_unit_format_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1760    EAPI void               elm_slider_indicator_format_set(Evas_Object *obj, const char *indicator) EINA_ARG_NONNULL(1);
1761    EAPI const char        *elm_slider_indicator_format_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1762    EAPI void               elm_slider_indicator_format_function_set(Evas_Object *obj, const char *(*func)(double val)) EINA_ARG_NONNULL(1);
1763    EAPI void               elm_slider_horizontal_set(Evas_Object *obj, Eina_Bool horizontal) EINA_ARG_NONNULL(1);
1764    EAPI Eina_Bool          elm_slider_horizontal_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1765    EAPI void               elm_slider_min_max_set(Evas_Object *obj, double min, double max) EINA_ARG_NONNULL(1);
1766    EAPI void               elm_slider_min_max_get(const Evas_Object *obj, double *min, double *max) EINA_ARG_NONNULL(1);
1767    EAPI void               elm_slider_value_set(Evas_Object *obj, double val) EINA_ARG_NONNULL(1);
1768    EAPI double             elm_slider_value_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1769    EAPI void               elm_slider_inverted_set(Evas_Object *obj, Eina_Bool inverted) EINA_ARG_NONNULL(1);
1770    EAPI Eina_Bool          elm_slider_inverted_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1771    EAPI void               elm_slider_indicator_show_set(Evas_Object *obj, Eina_Bool show) EINA_ARG_NONNULL(1);
1772    EAPI Eina_Bool          elm_slider_indicator_show_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1773    /* smart callbacks called:
1774     * "changed" - Whenever the slider value is changed by the user.
1775     * "slider,drag,start" - dragging the slider indicator around has started
1776     * "slider,drag,stop" - dragging the slider indicator around has stopped
1777     * "delay,changed" - A short time after the value is changed by the user.
1778     *                   This will be called only when the user stops dragging for a very short
1779     *                   period or when they release their finger/mouse, so it avoids possibly
1780     *                   expensive reactions to the value change.
1781     */
1782
1783
1784    /* actionslider */
1785
1786    typedef enum _Elm_Actionslider_Pos
1787      {
1788         ELM_ACTIONSLIDER_NONE = 0,
1789         ELM_ACTIONSLIDER_LEFT = 1 << 0,
1790         ELM_ACTIONSLIDER_CENTER = 1 << 1,
1791         ELM_ACTIONSLIDER_RIGHT = 1 << 2,
1792         ELM_ACTIONSLIDER_ALL = (1 << 3) -1
1793      } Elm_Actionslider_Pos;
1794
1795    typedef enum _Elm_Actionslider_Indicator_Pos
1796      {
1797         ELM_ACTIONSLIDER_INDICATOR_NONE,
1798         ELM_ACTIONSLIDER_INDICATOR_LEFT,
1799         ELM_ACTIONSLIDER_INDICATOR_RIGHT,
1800         ELM_ACTIONSLIDER_INDICATOR_CENTER
1801      } Elm_Actionslider_Indicator_Pos;
1802
1803    typedef enum _Elm_Actionslider_Magnet_Pos
1804      {
1805         ELM_ACTIONSLIDER_MAGNET_NONE = 0,
1806         ELM_ACTIONSLIDER_MAGNET_LEFT = 1 << 0,
1807         ELM_ACTIONSLIDER_MAGNET_CENTER = 1 << 1,
1808         ELM_ACTIONSLIDER_MAGNET_RIGHT= 1 << 2,
1809         ELM_ACTIONSLIDER_MAGNET_ALL = (1 << 3) -1,
1810         ELM_ACTIONSLIDER_MAGNET_BOTH = (1 << 3)
1811      } Elm_Actionslider_Magnet_Pos;
1812
1813    typedef enum _Elm_Actionslider_Label_Pos
1814      {
1815         ELM_ACTIONSLIDER_LABEL_LEFT,
1816         ELM_ACTIONSLIDER_LABEL_RIGHT,
1817         ELM_ACTIONSLIDER_LABEL_CENTER,
1818         ELM_ACTIONSLIDER_LABEL_BUTTON
1819      } Elm_Actionslider_Label_Pos;
1820
1821    EAPI Evas_Object                     *elm_actionslider_add(Evas_Object *parent);
1822    EAPI void                             elm_actionslider_indicator_pos_set(Evas_Object *obj, Elm_Actionslider_Indicator_Pos pos);
1823    EAPI Elm_Actionslider_Indicator_Pos   elm_actionslider_indicator_pos_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1824    EAPI void                             elm_actionslider_magnet_pos_set(Evas_Object *obj, Elm_Actionslider_Magnet_Pos pos);
1825    EAPI Elm_Actionslider_Magnet_Pos      elm_actionslider_magnet_pos_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1826    EAPI void                             elm_actionslider_label_set(Evas_Object *obj, Elm_Actionslider_Label_Pos pos, const char *label);
1827    EAPI void                             elm_actionslider_labels_get(const Evas_Object *obj, const char **left_label, const char **center_label, const char **right_label) EINA_ARG_NONNULL(1);
1828    EAPI const char                      *elm_actionslider_selected_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1829    EAPI void                             elm_actionslider_enabled_pos_set(Evas_Object *obj, Elm_Actionslider_Magnet_Pos pos) EINA_ARG_NONNULL(1);
1830    EAPI Elm_Actionslider_Magnet_Pos      elm_actionslider_enabled_pos_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1831    EAPI void                             elm_actionslider_indicator_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
1832    EAPI const char                      *elm_actionslider_indicator_label_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
1833    EAPI void                             elm_actionslider_hold(Evas_Object *obj, Eina_Bool flag);
1834    /* smart callbacks called:
1835     * "indicator,position" - when a button reaches to the special position like "left", "right" and "center".
1836     */
1837
1838    /* genlist */
1839    typedef enum _Elm_Genlist_Item_Flags
1840      {
1841         ELM_GENLIST_ITEM_NONE = 0,
1842         ELM_GENLIST_ITEM_SUBITEMS = (1 << 0),
1843         ELM_GENLIST_ITEM_GROUP = (1 << 1)
1844      } Elm_Genlist_Item_Flags;
1845    typedef struct _Elm_Genlist_Item_Class Elm_Genlist_Item_Class;
1846    typedef struct _Elm_Genlist_Item       Elm_Genlist_Item; /**< Item of Elm_Genlist. Sub-type of Elm_Widget_Item */
1847    typedef struct _Elm_Genlist_Item_Class_Func Elm_Genlist_Item_Class_Func;
1848    typedef char        *(*GenlistItemLabelGetFunc) (const void *data, Evas_Object *obj, const char *part);
1849    typedef Evas_Object *(*GenlistItemIconGetFunc)  (const void *data, Evas_Object *obj, const char *part);
1850    typedef Eina_Bool    (*GenlistItemStateGetFunc) (const void *data, Evas_Object *obj, const char *part);
1851    typedef void         (*GenlistItemDelFunc)      (const void *data, Evas_Object *obj);
1852    typedef void         (*GenlistItemMovedFunc)    ( Evas_Object *genlist, Elm_Genlist_Item *item, Elm_Genlist_Item *rel_item, Eina_Bool move_after);
1853
1854    struct _Elm_Genlist_Item_Class
1855      {
1856         const char                *item_style;
1857         struct {
1858           GenlistItemLabelGetFunc  label_get;
1859           GenlistItemIconGetFunc   icon_get;
1860           GenlistItemStateGetFunc  state_get;
1861           GenlistItemDelFunc       del;
1862           GenlistItemMovedFunc     moved;
1863         } func;
1864         const char *edit_item_style;
1865         const char                *mode_item_style;
1866      };
1867    EAPI Evas_Object      *elm_genlist_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
1868    EAPI void              elm_genlist_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
1869    EAPI void              elm_genlist_multi_select_set(Evas_Object *obj, Eina_Bool multi) EINA_ARG_NONNULL(1);
1870    EAPI Eina_Bool         elm_genlist_multi_select_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1871    EAPI void              elm_genlist_horizontal_mode_set(Evas_Object *obj, Elm_List_Mode mode) EINA_ARG_NONNULL(1);
1872    EAPI Elm_List_Mode     elm_genlist_horizontal_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1873    EAPI void              elm_genlist_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select) EINA_ARG_NONNULL(1);
1874    EAPI Eina_Bool         elm_genlist_always_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1875    EAPI void              elm_genlist_no_select_mode_set(Evas_Object *obj, Eina_Bool no_select) EINA_ARG_NONNULL(1);
1876    EAPI Eina_Bool         elm_genlist_no_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1877    EAPI void              elm_genlist_compress_mode_set(Evas_Object *obj, Eina_Bool compress) EINA_ARG_NONNULL(1);
1878    EAPI Eina_Bool         elm_genlist_compress_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1879    EAPI void              elm_genlist_height_for_width_mode_set(Evas_Object *obj, Eina_Bool height_for_width) EINA_ARG_NONNULL(1);
1880    EAPI Eina_Bool         elm_genlist_height_for_width_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1881    EAPI void              elm_genlist_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce) EINA_ARG_NONNULL(1);
1882    EAPI void              elm_genlist_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce) EINA_ARG_NONNULL(1);
1883    EAPI void              elm_genlist_homogeneous_set(Evas_Object *obj, Eina_Bool homogeneous) EINA_ARG_NONNULL(1);
1884    EAPI Eina_Bool         elm_genlist_homogeneous_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1885    EAPI void              elm_genlist_block_count_set(Evas_Object *obj, int n) EINA_ARG_NONNULL(1);
1886    EAPI int               elm_genlist_block_count_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1887    EAPI void              elm_genlist_longpress_timeout_set(Evas_Object *obj, double timeout) EINA_ARG_NONNULL(1);
1888    EAPI double            elm_genlist_longpress_timeout_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1889    /* operations to add items */
1890    EAPI Elm_Genlist_Item *elm_genlist_item_append(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Genlist_Item *parent, Elm_Genlist_Item_Flags flags, Evas_Smart_Cb func, const void *func_data) EINA_ARG_NONNULL(1);
1891    EAPI Elm_Genlist_Item *elm_genlist_item_prepend(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Genlist_Item *parent, Elm_Genlist_Item_Flags flags, Evas_Smart_Cb func, const void *func_data) EINA_ARG_NONNULL(1);
1892    EAPI Elm_Genlist_Item *elm_genlist_item_insert_before(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Genlist_Item *parent, Elm_Genlist_Item *before, Elm_Genlist_Item_Flags flags, Evas_Smart_Cb func, const void *func_data) EINA_ARG_NONNULL(1, 5);
1893    EAPI Elm_Genlist_Item *elm_genlist_item_insert_after(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Genlist_Item *parent, Elm_Genlist_Item *after, Elm_Genlist_Item_Flags flags, Evas_Smart_Cb func, const void *func_data) EINA_ARG_NONNULL(1, 5);
1894    /* operations to retrieve existing items */
1895    EAPI Elm_Genlist_Item *elm_genlist_selected_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1896    EAPI const Eina_List  *elm_genlist_selected_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1897    EAPI Eina_List        *elm_genlist_realized_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1898    EAPI Elm_Genlist_Item *elm_genlist_at_xy_item_get(const Evas_Object *obj, Evas_Coord x, Evas_Coord y, int *posret) EINA_ARG_NONNULL(1);
1899    EAPI Elm_Genlist_Item *elm_genlist_first_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1900    EAPI Elm_Genlist_Item *elm_genlist_last_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1901    EAPI void              elm_genlist_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v) EINA_ARG_NONNULL(1);
1902    EAPI void              elm_genlist_scroller_policy_get(const Evas_Object *obj, Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v) EINA_ARG_NONNULL(1);
1903    /* available item styles:
1904     * default
1905     * default_style - The text part is a textblock
1906     * double_label
1907     * icon_top_text_bottom
1908     */
1909    /* Genlist Item operation */
1910    EAPI Elm_Genlist_Item  *elm_genlist_item_next_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
1911    EAPI Elm_Genlist_Item  *elm_genlist_item_prev_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
1912    EAPI Evas_Object       *elm_genlist_item_genlist_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
1913    EAPI Elm_Genlist_Item  *elm_genlist_item_parent_get(const Elm_Genlist_Item *it) EINA_ARG_NONNULL(1);
1914    EAPI void               elm_genlist_item_subitems_clear(Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
1915    EAPI void               elm_genlist_item_selected_set(Elm_Genlist_Item *item, Eina_Bool selected) EINA_ARG_NONNULL(1);
1916    EAPI Eina_Bool          elm_genlist_item_selected_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
1917    EAPI void               elm_genlist_item_expanded_set(Elm_Genlist_Item *item, Eina_Bool expanded) EINA_ARG_NONNULL(1);
1918    EAPI Eina_Bool          elm_genlist_item_expanded_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
1919    EAPI int                elm_genlist_item_expanded_depth_get(const Elm_Genlist_Item *it) EINA_ARG_NONNULL(1);
1920    EAPI void               elm_genlist_item_disabled_set(Elm_Genlist_Item *item, Eina_Bool disabled) EINA_ARG_NONNULL(1);
1921    EAPI Eina_Bool          elm_genlist_item_disabled_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
1922    EAPI void               elm_genlist_item_display_only_set(Elm_Genlist_Item *it, Eina_Bool display_only) EINA_ARG_NONNULL(1);
1923    EAPI Eina_Bool          elm_genlist_item_display_only_get(const Elm_Genlist_Item *it) EINA_ARG_NONNULL(1);
1924    EAPI void               elm_genlist_item_show(Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
1925    EAPI void               elm_genlist_item_bring_in(Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
1926    EAPI void               elm_genlist_item_top_show(Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
1927    EAPI void               elm_genlist_item_top_bring_in(Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
1928    EAPI void               elm_genlist_item_middle_show(Elm_Genlist_Item *it) EINA_ARG_NONNULL(1);
1929    EAPI void               elm_genlist_item_middle_bring_in(Elm_Genlist_Item *it) EINA_ARG_NONNULL(1);
1930    EAPI void               elm_genlist_item_del(Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
1931    EAPI void              *elm_genlist_item_data_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
1932    EAPI void               elm_genlist_item_data_set(Elm_Genlist_Item *it, const void *data) EINA_ARG_NONNULL(1);
1933    EAPI void               elm_genlist_item_icons_orphan(Elm_Genlist_Item *it) EINA_ARG_NONNULL(1);
1934    EAPI const Evas_Object *elm_genlist_item_object_get(const Elm_Genlist_Item *it) EINA_ARG_NONNULL(1);
1935    EAPI void               elm_genlist_item_update(Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
1936    EAPI void               elm_genlist_item_item_class_update(Elm_Genlist_Item *it, const Elm_Genlist_Item_Class *itc) EINA_ARG_NONNULL(1, 2);
1937    EAPI void               elm_genlist_item_tooltip_text_set(Elm_Genlist_Item *item, const char *text) EINA_ARG_NONNULL(1);
1938    EAPI void               elm_genlist_item_tooltip_content_cb_set(Elm_Genlist_Item *item, Elm_Tooltip_Item_Content_Cb func, const void *data, Evas_Smart_Cb del_cb) EINA_ARG_NONNULL(1);
1939    EAPI void               elm_genlist_item_tooltip_unset(Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
1940    EAPI void               elm_genlist_item_tooltip_style_set(Elm_Genlist_Item *item, const char *style) EINA_ARG_NONNULL(1);
1941    EAPI const char        *elm_genlist_item_tooltip_style_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
1942    EAPI void               elm_genlist_item_cursor_set(Elm_Genlist_Item *item, const char *cursor) EINA_ARG_NONNULL(1);
1943    EAPI const char        *elm_genlist_item_cursor_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
1944    EAPI void               elm_genlist_item_cursor_unset(Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
1945    EAPI void               elm_genlist_item_cursor_style_set(Elm_Genlist_Item *item, const char *style) EINA_ARG_NONNULL(1);
1946    EAPI const char        *elm_genlist_item_cursor_style_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
1947    EAPI void               elm_genlist_item_cursor_engine_only_set(Elm_Genlist_Item *item, Eina_Bool engine_only) EINA_ARG_NONNULL(1);
1948    EAPI Eina_Bool          elm_genlist_item_cursor_engine_only_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
1949    EAPI void               elm_genlist_realized_items_update(Evas_Object *obj) EINA_ARG_NONNULL(1);
1950    /* smart callbacks called:
1951     * "clicked,double" - This is called when a user has double-clicked an item. The
1952     *                    event_info parameter is the genlist item that was double-clicked.
1953     * "selected" - This is called when a user has made an item selected. The
1954     *              event_info parameter is the genlist item that was selected.
1955     * "unselected" - This is called when a user has made an item unselected. The
1956     *                 event_info parameter is the genlist item that was unselected.
1957     * "expanded" - This is called when elm_genlist_item_expanded_set() is called
1958     *              and the item is now meant to be expanded. The event_info parameter is the
1959     *              genlist item that was indicated to expand. It is the job of this callback
1960     *              to then fill in the child items.
1961     * "contracted" - This is called when elm_genlist_item_expanded_set() is called
1962     *                and the item is now meant to be contracted. The event_info parameter is
1963     *                the genlist item that was indicated to contract. It is the job of this
1964     *                callback to then delete the child items.
1965     * "expand,request" - This is called when a user has indicated they want to
1966     *                    expand a tree branch item. The callback should decide if the item can
1967     *                    expand (has any children) and then call elm_genlist_item_expanded_set()
1968     *                    appropriately to set the state. The event_info parameter is the genlist
1969     *                    item that was indicated to expand.
1970     * "contract,request" - This is called when a user has indicated they want to
1971     *                      contract a tree branch item. The callback should decide if the item can
1972     *                      contract (has any children) and then call elm_genlist_item_expanded_set()
1973     *                      appropriately to set the state. The event_info parameter is the genlist
1974     *                      item that was indicated to contract.
1975     * "realized" - This is called when the item in the list is created as a real
1976     *              evas object. event_info parameter is the genlist item that was created.
1977     *              The object may be deleted at any time, so it is up to the caller to
1978     *              not use the object pointer from elm_genlist_item_object_get() in a way
1979     *              where it may point to freed objects.
1980     * "unrealized" - This is called just before an item is unrealized. After
1981     *                this call icon objects provided will be deleted and the item object
1982     *                itself delete or be put into a floating cache.
1983     * "drag,start,up" - This is called when the item in the list has been dragged
1984     *                   (not scrolled) up.
1985     * "drag,start,down" - This is called when the item in the list has been dragged
1986     *                     (not scrolled) down.
1987     * "drag,start,left" - This is called when the item in the list has been dragged i
1988     *                     (not scrolled) left.
1989     * "drag,start,right" - This is called when the item in the list has been dragged
1990     *                      (not scrolled) right.
1991     * "drag,stop" - This is called when the item in the list has stopped being
1992     *               dragged.
1993     * "drag" - This is called when the item in the list is being dragged.
1994     * "longpressed" - This is called when the item is pressed for a certain amount
1995     *                 of time. By default it's 1 second.
1996     * "scroll,edge,top" - This is called when the genlist is scrolled until the
1997     *                     top edge.
1998     * "scroll,edge,bottom" - This is called when the genlist is scrolled until the
1999     *                         bottom edge.
2000     * "scroll,edge,left" - This is called when the genlist is scrolled until the
2001     *                      left edge.
2002     * "scroll,edge,right" - This is called when the genlist is scrolled until the
2003     *                       right edge.
2004     * "multi,swipe,left" - This is called when the genlist is multi-touch swiped
2005     *                       left.
2006     * "multi,swipe,right" - This is called when the genlist is multi-touch swiped
2007     *                       right.
2008     * "multi,swipe,up" - This is called when the genlist is multi-touch swiped up.
2009     * "multi,swipe,down" - This is called when the genlist is multi-touch swiped
2010     *                      down.
2011     * "multi,pinch,out" - This is called when the genlist is multi-touch pinched
2012     *                     out.
2013     * "multi,pinch,in" - This is called when the genlist is multi-touch pinched in.
2014     */
2015
2016    EAPI void               elm_genlist_edit_mode_set(Evas_Object *obj, Eina_Bool edit_mode) EINA_ARG_NONNULL(1);
2017    EAPI Eina_Bool          elm_genlist_edit_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2018    EAPI void               elm_genlist_item_rename_mode_set(Elm_Genlist_Item *it, Eina_Bool renamed) EINA_ARG_NONNULL(1);
2019    EAPI Eina_Bool          elm_genlist_item_rename_mode_get(Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
2020    EAPI void               elm_genlist_item_move_after(Elm_Genlist_Item *it, Elm_Genlist_Item *after ) EINA_ARG_NONNULL(1, 2);
2021    EAPI void               elm_genlist_item_move_before(Elm_Genlist_Item *it, Elm_Genlist_Item *before) EINA_ARG_NONNULL(1, 2);
2022    EAPI void               elm_genlist_effect_set(const Evas_Object *obj, Eina_Bool emode) EINA_ARG_NONNULL(1);
2023    EAPI void               elm_genlist_pinch_zoom_set(Evas_Object *obj, Eina_Bool emode) EINA_ARG_NONNULL(1);
2024    EAPI void               elm_genlist_pinch_zoom_mode_set(Evas_Object *obj, Eina_Bool emode) EINA_ARG_NONNULL(1);
2025    EAPI Eina_Bool          elm_genlist_pinch_zoom_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2026    EAPI void               elm_genlist_reorder_mode_set(Evas_Object *obj, Eina_Bool reorder_mode) EINA_ARG_NONNULL(1);
2027    EAPI Eina_Bool          elm_genlist_reorder_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2028    EINA_DEPRECATED EAPI void elm_genlist_selected_items_del(Evas_Object *obj);
2029    EINA_DEPRECATED EAPI void elm_genlist_queue_exception_set(const Evas_Object *obj, Eina_Bool emode);
2030    EINA_DEPRECATED EAPI void               elm_genlist_edit_selected_items_del(Evas_Object *obj);
2031    EINA_DEPRECATED EAPI Eina_List         *elm_genlist_edit_selected_items_get(const Evas_Object *obj);
2032    EINA_DEPRECATED EAPI void               elm_genlist_edit_item_selected_set(Elm_Genlist_Item *it, Eina_Bool selected);
2033    EINA_DEPRECATED EAPI Eina_Bool          elm_genlist_edit_item_selected_get(const Elm_Genlist_Item *it) EINA_ARG_NONNULL(1);
2034    EAPI void               elm_genlist_item_mode_set(Elm_Genlist_Item *it, const char *mode_type, Eina_Bool mode_set) EINA_ARG_NONNULL(1, 2);
2035    EAPI const char        *elm_genlist_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2036    EAPI const Elm_Genlist_Item *elm_genlist_mode_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2037
2038   /* check */
2039    EAPI Evas_Object *elm_check_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
2040    EAPI void         elm_check_label_set(Evas_Object *obj, const char *label); EINA_ARG_NONNULL(1)
2041    EAPI const char  *elm_check_label_get(const Evas_Object *obj); EINA_ARG_NONNULL(1)
2042    EAPI void         elm_check_icon_set(Evas_Object *obj, Evas_Object *icon); EINA_ARG_NONNULL(1)
2043    EAPI Evas_Object *elm_check_icon_get(const Evas_Object *obj); EINA_ARG_NONNULL(1)
2044    EAPI Evas_Object *elm_check_icon_unset(Evas_Object *obj); EINA_ARG_NONNULL(1)
2045    EAPI void         elm_check_state_set(Evas_Object *obj, Eina_Bool state); EINA_ARG_NONNULL(1)
2046    EAPI Eina_Bool    elm_check_state_get(const Evas_Object *obj); EINA_ARG_NONNULL(1)
2047    EAPI void         elm_check_state_pointer_set(Evas_Object *obj, Eina_Bool *statep); EINA_ARG_NONNULL(1)
2048    /* smart callbacks called:
2049     * "changed" - This is called whenever the user changes the state of one of the check object.
2050     */
2051
2052    /* radio */
2053    EAPI Evas_Object *elm_radio_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
2054    EAPI void         elm_radio_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
2055    EAPI const char  *elm_radio_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2056    EAPI void         elm_radio_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
2057    EAPI Evas_Object *elm_radio_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2058    EAPI Evas_Object *elm_radio_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
2059    EAPI void         elm_radio_group_add(Evas_Object *obj, Evas_Object *group) EINA_ARG_NONNULL(1);
2060    EAPI void         elm_radio_state_value_set(Evas_Object *obj, int value) EINA_ARG_NONNULL(1);
2061    EAPI int          elm_radio_state_value_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2062    EAPI void         elm_radio_value_set(Evas_Object *obj, int value) EINA_ARG_NONNULL(1);
2063    EAPI int          elm_radio_value_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2064    EAPI void         elm_radio_value_pointer_set(Evas_Object *obj, int *valuep) EINA_ARG_NONNULL(1);
2065    /* smart callbacks called:
2066     * "changed" - when the radio status is changed
2067     */
2068
2069    EAPI Evas_Object *elm_page_control_add(Evas_Object *parent);
2070    EAPI void         elm_page_control_page_count_set(Evas_Object *obj, unsigned int page_count);
2071    EAPI void         elm_page_control_page_id_set(Evas_Object *obj, unsigned int page_id);
2072    EAPI unsigned int elm_page_control_page_id_get(Evas_Object *obj);
2073    /* pager */
2074    EAPI Evas_Object *elm_pager_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
2075    EAPI void         elm_pager_content_push(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
2076    EAPI void         elm_pager_content_pop(Evas_Object *obj) EINA_ARG_NONNULL(1);
2077    EAPI void         elm_pager_content_promote(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
2078    EAPI Evas_Object *elm_pager_content_bottom_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2079    EAPI Evas_Object *elm_pager_content_top_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2080    EAPI void         elm_pager_to_content_pop(Evas_Object *obj, Evas_Object *content); EINA_ARG_NONNULL(1);
2081    EAPI void         elm_pager_animation_disabled_set(Evas_Object *obj, Eina_Bool disable); EINA_ARG_NONNULL(1);
2082
2083    /* available item styles:
2084     * default
2085     * fade
2086     * fade_translucide
2087     * fade_invisible
2088     */
2089    /* smart callbacks called:
2090     * "hide,finished" - when the previous page is hided
2091     */
2092
2093    typedef struct _Elm_Slideshow_Item_Class Elm_Slideshow_Item_Class;
2094    typedef struct _Elm_Slideshow_Item_Class_Func Elm_Slideshow_Item_Class_Func;
2095    typedef struct _Elm_Slideshow_Item       Elm_Slideshow_Item; /**< Item of Elm_Slideshow. Sub-type of Elm_Widget_Item */
2096    typedef Evas_Object *(*SlideshowItemGetFunc) (void *data, Evas_Object *obj);
2097    typedef void         (*SlideshowItemDelFunc) (void *data, Evas_Object *obj);
2098
2099    struct _Elm_Slideshow_Item_Class
2100      {
2101         struct _Elm_Slideshow_Item_Class_Func
2102           {
2103              SlideshowItemGetFunc get;
2104              SlideshowItemDelFunc del;
2105           } func;
2106      };
2107
2108    EAPI Evas_Object        *elm_slideshow_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
2109    EAPI Elm_Slideshow_Item *elm_slideshow_item_add(Evas_Object *obj, const Elm_Slideshow_Item_Class *itc, const void *data) EINA_ARG_NONNULL(1);
2110    EAPI void                elm_slideshow_show(Elm_Slideshow_Item *item) EINA_ARG_NONNULL(1);
2111    EAPI void                elm_slideshow_next(Evas_Object *obj) EINA_ARG_NONNULL(1);
2112    EAPI void                elm_slideshow_previous(Evas_Object *obj) EINA_ARG_NONNULL(1);
2113    EAPI const Eina_List    *elm_slideshow_transitions_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2114    EAPI void                elm_slideshow_transition_set(Evas_Object *obj, const char *transition) EINA_ARG_NONNULL(1);
2115    EAPI const char         *elm_slideshow_transition_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2116    EAPI void                elm_slideshow_timeout_set(Evas_Object *obj, double timeout) EINA_ARG_NONNULL(1);
2117    EAPI double              elm_slideshow_timeout_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2118    EAPI void                elm_slideshow_loop_set(Evas_Object *obj, Eina_Bool loop) EINA_ARG_NONNULL(1);
2119    EAPI Eina_Bool           elm_slideshow_loop_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2120    EAPI void                elm_slideshow_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
2121    EAPI const Eina_List    *elm_slideshow_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2122    EAPI void                elm_slideshow_item_del(Elm_Slideshow_Item *item) EINA_ARG_NONNULL(1);
2123    EAPI void               *elm_slideshow_item_data_get(const Elm_Slideshow_Item *item) EINA_ARG_NONNULL(1);
2124    EAPI Elm_Slideshow_Item *elm_slideshow_item_current_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2125    EAPI Evas_Object*        elm_slideshow_item_object_get(const Elm_Slideshow_Item* item) EINA_ARG_NONNULL(1);
2126    EAPI const char         *elm_slideshow_layout_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2127    EAPI void                elm_slideshow_layout_set(Evas_Object *obj, const char *layout) EINA_ARG_NONNULL(1);
2128    EAPI const Eina_List    *elm_slideshow_layouts_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2129    /* smart callbacks called:
2130     * "changed" - when the slideshow switch to another item
2131     */
2132
2133    /* file selector */
2134    typedef enum _Elm_Fileselector_Mode
2135      {
2136         ELM_FILESELECTOR_LIST = 0,
2137         ELM_FILESELECTOR_GRID,
2138         ELM_FILESELECTOR_LAST
2139      } Elm_Fileselector_Mode;
2140
2141    EAPI Evas_Object          *elm_fileselector_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
2142    EAPI void                  elm_fileselector_is_save_set(Evas_Object *obj, Eina_Bool is_save) EINA_ARG_NONNULL(1);
2143    EAPI Eina_Bool             elm_fileselector_is_save_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2144    EAPI void                  elm_fileselector_folder_only_set(Evas_Object *obj, Eina_Bool only) EINA_ARG_NONNULL(1);
2145    EAPI Eina_Bool             elm_fileselector_folder_only_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2146    EAPI void                  elm_fileselector_buttons_ok_cancel_set(Evas_Object *obj, Eina_Bool buttons) EINA_ARG_NONNULL(1);
2147    EAPI Eina_Bool             elm_fileselector_buttons_ok_cancel_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2148    EAPI Eina_Bool             elm_fileselector_expandable_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2149    EAPI void                  elm_fileselector_expandable_set(Evas_Object *obj, Eina_Bool expand) EINA_ARG_NONNULL(1);
2150    EAPI void                  elm_fileselector_path_set(Evas_Object *obj, const char *path) EINA_ARG_NONNULL(1);
2151    EAPI const char           *elm_fileselector_path_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2152    EAPI const char           *elm_fileselector_selected_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2153    EAPI Eina_Bool             elm_fileselector_selected_set(Evas_Object *obj, const char *path) EINA_ARG_NONNULL(1);
2154    EAPI void                  elm_fileselector_mode_set(Evas_Object *obj, Elm_Fileselector_Mode mode) EINA_ARG_NONNULL(1);
2155    EAPI Elm_Fileselector_Mode elm_fileselector_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2156    /* smart callbacks called:
2157     * "selected" - the user click on a file
2158     * "directory,open" - the list is populate with a new content. event_info is a directory.
2159     * "done" - the user click on the ok or cancel buttons
2160     */
2161
2162    /* progressbar */
2163    EAPI Evas_Object *elm_progressbar_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
2164    EAPI void         elm_progressbar_pulse_set(Evas_Object *obj, Eina_Bool pulse) EINA_ARG_NONNULL(1);
2165    EAPI Eina_Bool    elm_progressbar_pulse_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2166    EAPI void         elm_progressbar_pulse(Evas_Object *obj, Eina_Bool state) EINA_ARG_NONNULL(1);
2167    EAPI void         elm_progressbar_value_set(Evas_Object *obj, double val) EINA_ARG_NONNULL(1);
2168    EAPI double       elm_progressbar_value_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2169    EAPI void         elm_progressbar_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
2170    EAPI const char  *elm_progressbar_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2171    EAPI void         elm_progressbar_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
2172    EAPI Evas_Object *elm_progressbar_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2173    EAPI Evas_Object *elm_progressbar_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
2174    EAPI void         elm_progressbar_span_size_set(Evas_Object *obj, Evas_Coord size) EINA_ARG_NONNULL(1);
2175    EAPI Evas_Coord   elm_progressbar_span_size_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2176    EAPI void         elm_progressbar_unit_format_set(Evas_Object *obj, const char *format) EINA_ARG_NONNULL(1);
2177    EAPI const char  *elm_progressbar_unit_format_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2178    EAPI void         elm_progressbar_horizontal_set(Evas_Object *obj, Eina_Bool horizontal) EINA_ARG_NONNULL(1);
2179    EAPI Eina_Bool    elm_progressbar_horizontal_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2180    EAPI void         elm_progressbar_inverted_set(Evas_Object *obj, Eina_Bool inverted) EINA_ARG_NONNULL(1);
2181    EAPI Eina_Bool    elm_progressbar_inverted_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2182    /* smart callbacks called:
2183     */
2184    /* available item styles:
2185     * default
2186     * wheel (simple style, no text, no progression, only pulse is available)
2187     */
2188
2189    /* separator */
2190    EAPI Evas_Object *elm_separator_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
2191    EAPI void         elm_separator_horizontal_set(Evas_Object *obj, Eina_Bool horizontal) EINA_ARG_NONNULL(1);
2192    EAPI Eina_Bool    elm_separator_horizontal_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2193    /* smart callbacks called:
2194     */
2195
2196    /* spinner */
2197    EAPI Evas_Object *elm_spinner_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
2198    EAPI void         elm_spinner_label_format_set(Evas_Object *obj, const char *fmt) EINA_ARG_NONNULL(1);
2199    EAPI const char  *elm_spinner_label_format_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2200    EAPI void         elm_spinner_min_max_set(Evas_Object *obj, double min, double max) EINA_ARG_NONNULL(1);
2201    EAPI void         elm_spinner_min_max_get(const Evas_Object *obj, double *min, double *max) EINA_ARG_NONNULL(1);
2202    EAPI void         elm_spinner_step_set(Evas_Object *obj, double step) EINA_ARG_NONNULL(1);
2203    EAPI double       elm_spinner_step_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2204    EAPI void         elm_spinner_value_set(Evas_Object *obj, double val) EINA_ARG_NONNULL(1);
2205    EAPI double       elm_spinner_value_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2206    EAPI void         elm_spinner_wrap_set(Evas_Object *obj, Eina_Bool wrap) EINA_ARG_NONNULL(1);
2207    EAPI Eina_Bool    elm_spinner_wrap_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2208    EAPI void         elm_spinner_editable_set(Evas_Object *obj, Eina_Bool editable) EINA_ARG_NONNULL(1);
2209    EAPI Eina_Bool    elm_spinner_editable_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2210    EAPI void         elm_spinner_special_value_add(Evas_Object *obj, double value, const char *label) EINA_ARG_NONNULL(1);
2211    EAPI void         elm_spinner_interval_set(Evas_Object *obj, double interval) EINA_ARG_NONNULL(1);
2212    EAPI double       elm_spinner_interval_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2213    /* smart callbacks called:
2214     * "changed" - when the spinner value changes
2215     * "delay,changed" - when the spinner value changed, but a small time after a change (use this if you only want to respond to a change once the spinner is held still for a short while).
2216     */
2217    /* available item styles:
2218     * default
2219     * vertical (two up/down buttons at the right side and text left aligned)
2220     */
2221
2222    /* index */
2223    typedef struct _Elm_Index_Item Elm_Index_Item; /**< Item of Elm_Index. Sub-type of Elm_Widget_Item */
2224
2225    EAPI Evas_Object    *elm_index_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
2226    EAPI void            elm_index_active_set(Evas_Object *obj, Eina_Bool active) EINA_ARG_NONNULL(1);
2227    EAPI void            elm_index_item_level_set(Evas_Object *obj, int level) EINA_ARG_NONNULL(1);
2228    EAPI int             elm_index_item_level_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2229    EAPI void           *elm_index_item_selected_get(const Evas_Object *obj, int level) EINA_ARG_NONNULL(1);
2230    EAPI void            elm_index_item_append(Evas_Object *obj, const char *letter, const void *item) EINA_ARG_NONNULL(1);
2231    EAPI void            elm_index_item_prepend(Evas_Object *obj, const char *letter, const void *item) EINA_ARG_NONNULL(1);
2232    EAPI void            elm_index_item_append_relative(Evas_Object *obj, const char *letter, const void *item, const void *relative) EINA_ARG_NONNULL(1);
2233    EAPI void            elm_index_item_prepend_relative(Evas_Object *obj, const char *letter, const void *item, const void *relative) EINA_ARG_NONNULL(1);
2234    EAPI void            elm_index_item_sorted_insert(Evas_Object *obj, const char *letter, const void *item, Eina_Compare_Cb cmp_func, Eina_Compare_Cb cmp_data_func) EINA_ARG_NONNULL(1);
2235    EAPI void            elm_index_item_del(Evas_Object *obj, const void *item) EINA_ARG_NONNULL(1);
2236    EAPI Elm_Index_Item *elm_index_item_find(Evas_Object *obj, const void *item) EINA_ARG_NONNULL(1);
2237    EAPI void            elm_index_item_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
2238    EAPI void            elm_index_item_go(Evas_Object *obj, int level) EINA_ARG_NONNULL(1);
2239    EAPI void           *elm_index_item_data_get(const Elm_Index_Item *item) EINA_ARG_NONNULL(1);
2240    EAPI void            elm_index_item_data_set(Elm_Index_Item *it, const void *data) EINA_ARG_NONNULL(1);
2241    EAPI void            elm_index_item_del_cb_set(Elm_Index_Item *it, Evas_Smart_Cb func) EINA_ARG_NONNULL(1);
2242    EAPI const char     *elm_index_item_letter_get(const Elm_Index_Item *item) EINA_ARG_NONNULL(1);
2243    EAPI void         elm_index_button_image_invisible_set(Evas_Object *obj, Eina_Bool invisible);
2244    /* smart callbacks called:
2245     * "changed" - when the selected index item changes
2246     * "delay,changed" - when the selected index item changes, but after some small idle period
2247     * "selected" - when the user releases a finger and selects an item
2248     * "level,up" - when the user moves a finger from the first level to the second level
2249     * "level,down" - when the user moves a finger from the second level to the first level
2250     */
2251
2252    /* photocam */
2253    typedef enum _Elm_Photocam_Zoom_Mode
2254      {
2255         ELM_PHOTOCAM_ZOOM_MODE_MANUAL = 0,
2256         ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT,
2257         ELM_PHOTOCAM_ZOOM_MODE_AUTO_FILL,
2258         ELM_PHOTOCAM_ZOOM_MODE_LAST
2259      } Elm_Photocam_Zoom_Mode;
2260
2261    EAPI Evas_Object           *elm_photocam_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
2262    EAPI Evas_Load_Error        elm_photocam_file_set(Evas_Object *obj, const char *file) EINA_ARG_NONNULL(1);
2263    EAPI const char            *elm_photocam_file_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2264    EAPI void                   elm_photocam_zoom_set(Evas_Object *obj, double zoom) EINA_ARG_NONNULL(1);
2265    EAPI double                 elm_photocam_zoom_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2266    EAPI void                   elm_photocam_zoom_mode_set(Evas_Object *obj, Elm_Photocam_Zoom_Mode mode) EINA_ARG_NONNULL(1);
2267    EAPI Elm_Photocam_Zoom_Mode elm_photocam_zoom_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2268    EAPI void                   elm_photocam_image_size_get(const Evas_Object *obj, int *w, int *h) EINA_ARG_NONNULL(1);
2269    EAPI void                   elm_photocam_region_get(const Evas_Object *obj, int *x, int *y, int *w, int *h) EINA_ARG_NONNULL(1);
2270    EAPI void                   elm_photocam_image_region_show(Evas_Object *obj, int x, int y, int w, int h) EINA_ARG_NONNULL(1);
2271    EAPI void                   elm_photocam_image_region_bring_in(Evas_Object *obj, int x, int y, int w, int h) EINA_ARG_NONNULL(1);
2272    EAPI void                   elm_photocam_paused_set(Evas_Object *obj, Eina_Bool paused) EINA_ARG_NONNULL(1);
2273    EAPI Eina_Bool              elm_photocam_paused_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2274    EAPI Evas_Object           *elm_photocam_internal_image_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2275    EAPI void                   elm_photocam_bounce_set(Evas_Object *obj,  Eina_Bool h_bounce, Eina_Bool v_bounce) EINA_ARG_NONNULL(1);
2276    EAPI void                   elm_photocam_bounce_get(const Evas_Object *obj,  Eina_Bool *h_bounce, Eina_Bool *v_bounce) EINA_ARG_NONNULL(1);
2277    /* smart callbacks called:
2278     * "clicked" - when image clicked
2279     * "press" - when mouse/finger held down initially on image
2280     * "longpressed" - when mouse/finger held for long time on image
2281     * "clicked,double" - when mouse/finger double-clicked
2282     * "load" - when photo load begins
2283     * "loaded" - when photo load done
2284     * "load,details" - when detailed image load begins
2285     * "loaded,details" - when detailed image load done
2286     * "zoom,start" - when zooming started
2287     * "zoom,stop" - when zooming stopped
2288     * "zoom,change" - when auto zoom mode changed zoom level
2289     * "scroll - the content has been scrolled (moved)
2290     * "scroll,anim,start" - scrolling animation has started
2291     * "scroll,anim,stop" - scrolling animation has stopped
2292     * "scroll,drag,start" - dragging the contents around has started
2293     * "scroll,drag,stop" - dragging the contents around has stopped
2294     */
2295
2296    /* map */
2297    typedef enum _Elm_Map_Zoom_Mode
2298      {
2299         ELM_MAP_ZOOM_MODE_MANUAL,
2300         ELM_MAP_ZOOM_MODE_AUTO_FIT,
2301         ELM_MAP_ZOOM_MODE_AUTO_FILL,
2302         ELM_MAP_ZOOM_MODE_LAST
2303      } Elm_Map_Zoom_Mode;
2304
2305    typedef enum _Elm_Map_Route_Sources
2306      {
2307         ELM_MAP_ROUTE_SOURCE_YOURS,
2308         ELM_MAP_ROUTE_SOURCE_MONAV,
2309         ELM_MAP_ROUTE_SOURCE_ORS,
2310         ELM_MAP_ROUTE_SOURCE_LAST
2311      } Elm_Map_Route_Sources;
2312
2313    typedef enum _Elm_Map_Name_Sources
2314      {
2315         ELM_MAP_NAME_SOURCE_NOMINATIM,
2316         ELM_MAP_NAME_SOURCE_LAST
2317      } Elm_Map_Name_Sources;
2318
2319    typedef enum _Elm_Map_Route_Type
2320      {
2321         ELM_MAP_ROUTE_TYPE_MOTOCAR,
2322         ELM_MAP_ROUTE_TYPE_BICYCLE,
2323         ELM_MAP_ROUTE_TYPE_FOOT,
2324         ELM_MAP_ROUTE_TYPE_LAST
2325      } Elm_Map_Route_Type;
2326
2327    typedef enum _Elm_Map_Route_Method
2328      {
2329         ELM_MAP_ROUTE_METHOD_FASTEST,
2330         ELM_MAP_ROUTE_METHOD_SHORTEST,
2331         ELM_MAP_ROUTE_METHOD_LAST
2332      } Elm_Map_Route_Method;
2333
2334    typedef enum _Elm_Map_Name_Method
2335      {
2336         ELM_MAP_NAME_METHOD_SEARCH,
2337         ELM_MAP_NAME_METHOD_REVERSE,
2338         ELM_MAP_NAME_METHOD_LAST
2339      } Elm_Map_Name_Method;
2340
2341    typedef struct _Elm_Map_Marker          Elm_Map_Marker;
2342    typedef struct _Elm_Map_Marker_Class    Elm_Map_Marker_Class;
2343    typedef struct _Elm_Map_Group_Class     Elm_Map_Group_Class;
2344    typedef struct _Elm_Map_Route           Elm_Map_Route;
2345    typedef struct _Elm_Map_Name            Elm_Map_Name;
2346
2347    typedef Evas_Object *(*ElmMapMarkerGetFunc)      (Evas_Object *obj, Elm_Map_Marker *marker, void *data);
2348    typedef void         (*ElmMapMarkerDelFunc)      (Evas_Object *obj, Elm_Map_Marker *marker, void *data, Evas_Object *o);
2349    typedef Evas_Object *(*ElmMapMarkerIconGetFunc)  (Evas_Object *obj, Elm_Map_Marker *marker, void *data);
2350    typedef Evas_Object *(*ElmMapGroupIconGetFunc)   (Evas_Object *obj, void *data);
2351
2352    typedef char        *(*ElmMapModuleSourceFunc) (void);
2353    typedef int          (*ElmMapModuleZoomMinFunc) (void);
2354    typedef int          (*ElmMapModuleZoomMaxFunc) (void);
2355    typedef char        *(*ElmMapModuleUrlFunc) (Evas_Object *obj, int x, int y, int zoom);
2356    typedef int          (*ElmMapModuleRouteSourceFunc) (void);
2357    typedef char        *(*ElmMapModuleRouteUrlFunc) (Evas_Object *obj, char *type_name, int method, double flon, double flat, double tlon, double tlat);
2358    typedef char        *(*ElmMapModuleNameUrlFunc) (Evas_Object *obj, int method, char *name, double lon, double lat);
2359    typedef Eina_Bool    (*ElmMapModuleGeoIntoCoordFunc) (const Evas_Object *obj, int zoom, double lon, double lat, int size, int *x, int *y);
2360    typedef Eina_Bool    (*ElmMapModuleCoordIntoGeoFunc) (const Evas_Object *obj, int zoom, int x, int y, int size, double *lon, double *lat);
2361
2362    EAPI Evas_Object          *elm_map_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
2363    EAPI void                  elm_map_zoom_set(Evas_Object *obj, int zoom) EINA_ARG_NONNULL(1);
2364    EAPI int                   elm_map_zoom_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2365    EAPI void                  elm_map_zoom_mode_set(Evas_Object *obj, Elm_Map_Zoom_Mode mode) EINA_ARG_NONNULL(1);
2366    EAPI Elm_Map_Zoom_Mode     elm_map_zoom_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2367    EAPI void                  elm_map_geo_region_get(const Evas_Object *obj, double *lon, double *lat) EINA_ARG_NONNULL(1);
2368    EAPI void                  elm_map_geo_region_bring_in(Evas_Object *obj, double lon, double lat) EINA_ARG_NONNULL(1);
2369    EAPI void                  elm_map_geo_region_show(Evas_Object *obj, double lon, double lat) EINA_ARG_NONNULL(1);
2370    EAPI void                  elm_map_paused_set(Evas_Object *obj, Eina_Bool paused) EINA_ARG_NONNULL(1);
2371    EAPI Eina_Bool             elm_map_paused_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2372    EAPI void                  elm_map_paused_markers_set(Evas_Object *obj, Eina_Bool paused) EINA_ARG_NONNULL(1);
2373    EAPI Eina_Bool             elm_map_paused_markers_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2374    EAPI void                  elm_map_utils_downloading_status_get(const Evas_Object *obj, int *try_num, int *finish_num) EINA_ARG_NONNULL(1, 2, 3);
2375    EAPI void                  elm_map_utils_convert_coord_into_geo(const Evas_Object *obj, int x, int y, int size, double *lon, double *lat) EINA_ARG_NONNULL(1, 5, 6);
2376    EAPI void                  elm_map_utils_convert_geo_into_coord(const Evas_Object *obj, double lon, double lat, int size, int *x, int *y) EINA_ARG_NONNULL(1, 5, 6);
2377    EAPI Elm_Map_Name         *elm_map_utils_convert_coord_into_name(const Evas_Object *obj, double lon, double lat) EINA_ARG_NONNULL(1);
2378    EAPI Elm_Map_Name         *elm_map_utils_convert_name_into_coord(const Evas_Object *obj, char *address) EINA_ARG_NONNULL(1, 2);
2379    EAPI void                  elm_map_utils_rotate_coord(const Evas_Object *obj, const Evas_Coord x, const Evas_Coord y, const Evas_Coord cx, const Evas_Coord cy, const double degree, Evas_Coord *xx, Evas_Coord *yy) EINA_ARG_NONNULL(1);
2380    EAPI Elm_Map_Marker       *elm_map_marker_add(Evas_Object *obj, double lon, double lat, Elm_Map_Marker_Class *clas, Elm_Map_Group_Class *clas_group, void *data) EINA_ARG_NONNULL(1, 4, 5);
2381    EAPI void                  elm_map_max_marker_per_group_set(Evas_Object *obj, int max) EINA_ARG_NONNULL(1);
2382    EAPI void                  elm_map_marker_remove(Elm_Map_Marker *marker) EINA_ARG_NONNULL(1);
2383    EAPI void                  elm_map_marker_region_get(const Elm_Map_Marker *marker, double *lon, double *lat) EINA_ARG_NONNULL(1);
2384    EAPI void                  elm_map_marker_bring_in(Elm_Map_Marker *marker) EINA_ARG_NONNULL(1);
2385    EAPI void                  elm_map_marker_show(Elm_Map_Marker *marker) EINA_ARG_NONNULL(1);
2386    EAPI void                  elm_map_markers_list_show(Eina_List *markers) EINA_ARG_NONNULL(1);
2387    EAPI Evas_Object          *elm_map_marker_object_get(const Elm_Map_Marker *marker) EINA_ARG_NONNULL(1);
2388    EAPI void                  elm_map_marker_update(Elm_Map_Marker *marker) EINA_ARG_NONNULL(1);
2389    EAPI void                  elm_map_bubbles_close(Evas_Object *obj) EINA_ARG_NONNULL(1);
2390    EAPI Elm_Map_Group_Class  *elm_map_group_class_new(Evas_Object *obj) EINA_ARG_NONNULL(1);
2391    EAPI void                  elm_map_group_class_style_set(Elm_Map_Group_Class *clas, const char *style) EINA_ARG_NONNULL(1);
2392    EAPI void                  elm_map_group_class_icon_cb_set(Elm_Map_Group_Class *clas, ElmMapGroupIconGetFunc icon_get) EINA_ARG_NONNULL(1);
2393    EAPI void                  elm_map_group_class_data_set(Elm_Map_Group_Class *clas, void *data) EINA_ARG_NONNULL(1);
2394    EAPI void                  elm_map_group_class_zoom_displayed_set(Elm_Map_Group_Class *clas, int zoom) EINA_ARG_NONNULL(1);
2395    EAPI void                  elm_map_group_class_zoom_grouped_set(Elm_Map_Group_Class *clas, int zoom) EINA_ARG_NONNULL(1);
2396    EAPI void                  elm_map_group_class_hide_set(Evas_Object *obj, Elm_Map_Group_Class *clas, Eina_Bool hide) EINA_ARG_NONNULL(1, 2);
2397    EAPI Elm_Map_Marker_Class *elm_map_marker_class_new(Evas_Object *obj) EINA_ARG_NONNULL(1);
2398    EAPI void                  elm_map_marker_class_style_set(Elm_Map_Marker_Class *clas, const char *style) EINA_ARG_NONNULL(1);
2399    EAPI void                  elm_map_marker_class_icon_cb_set(Elm_Map_Marker_Class *clas, ElmMapMarkerIconGetFunc icon_get) EINA_ARG_NONNULL(1);
2400    EAPI void                  elm_map_marker_class_get_cb_set(Elm_Map_Marker_Class *clas, ElmMapMarkerGetFunc get) EINA_ARG_NONNULL(1);
2401    EAPI void                  elm_map_marker_class_del_cb_set(Elm_Map_Marker_Class *clas, ElmMapMarkerDelFunc del) EINA_ARG_NONNULL(1);
2402    EAPI const char          **elm_map_source_names_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2403    EAPI void                  elm_map_source_name_set(Evas_Object *obj, const char *source_name) EINA_ARG_NONNULL(1);
2404    EAPI const char           *elm_map_source_name_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2405    EAPI void                  elm_map_route_source_set(Evas_Object *obj, Elm_Map_Route_Sources source) EINA_ARG_NONNULL(1);
2406    EAPI Elm_Map_Route_Sources elm_map_route_source_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2407    EAPI int                   elm_map_source_zoom_min_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2408    EAPI int                   elm_map_source_zoom_max_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2409    EAPI void                  elm_map_user_agent_set(Evas_Object *obj, const char *user_agent) EINA_ARG_NONNULL(1, 2);
2410    EAPI const char           *elm_map_user_agent_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2411    EAPI Elm_Map_Route        *elm_map_route_add(Evas_Object *obj, Elm_Map_Route_Type type, Elm_Map_Route_Method method, double flon, double flat, double tlon, double tlat) EINA_ARG_NONNULL(1);
2412    EAPI void                  elm_map_route_remove(Elm_Map_Route *route) EINA_ARG_NONNULL(1);
2413    EAPI void                  elm_map_route_color_set(Elm_Map_Route *route, int r, int g , int b, int a) EINA_ARG_NONNULL(1);
2414    EAPI void                  elm_map_route_color_get(const Elm_Map_Route *route, int *r, int *g , int *b, int *a) EINA_ARG_NONNULL(1);
2415    EAPI double                elm_map_route_distance_get(const Elm_Map_Route *route) EINA_ARG_NONNULL(1);
2416    EAPI const char           *elm_map_route_node_get(const Elm_Map_Route *route) EINA_ARG_NONNULL(1);
2417    EAPI const char           *elm_map_route_waypoint_get(const Elm_Map_Route *route) EINA_ARG_NONNULL(1);
2418    EAPI const char           *elm_map_name_address_get(const Elm_Map_Name *name) EINA_ARG_NONNULL(1);
2419    EAPI void                  elm_map_name_region_get(const Elm_Map_Name *name, double *lon, double *lat) EINA_ARG_NONNULL(1);
2420    EAPI void                  elm_map_name_remove(Elm_Map_Name *name) EINA_ARG_NONNULL(1);
2421    EAPI void                  elm_map_rotate_set(Evas_Object *obj, double degree, Evas_Coord cx, Evas_Coord cy) EINA_ARG_NONNULL(1);
2422    EAPI void                  elm_map_rotate_get(const Evas_Object *obj, double *degree, Evas_Coord *cx, Evas_Coord *cy) EINA_ARG_NONNULL(1, 2, 3, 4);
2423    EAPI void                  elm_map_wheel_disabled_set(Evas_Object *obj, Eina_Bool disabled) EINA_ARG_NONNULL(1);
2424    EAPI Eina_Bool             elm_map_wheel_disabled_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2425
2426    /* smart callbacks called:
2427     * "clicked" - when image clicked
2428     * "press" - when mouse/finger held down initially on image
2429     * "longpressed" - when mouse/finger held for long time on image
2430     * "clicked,double" - when mouse/finger double-clicked
2431     * "load,details" - when detailed image load begins
2432     * "loaded,details" - when detailed image load done
2433     * "zoom,start" - when zooming started
2434     * "zoom,stop" - when zooming stopped
2435     * "zoom,change" - when auto zoom mode changed zoom level
2436     * "scroll - the content has been scrolled (moved)
2437     * "scroll,anim,start" - scrolling animation has started
2438     * "scroll,anim,stop" - scrolling animation has stopped
2439     * "scroll,drag,start" - dragging the contents around has started
2440     * "scroll,drag,stop" - dragging the contents around has stopped
2441     */
2442
2443    /* panel */
2444    typedef enum _Elm_Panel_Orient
2445      {
2446         ELM_PANEL_ORIENT_TOP,
2447         ELM_PANEL_ORIENT_BOTTOM,
2448         ELM_PANEL_ORIENT_LEFT,
2449         ELM_PANEL_ORIENT_RIGHT,
2450      } Elm_Panel_Orient;
2451
2452    EAPI Evas_Object          *elm_panel_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
2453    EAPI void                  elm_panel_orient_set(Evas_Object *obj, Elm_Panel_Orient orient) EINA_ARG_NONNULL(1);
2454    EAPI Elm_Panel_Orient      elm_panel_orient_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2455    EAPI void                  elm_panel_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
2456    EAPI Evas_Object          *elm_panel_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2457    EAPI Evas_Object          *elm_panel_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
2458    EAPI void                  elm_panel_hidden_set(Evas_Object *obj, Eina_Bool hidden) EINA_ARG_NONNULL(1);
2459    EAPI Eina_Bool             elm_panel_hidden_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2460    EAPI void                  elm_panel_toggle(Evas_Object *obj) EINA_ARG_NONNULL(1);
2461
2462    /* panes */
2463    /**
2464     * TODO
2465     *
2466     * Update the minimun height of the bar in the theme. No minimun should be set in the vertical theme
2467     * Add events (move, start ...)
2468     */
2469    EAPI Evas_Object          *elm_panes_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
2470    EAPI void                  elm_panes_content_left_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
2471    EAPI void                  elm_panes_content_right_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
2472    EAPI Evas_Object          *elm_panes_content_left_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2473    EAPI Evas_Object          *elm_panes_content_right_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2474    EAPI Evas_Object          *elm_panes_content_left_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
2475    EAPI Evas_Object          *elm_panes_content_right_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
2476    EAPI double                elm_panes_content_left_size_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2477    EAPI void                  elm_panes_content_left_size_set(Evas_Object *obj, double size) EINA_ARG_NONNULL(1);
2478    EAPI void                  elm_panes_horizontal_set(Evas_Object *obj, Eina_Bool horizontal) EINA_ARG_NONNULL(1);
2479    EAPI Eina_Bool             elm_panes_horizontal_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2480    EAPI void                  elm_panes_fixed_set(Evas_Object *obj, Eina_Bool fixed) EINA_ARG_NONNULL(1);
2481    EAPI Eina_Bool             elm_panes_fixed_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2482
2483    /* flip */
2484    typedef enum _Elm_Flip_Mode
2485      {
2486         ELM_FLIP_ROTATE_Y_CENTER_AXIS,
2487         ELM_FLIP_ROTATE_X_CENTER_AXIS,
2488         ELM_FLIP_ROTATE_XZ_CENTER_AXIS,
2489         ELM_FLIP_ROTATE_YZ_CENTER_AXIS,
2490         ELM_FLIP_CUBE_LEFT,
2491         ELM_FLIP_CUBE_RIGHT,
2492         ELM_FLIP_CUBE_UP,
2493         ELM_FLIP_CUBE_DOWN
2494      } Elm_Flip_Mode;
2495
2496    EAPI Evas_Object *elm_flip_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
2497    EAPI void         elm_flip_content_front_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
2498    EAPI void         elm_flip_content_back_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
2499    EAPI Evas_Object *elm_flip_content_front_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2500    EAPI Evas_Object *elm_flip_content_back_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2501    EAPI Evas_Object *elm_flip_content_front_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
2502    EAPI Evas_Object *elm_flip_content_back_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
2503    EAPI Eina_Bool    elm_flip_front_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2504    EAPI void         elm_flip_perspective_set(Evas_Object *obj, Evas_Coord foc, Evas_Coord x, Evas_Coord y) EINA_ARG_NONNULL(1);
2505    EAPI void         elm_flip_go(Evas_Object *obj, Elm_Flip_Mode mode) EINA_ARG_NONNULL(1);
2506    /* smart callbacks called:
2507     * "animate,done" - when a flip animation is finished
2508     */
2509
2510    /* scrolledentry */
2511    EAPI Evas_Object *elm_scrolled_entry_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
2512    EAPI void         elm_scrolled_entry_single_line_set(Evas_Object *obj, Eina_Bool single_line) EINA_ARG_NONNULL(1);
2513    EAPI Eina_Bool    elm_scrolled_entry_single_line_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2514    EAPI void         elm_scrolled_entry_password_set(Evas_Object *obj, Eina_Bool password) EINA_ARG_NONNULL(1);
2515    EAPI Eina_Bool    elm_scrolled_entry_password_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2516    EAPI void         elm_scrolled_entry_entry_set(Evas_Object *obj, const char *entry) EINA_ARG_NONNULL(1);
2517    EAPI const char  *elm_scrolled_entry_entry_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2518    EAPI Eina_Bool    elm_scrolled_entry_is_empty(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2519    EAPI const char  *elm_scrolled_entry_selection_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2520    EAPI void         elm_scrolled_entry_entry_insert(Evas_Object *obj, const char *entry) EINA_ARG_NONNULL(1);
2521    EAPI void         elm_scrolled_entry_line_wrap_set(Evas_Object *obj, Eina_Bool wrap) EINA_ARG_NONNULL(1);
2522    EAPI void         elm_scrolled_entry_line_char_wrap_set(Evas_Object *obj, Eina_Bool wrap) EINA_ARG_NONNULL(1);
2523    EAPI void         elm_scrolled_entry_editable_set(Evas_Object *obj, Eina_Bool editable) EINA_ARG_NONNULL(1);
2524    EAPI Eina_Bool    elm_scrolled_entry_editable_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2525    EAPI void         elm_scrolled_entry_select_none(Evas_Object *obj) EINA_ARG_NONNULL(1);
2526    EAPI void         elm_scrolled_entry_select_all(Evas_Object *obj) EINA_ARG_NONNULL(1);
2527    EAPI Eina_Bool    elm_scrolled_entry_cursor_next(Evas_Object *obj) EINA_ARG_NONNULL(1);
2528    EAPI Eina_Bool    elm_scrolled_entry_cursor_prev(Evas_Object *obj) EINA_ARG_NONNULL(1);
2529    EAPI Eina_Bool    elm_scrolled_entry_cursor_up(Evas_Object *obj) EINA_ARG_NONNULL(1);
2530    EAPI Eina_Bool    elm_scrolled_entry_cursor_down(Evas_Object *obj) EINA_ARG_NONNULL(1);
2531    EAPI void         elm_scrolled_entry_cursor_begin_set(Evas_Object *obj) EINA_ARG_NONNULL(1);
2532    EAPI void         elm_scrolled_entry_cursor_end_set(Evas_Object *obj) EINA_ARG_NONNULL(1);
2533    EAPI void         elm_scrolled_entry_cursor_line_begin_set(Evas_Object *obj) EINA_ARG_NONNULL(1);
2534    EAPI void         elm_scrolled_entry_cursor_line_end_set(Evas_Object *obj) EINA_ARG_NONNULL(1);
2535    EAPI void         elm_scrolled_entry_cursor_selection_begin(Evas_Object *obj) EINA_ARG_NONNULL(1);
2536    EAPI void         elm_scrolled_entry_cursor_selection_end(Evas_Object *obj) EINA_ARG_NONNULL(1);
2537    EAPI Eina_Bool    elm_scrolled_entry_cursor_is_format_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2538    EAPI Eina_Bool    elm_scrolled_entry_cursor_is_visible_format_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2539    EAPI const char  *elm_scrolled_entry_cursor_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2540    EAPI void         elm_scrolled_entry_selection_cut(Evas_Object *obj) EINA_ARG_NONNULL(1);
2541    EAPI void         elm_scrolled_entry_selection_copy(Evas_Object *obj) EINA_ARG_NONNULL(1);
2542    EAPI void         elm_scrolled_entry_selection_paste(Evas_Object *obj) EINA_ARG_NONNULL(1);
2543    EAPI void         elm_scrolled_entry_context_menu_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
2544    EAPI void         elm_scrolled_entry_context_menu_item_add(Evas_Object *obj, const char *label, const char *icon_file, Elm_Icon_Type icon_type, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
2545    EAPI void         elm_scrolled_entry_context_menu_disabled_set(Evas_Object *obj, Eina_Bool disabled) EINA_ARG_NONNULL(1);
2546    EAPI Eina_Bool    elm_scrolled_entry_context_menu_disabled_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2547    EAPI void         elm_scrolled_entry_scrollbar_policy_set(Evas_Object *obj, Elm_Scroller_Policy h, Elm_Scroller_Policy v) EINA_ARG_NONNULL(1);
2548    EAPI void         elm_scrolled_entry_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce) EINA_ARG_NONNULL(1);
2549    EAPI void         elm_scrolled_entry_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce) EINA_ARG_NONNULL(1);
2550    EAPI void         elm_scrolled_entry_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1, 2);
2551    EAPI Evas_Object *elm_scrolled_entry_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2552    EAPI Evas_Object *elm_scrolled_entry_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
2553    EAPI void         elm_scrolled_entry_icon_visible_set(Evas_Object *obj, Eina_Bool setting) EINA_ARG_NONNULL(1);
2554    EAPI void         elm_scrolled_entry_end_set(Evas_Object *obj, Evas_Object *end) EINA_ARG_NONNULL(1, 2);
2555    EAPI Evas_Object *elm_scrolled_entry_end_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2556    EAPI Evas_Object *elm_scrolled_entry_end_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
2557    EAPI void         elm_scrolled_entry_end_visible_set(Evas_Object *obj, Eina_Bool setting) EINA_ARG_NONNULL(1);
2558    EAPI void         elm_scrolled_entry_item_provider_append(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item), void *data) EINA_ARG_NONNULL(1, 2);
2559    EAPI void         elm_scrolled_entry_item_provider_prepend(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item), void *data) EINA_ARG_NONNULL(1, 2);
2560    EAPI void         elm_scrolled_entry_item_provider_remove(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item), void *data) EINA_ARG_NONNULL(1, 2);
2561    EAPI void         elm_scrolled_entry_text_filter_append(Evas_Object *obj, void (*func) (void *data, Evas_Object *entry, char **text), void *data) EINA_ARG_NONNULL(1, 2);
2562    EAPI void         elm_scrolled_entry_text_filter_prepend(Evas_Object *obj, void (*func) (void *data, Evas_Object *entry, char **text), void *data) EINA_ARG_NONNULL(1, 2);
2563    EAPI void         elm_scrolled_entry_text_filter_remove(Evas_Object *obj, void (*func) (void *data, Evas_Object *entry, char **text), void *data) EINA_ARG_NONNULL(1, 2);
2564    EAPI void         elm_scrolled_entry_file_set(Evas_Object *obj, const char *file, Elm_Text_Format format) EINA_ARG_NONNULL(1);
2565    EAPI void         elm_scrolled_entry_file_get(const Evas_Object *obj, const char **file, Elm_Text_Format *format) EINA_ARG_NONNULL(1);
2566    EAPI void         elm_scrolled_entry_file_save(Evas_Object *obj) EINA_ARG_NONNULL(1);
2567    EAPI void         elm_scrolled_entry_autosave_set(Evas_Object *obj, Eina_Bool autosave) EINA_ARG_NONNULL(1);
2568    EAPI Eina_Bool    elm_scrolled_entry_autosave_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2569    EAPI void         elm_scrolled_entry_cnp_textonly_set(Evas_Object *obj, Eina_Bool textonly) EINA_ARG_NONNULL(1);
2570    EAPI Eina_Bool    elm_scrolled_entry_cnp_textonly_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
2571    EAPI void         elm_scrolled_entry_input_panel_enabled_set(Evas_Object *obj, Eina_Bool enabled);
2572    EAPI void         elm_scrolled_entry_input_panel_layout_set(Evas_Object *obj, Elm_Input_Panel_Layout layout);
2573    EAPI Ecore_IMF_Context *elm_scrolled_entry_imf_context_get(Evas_Object *obj);
2574    EAPI void         elm_scrolled_entry_autocapitalization_set(Evas_Object *obj, Eina_Bool autocap);
2575    EAPI void         elm_scrolled_entry_autoperiod_set(Evas_Object *obj, Eina_Bool autoperiod);
2576
2577    /* conformant */
2578    EAPI Evas_Object *elm_conformant_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
2579    EAPI void         elm_conformant_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
2580    EAPI Evas_Object *elm_conformant_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2581    EAPI Evas_Object *elm_conformant_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
2582    EAPI Evas_Object *elm_conformant_content_area_get(Evas_Object *obj); EINA_ARG_NONNULL(1);
2583
2584    /* mapbuf */
2585    EAPI Evas_Object *elm_mapbuf_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
2586    EAPI void         elm_mapbuf_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
2587    EAPI Evas_Object *elm_mapbuf_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2588    EAPI Evas_Object *elm_mapbuf_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
2589    EAPI void         elm_mapbuf_enabled_set(Evas_Object *obj, Eina_Bool enabled) EINA_ARG_NONNULL(1);
2590    EAPI Eina_Bool    elm_mapbuf_enabled_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2591    EAPI void         elm_mapbuf_smooth_set(Evas_Object *obj, Eina_Bool smooth) EINA_ARG_NONNULL(1);
2592    EAPI Eina_Bool    elm_mapbuf_smooth_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2593    EAPI void         elm_mapbuf_alpha_set(Evas_Object *obj, Eina_Bool alpha) EINA_ARG_NONNULL(1);
2594    EAPI Eina_Bool    elm_mapbuf_alpha_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2595
2596    /* flipselector */
2597    typedef struct _Elm_Flipselector_Item Elm_Flipselector_Item;
2598
2599    EAPI Evas_Object               *elm_flipselector_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
2600    EAPI void                       elm_flipselector_flip_next(Evas_Object *obj) EINA_ARG_NONNULL(1);
2601    EAPI void                       elm_flipselector_flip_prev(Evas_Object *obj) EINA_ARG_NONNULL(1);
2602    EAPI Elm_Flipselector_Item     *elm_flipselector_item_append(Evas_Object *obj, const char *label, void (*func)(void *data, Evas_Object *obj, void *event_info), void *data) EINA_ARG_NONNULL(1);
2603    EAPI Elm_Flipselector_Item     *elm_flipselector_item_prepend(Evas_Object *obj, const char *label, void (*func)(void *data, Evas_Object *obj, void *event_info), void *data) EINA_ARG_NONNULL(1);
2604    EAPI const Eina_List           *elm_flipselector_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2605    EAPI Elm_Flipselector_Item     *elm_flipselector_first_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2606    EAPI Elm_Flipselector_Item     *elm_flipselector_last_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2607    EAPI Elm_Flipselector_Item     *elm_flipselector_selected_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2608    EAPI void                       elm_flipselector_item_selected_set(Elm_Flipselector_Item *item, Eina_Bool selected) EINA_ARG_NONNULL(1);
2609    EAPI Eina_Bool                  elm_flipselector_item_selected_get(const Elm_Flipselector_Item *item) EINA_ARG_NONNULL(1);
2610    EAPI void                       elm_flipselector_item_del(Elm_Flipselector_Item *item) EINA_ARG_NONNULL(1);
2611    EAPI const char                *elm_flipselector_item_label_get(const Elm_Flipselector_Item *item) EINA_ARG_NONNULL(1);
2612    EAPI void                       elm_flipselector_item_label_set(Elm_Flipselector_Item *item, const char *label) EINA_ARG_NONNULL(1);
2613    EAPI Elm_Flipselector_Item     *elm_flipselector_item_prev_get(Elm_Flipselector_Item *item) EINA_ARG_NONNULL(1);
2614    EAPI Elm_Flipselector_Item     *elm_flipselector_item_next_get(Elm_Flipselector_Item *item) EINA_ARG_NONNULL(1);
2615    EAPI void                       elm_flipselector_interval_set(Evas_Object *obj, double interval) EINA_ARG_NONNULL(1);
2616    EAPI double                     elm_flipselector_interval_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2617    /* smart callbacks called:
2618     * "selected" - when flipselector selected item is changed
2619     * "overflowed" - when flipselector item is changed to first item
2620     *                from last item
2621     * "underflowed" - when flipselector item is changed to last item
2622     *                 from first item.
2623     */
2624    /* available styles:
2625     * default
2626     */
2627
2628    /* animator */
2629    typedef enum
2630      {
2631         ELM_ANIMATOR_CURVE_LINEAR,
2632         ELM_ANIMATOR_CURVE_IN_OUT,
2633         ELM_ANIMATOR_CURVE_IN,
2634         ELM_ANIMATOR_CURVE_OUT
2635      } Elm_Animator_Curve_Style;
2636    typedef struct _Elm_Animator Elm_Animator;
2637   /**
2638    * Called back per loop of an elementary animators cycle
2639    * @param data user-data given to elm_animator_operation_callback_set()
2640    * @param animator the animator being run
2641    * @param double the position in the animation
2642    */
2643    typedef void (*Elm_Animator_Operation_Cb) (void *data, Elm_Animator *animator, double frame);
2644   /**
2645    * Called back when an elementary animator finishes
2646    * @param data user-data given to elm_animator_completion_callback_set()
2647    */
2648    typedef void (*Elm_Animator_Completion_Cb) (void *data);
2649
2650    EAPI Elm_Animator*            elm_animator_add(Evas_Object *parent);
2651    EAPI void                     elm_animator_del(Elm_Animator *animator) EINA_ARG_NONNULL(1);
2652    EAPI void                     elm_animator_duration_set(Elm_Animator *animator, double duration) EINA_ARG_NONNULL(1);
2653    EAPI void                     elm_animator_operation_callback_set(Elm_Animator *animator, Elm_Animator_Operation_Cb func, void *data) EINA_ARG_NONNULL(1);
2654    EAPI void                     elm_animator_completion_callback_set(Elm_Animator *animator, Elm_Animator_Completion_Cb func, void *data) EINA_ARG_NONNULL(1);
2655    EAPI void                     elm_animator_stop(Elm_Animator *animator) EINA_ARG_NONNULL(1);
2656    EAPI void                     elm_animator_repeat_set(Elm_Animator *animator, unsigned int repeat_cnt) EINA_ARG_NONNULL(1);
2657    EAPI void                     elm_animator_animate(Elm_Animator *animator) EINA_ARG_NONNULL(1);
2658    EAPI void                     elm_animator_curve_style_set(Elm_Animator *animator, Elm_Animator_Curve_Style cs) EINA_ARG_NONNULL(1);
2659    EAPI Elm_Animator_Curve_Style elm_animator_curve_style_get(const Elm_Animator *animator); EINA_ARG_NONNULL(1);
2660    EAPI void                     elm_animator_auto_reverse_set(Elm_Animator *animator, Eina_Bool reverse) EINA_ARG_NONNULL(1);
2661    EAPI Eina_Bool                elm_animator_auto_reverse_get(const Elm_Animator *animator) EINA_ARG_NONNULL(1);
2662    EAPI Eina_Bool                elm_animator_operating_get(const Elm_Animator *animator) EINA_ARG_NONNULL(1);
2663    EAPI unsigned int             elm_animator_repeat_get(const Elm_Animator *animator) EINA_ARG_NONNULL(1);
2664    EAPI void                     elm_animator_pause(Elm_Animator *animator) EINA_ARG_NONNULL(1);
2665    EAPI void                     elm_animator_resume(Elm_Animator *animator) EINA_ARG_NONNULL(1);
2666
2667    /* calendar */
2668    typedef enum
2669      {
2670         ELM_CALENDAR_UNIQUE,
2671         ELM_CALENDAR_DAILY,
2672         ELM_CALENDAR_WEEKLY,
2673         ELM_CALENDAR_MONTHLY,
2674         ELM_CALENDAR_ANNUALLY
2675      } Elm_Calendar_Mark_Repeat;
2676    typedef struct _Elm_Calendar_Mark Elm_Calendar_Mark;
2677
2678    EAPI Evas_Object       *elm_calendar_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
2679    EAPI const char       **elm_calendar_weekdays_names_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2680    EAPI void               elm_calendar_weekdays_names_set(Evas_Object *obj, const char *weekdays[]) EINA_ARG_NONNULL(1, 2);
2681    EAPI double             elm_calendar_interval_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2682    EAPI void               elm_calendar_interval_set(Evas_Object *obj, double interval) EINA_ARG_NONNULL(1);
2683    EAPI void               elm_calendar_min_max_year_get(const Evas_Object *obj, int *min, int *max) EINA_ARG_NONNULL(1);
2684    EAPI void               elm_calendar_min_max_year_set(Evas_Object *obj, int min, int max) EINA_ARG_NONNULL(1);
2685    EAPI Eina_Bool          elm_calendar_day_selection_enabled_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2686    EAPI void               elm_calendar_day_selection_enabled_set(Evas_Object *obj, Eina_Bool enabled) EINA_ARG_NONNULL(1);
2687    EAPI Eina_Bool          elm_calendar_selected_time_get(const Evas_Object *obj, struct tm *selected_time) EINA_ARG_NONNULL(1, 2);
2688    EAPI void               elm_calendar_selected_time_set(Evas_Object *obj, struct tm *selected_time) EINA_ARG_NONNULL(1);
2689    EAPI void               elm_calendar_format_function_set(Evas_Object *obj, char * (*format_function) (struct tm *stime)) EINA_ARG_NONNULL(1);
2690    EAPI Elm_Calendar_Mark *elm_calendar_mark_add(Evas_Object *obj, const char *mark_type, struct tm *mark_time, Elm_Calendar_Mark_Repeat repeat) EINA_ARG_NONNULL(1);
2691    EAPI void               elm_calendar_mark_del(Elm_Calendar_Mark *mark) EINA_ARG_NONNULL(1);
2692    EAPI void               elm_calendar_marks_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
2693    EAPI const Eina_List   *elm_calendar_marks_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2694    EAPI void               elm_calendar_marks_draw(Evas_Object *obj) EINA_ARG_NONNULL(1);
2695    EINA_DEPRECATED EAPI void               elm_calendar_text_saturday_color_set(Evas_Object *obj, int pos) EINA_ARG_NONNULL(1);
2696    EINA_DEPRECATED EAPI void               elm_calendar_text_sunday_color_set(Evas_Object *obj, int pos) EINA_ARG_NONNULL(1);
2697    EINA_DEPRECATED EAPI void               elm_calendar_text_weekday_color_set(Evas_Object *obj, int pos) EINA_ARG_NONNULL(1);
2698    /* smart callbacks called:
2699     * changed - emitted when the user select a day or change the displayed
2700     * month.
2701     */
2702
2703    /* diskselector */
2704    typedef struct _Elm_Diskselector_Item Elm_Diskselector_Item;
2705
2706    EAPI Evas_Object           *elm_diskselector_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
2707    EAPI Eina_Bool              elm_diskselector_round_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2708    EAPI void                   elm_diskselector_round_set(Evas_Object *obj, Eina_Bool round) EINA_ARG_NONNULL(1);
2709    EAPI int                    elm_diskselector_side_label_lenght_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2710    EAPI void                   elm_diskselector_side_label_lenght_set(Evas_Object *obj, int len) EINA_ARG_NONNULL(1);
2711    EAPI void                   elm_diskselector_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce) EINA_ARG_NONNULL(1);
2712    EAPI void                   elm_diskselector_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce) EINA_ARG_NONNULL(1);
2713    EAPI void                   elm_diskselector_scroller_policy_get(const Evas_Object *obj, Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v) EINA_ARG_NONNULL(1);
2714    EAPI void                   elm_diskselector_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v) EINA_ARG_NONNULL(1);
2715    EAPI void                   elm_diskselector_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
2716    EAPI const Eina_List       *elm_diskselector_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2717    EAPI Elm_Diskselector_Item *elm_diskselector_item_append(Evas_Object *obj, const char *label, Evas_Object *icon, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
2718    EAPI void                   elm_diskselector_item_del(Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
2719    EAPI void                   elm_diskselector_item_del_cb_set(Elm_Diskselector_Item *item, Evas_Smart_Cb func) EINA_ARG_NONNULL(1);
2720    EAPI void                  *elm_diskselector_item_data_get(const Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
2721    EAPI Evas_Object           *elm_diskselector_item_icon_get(const Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
2722    EAPI void                   elm_diskselector_item_icon_set(Elm_Diskselector_Item *item, Evas_Object *icon) EINA_ARG_NONNULL(1);
2723    EAPI const char            *elm_diskselector_item_label_get(const Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
2724    EAPI void                   elm_diskselector_item_label_set(Elm_Diskselector_Item *item, const char *label) EINA_ARG_NONNULL(1);
2725    EAPI Elm_Diskselector_Item *elm_diskselector_selected_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2726    EAPI void                   elm_diskselector_item_selected_set(Elm_Diskselector_Item *item, Eina_Bool selected) EINA_ARG_NONNULL(1);
2727    EAPI Eina_Bool              elm_diskselector_item_selected_get(const Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
2728    EAPI Elm_Diskselector_Item *elm_diskselector_first_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2729    EAPI Elm_Diskselector_Item *elm_diskselector_last_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2730    EAPI Elm_Diskselector_Item *elm_diskselector_item_prev_get(const Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
2731    EAPI Elm_Diskselector_Item *elm_diskselector_item_next_get(const Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
2732    EAPI void                   elm_diskselector_item_tooltip_text_set(Elm_Diskselector_Item *item, const char *text) EINA_ARG_NONNULL(1);
2733    EAPI void                   elm_diskselector_item_tooltip_content_cb_set(Elm_Diskselector_Item *item, Elm_Tooltip_Item_Content_Cb func, const void *data, Evas_Smart_Cb del_cb) EINA_ARG_NONNULL(1);
2734    EAPI void                   elm_diskselector_item_tooltip_unset(Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
2735    EAPI void                   elm_diskselector_item_tooltip_style_set(Elm_Diskselector_Item *item, const char *style) EINA_ARG_NONNULL(1);
2736    EAPI const char            *elm_diskselector_item_tooltip_style_get(const Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
2737    EAPI void                   elm_diskselector_item_cursor_set(Elm_Diskselector_Item *item, const char *cursor) EINA_ARG_NONNULL(1);
2738    EAPI const char            *elm_diskselector_item_cursor_get(const Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
2739    EAPI void                   elm_diskselector_item_cursor_unset(Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
2740    EAPI void                   elm_diskselector_item_cursor_style_set(Elm_Diskselector_Item *item, const char *style) EINA_ARG_NONNULL(1);
2741    EAPI const char            *elm_diskselector_item_cursor_style_get(const Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
2742    EAPI void                   elm_diskselector_item_cursor_engine_only_set(Elm_Diskselector_Item *item, Eina_Bool engine_only) EINA_ARG_NONNULL(1);
2743    EAPI Eina_Bool              elm_diskselector_item_cursor_engine_only_get(const Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
2744    EAPI void                   elm_diskselector_display_item_num_set(Evas_Object *obj, int num) EINA_ARG_NONNULL(1);
2745    /* smart callbacks called:
2746     * "selected" - when item is selected (scroller stops)
2747     */
2748
2749    /* datefield */
2750    typedef enum _Elm_Datefield_Layout
2751      {
2752         ELM_DATEFIELD_LAYOUT_TIME,
2753         ELM_DATEFIELD_LAYOUT_DATE,
2754         ELM_DATEFIELD_LAYOUT_DATEANDTIME
2755      } Elm_Datefield_Layout;
2756
2757    EAPI Evas_Object *elm_datefield_add(Evas_Object *parent);
2758    EAPI void         elm_datefield_layout_set(Evas_Object *obj, Elm_Datefield_Layout layout);
2759    EAPI Elm_Datefield_Layout elm_datefield_layout_get(const Evas_Object *obj);
2760    EAPI void         elm_datefield_date_set(Evas_Object *obj, int year, int month, int day, int hour, int min);
2761    EAPI void         elm_datefield_date_get(const Evas_Object *obj, int *year, int *month, int *day, int *hour, int *min);
2762    EAPI Eina_Bool elm_datefield_date_max_set(Evas_Object *obj, int year, int month, int day);
2763    EAPI void         elm_datefield_date_max_get(const Evas_Object *obj, int *year, int *month, int *day);
2764    EAPI Eina_Bool elm_datefield_date_min_set(Evas_Object *obj, int year, int month, int day);
2765    EAPI void         elm_datefield_date_min_get(const Evas_Object *obj, int *year, int *month, int *day);
2766    EAPI void         elm_datefield_time_mode_set(Evas_Object *obj, Eina_Bool mode);
2767    EAPI Eina_Bool    elm_datefield_time_mode_get(const Evas_Object *obj);
2768    EAPI void         elm_datefield_date_format_set(Evas_Object *obj, const char *fmt);
2769    EAPI const char  *elm_datefield_date_format_get(const Evas_Object *obj);
2770    EAPI void         elm_datefield_input_panel_state_callback_add(Evas_Object *obj, void (*pEventCallbackFunc) (void *data, Evas_Object *obj, int value), void *data);
2771    EAPI void         elm_datefield_input_panel_state_callback_del(Evas_Object *obj, void (*pEventCallbackFunc) (void *data, Evas_Object *obj, int value));
2772    /* smart callbacks called:
2773    * "changed" - when datefield entry is changed, this signal is sent.
2774    */
2775
2776    /* popup */
2777    typedef enum _Elm_Popup_Response
2778      {
2779         ELM_POPUP_RESPONSE_NONE = -1,
2780         ELM_POPUP_RESPONSE_TIMEOUT = -2,
2781         ELM_POPUP_RESPONSE_OK = -3,
2782         ELM_POPUP_RESPONSE_CANCEL = -4,
2783         ELM_POPUP_RESPONSE_CLOSE = -5
2784      } Elm_Popup_Response;
2785
2786    typedef enum _Elm_Popup_Mode
2787      {
2788         ELM_POPUP_TYPE_NONE = 0,
2789         ELM_POPUP_TYPE_ALERT = (1 << 0)
2790      } Elm_Popup_Mode;
2791
2792    typedef enum _Elm_Popup_Orient
2793      {
2794         ELM_POPUP_ORIENT_TOP,
2795         ELM_POPUP_ORIENT_CENTER,
2796         ELM_POPUP_ORIENT_BOTTOM,
2797         ELM_POPUP_ORIENT_LEFT,
2798         ELM_POPUP_ORIENT_RIGHT,
2799         ELM_POPUP_ORIENT_TOP_LEFT,
2800         ELM_POPUP_ORIENT_TOP_RIGHT,
2801         ELM_POPUP_ORIENT_BOTTOM_LEFT,
2802         ELM_POPUP_ORIENT_BOTTOM_RIGHT
2803      } Elm_Popup_Orient;
2804
2805    /* smart callbacks called:
2806     * "response" - when ever popup is closed, this signal is sent with appropriate response id.".
2807     */
2808
2809    EAPI Evas_Object *elm_popup_add(Evas_Object *parent);
2810    EAPI void         elm_popup_desc_set(Evas_Object *obj, const char *text);
2811    EAPI const char  *elm_popup_desc_get(Evas_Object *obj);
2812    EAPI void         elm_popup_title_label_set(Evas_Object *obj, const char *text);
2813    EAPI const char  *elm_popup_title_label_get(Evas_Object *obj);
2814    EAPI void         elm_popup_title_icon_set(Evas_Object *obj, Evas_Object *icon);
2815    EAPI Evas_Object *elm_popup_title_icon_get(Evas_Object *obj);
2816    EAPI void         elm_popup_content_set(Evas_Object *obj, Evas_Object *content);
2817    EAPI Evas_Object *elm_popup_content_get(Evas_Object *obj);
2818    EAPI void         elm_popup_buttons_add(Evas_Object *obj,int no_of_buttons, const char *first_button_text,  ...);
2819    EAPI Evas_Object *elm_popup_with_buttons_add(Evas_Object *parent, const char *title, const char *desc_text,int no_of_buttons, const char *first_button_text, ... );
2820    EAPI void         elm_popup_timeout_set(Evas_Object *obj, double timeout);
2821    EAPI void         elm_popup_mode_set(Evas_Object *obj, Elm_Popup_Mode mode);
2822    EAPI void         elm_popup_response(Evas_Object *obj, int  response_id);
2823    EAPI void         elm_popup_orient_set(Evas_Object *obj, Elm_Popup_Orient orient);
2824    EAPI int          elm_popup_run(Evas_Object *obj);
2825
2826    /* NavigationBar */
2827    typedef enum
2828      {
2829         ELM_NAVIGATIONBAR_FUNCTION_BUTTON1,
2830         ELM_NAVIGATIONBAR_FUNCTION_BUTTON2,
2831         ELM_NAVIGATIONBAR_FUNCTION_BUTTON3,
2832         ELM_NAVIGATIONBAR_BACK_BUTTON
2833      } Elm_Navi_Button_Type;
2834
2835    EAPI Evas_Object *elm_navigationbar_add(Evas_Object *parent);
2836    EAPI void         elm_navigationbar_push(Evas_Object *obj, const char *title, Evas_Object *fn_btn1, Evas_Object *fn_btn2, Evas_Object *fn_btn3, Evas_Object *content);
2837    EAPI void         elm_navigationbar_pop(Evas_Object *obj);
2838    EAPI void         elm_navigationbar_to_content_pop(Evas_Object *obj, Evas_Object *content);
2839    EAPI void         elm_navigationbar_title_label_set(Evas_Object *obj, Evas_Object *content, const char *title);
2840    EAPI const char  *elm_navigationbar_title_label_get(Evas_Object *obj, Evas_Object *content);
2841    EAPI void         elm_navigationbar_title_object_add(Evas_Object *obj, Evas_Object *content, Evas_Object *title_obj);
2842    EAPI Eina_List   *elm_navigationbar_title_object_list_get(Evas_Object *obj, Evas_Object *content);
2843    EAPI Evas_Object *elm_navigationbar_content_top_get(Evas_Object *obj);
2844    EAPI Evas_Object *elm_navigationbar_content_bottom_get(Evas_Object *obj);
2845    EAPI void         elm_navigationbar_hidden_set(Evas_Object *obj, Eina_Bool hidden);
2846    EAPI void         elm_navigationbar_title_button_set(Evas_Object *obj, Evas_Object *content, Evas_Object *button, Elm_Navi_Button_Type button_type);
2847    EAPI Evas_Object *elm_navigationbar_title_button_get(Evas_Object *obj, Evas_Object *content, Elm_Navi_Button_Type button_type);
2848    EAPI const char  *elm_navigationbar_subtitle_label_get(Evas_Object *obj, Evas_Object *content);
2849    EAPI void         elm_navigationbar_subtitle_label_set(Evas_Object *obj, Evas_Object *content, const char *subtitle);
2850    EAPI void         elm_navigationbar_title_object_list_unset(Evas_Object *obj, Evas_Object *content, Eina_List **list);
2851    EAPI void         elm_navigationbar_animation_disabled_set(Evas_Object *obj, Eina_Bool disable);
2852    EAPI void         elm_navigationbar_title_object_visible_set(Evas_Object *obj, Evas_Object *content, Eina_Bool visible);
2853    Eina_Bool         elm_navigationbar_title_object_visible_get(Evas_Object *obj, Evas_Object *content);
2854    EAPI void         elm_navigationbar_title_icon_set(Evas_Object *obj, Evas_Object *content, Evas_Object *icon);
2855    EAPI Evas_Object *elm_navigationbar_title_icon_get(Evas_Object *obj, Evas_Object *content);
2856
2857      /* NavigationBar */
2858    typedef enum
2859      {
2860         ELM_NAVIGATIONBAR_EX_BACK_BUTTON,
2861         ELM_NAVIGATIONBAR_EX_FUNCTION_BUTTON1,
2862         ELM_NAVIGATIONBAR_EX_FUNCTION_BUTTON2,
2863         ELM_NAVIGATIONBAR_EX_FUNCTION_BUTTON3,
2864         ELM_NAVIGATIONBAR_EX_MAX
2865      } Elm_Navi_ex_Button_Type;
2866    typedef struct _Elm_Navigationbar_ex_Item Elm_Navigationbar_ex_Item;
2867
2868    EAPI Evas_Object *elm_navigationbar_ex_add(Evas_Object *parent);
2869    EAPI Elm_Navigationbar_ex_Item *elm_navigationbar_ex_item_push(Evas_Object *obj, Evas_Object *content, const char *item_style);
2870    EAPI void         elm_navigationbar_ex_item_pop(Evas_Object *obj);
2871    EAPI void         elm_navigationbar_ex_item_promote(Elm_Navigationbar_ex_Item* item);
2872    EAPI void         elm_navigationbar_ex_to_item_pop(Elm_Navigationbar_ex_Item* item);
2873    EAPI void         elm_navigationbar_ex_item_title_label_set(Elm_Navigationbar_ex_Item *item, const char *title);
2874    EAPI const char  *elm_navigationbar_ex_item_title_label_get(Elm_Navigationbar_ex_Item* item);
2875    EAPI Elm_Navigationbar_ex_Item *elm_navigationbar_ex_item_top_get(const Evas_Object *obj);
2876    EAPI Elm_Navigationbar_ex_Item *elm_navigationbar_ex_item_bottom_get(const Evas_Object *obj);
2877    EAPI void         elm_navigationbar_ex_item_title_button_set(Elm_Navigationbar_ex_Item* item, char *btn_label, Evas_Object *icon, int button_type, Evas_Smart_Cb func, const void *data);
2878    EAPI Evas_Object *elm_navigationbar_ex_item_title_button_get(Elm_Navigationbar_ex_Item* item, int button_type);
2879    EAPI void         elm_navigationbar_ex_item_title_object_set(Elm_Navigationbar_ex_Item* item, Evas_Object *title_obj);
2880    EAPI Evas_Object *elm_navigationbar_ex_item_title_object_unset(Elm_Navigationbar_ex_Item* item);
2881    EAPI void         elm_navigationbar_ex_item_title_hidden_set(Elm_Navigationbar_ex_Item* item, Eina_Bool hidden);
2882    EAPI Evas_Object *elm_navigationbar_ex_item_title_object_get(Elm_Navigationbar_ex_Item* item);
2883    EAPI const char  *elm_navigationbar_ex_item_subtitle_label_get(Elm_Navigationbar_ex_Item* item);
2884    EAPI void         elm_navigationbar_ex_item_subtitle_label_set( Elm_Navigationbar_ex_Item* item, const char *subtitle);
2885    EAPI void         elm_navigationbar_ex_item_style_set(Elm_Navigationbar_ex_Item* item, const char* item_style);
2886    EAPI const char  *elm_navigationbar_ex_item_style_get(Elm_Navigationbar_ex_Item* item);
2887    EAPI Evas_Object *elm_navigationbar_ex_item_content_unset(Elm_Navigationbar_ex_Item* item);
2888    EAPI Evas_Object *elm_navigationbar_ex_item_content_get(Elm_Navigationbar_ex_Item* item);
2889    EAPI void         elm_navigationbar_ex_delete_on_pop_set(Evas_Object *obj, Eina_Bool del_on_pop);
2890    EAPI Evas_Object *elm_navigationbar_ex_item_icon_get(Elm_Navigationbar_ex_Item* item);
2891    EAPI void         elm_navigationbar_ex_item_icon_set(Elm_Navigationbar_ex_Item* item, Evas_Object *icon);
2892    EAPI Evas_Object *elm_navigationbar_ex_item_title_button_unset(Elm_Navigationbar_ex_Item* item, int button_type);
2893    EAPI void         elm_navigationbar_ex_animation_disable_set(Evas_Object *obj, Eina_Bool disable);
2894    EAPI void         elm_navigationbar_ex_title_object_visible_set(Elm_Navigationbar_ex_Item* item, Eina_Bool visible);
2895    Eina_Bool         elm_navigationbar_ex_title_object_visible_get(Elm_Navigationbar_ex_Item* item);
2896
2897
2898    /* Control Bar */
2899    #define CONTROLBAR_SYSTEM_ICON_ALBUMS "controlbar_albums"
2900    #define CONTROLBAR_SYSTEM_ICON_ARTISTS "controlbar_artists"
2901    #define CONTROLBAR_SYSTEM_ICON_SONGS "controlbar_songs"
2902    #define CONTROLBAR_SYSTEM_ICON_PLAYLIST "controlbar_playlist"
2903    #define CONTROLBAR_SYSTEM_ICON_MORE "controlbar_more"
2904    #define CONTROLBAR_SYSTEM_ICON_CONTACTS "controlbar_contacts"
2905    #define CONTROLBAR_SYSTEM_ICON_DIALER "controlbar_dialer"
2906    #define CONTROLBAR_SYSTEM_ICON_FAVORITES "controlbar_favorites"
2907    #define CONTROLBAR_SYSTEM_ICON_LOGS "controlbar_logs"
2908
2909    typedef enum _Elm_Controlbar_Mode_Type
2910      {
2911         ELM_CONTROLBAR_MODE_DEFAULT = 0,
2912         ELM_CONTROLBAR_MODE_TRANSLUCENCE,
2913         ELM_CONTROLBAR_MODE_TRANSPARENCY,
2914         ELM_CONTROLBAR_MODE_LARGE,
2915         ELM_CONTROLBAR_MODE_SMALL,
2916         ELM_CONTROLBAR_MODE_LEFT,
2917         ELM_CONTROLBAR_MODE_RIGHT
2918      } Elm_Controlbar_Mode_Type;
2919
2920    typedef struct _Elm_Controlbar_Item Elm_Controlbar_Item;
2921
2922    EAPI Evas_Object *elm_controlbar_add(Evas_Object *parent);
2923    EAPI Elm_Controlbar_Item *elm_controlbar_tab_item_append(Evas_Object *obj, const char *icon_path, const char *label, Evas_Object *view);
2924    EAPI Elm_Controlbar_Item *elm_controlbar_tab_item_prepend(Evas_Object *obj, const char *icon_path, const char *label, Evas_Object *view);
2925    EAPI Elm_Controlbar_Item *elm_controlbar_tab_item_insert_before(Evas_Object *obj, Elm_Controlbar_Item *before, const char *icon_path, const char *label, Evas_Object *view);
2926    EAPI Elm_Controlbar_Item *elm_controlbar_tab_item_insert_after(Evas_Object *obj, Elm_Controlbar_Item *after, const char *icon_path, const char *label, Evas_Object *view);
2927    EAPI Elm_Controlbar_Item *elm_controlbar_tool_item_append(Evas_Object *obj, const char *icon_path, const char *label, void (*func) (void *data, Evas_Object *obj, void *event_info), void *data);
2928    EAPI Elm_Controlbar_Item *elm_controlbar_tool_item_prepend(Evas_Object *obj, const char *icon_path, const char *label, void (*func) (void *data, Evas_Object *obj, void *event_info), void *data);
2929    EAPI Elm_Controlbar_Item *elm_controlbar_tool_item_insert_before(Evas_Object *obj, Elm_Controlbar_Item *before, const char *icon_path, const char *label, void (*func) (void *data, Evas_Object *obj, void *event_info), void *data);
2930    EAPI Elm_Controlbar_Item *elm_controlbar_tool_item_insert_after(Evas_Object *obj, Elm_Controlbar_Item *after, const char *icon_path, const char *label, void (*func) (void *data, Evas_Object *obj, void *event_info), void *data);
2931    EAPI Elm_Controlbar_Item *elm_controlbar_object_item_append(Evas_Object *obj, Evas_Object *obj_item, const int sel);
2932    EAPI Elm_Controlbar_Item *elm_controlbar_object_item_prepend(Evas_Object *obj, Evas_Object *obj_item, const int sel);
2933    EAPI Elm_Controlbar_Item *elm_controlbar_object_item_insert_before(Evas_Object *obj, Elm_Controlbar_Item *before, Evas_Object *obj_item, const int sel);
2934    EAPI Elm_Controlbar_Item *elm_controlbar_object_item_insert_after(Evas_Object *obj, Elm_Controlbar_Item *after, Evas_Object *obj_item, const int sel);
2935    EAPI Evas_Object *elm_controlbar_object_item_object_get(Elm_Controlbar_Item *it);
2936    EAPI void         elm_controlbar_item_del(Elm_Controlbar_Item *it);
2937    EAPI void         elm_controlbar_item_select(Elm_Controlbar_Item *it);
2938    EAPI void         elm_controlbar_item_visible_set(Elm_Controlbar_Item *it, Eina_Bool bar);
2939    EAPI Eina_Bool    elm_controlbar_item_visible_get(Elm_Controlbar_Item * it);
2940    EAPI void         elm_controlbar_item_disabled_set(Elm_Controlbar_Item * it, Eina_Bool disabled);
2941    EAPI Eina_Bool    elm_controlbar_item_disabled_get(Elm_Controlbar_Item * it);
2942    EAPI void         elm_controlbar_item_icon_set(Elm_Controlbar_Item *it, const char *icon_path);
2943    EAPI Evas_Object *elm_controlbar_item_icon_get(Elm_Controlbar_Item *it);
2944    EAPI void         elm_controlbar_item_label_set(Elm_Controlbar_Item *it, const char *label);
2945    EAPI const char  *elm_controlbar_item_label_get(Elm_Controlbar_Item *it);
2946    EAPI Elm_Controlbar_Item *elm_controlbar_selected_item_get(Evas_Object *obj);
2947    EAPI Elm_Controlbar_Item *elm_controlbar_first_item_get(Evas_Object *obj);
2948    EAPI Elm_Controlbar_Item *elm_controlbar_last_item_get(Evas_Object *obj);
2949    EAPI Eina_List   *elm_controlbar_items_get(Evas_Object *obj);
2950    EAPI Elm_Controlbar_Item *elm_controlbar_item_prev(Elm_Controlbar_Item *it);
2951    EAPI Elm_Controlbar_Item *elm_controlbar_item_next(Elm_Controlbar_Item *it);
2952    EAPI void         elm_controlbar_item_view_set(Elm_Controlbar_Item *it, Evas_Object * view);
2953    EAPI Evas_Object *elm_controlbar_item_view_get(Elm_Controlbar_Item *it);
2954    EAPI Evas_Object *elm_controlbar_item_view_unset(Elm_Controlbar_Item *it);
2955    EAPI void         elm_controlbar_mode_set(Evas_Object *obj, int mode);
2956    EAPI void         elm_controlbar_alpha_set(Evas_Object *obj, int alpha);
2957    EAPI void         elm_controlbar_item_auto_align_set(Evas_Object *obj, Eina_Bool auto_align);
2958    EAPI void         elm_controlbar_vertical_set(Evas_Object *obj, Eina_Bool vertical);
2959
2960    /* SearchBar */
2961    EAPI Evas_Object *elm_searchbar_add(Evas_Object *parent);
2962    EAPI void         elm_searchbar_text_set(Evas_Object *obj, const char *entry);
2963    EAPI const char  *elm_searchbar_text_get(Evas_Object *obj);
2964    EAPI Evas_Object *elm_searchbar_entry_get(Evas_Object *obj);
2965    EAPI void         elm_searchbar_cancel_button_animation_set(Evas_Object *obj, Eina_Bool cancel_btn_ani_flag);
2966    EAPI void         elm_searchbar_cancel_button_set(Evas_Object *obj, Eina_Bool visible);
2967    EAPI void         elm_searchbar_clear(Evas_Object *obj);
2968    EAPI void         elm_searchbar_boundary_rect_set(Evas_Object *obj, Eina_Bool boundary);
2969
2970    /* colorselector */
2971    EAPI Evas_Object *elm_colorselector_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
2972    EAPI void         elm_colorselector_color_set(Evas_Object *obj, int r, int g , int b, int a) EINA_ARG_NONNULL(1);
2973    EAPI void         elm_colorselector_color_get(const Evas_Object *obj, int *r, int *g , int *b, int *a) EINA_ARG_NONNULL(1);
2974    /* smart callbacks called:
2975     * "changed" - when the color value changes
2976     */
2977
2978    /* Contextual Popup */
2979    typedef struct _Elm_Ctxpopup_Item Elm_Ctxpopup_Item;
2980
2981    typedef enum _Elm_Ctxpopup_Direction
2982      {
2983         ELM_CTXPOPUP_DIRECTION_DOWN,
2984         ELM_CTXPOPUP_DIRECTION_RIGHT,
2985         ELM_CTXPOPUP_DIRECTION_LEFT,
2986         ELM_CTXPOPUP_DIRECTION_UP,
2987      } Elm_Ctxpopup_Direction;
2988
2989    EAPI Evas_Object  *elm_ctxpopup_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
2990    EAPI Evas_Object  *elm_ctxpopup_item_icon_get(const Elm_Ctxpopup_Item *item) EINA_ARG_NONNULL(1);
2991    EAPI void          elm_ctxpopup_item_icon_set(Elm_Ctxpopup_Item *item, Evas_Object *icon) EINA_ARG_NONNULL(1);
2992    EAPI const char   *elm_ctxpopup_item_label_get(const Elm_Ctxpopup_Item *item) EINA_ARG_NONNULL(1);
2993    EAPI void          elm_ctxpopup_item_label_set(Elm_Ctxpopup_Item *item, const char *label) EINA_ARG_NONNULL(1);
2994    EAPI void          elm_ctxpopup_hover_parent_set(Evas_Object *obj, Evas_Object *parent) EINA_ARG_NONNULL(1, 2);
2995    EAPI Evas_Object  *elm_ctxpopup_hover_parent_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2996    EAPI void          elm_ctxpopup_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
2997    EAPI void          elm_ctxpopup_horizontal_set(Evas_Object *obj, Eina_Bool horizontal) EINA_ARG_NONNULL(1);
2998    EAPI Eina_Bool     elm_ctxpopup_horizontal_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2999    Elm_Ctxpopup_Item *elm_ctxpopup_item_append(Evas_Object *obj, const char *label, Evas_Object *icon, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
3000    EAPI void          elm_ctxpopup_item_del(Elm_Ctxpopup_Item *item) EINA_ARG_NONNULL(1);
3001    EAPI void          elm_ctxpopup_item_disabled_set(Elm_Ctxpopup_Item *item, Eina_Bool disabled) EINA_ARG_NONNULL(1);
3002    EAPI Eina_Bool     elm_ctxpopup_item_disabled_get(const Elm_Ctxpopup_Item *item) EINA_ARG_NONNULL(1);
3003    EAPI void          elm_ctxpopup_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1, 2);
3004    EAPI Evas_Object  *elm_ctxpopup_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
3005    EAPI void          elm_ctxpopup_direction_priority_set(Evas_Object *obj, Elm_Ctxpopup_Direction first, Elm_Ctxpopup_Direction second, Elm_Ctxpopup_Direction third, Elm_Ctxpopup_Direction fourth) EINA_ARG_NONNULL(1);
3006    EAPI void          elm_ctxpopup_direction_priority_get(Evas_Object *obj, Elm_Ctxpopup_Direction *first, Elm_Ctxpopup_Direction *second, Elm_Ctxpopup_Direction *third, Elm_Ctxpopup_Direction *fourth) EINA_ARG_NONNULL(1);
3007    /* smart callbacks called:
3008     * "dismissed" - the ctxpopup was dismissed
3009     */
3010
3011    /* tansit */
3012    typedef enum
3013      {
3014         ELM_TRANSIT_TWEEN_MODE_LINEAR,
3015         ELM_TRANSIT_TWEEN_MODE_SINUSOIDAL,
3016         ELM_TRANSIT_TWEEN_MODE_DECELERATE,
3017         ELM_TRANSIT_TWEEN_MODE_ACCELERATE
3018      } Elm_Transit_Tween_Mode;
3019    typedef enum
3020      {
3021         ELM_TRANSIT_EFFECT_FLIP_AXIS_X,
3022         ELM_TRANSIT_EFFECT_FLIP_AXIS_Y
3023      } Elm_Transit_Effect_Flip_Axis;
3024    typedef enum
3025      {
3026         ELM_TRANSIT_EFFECT_WIPE_DIR_LEFT,
3027         ELM_TRANSIT_EFFECT_WIPE_DIR_RIGHT,
3028         ELM_TRANSIT_EFFECT_WIPE_DIR_UP,
3029         ELM_TRANSIT_EFFECT_WIPE_DIR_DOWN
3030      } Elm_Transit_Effect_Wipe_Dir;
3031    typedef enum
3032      {
3033         ELM_TRANSIT_EFFECT_WIPE_TYPE_HIDE,
3034         ELM_TRANSIT_EFFECT_WIPE_TYPE_SHOW
3035      } Elm_Transit_Effect_Wipe_Type;
3036
3037    typedef struct _Elm_Transit Elm_Transit;
3038    typedef void Elm_Transit_Effect;
3039    typedef void (*Elm_Transit_Effect_Transition_Cb) (Elm_Transit_Effect *effect, Elm_Transit *transit, double progress);
3040    typedef void (*Elm_Transit_Effect_End_Cb) (Elm_Transit_Effect *effect, Elm_Transit *transit);
3041
3042    EAPI Elm_Transit                *elm_transit_add(void);
3043    EAPI void                        elm_transit_del(Elm_Transit *transit) EINA_ARG_NONNULL(1);
3044    EAPI void                        elm_transit_effect_add(Elm_Transit *transit, Elm_Transit_Effect_Transition_Cb transition_cb, Elm_Transit_Effect *effect, Elm_Transit_Effect_End_Cb end_cb) EINA_ARG_NONNULL(1, 2);
3045    EAPI void                        elm_transit_effect_del(Elm_Transit *transit, Elm_Transit_Effect_Transition_Cb transition_cb, Elm_Transit_Effect *effect) EINA_ARG_NONNULL(1, 2);
3046    EAPI void                        elm_transit_object_add(Elm_Transit *transit, Evas_Object *obj) EINA_ARG_NONNULL(1, 2);
3047    EAPI void                        elm_transit_object_remove(Elm_Transit *transit, Evas_Object *obj) EINA_ARG_NONNULL(1, 2);
3048    EAPI const Eina_List            *elm_transit_objects_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
3049    EAPI void                        elm_transit_objects_final_state_keep_set(Elm_Transit *transit, Eina_Bool state_keep) EINA_ARG_NONNULL(1);
3050    EAPI Eina_Bool                   elm_transit_objects_final_state_keep_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
3051    EINA_DEPRECATED EAPI void                elm_transit_event_block_set(Elm_Transit *transit, Eina_Bool disabled) EINA_ARG_NONNULL(1);
3052    EINA_DEPRECATED EAPI Eina_Bool           elm_transit_event_block_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
3053    EAPI void                        elm_transit_event_enabled_set(Elm_Transit *transit, Eina_Bool enabled) EINA_ARG_NONNULL(1);
3054    EAPI Eina_Bool                   elm_transit_event_enabled_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
3055    EAPI void                        elm_transit_del_cb_set(Elm_Transit *transit, void (*cb)(void *data, Elm_Transit* transit), void *data) EINA_ARG_NONNULL(1);
3056    EAPI void                        elm_transit_auto_reverse_set(Elm_Transit *transit, Eina_Bool reverse) EINA_ARG_NONNULL(1);
3057    EAPI Eina_Bool                   elm_transit_auto_reverse_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
3058    EAPI void                        elm_transit_repeat_times_set(Elm_Transit *transit, int repeat) EINA_ARG_NONNULL(1);
3059    EAPI int                         elm_transit_repeat_times_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
3060    EAPI void                        elm_transit_tween_mode_set(Elm_Transit *transit, Elm_Transit_Tween_Mode tween_mode) EINA_ARG_NONNULL(1);
3061    EAPI Elm_Transit_Tween_Mode      elm_transit_tween_mode_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
3062    EAPI void                        elm_transit_duration_set(Elm_Transit *transit, double duration) EINA_ARG_NONNULL(1);
3063    EAPI double                      elm_transit_duration_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
3064    EAPI void                        elm_transit_go(Elm_Transit *transit) EINA_ARG_NONNULL(1);
3065    EAPI void                        elm_transit_paused_set(Elm_Transit *transit, Eina_Bool paused) EINA_ARG_NONNULL(1);
3066    EAPI Eina_Bool                   elm_transit_paused_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
3067    EAPI double                      elm_transit_progress_value_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
3068    EAPI void                        elm_transit_chain_transit_add(Elm_Transit *transit, Elm_Transit *chain_transit) EINA_ARG_NONNULL(1, 2);
3069    EAPI Eina_List                  *elm_transit_chain_transits_get(const Elm_Transit *transit);
3070
3071    EAPI Elm_Transit_Effect *elm_transit_effect_resizing_add(Elm_Transit* transit, Evas_Coord from_w, Evas_Coord from_h, Evas_Coord to_w, Evas_Coord to_h);
3072    EAPI Elm_Transit_Effect *elm_transit_effect_translation_add(Elm_Transit* transit, Evas_Coord from_dx, Evas_Coord dy, Evas_Coord to_dx, Evas_Coord to_dy);
3073    EAPI Elm_Transit_Effect *elm_transit_effect_zoom_add(Elm_Transit *transit, float from_rate, float to_rate);
3074    EAPI Elm_Transit_Effect *elm_transit_effect_flip_add(Elm_Transit *transit, Elm_Transit_Effect_Flip_Axis axis, Eina_Bool cw);
3075    EAPI Elm_Transit_Effect *elm_transit_effect_resizable_flip_add(Elm_Transit *transit, Elm_Transit_Effect_Flip_Axis axis, Eina_Bool cw);
3076    EAPI Elm_Transit_Effect *elm_transit_effect_wipe_add(Elm_Transit *transit, Elm_Transit_Effect_Wipe_Type type, Elm_Transit_Effect_Wipe_Dir dir);
3077    EAPI Elm_Transit_Effect *elm_transit_effect_color_add(Elm_Transit *transit, unsigned int from_r, unsigned int from_g, unsigned int from_b, unsigned int from_a, unsigned int to_r, unsigned int to_g, unsigned int to_b, unsigned int to_a);
3078    EAPI Elm_Transit_Effect *elm_transit_effect_fade_add(Elm_Transit *transit);
3079    EAPI Elm_Transit_Effect *elm_transit_effect_blend_add(Elm_Transit *transit);
3080    EAPI Elm_Transit_Effect *elm_transit_effect_rotation_add(Elm_Transit *transit, float from_degree, float to_degree);
3081    EAPI Elm_Transit_Effect *elm_transit_effect_image_animation_add(Elm_Transit *transit, Eina_List *images);
3082
3083    /* colorpalette */
3084    typedef struct _Colorpalette_Color Elm_Colorpalette_Color;
3085
3086    struct _Colorpalette_Color
3087      {
3088         unsigned int r, g, b;
3089      };
3090
3091    EAPI Evas_Object *elm_colorpalette_add(Evas_Object *parent);
3092    EAPI void         elm_colorpalette_color_set(Evas_Object *obj, int color_num, Elm_Colorpalette_Color *color);
3093    EAPI void         elm_colorpalette_row_column_set(Evas_Object *obj, int row, int col);
3094    /* smart callbacks called:
3095     * "clicked" - when image clicked
3096     */
3097
3098    /* editfield */
3099    EAPI Evas_Object *elm_editfield_add(Evas_Object *parent);
3100    EAPI void         elm_editfield_label_set(Evas_Object *obj, const char *label);
3101    EAPI const char  *elm_editfield_label_get(Evas_Object *obj);
3102    EAPI void         elm_editfield_guide_text_set(Evas_Object *obj, const char *text);
3103    EAPI const char  *elm_editfield_guide_text_get(Evas_Object *obj);
3104    EAPI Evas_Object *elm_editfield_entry_get(Evas_Object *obj);
3105 //   EAPI Evas_Object *elm_editfield_clear_button_show(Evas_Object *obj, Eina_Bool show);
3106    EAPI void         elm_editfield_right_icon_set(Evas_Object *obj, Evas_Object *icon);
3107    EAPI Evas_Object *elm_editfield_right_icon_get(Evas_Object *obj);
3108    EAPI void         elm_editfield_left_icon_set(Evas_Object *obj, Evas_Object *icon);
3109    EAPI Evas_Object *elm_editfield_left_icon_get(Evas_Object *obj);
3110    EAPI void         elm_editfield_entry_single_line_set(Evas_Object *obj, Eina_Bool single_line);
3111    EAPI Eina_Bool    elm_editfield_entry_single_line_get(Evas_Object *obj);
3112    EAPI void         elm_editfield_eraser_set(Evas_Object *obj, Eina_Bool visible);
3113    EAPI Eina_Bool    elm_editfield_eraser_get(Evas_Object *obj);
3114    /* smart callbacks called:
3115     * "clicked" - when an editfield is clicked
3116     * "unfocused" - when an editfield is unfocused
3117     */
3118
3119
3120    /* Sliding Drawer */
3121    typedef enum _Elm_SlidingDrawer_Pos
3122      {
3123         ELM_SLIDINGDRAWER_BOTTOM,
3124         ELM_SLIDINGDRAWER_LEFT,
3125         ELM_SLIDINGDRAWER_RIGHT,
3126         ELM_SLIDINGDRAWER_TOP
3127      } Elm_SlidingDrawer_Pos;
3128
3129    typedef struct _Elm_SlidingDrawer_Drag_Value
3130      {
3131         double x, y;
3132      } Elm_SlidingDrawer_Drag_Value;
3133
3134    EAPI Evas_Object *elm_slidingdrawer_add(Evas_Object *parent);
3135    EAPI void         elm_slidingdrawer_content_set (Evas_Object *obj, Evas_Object *content);
3136    EAPI Evas_Object *elm_slidingdrawer_content_unset(Evas_Object *obj);
3137    EAPI void         elm_slidingdrawer_pos_set(Evas_Object *obj, Elm_SlidingDrawer_Pos pos);
3138    EAPI void         elm_slidingdrawer_max_drag_value_set(Evas_Object *obj, double dw,  double dh);
3139    EAPI void         elm_slidingdrawer_drag_value_set(Evas_Object *obj, double dx, double dy);
3140
3141    /* multibuttonentry */
3142    typedef struct _Multibuttonentry_Item Elm_Multibuttonentry_Item;
3143    EAPI Evas_Object               *elm_multibuttonentry_add(Evas_Object *parent);
3144    EAPI const char                *elm_multibuttonentry_label_get(Evas_Object *obj);
3145    EAPI void                       elm_multibuttonentry_label_set(Evas_Object *obj, const char *label);
3146    EAPI Evas_Object               *elm_multibuttonentry_entry_get(Evas_Object *obj);
3147    EAPI const char *               elm_multibuttonentry_guide_text_get(Evas_Object *obj);
3148    EAPI void                       elm_multibuttonentry_guide_text_set(Evas_Object *obj, const char *guidetext);
3149    EAPI int                        elm_multibuttonentry_contracted_state_get(Evas_Object *obj);
3150    EAPI void                       elm_multibuttonentry_contracted_state_set(Evas_Object *obj, int contracted);
3151    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_add_start(Evas_Object *obj, const char *label, void *data);
3152    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_add_end(Evas_Object *obj, const char *label, void *data);
3153    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_add_before(Evas_Object *obj, const char *label, Elm_Multibuttonentry_Item *before, void *data);
3154    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_add_after(Evas_Object *obj, const char *label, Elm_Multibuttonentry_Item *after, void *data);
3155    EAPI const Eina_List           *elm_multibuttonentry_items_get(Evas_Object *obj);
3156    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_first_get(Evas_Object *obj);
3157    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_last_get(Evas_Object *obj);
3158    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_selected_get(Evas_Object *obj);
3159    EAPI void                       elm_multibuttonentry_item_selected_set(Elm_Multibuttonentry_Item *item);
3160    EAPI void                       elm_multibuttonentry_item_unselect_all(Evas_Object *obj);
3161    EAPI void                       elm_multibuttonentry_item_del(Elm_Multibuttonentry_Item *item);
3162    EAPI void                       elm_multibuttonentry_items_del(Evas_Object *obj);
3163    EAPI const char                *elm_multibuttonentry_item_label_get(Elm_Multibuttonentry_Item *item);
3164    EAPI void                       elm_multibuttonentry_item_label_set(Elm_Multibuttonentry_Item *item, const char *str);
3165    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_prev(Elm_Multibuttonentry_Item *item);
3166    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_next(Elm_Multibuttonentry_Item *item);
3167    EAPI void                      *elm_multibuttonentry_item_data_get(Elm_Multibuttonentry_Item *item);
3168    EAPI void                       elm_multibuttonentry_item_data_set(Elm_Multibuttonentry_Item *item, void *data);
3169    /* smart callback called:
3170     * "selected" - This signal is emitted when the selected item of multibuttonentry is changed.
3171     * "added" - This signal is emitted when a new multibuttonentry item is added.
3172     * "deleted" - This signal is emitted when a multibuttonentry item is deleted.
3173     * "expanded" - This signal is emitted when a multibuttonentry is expanded.
3174     * "contracted" - This signal is emitted when a multibuttonentry is contracted.
3175     * "contracted,state,changed" - This signal is emitted when the contracted state of multibuttonentry is changed.
3176     * "item,selected" - This signal is emitted when the selected item of multibuttonentry is changed.
3177     * "item,added" - This signal is emitted when a new multibuttonentry item is added.
3178     * "item,deleted" - This signal is emitted when a multibuttonentry item is deleted.
3179     * "item,clicked" - This signal is emitted when a multibuttonentry item is clicked.
3180     * "clicked" - This signal is emitted when a multibuttonentry is clicked.
3181     * "unfocused" - This signal is emitted when a multibuttonentry is unfocused.
3182     */
3183    /* available styles:
3184     * default
3185     */
3186
3187    /* stackedicon */
3188    typedef struct _Stackedicon_Item Elm_Stackedicon_Item;
3189    EAPI Evas_Object          *elm_stackedicon_add(Evas_Object *parent);
3190    EAPI Elm_Stackedicon_Item *elm_stackedicon_item_append(Evas_Object *obj, const char *path);
3191    EAPI Elm_Stackedicon_Item *elm_stackedicon_item_prepend(Evas_Object *obj, const char *path);
3192    EAPI void                  elm_stackedicon_item_del(Elm_Stackedicon_Item *it);
3193    EAPI Eina_List            *elm_stackedicon_item_list_get(Evas_Object *obj);
3194    /* smart callback called:
3195     * "expanded" - This signal is emitted when a stackedicon is expanded.
3196     * "clicked" - This signal is emitted when a stackedicon is clicked.
3197     */
3198    /* available styles:
3199     * default
3200     */
3201
3202    /* dialoguegroup */
3203    typedef struct _Dialogue_Item Dialogue_Item;
3204
3205    typedef enum _Elm_Dialoguegourp_Item_Style
3206      {
3207         ELM_DIALOGUEGROUP_ITEM_STYLE_DEFAULT = 0,
3208         ELM_DIALOGUEGROUP_ITEM_STYLE_EDITFIELD = (1 << 0),
3209         ELM_DIALOGUEGROUP_ITEM_STYLE_EDITFIELD_WITH_TITLE = (1 << 1),
3210         ELM_DIALOGUEGROUP_ITEM_STYLE_EDIT_TITLE = (1 << 2),
3211         ELM_DIALOGUEGROUP_ITEM_STYLE_HIDDEN = (1 << 3),
3212         ELM_DIALOGUEGROUP_ITEM_STYLE_DATAVIEW = (1 << 4),
3213         ELM_DIALOGUEGROUP_ITEM_STYLE_NO_BG = (1 << 5),
3214         ELM_DIALOGUEGROUP_ITEM_STYLE_SUB = (1 << 6),
3215         ELM_DIALOGUEGROUP_ITEM_STYLE_EDIT = (1 << 7),
3216         ELM_DIALOGUEGROUP_ITEM_STYLE_EDIT_MERGE = (1 << 8),
3217         ELM_DIALOGUEGROUP_ITEM_STYLE_LAST = (1 << 9)
3218      } Elm_Dialoguegroup_Item_Style;
3219
3220    EINA_DEPRECATED EAPI Evas_Object   *elm_dialoguegroup_add(Evas_Object *parent);
3221    EINA_DEPRECATED EAPI Dialogue_Item *elm_dialoguegroup_append(Evas_Object *obj, Evas_Object *subobj, Elm_Dialoguegroup_Item_Style style);
3222    EINA_DEPRECATED EAPI Dialogue_Item *elm_dialoguegroup_prepend(Evas_Object *obj, Evas_Object *subobj, Elm_Dialoguegroup_Item_Style style);
3223    EINA_DEPRECATED EAPI Dialogue_Item *elm_dialoguegroup_insert_after(Evas_Object *obj, Evas_Object *subobj, Dialogue_Item *after, Elm_Dialoguegroup_Item_Style style);
3224    EINA_DEPRECATED EAPI Dialogue_Item *elm_dialoguegroup_insert_before(Evas_Object *obj, Evas_Object *subobj, Dialogue_Item *before, Elm_Dialoguegroup_Item_Style style);
3225    EINA_DEPRECATED EAPI void           elm_dialoguegroup_remove(Dialogue_Item *item);
3226    EINA_DEPRECATED EAPI void           elm_dialoguegroup_remove_all(Evas_Object *obj);
3227    EINA_DEPRECATED EAPI void           elm_dialoguegroup_title_set(Evas_Object *obj, const char *title);
3228    EINA_DEPRECATED EAPI const char    *elm_dialoguegroup_title_get(Evas_Object *obj);
3229    EINA_DEPRECATED EAPI void           elm_dialoguegroup_press_effect_set(Dialogue_Item *item, Eina_Bool press);
3230    EINA_DEPRECATED EAPI Eina_Bool      elm_dialoguegroup_press_effect_get(Dialogue_Item *item);
3231    EINA_DEPRECATED EAPI Evas_Object   *elm_dialoguegroup_item_content_get(Dialogue_Item *item);
3232    EINA_DEPRECATED EAPI void           elm_dialoguegroup_item_style_set(Dialogue_Item *item, Elm_Dialoguegroup_Item_Style style);
3233    EINA_DEPRECATED EAPI Elm_Dialoguegroup_Item_Style    elm_dialoguegroup_item_style_get(Dialogue_Item *item);
3234    EINA_DEPRECATED EAPI void           elm_dialoguegroup_item_disabled_set(Dialogue_Item *item, Eina_Bool disabled);
3235    EINA_DEPRECATED EAPI Eina_Bool      elm_dialoguegroup_item_disabled_get(Dialogue_Item *item);
3236
3237    /* Dayselector */
3238    typedef enum
3239      {
3240         ELM_DAYSELECTOR_SUN,
3241         ELM_DAYSELECTOR_MON,
3242         ELM_DAYSELECTOR_TUE,
3243         ELM_DAYSELECTOR_WED,
3244         ELM_DAYSELECTOR_THU,
3245         ELM_DAYSELECTOR_FRI,
3246         ELM_DAYSELECTOR_SAT
3247      } Elm_DaySelector_Day;
3248
3249    EAPI Evas_Object *elm_dayselector_add(Evas_Object *parent);
3250    EAPI Eina_Bool    elm_dayselector_check_state_get(Evas_Object *obj, Elm_DaySelector_Day day);
3251    EAPI void         elm_dayselector_check_state_set(Evas_Object *obj, Elm_DaySelector_Day day, Eina_Bool checked);
3252
3253    /* NoContents */
3254    EAPI Evas_Object *elm_nocontents_add(Evas_Object *parent);
3255    EAPI void         elm_nocontents_label_set(Evas_Object *obj, const char *label);
3256    EAPI const char  *elm_nocontents_label_get(const Evas_Object *obj);
3257    EAPI void         elm_nocontents_custom_set(const Evas_Object *obj, Evas_Object *custom);
3258    EAPI Evas_Object *elm_nocontents_custom_get(const Evas_Object *obj);
3259
3260    /* TickerNoti */
3261    typedef enum
3262      {
3263         ELM_TICKERNOTI_DEFAULT,
3264         ELM_TICKERNOTI_DETAILVIEW
3265      } Elm_Tickernoti_Mode;
3266
3267    EAPI Evas_Object         *elm_tickernoti_add (Evas_Object *parent);
3268    EAPI void                 elm_tickernoti_icon_set (const Evas_Object *obj, Evas_Object *icon);
3269    EAPI Evas_Object         *elm_tickernoti_icon_get (const Evas_Object *obj);
3270    EAPI void                 elm_tickernoti_label_set (Evas_Object *obj, const char *label);
3271    EAPI const char          *elm_tickernoti_label_get (const Evas_Object *obj);
3272    EAPI void                 elm_tickernoti_detailview_label_set (Evas_Object *obj, const char *label);
3273    EAPI const char          *elm_tickernoti_detailview_label_get (const Evas_Object *obj);
3274    EAPI void                 elm_tickernoti_detailview_button_set (const Evas_Object *obj, Evas_Object *button);
3275    EAPI Evas_Object         *elm_tickernoti_detailview_button_get (const Evas_Object *obj);
3276    EAPI void                 elm_tickernoti_detailview_icon_set (const Evas_Object *obj, Evas_Object *icon);
3277    EAPI Evas_Object         *elm_tickernoti_detailview_icon_get (const Evas_Object *obj);
3278    EAPI Evas_Object         *elm_tickernoti_detailview_get (const Evas_Object *obj);
3279    EAPI int                  elm_tickernoti_rotation_get (const Evas_Object *obj);
3280    EAPI void                 elm_tickernoti_rotation_set (const Evas_Object *obj, int angle);
3281    EAPI void                 elm_tickernoti_mode_set (const Evas_Object *obj, Elm_Tickernoti_Mode mode);
3282    EAPI Elm_Tickernoti_Mode  elm_tickernoti_mode_get (const Evas_Object *obj);
3283
3284    /* Image Slider */
3285    typedef struct _Imageslider_Item Elm_Imageslider_Item;
3286    typedef void (*Elm_Imageslider_Cb)(void *data, Evas_Object *obj, void *event_info);
3287    EAPI Evas_Object           *elm_imageslider_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
3288    EAPI Elm_Imageslider_Item  *elm_imageslider_item_append(Evas_Object *obj, const char *photo_file, Elm_Imageslider_Cb func, void *data) EINA_ARG_NONNULL(1);
3289    EAPI Elm_Imageslider_Item  *elm_imageslider_item_append_relative(Evas_Object *obj, const char *photo_file, Elm_Imageslider_Cb func, unsigned int index, void *data) EINA_ARG_NONNULL(1);
3290    EAPI Elm_Imageslider_Item  *elm_imageslider_item_prepend(Evas_Object *obj, const char *photo_file, Elm_Imageslider_Cb func, void *data) EINA_ARG_NONNULL(1);
3291    EAPI void                   elm_imageslider_item_del(Elm_Imageslider_Item *it) EINA_ARG_NONNULL(1);
3292    EAPI Elm_Imageslider_Item  *elm_imageslider_selected_item_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
3293    EAPI Eina_Bool              elm_imageslider_item_selected_get(Elm_Imageslider_Item *it) EINA_ARG_NONNULL(1);
3294    EAPI void                   elm_imageslider_item_selected_set(Elm_Imageslider_Item *it) EINA_ARG_NONNULL(1);
3295    EAPI const char            *elm_imageslider_item_photo_file_get(Elm_Imageslider_Item *it) EINA_ARG_NONNULL(1);
3296    EAPI Elm_Imageslider_Item  *elm_imageslider_item_prev(Elm_Imageslider_Item *it) EINA_ARG_NONNULL(1);
3297    EAPI Elm_Imageslider_Item  *elm_imageslider_item_next(Elm_Imageslider_Item *it) EINA_ARG_NONNULL(1);
3298    EAPI void                   elm_imageslider_prev(Evas_Object *obj) EINA_ARG_NONNULL(1);
3299    EAPI void                   elm_imageslider_next(Evas_Object *obj) EINA_ARG_NONNULL(1);
3300    EAPI void                   elm_imageslider_item_photo_file_set(Elm_Imageslider_Item *it, const char *photo_file) EINA_ARG_NONNULL(1,2);
3301    EAPI void                   elm_imageslider_item_update(Elm_Imageslider_Item *it) EINA_ARG_NONNULL(1);
3302
3303    /* Store */
3304    typedef struct _Elm_Store                      Elm_Store;
3305    typedef struct _Elm_Store_DBsystem             Elm_Store_DBsystem;
3306    typedef struct _Elm_Store_Filesystem           Elm_Store_Filesystem;
3307    typedef struct _Elm_Store_Item                 Elm_Store_Item;
3308    typedef struct _Elm_Store_Item_DBsystem        Elm_Store_Item_DBsystem;
3309    typedef struct _Elm_Store_Item_Filesystem      Elm_Store_Item_Filesystem;
3310    typedef struct _Elm_Store_Item_Info            Elm_Store_Item_Info;
3311    typedef struct _Elm_Store_Item_Info_Filesystem Elm_Store_Item_Info_Filesystem;
3312    typedef struct _Elm_Store_Item_Mapping         Elm_Store_Item_Mapping;
3313    typedef struct _Elm_Store_Item_Mapping_Empty   Elm_Store_Item_Mapping_Empty;
3314    typedef struct _Elm_Store_Item_Mapping_Icon    Elm_Store_Item_Mapping_Icon;
3315    typedef struct _Elm_Store_Item_Mapping_Photo   Elm_Store_Item_Mapping_Photo;
3316    typedef struct _Elm_Store_Item_Mapping_Custom  Elm_Store_Item_Mapping_Custom;
3317
3318    typedef Eina_Bool (*Elm_Store_Item_List_Cb) (void *data, Elm_Store_Item_Info *info);
3319    typedef void      (*Elm_Store_Item_Fetch_Cb) (void *data, Elm_Store_Item *sti, Elm_Store_Item_Info *info);
3320    typedef void      (*Elm_Store_Item_Unfetch_Cb) (void *data, Elm_Store_Item *sti, Elm_Store_Item_Info *info);
3321    typedef void      (*Elm_Store_Item_Select_Cb) (void *data, Elm_Store_Item *sti);
3322    typedef int       (*Elm_Store_Item_Sort_Cb) (void *data, Elm_Store_Item_Info *info1, Elm_Store_Item_Info *info2);
3323    typedef void      (*Elm_Store_Item_Free_Cb) (void *data, Elm_Store_Item_Info *info);
3324    typedef void     *(*Elm_Store_Item_Mapping_Cb) (void *data, Elm_Store_Item *sti, const char *part);
3325
3326    typedef enum
3327      {
3328         ELM_STORE_ITEM_MAPPING_NONE = 0,
3329         ELM_STORE_ITEM_MAPPING_LABEL, // const char * -> label
3330         ELM_STORE_ITEM_MAPPING_STATE, // Eina_Bool -> state
3331         ELM_STORE_ITEM_MAPPING_ICON, // char * -> icon path
3332         ELM_STORE_ITEM_MAPPING_PHOTO, // char * -> photo path
3333         ELM_STORE_ITEM_MAPPING_CUSTOM, // item->custom(it->data, it, part) -> void * (-> any)
3334         // can add more here as needed by common apps
3335         ELM_STORE_ITEM_MAPPING_LAST
3336      } Elm_Store_Item_Mapping_Type;
3337
3338    struct _Elm_Store_Item_Mapping_Icon
3339      {
3340         // FIXME: allow edje file icons
3341         int                   w, h;
3342         Elm_Icon_Lookup_Order lookup_order;
3343         Eina_Bool             standard_name : 1;
3344         Eina_Bool             no_scale : 1;
3345         Eina_Bool             smooth : 1;
3346         Eina_Bool             scale_up : 1;
3347         Eina_Bool             scale_down : 1;
3348      };
3349
3350    struct _Elm_Store_Item_Mapping_Empty
3351      {
3352         Eina_Bool             dummy;
3353      };
3354
3355    struct _Elm_Store_Item_Mapping_Photo
3356      {
3357         int                   size;
3358      };
3359
3360    struct _Elm_Store_Item_Mapping_Custom
3361      {
3362         Elm_Store_Item_Mapping_Cb func;
3363      };
3364
3365    struct _Elm_Store_Item_Mapping
3366      {
3367         Elm_Store_Item_Mapping_Type     type;
3368         const char                     *part;
3369         int                             offset;
3370         union {
3371              Elm_Store_Item_Mapping_Empty  empty;
3372              Elm_Store_Item_Mapping_Icon   icon;
3373              Elm_Store_Item_Mapping_Photo  photo;
3374              Elm_Store_Item_Mapping_Custom custom;
3375              // add more types here
3376         } details;
3377      };
3378
3379    struct _Elm_Store_Item_Info
3380      {
3381         int                           index;
3382         int                           item_type;
3383         int                           group_index;
3384         Eina_Bool                     rec_item;
3385         int                           pre_group_index;
3386
3387         Elm_Genlist_Item_Class       *item_class;
3388         const Elm_Store_Item_Mapping *mapping;
3389         void                         *data;
3390         char                         *sort_id;
3391      };
3392
3393    struct _Elm_Store_Item_Info_Filesystem
3394      {
3395         Elm_Store_Item_Info  base;
3396         char                *path;
3397      };
3398
3399 #define ELM_STORE_ITEM_MAPPING_END { ELM_STORE_ITEM_MAPPING_NONE, NULL, 0, { .empty = { EINA_TRUE } } }
3400 #define ELM_STORE_ITEM_MAPPING_OFFSET(st, it) offsetof(st, it)
3401
3402    EAPI Elm_Store              *elm_store_dbsystem_new(void);
3403    EAPI void                    elm_store_item_count_set(Elm_Store *st, int count) EINA_ARG_NONNULL(1);
3404    EAPI void                    elm_store_item_select_func_set(Elm_Store *st, Elm_Store_Item_Select_Cb func, const void *data) EINA_ARG_NONNULL(1);
3405    EAPI void                    elm_store_item_sort_func_set(Elm_Store *st, Elm_Store_Item_Sort_Cb func, const void *data) EINA_ARG_NONNULL(1);
3406    EAPI void                    elm_store_item_free_func_set(Elm_Store *st, Elm_Store_Item_Free_Cb func, const void *data) EINA_ARG_NONNULL(1);
3407    EAPI int                     elm_store_item_data_index_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
3408    EAPI void                   *elm_store_dbsystem_db_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
3409    EAPI void                    elm_store_dbsystem_db_set(Elm_Store *store, void *pDB) EINA_ARG_NONNULL(1);
3410    EAPI int                     elm_store_item_index_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
3411    EAPI Elm_Store_Item         *elm_store_item_add(Elm_Store *st, Elm_Store_Item_Info *info) EINA_ARG_NONNULL(1);
3412    EAPI void                    elm_store_item_update(Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
3413    EAPI void                    elm_store_visible_items_update(Elm_Store *st) EINA_ARG_NONNULL(1);
3414    EAPI void                    elm_store_item_del(Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
3415    EAPI void                    elm_store_free(Elm_Store *st);
3416    EAPI Elm_Store              *elm_store_filesystem_new(void);
3417    EAPI void                    elm_store_filesystem_directory_set(Elm_Store *st, const char *dir) EINA_ARG_NONNULL(1);
3418    EAPI const char             *elm_store_filesystem_directory_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
3419    EAPI const char             *elm_store_item_filesystem_path_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
3420    EAPI void                    elm_store_target_genlist_set(Elm_Store *st, Evas_Object *obj) EINA_ARG_NONNULL(1);
3421    EAPI void                    elm_store_cache_set(Elm_Store *st, int max) EINA_ARG_NONNULL(1);
3422    EAPI int                     elm_store_cache_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
3423    EAPI void                    elm_store_list_func_set(Elm_Store *st, Elm_Store_Item_List_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
3424    EAPI void                    elm_store_fetch_func_set(Elm_Store *st, Elm_Store_Item_Fetch_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
3425    EAPI void                    elm_store_fetch_thread_set(Elm_Store *st, Eina_Bool use_thread) EINA_ARG_NONNULL(1);
3426    EAPI Eina_Bool               elm_store_fetch_thread_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
3427    EAPI void                    elm_store_unfetch_func_set(Elm_Store *st, Elm_Store_Item_Unfetch_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
3428    EAPI void                    elm_store_sorted_set(Elm_Store *st, Eina_Bool sorted) EINA_ARG_NONNULL(1);
3429    EAPI Eina_Bool               elm_store_sorted_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
3430    EAPI void                    elm_store_item_data_set(Elm_Store_Item *sti, void *data) EINA_ARG_NONNULL(1);
3431    EAPI void                   *elm_store_item_data_get(Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
3432    EAPI const Elm_Store        *elm_store_item_store_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
3433    EAPI const Elm_Genlist_Item *elm_store_item_genlist_item_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
3434
3435    /* SegmentControl */
3436    typedef struct _Elm_Segment_Item Elm_Segment_Item;
3437    EAPI Evas_Object      *elm_segment_control_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
3438    EAPI Elm_Segment_Item *elm_segment_control_item_add(Evas_Object *obj, Evas_Object *icon, const char *label) EINA_ARG_NONNULL(1);
3439    EAPI Elm_Segment_Item *elm_segment_control_item_insert_at(Evas_Object *obj, Evas_Object *icon, const char *label, int index) EINA_ARG_NONNULL(1);
3440    EAPI void              elm_segment_control_item_del(Elm_Segment_Item *it) EINA_ARG_NONNULL(1);
3441    EAPI void              elm_segment_control_item_del_at(Evas_Object *obj, int index) EINA_ARG_NONNULL(1);
3442    EAPI int               elm_segment_control_item_count_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
3443    EAPI Elm_Segment_Item *elm_segment_control_item_get(const Evas_Object *obj, int index) EINA_ARG_NONNULL(1);
3444    EAPI const char       *elm_segment_control_item_label_get(const Evas_Object *obj, int index) EINA_ARG_NONNULL(1);
3445    EAPI void              elm_segment_control_item_label_set(Elm_Segment_Item* it, const char* label) EINA_ARG_NONNULL(1);
3446    EAPI Evas_Object      *elm_segment_control_item_icon_get(const Evas_Object *obj, int index) EINA_ARG_NONNULL(1);
3447    EAPI void              elm_segment_control_item_icon_set(Elm_Segment_Item *it, Evas_Object *icon) EINA_ARG_NONNULL(1);
3448    EAPI int               elm_segment_control_item_index_get(const Elm_Segment_Item *it) EINA_ARG_NONNULL(1);
3449    EAPI Evas_Object      *elm_segment_control_item_object_get(const Elm_Segment_Item *it) EINA_ARG_NONNULL(1);
3450    EAPI Elm_Segment_Item *elm_segment_control_item_selected_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
3451    EAPI void              elm_segment_control_item_selected_set(Elm_Segment_Item *it, Eina_Bool select) EINA_ARG_NONNULL(1);
3452    /* smart callbacks called:
3453     * "changed" -when the user clicks on a segment item which is not previously
3454     *            selected and get selected. The event_info parameter is the
3455     *            segment item index.
3456     */
3457
3458 #ifdef __cplusplus
3459 }
3460 #endif
3461
3462 #endif