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