e31e7e9cd6f426f55a50bef3e1b9978d4780238f
[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  * @file Elementary.h
9  * @brief Elementary's API
10  *
11  * Elementary API.
12  */
13
14 @ELM_UNIX_DEF@ ELM_UNIX
15 @ELM_WIN32_DEF@ ELM_WIN32
16 @ELM_WINCE_DEF@ ELM_WINCE
17 @ELM_EDBUS_DEF@ ELM_EDBUS
18 @ELM_EFREET_DEF@ ELM_EFREET
19 @ELM_ETHUMB_DEF@ ELM_ETHUMB
20 @ELM_DEBUG_DEF@ ELM_DEBUG
21 @ELM_ALLOCA_H_DEF@ ELM_ALLOCA_H
22 @ELM_LIBINTL_H_DEF@ ELM_LIBINTL_H
23
24 /* Standard headers for standard system calls etc. */
25 #include <stdio.h>
26 #include <stdlib.h>
27 #include <unistd.h>
28 #include <string.h>
29 #include <sys/types.h>
30 #include <sys/stat.h>
31 #include <sys/time.h>
32 #include <sys/param.h>
33 #include <dlfcn.h>
34 #include <math.h>
35 #include <fnmatch.h>
36 #include <limits.h>
37 #include <ctype.h>
38 #include <time.h>
39 #include <dirent.h>
40 #include <pwd.h>
41 #include <errno.h>
42
43 #ifdef ELM_UNIX
44 # include <locale.h>
45 # ifdef ELM_LIBINTL_H
46 #  include <libintl.h>
47 # endif
48 # include <signal.h>
49 # include <grp.h>
50 # include <glob.h>
51 #endif
52
53 #ifdef ELM_ALLOCA_H
54 # include <alloca.h>
55 #endif
56
57 #if defined (ELM_WIN32) || defined (ELM_WINCE)
58 # include <malloc.h>
59 # ifndef alloca
60 #  define alloca _alloca
61 # endif
62 #endif
63
64
65 /* EFL headers */
66 #include <Eina.h>
67 #include <Eet.h>
68 #include <Evas.h>
69 #include <Ecore.h>
70 #include <Ecore_Evas.h>
71 #include <Ecore_File.h>
72 #include <Ecore_IMF.h>
73 #include <Edje.h>
74
75 #ifdef ELM_EDBUS
76 # include <E_DBus.h>
77 # include <E_Hal.h>
78 #endif
79
80 #ifdef ELM_EFREET
81 # include <Efreet.h>
82 # include <Efreet_Mime.h>
83 # include <Efreet_Trash.h>
84 #endif
85
86 #ifdef ELM_ETHUMB
87 # include <Ethumb_Client.h>
88 #endif
89
90 #ifdef EAPI
91 # undef EAPI
92 #endif
93
94 #ifdef _WIN32
95 # ifdef ELEMENTARY_BUILD
96 #  ifdef DLL_EXPORT
97 #   define EAPI __declspec(dllexport)
98 #  else
99 #   define EAPI
100 #  endif /* ! DLL_EXPORT */
101 # else
102 #  define EAPI __declspec(dllimport)
103 # endif /* ! EFL_EVAS_BUILD */
104 #else
105 # ifdef __GNUC__
106 #  if __GNUC__ >= 4
107 #   define EAPI __attribute__ ((visibility("default")))
108 #  else
109 #   define EAPI
110 #  endif
111 # else
112 #  define EAPI
113 # endif
114 #endif /* ! _WIN32 */
115
116
117 /* allow usage from c++ */
118 #ifdef __cplusplus
119 extern "C" {
120 #endif
121
122 #define ELM_VERSION_MAJOR @VMAJ@
123 #define ELM_VERSION_MINOR @VMIN@
124
125    typedef struct _Elm_Version
126      {
127         int major;
128         int minor;
129         int micro;
130         int revision;
131      } Elm_Version;
132
133    EAPI extern Elm_Version *elm_version;
134
135 /* handy macros */
136 #define ELM_RECTS_INTERSECT(x, y, w, h, xx, yy, ww, hh) (((x) < ((xx) + (ww))) && ((y) < ((yy) + (hh))) && (((x) + (w)) > (xx)) && (((y) + (h)) > (yy)))
137 #define ELM_PI 3.14159265358979323846
138
139   /**
140    * Defines couple of standard Evas_Object layers to be used
141    * with evas_object_layer_set().
142    *
143    * @note whenever extending with new values, try to keep some padding
144    *       to siblings so there is room for further extensions.
145    */
146   typedef enum _Elm_Object_Layer
147     {
148        ELM_OBJECT_LAYER_BACKGROUND = EVAS_LAYER_MIN + 64, /**< where to place backgrounds */
149        ELM_OBJECT_LAYER_DEFAULT = 0, /**< Evas_Object default layer (and thus for Elementary) */
150        ELM_OBJECT_LAYER_FOCUS = EVAS_LAYER_MAX - 128, /**< where focus object visualization is */
151        ELM_OBJECT_LAYER_TOOLTIP = EVAS_LAYER_MAX - 64, /**< where to show tooltips */
152        ELM_OBJECT_LAYER_CURSOR = EVAS_LAYER_MAX - 32, /**< where to show cursors */
153        ELM_OBJECT_LAYER_LAST /**< last layer known by Elementary */
154     } Elm_Object_Layer;
155
156 /**************************************************************************/
157    EAPI extern int ELM_ECORE_EVENT_ETHUMB_CONNECT;
158
159    /* Objects */
160      /**
161     * Emitted when policy value changed.
162     */
163    EAPI extern int ELM_EVENT_POLICY_CHANGED;
164    typedef struct _Elm_Event_Policy_Changed
165      {
166         unsigned int policy;
167         int          new_value;
168         int          old_value;
169      } Elm_Event_Policy_Changed;
170
171    /**
172     * Policy identifiers.
173     *
174     * @see elm_policy_set()
175     */
176    typedef enum _Elm_Policy
177      {
178        ELM_POLICY_QUIT, /**< when should quit application automatically.
179                          * @see Elm_Policy_Quit.
180                          */
181        ELM_POLICY_LAST
182      } Elm_Policy;
183
184    typedef enum _Elm_Policy_Quit
185      {
186         ELM_POLICY_QUIT_NONE = 0, /**< never quit application automatically */
187         ELM_POLICY_QUIT_LAST_WINDOW_CLOSED /**< quit when last window is closed */
188      } Elm_Policy_Quit;
189
190    typedef enum _Elm_Focus_Direction
191      {
192         ELM_FOCUS_PREVIOUS,
193         ELM_FOCUS_NEXT
194      } Elm_Focus_Direction;
195
196    typedef enum _Elm_Text_Format
197      {
198         ELM_TEXT_FORMAT_PLAIN_UTF8,
199         ELM_TEXT_FORMAT_MARKUP_UTF8
200      } Elm_Text_Format;
201
202    /**
203     * Called back when a widget's tooltip is activated and needs content.
204     * @param data user-data given to elm_object_tooltip_content_cb_set()
205     * @param obj owner widget.
206     */
207    typedef Evas_Object *(*Elm_Tooltip_Content_Cb) (void *data, Evas_Object *obj);
208
209    /**
210     * Called back when a widget's item tooltip is activated and needs content.
211     * @param data user-data given to elm_object_tooltip_content_cb_set()
212     * @param obj owner widget.
213     * @param item context dependent item. As an example, if tooltip was
214     *        set on Elm_List_Item, then it is of this type.
215     */
216    typedef Evas_Object *(*Elm_Tooltip_Item_Content_Cb) (void *data, Evas_Object *obj, void *item);
217
218    typedef Eina_Bool (*Elm_Event_Cb) (void *data, Evas_Object *obj, Evas_Object *src, Evas_Callback_Type type, void *event_info);
219
220 #ifndef ELM_LIB_QUICKLAUNCH
221 #define ELM_MAIN() int main(int argc, char **argv) {elm_init(argc, argv); return elm_main(argc, argv);}
222 #else
223 #define ELM_MAIN() int main(int argc, char **argv) {return elm_quicklaunch_fallback(argc, argv);}
224 #endif
225
226 /**************************************************************************/
227    /* General calls */
228    EAPI int          elm_init(int argc, char **argv);
229    EAPI int          elm_shutdown(void);
230    EAPI void         elm_run(void);
231    EAPI void         elm_exit(void);
232
233    EAPI void         elm_quicklaunch_mode_set(Eina_Bool ql_on);
234    EAPI Eina_Bool    elm_quicklaunch_mode_get(void);
235    EAPI int          elm_quicklaunch_init(int argc, char **argv);
236    EAPI int          elm_quicklaunch_sub_init(int argc, char **argv);
237    EAPI int          elm_quicklaunch_sub_shutdown(void);
238    EAPI int          elm_quicklaunch_shutdown(void);
239    EAPI void         elm_quicklaunch_seed(void);
240    EAPI Eina_Bool    elm_quicklaunch_prepare(int argc, char **argv);
241    EAPI Eina_Bool    elm_quicklaunch_fork(int argc, char **argv, char *cwd, void (postfork_func) (void *data), void *postfork_data);
242    EAPI void         elm_quicklaunch_cleanup(void);
243    EAPI int          elm_quicklaunch_fallback(int argc, char **argv);
244    EAPI char        *elm_quicklaunch_exe_path_get(const char *exe);
245
246    EAPI Eina_Bool    elm_need_efreet(void);
247    EAPI Eina_Bool    elm_need_e_dbus(void);
248    EAPI Eina_Bool    elm_need_ethumb(void);
249
250    EAPI Eina_Bool    elm_policy_set(unsigned int policy, int value);
251    EAPI int          elm_policy_get(unsigned int policy);
252
253    EAPI void         elm_all_flush(void);
254    EAPI int          elm_cache_flush_interval_get(void);
255    EAPI void         elm_cache_flush_interval_set(int size);
256    EAPI void         elm_cache_flush_interval_all_set(int size);
257    EAPI Eina_Bool    elm_cache_flush_enmabled_get(void);
258    EAPI void         elm_cache_flush_enabled_set(Eina_Bool enabled);
259    EAPI void         elm_cache_flush_enabled_all_set(Eina_Bool enabled);
260    EAPI int          elm_font_cache_get(void);
261    EAPI void         elm_font_cache_set(int size);
262    EAPI void         elm_font_cache_all_set(int size);
263    EAPI int          elm_image_cache_get(void);
264    EAPI void         elm_image_cache_set(int size);
265    EAPI void         elm_image_cache_all_set(int size);
266    EAPI int          elm_edje_file_cache_get(void);
267    EAPI void         elm_edje_file_cache_set(int size);
268    EAPI void         elm_edje_file_cache_all_set(int size);
269    EAPI int          elm_edje_collection_cache_get(void);
270    EAPI void         elm_edje_collection_cache_set(int size);
271    EAPI void         elm_edje_collection_cache_all_set(int size);
272
273    EAPI void         elm_object_scale_set(Evas_Object *obj, double scale) EINA_ARG_NONNULL(1);
274    EAPI double       elm_object_scale_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
275    EAPI void         elm_object_style_set(Evas_Object *obj, const char *style) EINA_ARG_NONNULL(1);
276    EAPI const char  *elm_object_style_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
277    EAPI void         elm_object_disabled_set(Evas_Object *obj, Eina_Bool disabled) EINA_ARG_NONNULL(1);
278    EAPI Eina_Bool    elm_object_disabled_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
279
280    EAPI Eina_Bool    elm_object_widget_check(const Evas_Object *obj) EINA_ARG_NONNULL(1);
281    EAPI Evas_Object *elm_object_parent_widget_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
282    EAPI Evas_Object *elm_object_top_widget_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
283    EAPI const char  *elm_object_widget_type_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
284
285    EAPI double       elm_scale_get(void);
286    EAPI void         elm_scale_set(double scale);
287    EAPI void         elm_scale_all_set(double scale);
288
289    EAPI Eina_Bool    elm_config_save(void);
290    EAPI void         elm_config_reload(void);
291
292    EAPI const char  *elm_profile_current_get(void);
293    EAPI const char  *elm_profile_dir_get(const char *profile, Eina_Bool is_user);
294    EAPI void         elm_profile_dir_free(const char *p_dir);
295    EAPI Eina_List   *elm_profile_list_get(void);
296    EAPI void         elm_profile_list_free(Eina_List *l);
297    EAPI void         elm_profile_set(const char *profile);
298    EAPI void         elm_profile_all_set(const char *profile);
299
300    EAPI const char  *elm_engine_current_get(void);
301    EAPI void         elm_engine_set(const char *engine);
302
303   typedef struct _Elm_Text_Class
304     {
305        const char *name;
306        const char *desc;
307     } Elm_Text_Class;
308
309   typedef struct _Elm_Font_Overlay
310     {
311        const char     *text_class;
312        const char     *font;
313        Evas_Font_Size  size;
314     } Elm_Font_Overlay;
315
316   typedef struct _Elm_Font_Properties
317     {
318        const char *name;
319        Eina_List  *styles;
320     } Elm_Font_Properties;
321
322    EAPI const Eina_List     *elm_text_classes_list_get(void);
323    EAPI void                 elm_text_classes_list_free(const Eina_List *list);
324
325    EAPI const Eina_List     *elm_font_overlay_list_get(void);
326    EAPI void                 elm_font_overlay_set(const char *text_class, const char *font, Evas_Font_Size size);
327    EAPI void                 elm_font_overlay_unset(const char *text_class);
328    EAPI void                 elm_font_overlay_apply();
329    EAPI void                 elm_font_overlay_all_apply();
330
331    EAPI Elm_Font_Properties *elm_font_properties_get(const char *font) EINA_ARG_NONNULL(1);
332    EAPI void                 elm_font_properties_free(Elm_Font_Properties *efp) EINA_ARG_NONNULL(1);
333    EAPI const char          *elm_font_fontconfig_name_get(const char *name, const char *style) EINA_ARG_NONNULL(1);
334    EAPI void                 elm_font_fontconfig_name_free(const char *name) EINA_ARG_NONNULL(1);
335    EAPI Eina_Hash           *elm_font_available_hash_add(Eina_List *list);
336    EAPI void                 elm_font_available_hash_del(Eina_Hash *hash);
337
338    EAPI Evas_Coord       elm_finger_size_get(void);
339    EAPI void             elm_finger_size_set(Evas_Coord size);
340    EAPI void             elm_finger_size_all_set(Evas_Coord size);
341
342    EAPI Eina_Bool        elm_focus_highlight_enabled_get(void);
343    EAPI void             elm_focus_highlight_enabled_set(Eina_Bool enable);
344    EAPI Eina_Bool        elm_focus_highlight_animate_get(void);
345    EAPI void             elm_focus_highlight_animate_set(Eina_Bool animate);
346
347    EAPI Eina_Bool        elm_object_focus_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
348    EAPI void             elm_object_focus(Evas_Object *obj) EINA_ARG_NONNULL(1);
349    EAPI void             elm_object_unfocus(Evas_Object *obj) EINA_ARG_NONNULL(1);
350    EAPI void             elm_object_focus_allow_set(Evas_Object *obj, Eina_Bool enable) EINA_ARG_NONNULL(1);
351    EAPI Eina_Bool        elm_object_focus_allow_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
352
353    EAPI void             elm_object_focus_custom_chain_set(Evas_Object *obj, Eina_List *objs) EINA_ARG_NONNULL(1);
354    EAPI void             elm_object_focus_custom_chain_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
355    EAPI const Eina_List *elm_object_focus_custom_chain_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
356    EAPI void             elm_object_focus_custom_chain_append(Evas_Object *obj, Evas_Object *child, Evas_Object *relative_child) EINA_ARG_NONNULL(1, 2);
357    EAPI void             elm_object_focus_custom_chain_prepend(Evas_Object *obj, Evas_Object *child, Evas_Object *relative_child) EINA_ARG_NONNULL(1, 2);
358    EAPI void             elm_object_focus_cycle(Evas_Object *obj, Elm_Focus_Direction dir) EINA_ARG_NONNULL(1);
359    EAPI void             elm_object_focus_direction_go(Evas_Object *obj, int x, int y) EINA_ARG_NONNULL(1);
360
361    EAPI Eina_Bool        elm_scroll_bounce_enabled_get(void);
362    EAPI void             elm_scroll_bounce_enabled_set(Eina_Bool enabled);
363    EAPI void             elm_scroll_bounce_enabled_all_set(Eina_Bool enabled);
364    EAPI double           elm_scroll_bounce_friction_get(void);
365    EAPI void             elm_scroll_bounce_friction_set(double friction);
366    EAPI void             elm_scroll_bounce_friction_all_set(double friction);
367    EAPI double           elm_scroll_page_scroll_friction_get(void);
368    EAPI void             elm_scroll_page_scroll_friction_set(double friction);
369    EAPI void             elm_scroll_page_scroll_friction_all_set(double friction);
370    EAPI double           elm_scroll_bring_in_scroll_friction_get(void);
371    EAPI void             elm_scroll_bring_in_scroll_friction_set(double friction);
372    EAPI void             elm_scroll_bring_in_scroll_friction_all_set(double friction);
373    EAPI double           elm_scroll_zoom_friction_get(void);
374    EAPI void             elm_scroll_zoom_friction_set(double friction);
375    EAPI void             elm_scroll_zoom_friction_all_set(double friction);
376    EAPI Eina_Bool        elm_scroll_thumbscroll_enabled_get(void);
377    EAPI void             elm_scroll_thumbscroll_enabled_set(Eina_Bool enabled);
378    EAPI void             elm_scroll_thumbscroll_enabled_all_set(Eina_Bool enabled);
379    EAPI unsigned int     elm_scroll_thumbscroll_threshold_get(void);
380    EAPI void             elm_scroll_thumbscroll_threshold_set(unsigned int threshold);
381    EAPI void             elm_scroll_thumbscroll_threshold_all_set(unsigned int threshold);
382    EAPI double           elm_scroll_thumbscroll_momentum_threshold_get(void);
383    EAPI void             elm_scroll_thumbscroll_momentum_threshold_set(double threshold);
384    EAPI void             elm_scroll_thumbscroll_momentum_threshold_all_set(double threshold);
385    EAPI double           elm_scroll_thumbscroll_friction_get(void);
386    EAPI void             elm_scroll_thumbscroll_friction_set(double friction);
387    EAPI void             elm_scroll_thumbscroll_friction_all_set(double friction);
388    EAPI double           elm_scroll_thumbscroll_border_friction_get(void);
389    EAPI void             elm_scroll_thumbscroll_border_friction_set(double friction);
390    EAPI void             elm_scroll_thumbscroll_border_friction_all_set(double friction);
391
392    EAPI void             elm_object_scroll_hold_push(Evas_Object *obj) EINA_ARG_NONNULL(1);
393    EAPI void             elm_object_scroll_hold_pop(Evas_Object *obj) EINA_ARG_NONNULL(1);
394    EAPI void             elm_object_scroll_freeze_push(Evas_Object *obj) EINA_ARG_NONNULL(1);
395    EAPI void             elm_object_scroll_freeze_pop(Evas_Object *obj) EINA_ARG_NONNULL(1);
396    EAPI void             elm_object_scroll_lock_x_set(Evas_Object *obj, Eina_Bool lock) EINA_ARG_NONNULL(1);
397    EAPI void             elm_object_scroll_lock_y_set(Evas_Object *obj, Eina_Bool lock) EINA_ARG_NONNULL(1);
398    EAPI Eina_Bool        elm_object_scroll_lock_x_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
399    EAPI Eina_Bool        elm_object_scroll_lock_y_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
400
401    EAPI void             elm_object_signal_emit(Evas_Object *obj, const char *emission, const char *source) EINA_ARG_NONNULL(1);
402    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);
403    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);
404
405    EAPI void             elm_object_event_callback_add(Evas_Object *obj, Elm_Event_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
406    EAPI void            *elm_object_event_callback_del(Evas_Object *obj, Elm_Event_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
407
408    EAPI void             elm_coords_finger_size_adjust(int times_w, Evas_Coord *w, int times_h, Evas_Coord *h);
409
410    EAPI double           elm_longpress_timeout_get(void);
411    EAPI void             elm_longpress_timeout_set(double longpress_timeout);
412
413    /* debug
414     * don't use it unless you are sure
415     */
416    EAPI void             elm_object_tree_dump(const Evas_Object *top);
417    EAPI void             elm_object_tree_dot_dump(const Evas_Object *top, const char *file);
418
419    EAPI void         elm_autocapitalization_allow_all_set(Eina_Bool autocap);
420    EAPI void         elm_autoperiod_allow_all_set(Eina_Bool autoperiod);
421
422    /* theme */
423    typedef struct _Elm_Theme Elm_Theme;
424
425    EAPI Elm_Theme       *elm_theme_new(void);
426    EAPI void             elm_theme_free(Elm_Theme *th);
427    EAPI void             elm_theme_copy(Elm_Theme *th, Elm_Theme *thdst);
428    EAPI void             elm_theme_ref_set(Elm_Theme *th, Elm_Theme *thref);
429    EAPI Elm_Theme       *elm_theme_ref_get(Elm_Theme *th);
430    EAPI Elm_Theme       *elm_theme_default_get(void);
431    EAPI void             elm_theme_overlay_add(Elm_Theme *th, const char *item);
432    EAPI void             elm_theme_overlay_del(Elm_Theme *th, const char *item);
433    EAPI void             elm_theme_extension_add(Elm_Theme *th, const char *item);
434    EAPI void             elm_theme_extension_del(Elm_Theme *th, const char *item);
435    EAPI void             elm_theme_set(Elm_Theme *th, const char *theme);
436    EAPI const char      *elm_theme_get(Elm_Theme *th);
437    EAPI const Eina_List *elm_theme_list_get(const Elm_Theme *th);
438    EAPI char            *elm_theme_list_item_path_get(const char *f, Eina_Bool *in_search_path);
439    EAPI void             elm_theme_flush(Elm_Theme *th);
440    EAPI void             elm_theme_full_flush(void);
441
442    EAPI void             elm_theme_all_set(const char *theme);
443
444    EAPI Eina_List       *elm_theme_name_available_list_new(void);
445    EAPI void             elm_theme_name_available_list_free(Eina_List *list);
446
447    EAPI void             elm_object_theme_set(Evas_Object *obj, Elm_Theme *th) EINA_ARG_NONNULL(1);
448    EAPI Elm_Theme       *elm_object_theme_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
449
450    /* win */
451    typedef enum _Elm_Win_Type
452      {
453         ELM_WIN_BASIC,
454         ELM_WIN_DIALOG_BASIC,
455         ELM_WIN_DESKTOP,
456         ELM_WIN_DOCK,
457         ELM_WIN_TOOLBAR,
458         ELM_WIN_MENU,
459         ELM_WIN_UTILITY,
460         ELM_WIN_SPLASH
461      } Elm_Win_Type;
462
463    typedef enum _Elm_Win_Keyboard_Mode
464      {
465         ELM_WIN_KEYBOARD_UNKNOWN,
466         ELM_WIN_KEYBOARD_OFF,
467         ELM_WIN_KEYBOARD_ON,
468         ELM_WIN_KEYBOARD_ALPHA,
469         ELM_WIN_KEYBOARD_NUMERIC,
470         ELM_WIN_KEYBOARD_PIN,
471         ELM_WIN_KEYBOARD_PHONE_NUMBER,
472         ELM_WIN_KEYBOARD_HEX,
473         ELM_WIN_KEYBOARD_TERMINAL,
474         ELM_WIN_KEYBOARD_PASSWORD,
475         ELM_WIN_KEYBOARD_IP,
476         ELM_WIN_KEYBOARD_HOST,
477         ELM_WIN_KEYBOARD_FILE,
478         ELM_WIN_KEYBOARD_URL,
479         ELM_WIN_KEYBOARD_KEYPAD,
480         ELM_WIN_KEYBOARD_J2ME
481      } Elm_Win_Keyboard_Mode;
482
483    EAPI Evas_Object *elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type);
484    EAPI void         elm_win_resize_object_add(Evas_Object *obj, Evas_Object *subobj) EINA_ARG_NONNULL(1);
485    EAPI void         elm_win_resize_object_del(Evas_Object *obj, Evas_Object *subobj) EINA_ARG_NONNULL(1);
486    EAPI void         elm_win_title_set(Evas_Object *obj, const char *title) EINA_ARG_NONNULL(1);
487    EAPI const char  *elm_win_title_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
488    EAPI void         elm_win_autodel_set(Evas_Object *obj, Eina_Bool autodel) EINA_ARG_NONNULL(1);
489    EAPI Eina_Bool    elm_win_autodel_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
490    EAPI void         elm_win_activate(Evas_Object *obj) EINA_ARG_NONNULL(1);
491    EAPI void         elm_win_lower(Evas_Object *obj) EINA_ARG_NONNULL(1);
492    EAPI void         elm_win_raise(Evas_Object *obj) EINA_ARG_NONNULL(1);
493    EAPI void         elm_win_borderless_set(Evas_Object *obj, Eina_Bool borderless) EINA_ARG_NONNULL(1);
494    EAPI Eina_Bool    elm_win_borderless_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
495    EAPI void         elm_win_shaped_set(Evas_Object *obj, Eina_Bool shaped) EINA_ARG_NONNULL(1);
496    EAPI Eina_Bool    elm_win_shaped_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
497    EAPI void         elm_win_alpha_set(Evas_Object *obj, Eina_Bool alpha) EINA_ARG_NONNULL(1);
498    EAPI Eina_Bool    elm_win_transparent_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
499    EAPI void         elm_win_transparent_set(Evas_Object *obj, Eina_Bool transparent) EINA_ARG_NONNULL(1);
500    EAPI Eina_Bool    elm_win_alpha_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
501    EAPI void         elm_win_override_set(Evas_Object *obj, Eina_Bool override) EINA_ARG_NONNULL(1);
502    EAPI Eina_Bool    elm_win_override_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
503    EAPI void         elm_win_fullscreen_set(Evas_Object *obj, Eina_Bool fullscreen) EINA_ARG_NONNULL(1);
504    EAPI Eina_Bool    elm_win_fullscreen_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
505    EAPI void         elm_win_maximized_set(Evas_Object *obj, Eina_Bool maximized) EINA_ARG_NONNULL(1);
506    EAPI Eina_Bool    elm_win_maximized_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
507    EAPI void         elm_win_iconified_set(Evas_Object *obj, Eina_Bool iconified) EINA_ARG_NONNULL(1);
508    EAPI Eina_Bool    elm_win_iconified_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
509    EAPI void         elm_win_layer_set(Evas_Object *obj, int layer) EINA_ARG_NONNULL(1);
510    EAPI int          elm_win_layer_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
511    EAPI void         elm_win_rotation_set(Evas_Object *obj, int rotation) EINA_ARG_NONNULL(1);
512    EAPI void         elm_win_rotation_with_resize_set(Evas_Object *obj, int rotation) EINA_ARG_NONNULL(1);
513    EAPI int          elm_win_rotation_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
514    EAPI void         elm_win_sticky_set(Evas_Object *obj, Eina_Bool sticky) EINA_ARG_NONNULL(1);
515    EAPI Eina_Bool    elm_win_sticky_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
516    EAPI void         elm_win_conformant_set(Evas_Object *obj, Eina_Bool conformant) EINA_ARG_NONNULL(1);
517    EAPI Eina_Bool    elm_win_conformant_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
518    EAPI void         elm_win_quickpanel_set(Evas_Object *obj, Eina_Bool quickpanel) EINA_ARG_NONNULL(1);
519    EAPI Eina_Bool    elm_win_quickpanel_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
520    EAPI void         elm_win_quickpanel_priority_major_set(Evas_Object *obj, int priority) EINA_ARG_NONNULL(1);
521    EAPI int          elm_win_quickpanel_priority_major_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
522    EAPI void         elm_win_quickpanel_priority_minor_set(Evas_Object *obj, int priority) EINA_ARG_NONNULL(1);
523    EAPI int          elm_win_quickpanel_priority_minor_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
524    EAPI void         elm_win_quickpanel_zone_set(Evas_Object *obj, int zone) EINA_ARG_NONNULL(1);
525    EAPI int          elm_win_quickpanel_zone_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
526    EAPI void         elm_win_focus_highlight_enabled_set(Evas_Object *obj, Eina_Bool enabled) EINA_ARG_NONNULL(1);
527    EAPI Eina_Bool    elm_win_focus_highlight_enabled_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
528    EAPI void         elm_win_focus_highlight_style_set(Evas_Object *obj, const char *style) EINA_ARG_NONNULL(1);
529    EAPI const char  *elm_win_focus_highlight_style_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
530    EAPI void         elm_win_indicator_state_set(Evas_Object *obj, int show_state);
531    EAPI int          elm_win_indicator_state_get(Evas_Object *obj);
532    /*...
533     * ecore_x_icccm_hints_set -> accepts_focus (add to ecore_evas)
534     * ecore_x_icccm_hints_set -> window_group (add to ecore_evas)
535     * ecore_x_icccm_size_pos_hints_set -> request_pos (add to ecore_evas)
536     * ecore_x_icccm_client_leader_set -> l (add to ecore_evas)
537     * ecore_x_icccm_window_role_set -> role (add to ecore_evas)
538     * ecore_x_icccm_transient_for_set -> forwin (add to ecore_evas)
539     * ecore_x_netwm_window_type_set -> type (add to ecore_evas)
540     *
541     * (add to ecore_x) set netwm argb icon! (add to ecore_evas)
542     * (blank mouse, private mouse obj, defaultmouse)
543     *
544     */
545    EAPI void         elm_win_keyboard_mode_set(Evas_Object *obj, Elm_Win_Keyboard_Mode mode);
546    EAPI void         elm_win_keyboard_win_set(Evas_Object *obj, Eina_Bool is_keyboard);
547
548    EAPI void         elm_win_screen_position_get(const Evas_Object *obj, int *x, int *y);
549
550    EAPI Evas_Object *elm_win_inwin_add(Evas_Object *obj);
551    EAPI void         elm_win_inwin_activate(Evas_Object *obj);
552    EAPI void         elm_win_inwin_content_set(Evas_Object *obj, Evas_Object *content);
553    EAPI Evas_Object *elm_win_inwin_content_unset(Evas_Object *obj);
554    /* available styles:
555     * default
556     * minimal
557     * minimal_vertical
558     */
559
560    /* X specific calls - won't work on non-x engines (return 0) */
561    EAPI Ecore_X_Window elm_win_xwindow_get(const Evas_Object *obj);
562    /* smart callbacks called:
563     * "delete,request" - the user requested to delete the window
564     * "focus,in" - window got focus
565     * "focus,out" - window lost focus
566     * "moved" - window that holds the canvas was moved
567     */
568
569    EAPI Evas_Object *elm_bg_add(Evas_Object *parent);
570    EAPI void         elm_bg_file_set(Evas_Object *obj, const char *file, const char *group);
571    /* smart callbacks called:
572     */
573
574    EAPI Evas_Object *elm_icon_add(Evas_Object *parent);
575    EAPI Eina_Bool    elm_icon_file_set(Evas_Object *obj, const char *file, const char *group);
576    EAPI Eina_Bool    elm_icon_standard_set(Evas_Object *obj, const char *name);
577    EAPI void         elm_icon_smooth_set(Evas_Object *obj, Eina_Bool smooth);
578    EAPI void         elm_icon_no_scale_set(Evas_Object *obj, Eina_Bool no_scale);
579    EAPI void         elm_icon_scale_set(Evas_Object *obj, Eina_Bool scale_up, Eina_Bool scale_down);
580    EAPI void         elm_icon_fill_outside_set(Evas_Object *obj, Eina_Bool fill_outside);
581    EAPI void         elm_icon_prescale_set(Evas_Object *obj, int size);
582    /* smart callbacks called:
583     * "clicked" - the user clicked the icon
584     */
585
586    /* image */
587    typedef enum _Elm_Image_Orient
588      {
589         ELM_IMAGE_ORIENT_NONE,
590         ELM_IMAGE_ROTATE_90_CW,
591         ELM_IMAGE_ROTATE_180_CW,
592         ELM_IMAGE_ROTATE_90_CCW,
593         ELM_IMAGE_FLIP_HORIZONTAL,
594         ELM_IMAGE_FLIP_VERTICAL,
595         ELM_IMAGE_FLIP_TRANSPOSE,
596         ELM_IMAGE_FLIP_TRANSVERSE
597      } Elm_Image_Orient;
598
599    EAPI Evas_Object *elm_image_add(Evas_Object *parent);
600    EAPI Eina_Bool    elm_image_file_set(Evas_Object *obj, const char *file, const char *group);
601    EAPI void         elm_image_smooth_set(Evas_Object *obj, Eina_Bool smooth);
602    EAPI void         elm_image_object_size_get(const Evas_Object *obj, int *w, int *h);
603    EAPI void         elm_image_no_scale_set(Evas_Object *obj, Eina_Bool no_scale);
604    EAPI void         elm_image_scale_set(Evas_Object *obj, Eina_Bool scale_up, Eina_Bool scale_down);
605    EAPI void         elm_image_fill_outside_set(Evas_Object *obj, Eina_Bool fill_outside);
606    EAPI void         elm_image_prescale_set(Evas_Object *obj, int size);
607    EAPI void         elm_image_orient_set(Evas_Object *obj, Elm_Image_Orient orient);
608    /* smart callbacks called:
609     * "clicked" - the user clicked the image
610     */
611
612    EAPI Evas_Object *elm_box_add(Evas_Object *parent);
613    EAPI void         elm_box_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
614    EAPI void         elm_box_homogenous_set(Evas_Object *obj, Eina_Bool homogenous);
615    EAPI void         elm_box_pack_start(Evas_Object *obj, Evas_Object *subobj);
616    EAPI void         elm_box_pack_end(Evas_Object *obj, Evas_Object *subobj);
617    EAPI void         elm_box_pack_before(Evas_Object *obj, Evas_Object *subobj, Evas_Object *before);
618    EAPI void         elm_box_pack_after(Evas_Object *obj, Evas_Object *subobj, Evas_Object *after);
619    EAPI void         elm_box_clear(Evas_Object *obj);
620    EAPI void         elm_box_unpack(Evas_Object *obj, Evas_Object *subobj);
621    EAPI void         elm_box_unpack_all(Evas_Object *obj);
622    /* smart callbacks called:
623     */
624
625    typedef enum 
626      {
627         UIControlStateDefault,
628         UIControlStateHighlighted,
629         UIControlStateDisabled,
630         UIControlStateFocused,
631         UIControlStateReserved
632      } UIControlState;
633
634  /* button */
635    EAPI Evas_Object *elm_button_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
636    EAPI void         elm_button_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
637    EAPI void         elm_button_label_set_for_state(Evas_Object *obj, const char *label, UIControlState state);
638    EAPI const char  *elm_button_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
639    EAPI const char  *elm_button_label_get_for_state(const Evas_Object *obj, UIControlState state);
640    EAPI void         elm_button_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
641    EAPI Evas_Object *elm_button_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
642    EAPI Evas_Object *elm_button_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
643    EAPI void         elm_button_autorepeat_set(Evas_Object *obj, Eina_Bool on) EINA_ARG_NONNULL(1);
644    EAPI Eina_Bool    elm_button_autorepeat_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
645    EAPI void         elm_button_autorepeat_initial_timeout_set(Evas_Object *obj, double t) EINA_ARG_NONNULL(1);
646    EAPI double       elm_button_autorepeat_initial_timeout_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
647    EAPI void         elm_button_autorepeat_gap_timeout_set(Evas_Object *obj, double t) EINA_ARG_NONNULL(1);
648    EAPI double       elm_button_autorepeat_gap_timeout_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
649    /* available styles:
650     * default
651     * anchor
652     * hoversel_vertical
653     * hoversel_vertical_entry
654     */
655    /* smart callbacks called:
656     * "clicked" - the user clicked the button
657     * "repeated" - the user pressed the button without releasing it
658     * "unpressed" - when the button is unpressed (released)
659     */
660
661    /* fileselector */
662    EAPI Evas_Object *elm_fileselector_button_add(Evas_Object *parent);
663    EAPI void         elm_fileselector_button_label_set(Evas_Object *obj, const char *label);
664    EAPI const char  *elm_fileselector_button_label_get(const Evas_Object *obj);
665    EAPI void         elm_fileselector_button_icon_set(Evas_Object *obj, Evas_Object *icon);
666    EAPI Evas_Object *elm_fileselector_button_icon_get(const Evas_Object *obj);
667    EAPI void         elm_fileselector_button_window_title_set(Evas_Object *obj, const char *title);
668    EAPI const char  *elm_fileselector_button_window_title_get(const Evas_Object *obj);
669    EAPI void         elm_fileselector_button_window_size_set(Evas_Object *obj, Evas_Coord width, Evas_Coord height);
670    EAPI void         elm_fileselector_button_window_size_get(const Evas_Object *obj, Evas_Coord *width, Evas_Coord *height);
671    EAPI void         elm_fileselector_button_path_set(Evas_Object *obj, const char *path);
672    EAPI const char  *elm_fileselector_button_path_get(const Evas_Object *obj);
673    EAPI void         elm_fileselector_button_expandable_set(Evas_Object *obj, Eina_Bool value);
674    EAPI Eina_Bool    elm_fileselector_button_expandable_get(const Evas_Object *obj);
675    EAPI void         elm_fileselector_button_folder_only_set(Evas_Object *obj, Eina_Bool value);
676    EAPI Eina_Bool    elm_fileselector_button_folder_only_get(const Evas_Object *obj);
677    EAPI void         elm_fileselector_button_is_save_set(Evas_Object *obj, Eina_Bool value);
678    EAPI Eina_Bool    elm_fileselector_button_is_save_get(const Evas_Object *obj);
679    EAPI void         elm_fileselector_button_inwin_mode_set(Evas_Object *obj, Eina_Bool value);
680    EAPI Eina_Bool    elm_fileselector_button_inwin_mode_get(const Evas_Object *obj);
681    EAPI void         elm_fileselector_button_selected_set(Evas_Object *obj, const char *path);
682    EAPI const char  *elm_fileselector_button_selected_get(const Evas_Object *obj);
683
684
685    typedef enum _Elm_Scroller_Policy
686      {
687         ELM_SCROLLER_POLICY_AUTO = 0,
688         ELM_SCROLLER_POLICY_ON,
689         ELM_SCROLLER_POLICY_OFF,
690         ELM_SCROLLER_POLICY_LAST
691      }
692    Elm_Scroller_Policy;
693
694    EAPI Evas_Object *elm_scroller_add(Evas_Object *parent);
695    EAPI void         elm_scroller_content_set(Evas_Object *obj, Evas_Object *child);
696    EAPI Evas_Object *elm_scroller_content_get(const Evas_Object *obj);
697    EAPI Evas_Object *elm_scroller_content_unset(Evas_Object *obj);
698    EAPI void         elm_scroller_custom_widget_base_theme_set(Evas_Object *obj, const char *widget, const char *base);
699    EAPI void         elm_scroller_content_min_limit(Evas_Object *obj, Eina_Bool w, Eina_Bool h);
700    EAPI void         elm_scroller_region_show(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
701    EAPI void         elm_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v);
702    EAPI void         elm_scroller_policy_get(const Evas_Object *obj, Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v);
703    EAPI void         elm_scroller_region_get(const Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
704    EAPI void         elm_scroller_child_size_get(const Evas_Object *obj, Evas_Coord *w, Evas_Coord *h);
705    EAPI void         elm_scroller_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
706    EAPI void         elm_scroller_page_relative_set(Evas_Object *obj, double h_pagerel, double v_pagerel);
707    EAPI void         elm_scroller_page_size_set(Evas_Object *obj, Evas_Coord h_pagesize, Evas_Coord v_pagesize);
708    EAPI void         elm_scroller_region_bring_in(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
709    EAPI void         elm_scroller_page_move_set(Evas_Object *obj, Eina_Bool set);
710    EAPI void         elm_scroller_propagate_events_set(Evas_Object *obj, Eina_Bool set);
711
712    /* smart callbacks called:
713     * "edge,left"
714     * "edge,right"
715     * "edge,top"
716     * "edge,bottom"
717     * "scroll"
718     * "scroll,anim,start"
719     * "scroll,anim,stop"
720     * "scroll,drag,start"
721     * "scroll,drag,stop"
722     */
723
724    EAPI Evas_Object *elm_label_add(Evas_Object *parent);
725    EAPI void         elm_label_label_set(Evas_Object *obj, const char *label);
726    EAPI const char  *elm_label_label_get(const Evas_Object *obj);
727    EAPI void         elm_label_line_wrap_set(Evas_Object *obj, Eina_Bool wrap);
728    EAPI Eina_Bool    elm_label_line_wrap_get(const Evas_Object *obj);
729    EAPI void         elm_label_wrap_width_set(Evas_Object *obj, Evas_Coord w);
730    EAPI Evas_Coord   elm_label_wrap_width_get(const Evas_Object *obj);
731    EAPI void         elm_label_wrap_height_set(Evas_Object *obj, Evas_Coord h);
732    EAPI Evas_Coord   elm_label_wrap_height_get(const Evas_Object *obj);
733    EAPI void         elm_label_fontsize_set(Evas_Object *obj, int fontsize);
734    EAPI void         elm_label_text_color_set(Evas_Object *obj, unsigned int r, unsigned int g, unsigned int b, unsigned int a);
735    EAPI void         elm_label_text_align_set(Evas_Object *obj, const char *alignmode);
736    EAPI void         elm_label_background_color_set(Evas_Object *obj, unsigned int r, unsigned int g, unsigned int b, unsigned int a);
737    EAPI void         elm_label_ellipsis_set(Evas_Object *obj, Eina_Bool ellipsis);
738    EAPI void         elm_label_wrap_mode_set(Evas_Object *obj, Eina_Bool wrapmode);
739    EAPI void         elm_label_slide_set(Evas_Object *obj, Eina_Bool slide);
740    EAPI Eina_Bool    elm_label_slide_get(Evas_Object *obj);
741    EAPI void         elm_label_slide_duration_set(Evas_Object *obj, int duration);
742    EAPI int          elm_label_slide_duration_get(Evas_Object *obj);
743    /* available styles:
744     * default
745     * marker
746     */
747    /* smart callbacks called:
748     */
749
750    EAPI Evas_Object *elm_toggle_add(Evas_Object *parent);
751    EAPI void         elm_toggle_label_set(Evas_Object *obj, const char *label);
752    EAPI const char  *elm_toggle_label_get(const Evas_Object *obj);
753    EAPI void         elm_toggle_icon_set(Evas_Object *obj, Evas_Object *icon);
754    EAPI Evas_Object *elm_toggle_icon_get(const Evas_Object *obj);
755    EAPI void         elm_toggle_states_labels_set(Evas_Object *obj, const char *onlabel, const char *offlabel);
756    EAPI void         elm_toggle_states_labels_get(const Evas_Object *obj, const char **onlabel, const char **offlabel);
757    EAPI void         elm_toggle_state_set(Evas_Object *obj, Eina_Bool state);
758    EAPI Eina_Bool    elm_toggle_state_get(const Evas_Object *obj);
759    EAPI void         elm_toggle_state_pointer_set(Evas_Object *obj, Eina_Bool *statep);
760    /* smart callbacks called:
761     * "changed" - the user toggled the state
762     */
763
764    EAPI Evas_Object *elm_frame_add(Evas_Object *parent);
765    EAPI void         elm_frame_label_set(Evas_Object *obj, const char *label);
766    EAPI const char  *elm_frame_label_get(const Evas_Object *obj);
767    EAPI void         elm_frame_content_set(Evas_Object *obj, Evas_Object *content);
768    EAPI Evas_Object *elm_frame_content_unset(Evas_Object *obj);
769    /* available styles:
770     * default
771     * pad_small
772     * pad_medium
773     * pad_large
774     * pad_huge
775     * outdent_top
776     * outdent_bottom
777     */
778    /* smart callbacks called:
779     */
780
781    EAPI Evas_Object *elm_table_add(Evas_Object *parent);
782    EAPI void         elm_table_homogenous_set(Evas_Object *obj, Eina_Bool homogenous);
783    EAPI void         elm_table_padding_set(Evas_Object *obj, Evas_Coord horizontal, Evas_Coord vertical);
784    EAPI void         elm_table_pack(Evas_Object *obj, Evas_Object *subobj, int x, int y, int w, int h);
785    EAPI void         elm_table_unpack(Evas_Object *obj, Evas_Object *subobj);
786    EAPI void         elm_table_clear(Evas_Object *obj, Eina_Bool clear);
787
788    typedef struct _Elm_Gengrid_Item_Class Elm_Gengrid_Item_Class;
789    typedef struct _Elm_Gengrid_Item_Class_Func Elm_Gengrid_Item_Class_Func;
790    typedef struct _Elm_Gengrid_Item Elm_Gengrid_Item;
791    typedef char        *(*GridItemLabelGetFunc) (const void *data, Evas_Object *obj, const char *part);
792    typedef Evas_Object *(*GridItemIconGetFunc)  (const void *data, Evas_Object *obj, const char *part);
793    typedef Eina_Bool    (*GridItemStateGetFunc) (const void *data, Evas_Object *obj, const char *part);
794    typedef void         (*GridItemDelFunc)      (const void *data, Evas_Object *obj);
795
796    struct _Elm_Gengrid_Item_Class
797      {
798         const char *item_style;
799         struct _Elm_Gengrid_Item_Class_Func
800           {
801              GridItemLabelGetFunc label_get;
802              GridItemIconGetFunc icon_get;
803              GridItemStateGetFunc state_get;
804              GridItemDelFunc del;
805           } func;
806      };
807
808    EAPI Evas_Object *elm_gengrid_add(Evas_Object *parent);
809    EAPI void         elm_gengrid_item_size_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h);
810    EAPI void         elm_gengrid_item_size_get(const Evas_Object *obj, Evas_Coord *w, Evas_Coord *h);
811    EAPI void         elm_gengrid_align_set(Evas_Object *obj, double align_x, double align_y);
812    EAPI void         elm_gengrid_align_get(const Evas_Object *obj, double *align_x, double *align_y);
813    EAPI void         elm_gengrid_item_del(Elm_Gengrid_Item *item);
814    EAPI void         elm_gengrid_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select);
815    EAPI Eina_Bool    elm_gengrid_always_select_mode_get(const Evas_Object *obj);
816    EAPI void         elm_gengrid_no_select_mode_set(Evas_Object *obj, Eina_Bool no_select);
817    EAPI Eina_Bool    elm_gengrid_no_select_mode_get(const Evas_Object *obj);
818    EAPI void         elm_gengrid_multi_select_set(Evas_Object *obj, Eina_Bool multi);
819    EAPI Eina_Bool    elm_gengrid_multi_select_get(const Evas_Object *obj);
820    EAPI void         elm_gengrid_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
821    EAPI void         elm_gengrid_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce);
822    EAPI void         elm_gengrid_horizontal_set(Evas_Object *obj, Eina_Bool setting);
823    EAPI void         elm_gengrid_clear(Evas_Object *obj);
824    EAPI void        *elm_gengrid_item_data_get(Elm_Gengrid_Item *item);
825    EAPI void         elm_gengrid_item_pos_get(const Elm_Gengrid_Item *item, unsigned int *x, unsigned int *y);
826    EAPI void         elm_gengrid_item_selected_set(Elm_Gengrid_Item *item, Eina_Bool selected);
827    EAPI Eina_Bool    elm_gengrid_item_selected_get(const Elm_Gengrid_Item *item);
828    EAPI const Evas_Object *elm_gengrid_item_object_get(Elm_Gengrid_Item *item);
829    EAPI Elm_Gengrid_Item *elm_gengrid_selected_item_get(const Evas_Object *obj);
830    EAPI const Eina_List *elm_gengrid_selected_items_get(const Evas_Object *obj);
831    EAPI const Eina_List *elm_gengrid_items_get(const Evas_Object *obj);
832    EAPI void         elm_gengrid_item_disabled_set(Elm_Gengrid_Item *item, Eina_Bool disabled);
833    EAPI Eina_Bool    elm_gengrid_item_disabled_get(const Elm_Gengrid_Item *item);
834    EAPI Elm_Gengrid_Item *elm_gengrid_item_append(Evas_Object *obj, const Elm_Gengrid_Item_Class *gcc,  const void *data, Evas_Smart_Cb func, const void *func_data);
835    EAPI Elm_Gengrid_Item *elm_gengrid_item_prepend(Evas_Object *obj, const Elm_Gengrid_Item_Class *gcc,  const void *data, Evas_Smart_Cb func, const void *func_data);
836    EAPI void         elm_gengrid_item_update(Elm_Gengrid_Item *it);
837    /* smart callbacks called:
838     *
839     * selected - User has selected a item.
840     * unselected - User has unselected a item.
841     * clicked - User has double-clicked a item.
842     * realized - An evas object for a item was built.
843     * scroll - the content has been scrolled (moved).
844     * "scroll,drag,start" - dragging the contents around has started.
845     * "scroll,drag,stop" - dragging the contents around has stopped.
846     * drag - Gengrid is being dragged.
847     * "drag,start,up" - Gengrid has been dragged (not scrolled) up.
848     * "drag,start,down" - Gengrid has been dragged (not scrolled) down.
849     * "drag,start,left" - Gengrid has been dragged (not scrolled) left.
850     * "drag,start,rigth" - Gengrid has been dragged (nto scrolled) right.
851     * "drag,stop" - Gengrid is not being dragged.
852     */
853
854    /* clock */
855    typedef enum _Elm_Clock_Digedit
856      {
857         ELM_CLOCK_NONE         = 0,
858         ELM_CLOCK_HOUR_DECIMAL = 1 << 0,
859         ELM_CLOCK_HOUR_UNIT    = 1 << 1,
860         ELM_CLOCK_MIN_DECIMAL  = 1 << 2,
861         ELM_CLOCK_MIN_UNIT     = 1 << 3,
862         ELM_CLOCK_SEC_DECIMAL  = 1 << 4,
863         ELM_CLOCK_SEC_UNIT     = 1 << 5,
864         ELM_CLOCK_ALL          = (1 << 6) - 1
865      } Elm_Clock_Digedit;
866
867    EAPI Evas_Object *elm_clock_add(Evas_Object *parent);
868    EAPI void         elm_clock_time_set(Evas_Object *obj, int hrs, int min, int sec);
869    EAPI void         elm_clock_time_get(const Evas_Object *obj, int *hrs, int *min, int *sec);
870    EAPI void         elm_clock_edit_set(Evas_Object *obj, Eina_Bool edit);
871    EAPI Eina_Bool    elm_clock_edit_get(const Evas_Object *obj);
872    EAPI void         elm_clock_digit_edit_set(Evas_Object *obj, Elm_Clock_Digedit digedit);
873    EAPI Elm_Clock_Digedit elm_clock_digit_edit_get(const Evas_Object *obj);
874    EAPI void         elm_clock_show_am_pm_set(Evas_Object *obj, Eina_Bool am_pm);
875    EAPI Eina_Bool    elm_clock_show_am_pm_get(const Evas_Object *obj);
876    EAPI void         elm_clock_show_seconds_set(Evas_Object *obj, Eina_Bool seconds);
877    EAPI Eina_Bool    elm_clock_show_seconds_get(const Evas_Object *obj);
878    EAPI void         elm_clock_interval_set(Evas_Object *obj, double interval);
879    EAPI double       elm_clock_interval_get(const Evas_Object *obj);
880    /* smart callbacks called:
881     * "changed" - the user changed the time
882     */
883
884    EAPI Evas_Object *elm_layout_add(Evas_Object *parent);
885    EAPI Eina_Bool    elm_layout_file_set(Evas_Object *obj, const char *file, const char *group);
886    EAPI Eina_Bool    elm_layout_theme_set(Evas_Object *obj, const char *clas, const char *group, const char *style);
887    EAPI void         elm_layout_content_set(Evas_Object *obj, const char *swallow, Evas_Object *content);
888    EAPI Evas_Object *elm_layout_content_unset(Evas_Object *obj, const char *swallow);
889    EAPI Evas_Object *elm_layout_edje_get(const Evas_Object *obj);
890    EAPI void         elm_layout_sizing_eval(Evas_Object *obj);
891    /* smart callbacks called:
892     */
893
894    typedef enum _Elm_Notify_Orient
895      {
896          ELM_NOTIFY_ORIENT_TOP,
897          ELM_NOTIFY_ORIENT_CENTER,
898          ELM_NOTIFY_ORIENT_BOTTOM,
899          ELM_NOTIFY_ORIENT_LEFT,
900          ELM_NOTIFY_ORIENT_RIGHT,
901          ELM_NOTIFY_ORIENT_TOP_LEFT,
902          ELM_NOTIFY_ORIENT_TOP_RIGHT,
903          ELM_NOTIFY_ORIENT_BOTTOM_LEFT,
904          ELM_NOTIFY_ORIENT_BOTTOM_RIGHT,
905          ELM_NOTIFY_ORIENT_LAST
906      } Elm_Notify_Orient;
907    EAPI Evas_Object *elm_notify_add(Evas_Object *parent);
908    EAPI void         elm_notify_content_set(Evas_Object *obj, Evas_Object *content);
909    EAPI Evas_Object *elm_notify_content_unset(Evas_Object *obj);
910    EAPI Evas_Object *elm_notify_content_get(const Evas_Object *obj);
911    EAPI void         elm_notify_parent_set(Evas_Object *obj, Evas_Object *parent);
912    EAPI void         elm_notify_orient_set(Evas_Object *obj, Elm_Notify_Orient orient);
913    EAPI Elm_Notify_Orient elm_notify_orient_get(const Evas_Object *obj);
914    EAPI void         elm_notify_timeout_set(Evas_Object *obj, int timeout);
915    EAPI int          elm_notify_timeout_get(const Evas_Object *obj);
916    EAPI void         elm_notify_timer_init(Evas_Object *obj);
917    EAPI void         elm_notify_repeat_events_set(Evas_Object *obj, Eina_Bool repeat);
918    EAPI Eina_Bool    elm_notify_repeat_events_get(const Evas_Object *obj);
919    /* smart callbacks called:
920     */
921
922    typedef enum _Elm_Hover_Axis
923      {
924         ELM_HOVER_AXIS_NONE,
925         ELM_HOVER_AXIS_HORIZONTAL,
926         ELM_HOVER_AXIS_VERTICAL,
927         ELM_HOVER_AXIS_BOTH
928      } Elm_Hover_Axis;
929    EAPI Evas_Object *elm_hover_add(Evas_Object *parent);
930    EAPI void         elm_hover_target_set(Evas_Object *obj, Evas_Object *target);
931    EAPI Evas_Object *elm_hover_target_get(Evas_Object *obj);
932    EAPI void         elm_hover_parent_set(Evas_Object *obj, Evas_Object *parent);
933    EAPI Evas_Object *elm_hover_parent_get(Evas_Object *obj);
934    EAPI void         elm_hover_content_set(Evas_Object *obj, const char *swallow, Evas_Object *content);
935    EAPI Evas_Object *elm_hover_content_unset(Evas_Object *obj, const char *swallow);
936    EAPI const char  *elm_hover_best_content_location_get(const Evas_Object *obj, Elm_Hover_Axis pref_axis);
937    /* available styles:
938     * default
939     * popout
940     * menu
941     * hoversel_vertical
942     */
943    /* smart callbacks called:
944     * "clicked" - the user clicked the empty space in the hover to dismiss
945     */
946
947    typedef struct _Elm_Entry_Anchor_Info Elm_Entry_Anchor_Info;
948    struct _Elm_Entry_Anchor_Info
949      {
950         const char *name;
951         int button;
952         Evas_Coord x, y, w, h;
953      };
954    typedef enum _Elm_Icon_Type
955      {
956         ELM_ICON_NONE,
957         ELM_ICON_FILE,
958         ELM_ICON_STANDARD
959      } Elm_Icon_Type;
960    typedef struct _Elm_Hoversel_Item Elm_Hoversel_Item;
961
962    typedef enum _Elm_Input_Panel_Layout
963      {
964         ELM_INPUT_PANEL_LAYOUT_NORMAL,          /**< Default 4x4 layout */
965         ELM_INPUT_PANEL_LAYOUT_NUMBER,          /**< Number layout */
966         ELM_INPUT_PANEL_LAYOUT_EMAIL,           /**< Email layout */
967         ELM_INPUT_PANEL_LAYOUT_URL,             /**< URL layout */
968         ELM_INPUT_PANEL_LAYOUT_PHONENUMBER,     /**< Phone Number layout */  
969         ELM_INPUT_PANEL_LAYOUT_IP,              /**< IP layout */
970         ELM_INPUT_PANEL_LAYOUT_MONTH,           /**< Month layout */
971         ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,      /**< Number Only layout */
972         ELM_INPUT_PANEL_LAYOUT_CUSTOM_1 = 100,  /* Reserved for future use */
973         ELM_INPUT_PANEL_LAYOUT_CUSTOM_2,
974         ELM_INPUT_PANEL_LAYOUT_CUSTOM_3,
975         ELM_INPUT_PANEL_LAYOUT_CUSTOM_4,
976         ELM_INPUT_PANEL_LAYOUT_CUSTOM_5,
977         ELM_INPUT_PANEL_LAYOUT_CUSTOM_6,
978         ELM_INPUT_PANEL_LAYOUT_CUSTOM_7,
979         ELM_INPUT_PANEL_LAYOUT_CUSTOM_8,
980         ELM_INPUT_PANEL_LAYOUT_CUSTOM_9,
981         ELM_INPUT_PANEL_LAYOUT_CUSTOM_10
982      } Elm_Input_Panel_Layout;
983    
984    EAPI Evas_Object *elm_entry_add(Evas_Object *parent);
985    EAPI void         elm_entry_single_line_set(Evas_Object *obj, Eina_Bool single_line);
986    EAPI Eina_Bool    elm_entry_single_line_get(const Evas_Object *obj);
987    EAPI void         elm_entry_password_set(Evas_Object *obj, Eina_Bool password);
988    EAPI Eina_Bool    elm_entry_password_get(const Evas_Object *obj);
989    EINA_DEPRECATED EAPI void         elm_entry_password_show_last_character_set(Evas_Object *obj, Eina_Bool show_last_character);
990
991    EAPI void         elm_entry_entry_set(Evas_Object *obj, const char *entry);
992    EAPI const char  *elm_entry_entry_get(const Evas_Object *obj);
993    EAPI const char  *elm_entry_selection_get(const Evas_Object *obj);
994    EAPI void         elm_entry_entry_insert(Evas_Object *obj, const char *entry);
995    EAPI void         elm_entry_line_wrap_set(Evas_Object *obj, Eina_Bool wrap);
996    EAPI void         elm_entry_line_char_wrap_set(Evas_Object *obj, Eina_Bool wrap);
997    EAPI void         elm_entry_wrap_width_set(Evas_Object *obj, Evas_Coord w);
998    EAPI Evas_Coord   elm_entry_wrap_width_get(const Evas_Object *obj);
999    EAPI void         elm_entry_editable_set(Evas_Object *obj, Eina_Bool editable);
1000    EAPI Eina_Bool    elm_entry_editable_get(const Evas_Object *obj);
1001    EAPI void         elm_entry_select_none(Evas_Object *obj);
1002    EAPI void         elm_entry_select_all(Evas_Object *obj);
1003    EAPI Eina_Bool    elm_entry_cursor_next(Evas_Object *obj);
1004    EAPI Eina_Bool    elm_entry_cursor_prev(Evas_Object *obj);
1005    EAPI Eina_Bool    elm_entry_cursor_up(Evas_Object *obj);
1006    EAPI Eina_Bool    elm_entry_cursor_down(Evas_Object *obj);
1007    EAPI void         elm_entry_cursor_begin_set(Evas_Object *obj);
1008    EAPI void         elm_entry_cursor_end_set(Evas_Object *obj);
1009    EAPI void         elm_entry_cursor_line_begin_set(Evas_Object *obj);
1010    EAPI void         elm_entry_cursor_line_end_set(Evas_Object *obj);
1011    EAPI void         elm_entry_cursor_selection_begin(Evas_Object *obj);
1012    EAPI void         elm_entry_cursor_selection_end(Evas_Object *obj);
1013    EAPI Eina_Bool    elm_entry_cursor_is_format_get(const Evas_Object *obj);
1014    EAPI Eina_Bool    elm_entry_cursor_is_visible_format_get(const Evas_Object *obj);
1015    EAPI const char  *elm_entry_cursor_content_get(const Evas_Object *obj);
1016    EAPI void         elm_entry_selection_cut(Evas_Object *obj);
1017    EAPI void         elm_entry_selection_copy(Evas_Object *obj);
1018    EAPI void         elm_entry_selection_paste(Evas_Object *obj);
1019    EAPI void         elm_entry_context_menu_clear(Evas_Object *obj);
1020    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);
1021    EAPI void         elm_entry_context_menu_disabled_set(Evas_Object *obj, Eina_Bool disabled);
1022    EAPI Eina_Bool    elm_entry_context_menu_disabled_get(const Evas_Object *obj);
1023    EAPI void         elm_entry_item_provider_append(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item), void *data);
1024    EAPI void         elm_entry_item_provider_prepend(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item), void *data);
1025    EAPI void         elm_entry_item_provider_remove(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item), void *data);
1026    EAPI char        *elm_entry_markup_to_utf8(const char *s);
1027    EAPI char        *elm_entry_utf8_to_markup(const char *s);
1028    EAPI void         elm_entry_fontsize_set(Evas_Object *obj, int fontsize);
1029    EAPI void         elm_entry_text_color_set(Evas_Object *obj, unsigned int r, unsigned int g, unsigned int b, unsigned int a);
1030    EAPI void         elm_entry_text_align_set(Evas_Object *obj, const char *alignmode);
1031    EAPI void         elm_entry_background_color_set(Evas_Object *obj, unsigned int r, unsigned int g, unsigned int b, unsigned int a);
1032    EAPI void         elm_entry_ellipsis_set(Evas_Object *obj, Eina_Bool ellipsis);
1033
1034    EAPI void         elm_entry_autocapitalization_set(Evas_Object *obj, Eina_Bool autocap);
1035    EAPI void         elm_entry_autoperiod_set(Evas_Object *obj, Eina_Bool autoperiod);
1036    EAPI void         elm_entry_autoenable_returnkey_set(Evas_Object *obj, Eina_Bool on);
1037    EAPI void         elm_entry_input_panel_enabled_set(Evas_Object *obj, Eina_Bool enabled);
1038    EAPI void         elm_entry_input_panel_layout_set(Evas_Object *obj, Elm_Input_Panel_Layout layout);
1039    EAPI Ecore_IMF_Context *elm_entry_imf_context_get(Evas_Object *obj);
1040    EAPI void         elm_entry_maximum_bytes_set(Evas_Object *obj, int max_no_of_bytes);
1041
1042    /* smart callbacks called:
1043     * "changed" - the text content changed
1044     * "selection,start" - the user started selecting text
1045     * "selection,changed" - the user modified the selection size/location
1046     * "selection,cleared" - the user cleared the selection
1047     * "selection,paste" - the user requested a paste of text
1048     * "selection,copy" - the user copied the text
1049     * "selection,cut" - the user cut the text
1050     * "cursor,changed" - the cursor changed position
1051     * "anchor,clicked" - achor called was clicked | event_info = Elm_Entry_Anchor_Info
1052     * "activated" - when the enter key is pressed (useful for single line)
1053     * "press" - when finger/mouse is pressed down
1054     * "clicked" - when finger/mouse is pressed and released (without a drag etc.)
1055     * "clicked,double" - when finger/mouse is double-pressed
1056     * "longpressed" - the entry has been longpressed
1057     * "focused" - the entry has received keyboard focus
1058     * "unfocused" - keyboard focus is gone
1059     */
1060
1061    /* composite widgets - these basically put together basic widgets above
1062     * in convenient packages that do more than basic stuff */
1063    EINA_DEPRECATED EAPI Evas_Object *elm_notepad_add(Evas_Object *parent);
1064    EINA_DEPRECATED EAPI void         elm_notepad_file_set(Evas_Object *obj, const char *file, Elm_Text_Format format);
1065    EINA_DEPRECATED EAPI void         elm_notepad_file_save(Evas_Object *obj, const char *file, Elm_Text_Format format);
1066    EINA_DEPRECATED EAPI void         elm_notepad_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
1067    EINA_DEPRECATED EAPI void         elm_notepad_autosave_set(Evas_Object *obj, Eina_Bool autosave);
1068
1069    /* smart callbacks called:
1070     */
1071
1072    typedef struct _Elm_Entry_Anchorview_Info Elm_Entry_Anchorview_Info;
1073    struct _Elm_Entry_Anchorview_Info
1074      {
1075         const char *name;
1076         int button;
1077         Evas_Object *hover;
1078         struct
1079           {
1080              Evas_Coord x, y, w, h;
1081           } anchor, hover_parent;
1082         Eina_Bool hover_left : 1;
1083         Eina_Bool hover_right : 1;
1084         Eina_Bool hover_top : 1;
1085         Eina_Bool hover_bottom : 1;
1086      };
1087    EAPI Evas_Object *elm_anchorview_add(Evas_Object *parent);
1088    EAPI void         elm_anchorview_text_set(Evas_Object *obj, const char *text);
1089    EAPI const char  *elm_anchorview_text_get(const Evas_Object *obj);
1090
1091    EAPI void         elm_anchorview_hover_parent_set(Evas_Object *obj, Evas_Object *parent);
1092    EAPI void         elm_anchorview_hover_style_set(Evas_Object *obj, const char *style);
1093    EAPI void         elm_anchorview_hover_end(Evas_Object *obj);
1094    EAPI void         elm_anchorview_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
1095    EAPI void         elm_anchorview_item_provider_append(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *anchorview, const char *item), void *data);
1096    EAPI void         elm_anchorview_item_provider_prepend(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *anchorview, const char *item), void *data);
1097    EAPI void         elm_anchorview_item_provider_remove(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *anchorview, const char *item), void *data);
1098    /* smart callbacks called:
1099     * "anchor,clicked" - achor called was clicked | event_info = Elm_Entry_Anchorview_Info
1100     */
1101
1102    /* anchorblock */
1103    typedef struct _Elm_Entry_Anchorblock_Info Elm_Entry_Anchorblock_Info;
1104    struct _Elm_Entry_Anchorblock_Info
1105      {
1106         const char *name;
1107         int button;
1108         Evas_Object *hover;
1109         struct
1110           {
1111              Evas_Coord x, y, w, h;
1112           } anchor, hover_parent;
1113         Eina_Bool hover_left : 1;
1114         Eina_Bool hover_right : 1;
1115         Eina_Bool hover_top : 1;
1116         Eina_Bool hover_bottom : 1;
1117      };
1118    EAPI Evas_Object *elm_anchorblock_add(Evas_Object *parent);
1119    EAPI void         elm_anchorblock_text_set(Evas_Object *obj, const char *text);
1120    EAPI const char  *elm_anchorblock_text_get(const Evas_Object *obj);
1121    EAPI void         elm_anchorblock_hover_parent_set(Evas_Object *obj, Evas_Object *parent);
1122    EAPI void         elm_anchorblock_hover_style_set(Evas_Object *obj, const char *style);
1123    EAPI void         elm_anchorblock_hover_end(Evas_Object *obj);
1124    EAPI void         elm_anchorblock_item_provider_append(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *anchorblock, const char *item), void *data);
1125    EAPI void         elm_anchorblock_item_provider_prepend(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *anchorblock, const char *item), void *data);
1126    EAPI void         elm_anchorblock_item_provider_remove(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *anchorblock, const char *item), void *data);
1127    /* smart callbacks called:
1128     * "anchor,clicked" - achor called was clicked | event_info = Elm_Entry_Anchorblock_Info
1129     */
1130    
1131    EAPI Evas_Object *elm_bubble_add(Evas_Object *parent);
1132    EAPI void         elm_bubble_label_set(Evas_Object *obj, const char *label);
1133    EAPI const char  *elm_bubble_label_get(const Evas_Object *obj);
1134    EAPI void         elm_bubble_info_set(Evas_Object *obj, const char *info);
1135    EAPI const char  *elm_bubble_info_get(const Evas_Object *obj);
1136
1137    EAPI void         elm_bubble_content_set(Evas_Object *obj, Evas_Object *content);
1138    EAPI Evas_Object *elm_bubble_content_get(const Evas_Object *obj); 
1139    EAPI Evas_Object *elm_bubble_content_unset(Evas_Object *obj);
1140    EAPI void         elm_bubble_icon_set(Evas_Object *obj, Evas_Object *icon);
1141    EAPI Evas_Object *elm_bubble_icon_get(const Evas_Object *obj);
1142    EAPI Evas_Object *elm_bubble_icon_unset(Evas_Object *obj); 
1143    EAPI void         elm_bubble_sweep_layout_set(Evas_Object *obj, Evas_Object *sweep);
1144    EAPI Evas_Object *elm_bubble_sweep_layout_unset(Evas_Object *obj);
1145    EAPI void         elm_bubble_corner_set(Evas_Object *obj, const char *corner);
1146    /* smart callbacks called:
1147     * "clicked" - This is called when a user has clicked the bubble
1148     * "sweep,left,right" - when bubble is sweeped from left to right, this signal is sent.
1149     * "sweep,right,left" - when bubble is sweeped from right to left, this signal is sent.
1150     */
1151     
1152    EAPI Evas_Object *elm_photo_add(Evas_Object *parent);
1153    EAPI Eina_Bool    elm_photo_file_set(Evas_Object *obj, const char *file);
1154    EAPI void         elm_photo_size_set(Evas_Object *obj, int size);
1155    EAPI void         elm_photo_fill_inside_set(Evas_Object *obj, Eina_Bool fill);
1156    EAPI void         elm_photo_editable_set(Evas_Object *obj, Eina_Bool set);
1157    /* smart callbacks called:
1158     * "clicked" - the user clicked the icon
1159     */
1160
1161    /* thumb */
1162    typedef enum _Elm_Thumb_Animation_Setting
1163      {
1164         ELM_THUMB_ANIMATION_START = 0, /* Play animation once */
1165         ELM_THUMB_ANIMATION_LOOP,      /* Keep playing animation until stop is requested */
1166         ELM_THUMB_ANIMATION_STOP,
1167         ELM_THUMB_ANIMATION_LAST
1168      } Elm_Thumb_Animation_Setting;
1169
1170    EAPI Evas_Object *elm_thumb_add(Evas_Object *parent);
1171    EAPI void         elm_thumb_file_set(Evas_Object *obj, const char *file, const char *key);
1172    EAPI void         elm_thumb_file_get(const Evas_Object *obj, const char **file, const char **key);
1173    EAPI void         elm_thumb_path_get(const Evas_Object *obj, const char **file, const char **key);
1174    EAPI void         elm_thumb_animate_set(Evas_Object *obj, Elm_Thumb_Animation_Setting s);
1175    EAPI Elm_Thumb_Animation_Setting elm_thumb_animate_get(const Evas_Object *obj);
1176    EAPI Eina_Bool    elm_thumb_ethumb_client_connected(void);
1177 #ifdef ELM_ETHUMB
1178    EAPI Ethumb_Client *elm_thumb_ethumb_client_get(void);
1179 #else
1180    EAPI void        *elm_thumb_ethumb_client_get(void);
1181 #endif
1182    /* smart callbacks called:
1183     * "clicked" - the user clicked the thumb
1184     * "clicked,double" - the user double clicked the thumb
1185     * "press" - the user pressed the thumb
1186     * "generate,start" - the thumbnail generation started
1187     * "generate,stop" - the thumbnail generation stopped
1188     * "generate,error" - the thumbnail generation failed
1189     * "load,error" - the thumbnail image loading failed
1190     */
1191
1192    EAPI Evas_Object *elm_hoversel_add(Evas_Object *parent);
1193    EAPI void         elm_hoversel_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
1194    EAPI Eina_Bool    elm_hoversel_horizontal_get(const Evas_Object *obj);
1195    EAPI void         elm_hoversel_hover_parent_set(Evas_Object *obj, Evas_Object *parent);
1196    EAPI void         elm_hoversel_label_set(Evas_Object *obj, const char *label);
1197    EAPI const char  *elm_hoversel_label_get(const Evas_Object *obj);
1198    EAPI void         elm_hoversel_icon_set(Evas_Object *obj, Evas_Object *icon);
1199    EAPI Evas_Object *elm_hoversel_icon_get(const Evas_Object *obj);
1200    EAPI void         elm_hoversel_hover_begin(Evas_Object *obj);
1201    EAPI void         elm_hoversel_hover_end(Evas_Object *obj);
1202    EAPI Eina_Bool    elm_hoversel_expanded_get(Evas_Object *obj);
1203    EAPI void         elm_hoversel_clear(Evas_Object *obj);
1204    EAPI const Eina_List *elm_hoversel_items_get(const Evas_Object *obj);
1205    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);
1206    EAPI void         elm_hoversel_item_del(Elm_Hoversel_Item *item);
1207    EAPI void         elm_hoversel_item_del_cb_set(Elm_Hoversel_Item *it, Evas_Smart_Cb func);
1208    EAPI void        *elm_hoversel_item_data_get(Elm_Hoversel_Item *it);
1209    EAPI const char  *elm_hoversel_item_label_get(Elm_Hoversel_Item *it);
1210    EAPI void         elm_hoversel_item_icon_set(Elm_Hoversel_Item *it, const char *icon_file, const char *icon_group, Elm_Icon_Type icon_type);
1211    EAPI void         elm_hoversel_item_icon_get(Elm_Hoversel_Item *it, const char **icon_file, const char **icon_group, Elm_Icon_Type *icon_type);
1212    /* smart callbacks called:
1213     * "clicked" - the user clicked the hoversel button and popped up the sel
1214     * "selected" - an item in the hoversel list is selected
1215     * "dismissed" - the hover is dismissed
1216     */
1217
1218    typedef struct _Elm_Toolbar_Item Elm_Toolbar_Item;
1219    EAPI Evas_Object      *elm_toolbar_add(Evas_Object *parent);
1220    EAPI void              elm_toolbar_icon_size_set(Evas_Object *obj, int icon_size);
1221    EAPI int               elm_toolbar_icon_size_get(const Evas_Object *obj);
1222    EAPI Elm_Toolbar_Item *elm_toolbar_item_add(Evas_Object *obj, Evas_Object *icon, const char *label, Evas_Smart_Cb func, const void *data);
1223    EAPI Evas_Object      *elm_toolbar_item_icon_get(Elm_Toolbar_Item *item);
1224    EAPI const char       *elm_toolbar_item_label_get(const Elm_Toolbar_Item *item);
1225    EAPI Eina_Bool         elm_toolbar_item_selected_get(const Elm_Toolbar_Item *item);
1226    EAPI void              elm_toolbar_item_label_set(Elm_Toolbar_Item *item, const char *label);
1227    EAPI void              elm_toolbar_item_del(Elm_Toolbar_Item *item);
1228    EAPI void              elm_toolbar_item_del_cb_set(Elm_Toolbar_Item *it, Evas_Smart_Cb func);
1229    EAPI void              elm_toolbar_item_select(Elm_Toolbar_Item *item);
1230    EAPI Eina_Bool         elm_toolbar_item_disabled_get(Elm_Toolbar_Item *item);
1231    EAPI void              elm_toolbar_item_disabled_set(Elm_Toolbar_Item *item, Eina_Bool disabled);
1232    EAPI void              elm_toolbar_item_separator_set(Elm_Toolbar_Item *item, Eina_Bool separator);
1233    EAPI Eina_Bool         elm_toolbar_item_separator_get(Elm_Toolbar_Item *item);
1234    EAPI Eina_List        *elm_toolbar_item_get_all(Evas_Object *obj);
1235    EAPI Elm_Toolbar_Item *elm_toolbar_item_get_first(Evas_Object *obj);
1236    EAPI Elm_Toolbar_Item *elm_toolbar_item_get_last(Evas_Object *obj);
1237    EAPI Elm_Toolbar_Item *elm_toolbar_item_get_next(Evas_Object *obj);
1238    EAPI Elm_Toolbar_Item *elm_toolbar_item_select_next(Evas_Object *obj);
1239    EAPI Elm_Toolbar_Item *elm_toolbar_item_select_first(Evas_Object *obj);
1240    EAPI Elm_Toolbar_Item *elm_toolbar_item_select_last(Evas_Object *obj);
1241    EAPI Elm_Toolbar_Item *elm_toolbar_item_find_by_label(Evas_Object *obj, const char *label);
1242    EAPI void              elm_toolbar_scrollable_set(Evas_Object *obj, Eina_Bool scrollable);
1243    EAPI Eina_Bool         elm_toolbar_scrollable_get(Evas_Object *obj);
1244    EAPI void              elm_toolbar_homogenous_set(Evas_Object *obj, Eina_Bool homogenous);
1245    EAPI Eina_Bool         elm_toolbar_homogenous_get(Evas_Object *obj);
1246    EAPI void              elm_toolbar_menu_parent_set(Evas_Object *obj, Evas_Object *parent);
1247    EAPI Evas_Object      *elm_toolbar_menu_parent_get(Evas_Object *obj);
1248    EAPI void              elm_toolbar_item_unselect_all(Evas_Object *obj);
1249    EAPI void              elm_toolbar_align_set(Evas_Object *obj, double align);
1250    EAPI double            elm_toolbar_align_get(const Evas_Object *obj);
1251    EAPI void              elm_toolbar_item_menu_set(Elm_Toolbar_Item *item, Eina_Bool menu);
1252    EAPI Evas_Object      *elm_toolbar_item_menu_get(Elm_Toolbar_Item *item);
1253    /* smart callbacks called:
1254     * "clicked" - when the user clicks on a toolbar item and becomes selected
1255     */
1256
1257    /* tooltip */
1258    EAPI double       elm_tooltip_delay_get(void);
1259    EAPI Eina_Bool    elm_tooltip_delay_set(double delay);
1260    EAPI void         elm_object_tooltip_show(Evas_Object *obj) EINA_ARG_NONNULL(1);
1261    EAPI void         elm_object_tooltip_hide(Evas_Object *obj) EINA_ARG_NONNULL(1);
1262    EAPI void         elm_object_tooltip_text_set(Evas_Object *obj, const char *text) EINA_ARG_NONNULL(1, 2);
1263    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);
1264    EAPI void         elm_object_tooltip_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
1265    EAPI void         elm_object_tooltip_style_set(Evas_Object *obj, const char *style) EINA_ARG_NONNULL(1);
1266    EAPI const char  *elm_object_tooltip_style_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1267    EAPI void         elm_object_cursor_set(Evas_Object *obj, const char *cursor) EINA_ARG_NONNULL(1);
1268    EAPI const char  *elm_object_cursor_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1269    EAPI void         elm_object_cursor_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
1270    EAPI void         elm_object_cursor_style_set(Evas_Object *obj, const char *style) EINA_ARG_NONNULL(1);
1271    EAPI const char  *elm_object_cursor_style_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1272    EAPI void         elm_object_cursor_engine_only_set(Evas_Object *obj, Eina_Bool engine_only) EINA_ARG_NONNULL(1);
1273    EAPI Eina_Bool    elm_object_cursor_engine_only_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1274
1275    /* cursors */
1276    EAPI int          elm_cursor_engine_only_get(void);
1277    EAPI Eina_Bool    elm_cursor_engine_only_set(int engine_only);
1278
1279    /* menu */
1280    typedef struct _Menu_Item Elm_Menu_Item;
1281    EAPI Evas_Object     *elm_menu_add(Evas_Object *parent);
1282    EAPI void             elm_menu_parent_set(Evas_Object *obj, Evas_Object *parent);
1283    EAPI void             elm_menu_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y);
1284    EAPI Evas_Object     *elm_menu_object_get(const Elm_Menu_Item *it);
1285    EAPI Elm_Menu_Item   *elm_menu_item_add(Evas_Object *obj, Elm_Menu_Item *parent, Evas_Object *icon, const char *label, Evas_Smart_Cb func, const void *data);
1286    EAPI void             elm_menu_item_label_set(Elm_Menu_Item *item, const char *label);
1287    EAPI const char      *elm_menu_item_label_get(Elm_Menu_Item *item);
1288    EAPI void             elm_menu_item_icon_set(Elm_Menu_Item *item, Evas_Object *icon);
1289    EAPI Evas_Object     *elm_menu_item_icon_get(Elm_Menu_Item *item);
1290    EAPI void             elm_menu_item_disabled_set(Elm_Menu_Item *item, Eina_Bool disabled);
1291    EAPI Eina_Bool        elm_menu_item_disabled_get(Elm_Menu_Item *item);
1292    EAPI Elm_Menu_Item   *elm_menu_item_separator_add(Evas_Object *obj, Elm_Menu_Item *parent);
1293    EAPI Eina_Bool        elm_menu_item_is_separator(Elm_Menu_Item *item);
1294    EAPI void             elm_menu_item_del(Elm_Menu_Item *item);
1295    EAPI void             elm_menu_item_del_cb_set(Elm_Menu_Item *it, Evas_Smart_Cb func);
1296    EAPI void            *elm_menu_item_data_get(const Elm_Menu_Item *it);
1297    EAPI void             elm_menu_item_data_set(Elm_Menu_Item *item, const void *data);
1298    EAPI const Eina_List *elm_menu_item_subitems_get(Elm_Menu_Item *item);
1299    /* smart callbacks called:
1300     * "clicked" - the user clicked the empty space in the menu to dismiss. event_info is NULL.
1301     */
1302
1303    /* list */
1304    typedef enum _Elm_List_Mode
1305      {
1306         ELM_LIST_COMPRESS = 0,
1307         ELM_LIST_SCROLL,
1308         ELM_LIST_LIMIT,
1309         ELM_LIST_LAST
1310      } Elm_List_Mode;
1311    typedef struct _Elm_List_Item Elm_List_Item;
1312    EAPI Evas_Object     *elm_list_add(Evas_Object *parent);
1313    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);
1314    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);
1315    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);
1316    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);
1317    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);
1318    EAPI void             elm_list_clear(Evas_Object *obj);
1319    EAPI void             elm_list_go(Evas_Object *obj);
1320    EAPI void             elm_list_multi_select_set(Evas_Object *obj, Eina_Bool multi);
1321    EAPI Eina_Bool        elm_list_multi_select_get(const Evas_Object *obj);
1322    EAPI void             elm_list_horizontal_mode_set(Evas_Object *obj, Elm_List_Mode mode);
1323    EAPI Elm_List_Mode    elm_list_horizontal_mode_get(const Evas_Object *obj);
1324    EAPI void             elm_list_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select);
1325    EAPI Eina_Bool        elm_list_always_select_mode_get(const Evas_Object *obj);
1326    EAPI const Eina_List *elm_list_items_get(const Evas_Object *obj);
1327    EAPI Elm_List_Item   *elm_list_selected_item_get(const Evas_Object *obj);
1328    EAPI const Eina_List *elm_list_selected_items_get(const Evas_Object *obj);
1329
1330    EAPI void             elm_list_item_separator_set(Elm_List_Item *it, Eina_Bool setting);
1331    EAPI Eina_Bool        elm_list_item_separator_get(const Elm_List_Item *it);
1332
1333    EAPI void             elm_list_item_selected_set(Elm_List_Item *item, Eina_Bool selected);
1334    EAPI Eina_Bool        elm_list_item_selected_get(Elm_List_Item *item);
1335    EAPI void             elm_list_item_show(Elm_List_Item *item);
1336    EAPI void             elm_list_item_del(Elm_List_Item *item);
1337    EAPI void             elm_list_item_del_cb_set(Elm_List_Item *item, Evas_Smart_Cb func);
1338    EAPI void            *elm_list_item_data_get(const Elm_List_Item *item);
1339    EAPI Evas_Object     *elm_list_item_icon_get(const Elm_List_Item *item);
1340    EAPI void             elm_list_item_icon_set(Elm_List_Item *item, Evas_Object *icon);
1341    EAPI Evas_Object     *elm_list_item_end_get(const Elm_List_Item *item);
1342    EAPI void             elm_list_item_end_set(Elm_List_Item *item, Evas_Object *end);
1343    EAPI Evas_Object     *elm_list_item_base_get(const Elm_List_Item *item);
1344    EAPI const char      *elm_list_item_label_get(const Elm_List_Item *item);
1345    EAPI void             elm_list_item_label_set(Elm_List_Item *item, const char *text);
1346    EAPI Elm_List_Item   *elm_list_item_prev(const Elm_List_Item *it);
1347    EAPI Elm_List_Item   *elm_list_item_next(const Elm_List_Item *it);
1348    EAPI void             elm_list_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
1349    EAPI void             elm_list_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v);
1350    EAPI void             elm_list_scroller_policy_get(const Evas_Object *obj, Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v);
1351
1352    /* smart callbacks called:
1353     * "clicked" - when the user double-clicked an item
1354     * "selected" - when the user selected an item
1355     * "unselected" - when the user selected an item
1356     * "longpressed" - an item in the hoversel list is long-pressed
1357     */
1358
1359    // FIXME: incomplete - carousel. don't use this until this comment is removed
1360    typedef struct _Elm_Carousel_Item Elm_Carousel_Item;
1361    EAPI Evas_Object       *elm_carousel_add(Evas_Object *parent);
1362    EAPI Elm_Carousel_Item *elm_carousel_item_add(Evas_Object *obj, Evas_Object *icon, const char *label, Evas_Smart_Cb func, const void *data);
1363    EAPI void               elm_carousel_item_del(Elm_Carousel_Item *item);
1364    EAPI void               elm_carousel_item_select(Elm_Carousel_Item *item);
1365    /* smart callbacks called:
1366     * "clicked" - when the user clicks on a carousel item and becomes selected
1367     */
1368
1369    EAPI Evas_Object *elm_slider_add(Evas_Object *parent);
1370    EAPI void         elm_slider_label_set(Evas_Object *obj, const char *label);
1371    EAPI const char  *elm_slider_label_get(const Evas_Object *obj);
1372    EAPI void         elm_slider_icon_set(Evas_Object *obj, Evas_Object *icon);
1373    EAPI Evas_Object *elm_slider_icon_get(const Evas_Object *obj);
1374    EAPI void         elm_slider_span_size_set(Evas_Object *obj, Evas_Coord size);
1375    EAPI Evas_Coord   elm_slider_span_size_get(const Evas_Object *obj);
1376    EAPI void         elm_slider_unit_format_set(Evas_Object *obj, const char *format);
1377    EAPI const char  *elm_slider_unit_format_get(const Evas_Object *obj);
1378    EAPI void         elm_slider_indicator_format_set(Evas_Object *obj, const char *indicator);
1379    EAPI const char  *elm_slider_indicator_format_get(const Evas_Object *obj);
1380    EAPI void         elm_slider_indicator_format_function_set(Evas_Object *obj, const char *(*func)(double val));
1381    EAPI void         elm_slider_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
1382    EAPI Eina_Bool    elm_slider_horizontal_get(const Evas_Object *obj);
1383    EAPI void         elm_slider_min_max_set(Evas_Object *obj, double min, double max);
1384    EAPI void         elm_slider_min_max_get(const Evas_Object *obj, double *min, double *max);
1385    EAPI void         elm_slider_value_set(Evas_Object *obj, double val);
1386    EAPI double       elm_slider_value_get(const Evas_Object *obj);
1387    EAPI void         elm_slider_inverted_set(Evas_Object *obj, Eina_Bool inverted);
1388    EAPI Eina_Bool    elm_slider_inverted_get(const Evas_Object *obj);
1389    EAPI Eina_Bool    elm_slider_end_icon_set(Evas_Object *obj, Evas_Object *icon);
1390    EAPI Evas_Object *elm_slider_end_icon_get(Evas_Object *obj);
1391    EAPI void         elm_slider_indicator_show_set(Evas_Object *obj, Eina_Bool show);
1392    EAPI void         elm_slider_value_animated_set(Evas_Object *obj, double val);
1393    EAPI void         elm_slider_end_label_set(Evas_Object *obj, const char *label);
1394    EAPI const char  *elm_slider_end_label_get(const Evas_Object *obj);
1395    /* smart callbacks called:
1396     * "changed" - Whenever the slider value is changed by the user.
1397     *
1398     * "delay,changed" - A short time after the value is changed by the user.
1399     * This will be called only when the user stops dragging for a very short
1400     * period or when they release their finger/mouse, so it avoids possibly
1401     * expensive reactions to the value change.
1402     *
1403     * "slider,drag,start" - dragging the slider indicator around has started
1404     *
1405     * "slider,drag,stop" - dragging the slider indicator around has stopped
1406     */
1407
1408
1409    typedef enum _Elm_Genlist_Item_Flags
1410      {
1411         ELM_GENLIST_ITEM_NONE = 0,
1412         ELM_GENLIST_ITEM_SUBITEMS = (1 << 0)
1413      } Elm_Genlist_Item_Flags;
1414    typedef enum _Elm_Genlist_Edit_Mode
1415      {
1416         ELM_GENLIST_EDIT_MODE_NONE    = 0,
1417         ELM_GENLIST_EDIT_MODE_REORDER = (1 << 0),
1418         ELM_GENLIST_EDIT_MODE_INSERT  = (1 << 1),
1419         ELM_GENLIST_EDIT_MODE_DELETE  = (1 << 2),
1420         ELM_GENLIST_EDIT_MODE_SELECT  = (1 << 3),
1421         ELM_GENLIST_EDIT_MODE_SELECTALL  = (1 << 4)
1422      } Elm_Genlist_Edit_Mode;
1423    typedef struct _Elm_Genlist_Item_Class      Elm_Genlist_Item_Class;
1424    typedef struct _Elm_Genlist_Item            Elm_Genlist_Item;
1425    typedef struct _Elm_Genlist_Item_Class_Func Elm_Genlist_Item_Class_Func;
1426    typedef struct _Elm_Genlist_GroupItem       Elm_Genlist_GroupItem;
1427    typedef struct _Elm_Genlist_Edit_Class      Elm_Genlist_Edit_Class;
1428    typedef char        *(*GenlistItemLabelGetFunc) (const void *data, Evas_Object *obj, const char *part);
1429    typedef char        *(*GenlistItemLabelChangedFunc) (const void *data, Elm_Genlist_Item *it, const char *text, const int sub_text );
1430    typedef Evas_Object *(*GenlistItemIconGetFunc)  (const void *data, Evas_Object *obj, const char *part);
1431    typedef Eina_Bool    (*GenlistItemStateGetFunc) (const void *data, Evas_Object *obj, const char *part);
1432    typedef void         (*GenlistItemDelFunc)      (const void *data, Evas_Object *obj);
1433    typedef int          (*GenlistItemEditModeGetFunc)  (const void *data, Evas_Object *obj, const int enabled_edit_modes);
1434    typedef void         (*GenlistInsertNewFunc)      (Evas_Object *genlist, Elm_Genlist_Item *rel_item);
1435    typedef void         (*GenlistItemSelectedFunc) (const void *data, Elm_Genlist_Item *it, Eina_Bool selected);
1436    typedef void         (*GenlistSelectedFunc) (const void *data, Elm_Genlist_Item *it, Eina_Bool selected);   
1437    typedef Eina_Bool    (*GenlistMoveFunc)      ( Evas_Object *genlist, Elm_Genlist_Item *item, Elm_Genlist_Item *rel_item, Eina_Bool move_after);
1438    typedef Eina_Bool    (*GenlistRemoveItemFunc)     (Evas_Object *genlist, Elm_Genlist_Item *rel_item);
1439
1440    struct _Elm_Genlist_Item_Class
1441      {
1442         const char *item_style;
1443         struct _Elm_Genlist_Item_Class_Func
1444           {
1445              GenlistItemLabelGetFunc label_get;
1446              GenlistItemIconGetFunc icon_get;
1447              GenlistItemStateGetFunc state_get;
1448              GenlistItemDelFunc del;
1449              GenlistItemEditModeGetFunc editmode_get;
1450              GenlistItemLabelChangedFunc label_changed;
1451           } func;
1452      };
1453
1454    struct _Elm_Genlist_Edit_Class
1455      {
1456         GenlistRemoveItemFunc remove;
1457         GenlistInsertNewFunc insert_new;
1458         GenlistMoveFunc move;
1459         GenlistItemSelectedFunc item_selected;
1460         GenlistSelectedFunc selected;
1461         const char *item_style;
1462         const char *select_all_item_style;
1463         const void *select_all_data;   
1464      };
1465    EAPI Evas_Object      *elm_genlist_add(Evas_Object *parent);
1466    EAPI void              elm_genlist_clear(Evas_Object *obj);
1467    EAPI void              elm_genlist_multi_select_set(Evas_Object *obj, Eina_Bool multi);
1468    EAPI Eina_Bool         elm_genlist_multi_select_get(const Evas_Object *obj);
1469    EAPI void              elm_genlist_horizontal_mode_set(Evas_Object *obj, Elm_List_Mode mode);
1470    EAPI Elm_List_Mode     elm_genlist_horizontal_mode_get(const Evas_Object *obj);
1471    EAPI void              elm_genlist_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select);
1472    EAPI Eina_Bool         elm_genlist_always_select_mode_get(const Evas_Object *obj);
1473    EAPI void              elm_genlist_no_select_mode_set(Evas_Object *obj, Eina_Bool no_select);
1474    EAPI Eina_Bool         elm_genlist_no_select_mode_get(const Evas_Object *obj);
1475    EAPI void              elm_genlist_compress_mode_set(Evas_Object *obj, Eina_Bool compress);
1476    EAPI Eina_Bool         elm_genlist_compress_mode_get(const Evas_Object *obj);
1477    EAPI void              elm_genlist_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
1478    EAPI void              elm_genlist_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce);
1479    EAPI void              elm_genlist_homogeneous_set(Evas_Object *obj, Eina_Bool homogeneous);
1480    EAPI Eina_Bool         elm_genlist_homogeneous_get(const Evas_Object *obj);
1481    EAPI void              elm_genlist_block_count_set(Evas_Object *obj, int n);
1482    EAPI int               elm_genlist_block_count_get(const Evas_Object *obj);
1483    EAPI void              elm_genlist_longpress_timeout_set(Evas_Object *obj, double timeout);
1484    EAPI double            elm_genlist_longpress_timeout_get(const Evas_Object *obj);
1485    /* operations to add items */
1486    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);
1487    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);
1488    EAPI Elm_Genlist_Item *elm_genlist_item_insert_before(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Genlist_Item *before, Elm_Genlist_Item_Flags flags, Evas_Smart_Cb func, const void *func_data);
1489    EAPI Elm_Genlist_Item *elm_genlist_item_insert_after(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Genlist_Item *after, Elm_Genlist_Item_Flags flags, Evas_Smart_Cb func, const void *func_data);
1490    /* operations to retrieve existing items */
1491    EAPI Elm_Genlist_Item *elm_genlist_selected_item_get(const Evas_Object *obj);
1492    EAPI const Eina_List  *elm_genlist_selected_items_get(const Evas_Object *obj);
1493    EAPI Eina_List        *elm_genlist_realized_items_get(const Evas_Object *obj);
1494    EAPI Elm_Genlist_Item *elm_genlist_at_xy_item_get(const Evas_Object *obj, Evas_Coord x, Evas_Coord y, int *posret);
1495    EAPI Elm_Genlist_Item *elm_genlist_first_item_get(const Evas_Object *obj);
1496    EAPI Elm_Genlist_Item *elm_genlist_last_item_get(const Evas_Object *obj);
1497    /* available item styles:
1498     * default
1499     * default_style - The text part is a textblock
1500     * double_label
1501     * icon_top_text_bottom
1502     */
1503    /* Genlist Item operation */
1504    EAPI Elm_Genlist_Item *elm_genlist_item_next_get(const Elm_Genlist_Item *item);
1505    EAPI Elm_Genlist_Item *elm_genlist_item_prev_get(const Elm_Genlist_Item *item);
1506    EAPI Evas_Object      *elm_genlist_item_genlist_get(const Elm_Genlist_Item *item);
1507    EAPI Elm_Genlist_Item *elm_genlist_item_parent_get(const Elm_Genlist_Item *it);
1508    EAPI void              elm_genlist_item_subitems_clear(Elm_Genlist_Item *item);
1509    EAPI void              elm_genlist_item_selected_set(Elm_Genlist_Item *item, Eina_Bool selected);
1510    EAPI Eina_Bool         elm_genlist_item_selected_get(const Elm_Genlist_Item *item);
1511    EAPI void              elm_genlist_item_expanded_set(Elm_Genlist_Item *item, Eina_Bool expanded);
1512    EAPI Eina_Bool         elm_genlist_item_expanded_get(const Elm_Genlist_Item *item);
1513    EAPI int               elm_genlist_item_expanded_depth_get(const Elm_Genlist_Item *it);
1514    EAPI void              elm_genlist_item_disabled_set(Elm_Genlist_Item *item, Eina_Bool disabled);
1515    EAPI Eina_Bool         elm_genlist_item_disabled_get(const Elm_Genlist_Item *item);
1516    EAPI void              elm_genlist_item_display_only_set(Elm_Genlist_Item *it, Eina_Bool display_only);
1517    EAPI Eina_Bool         elm_genlist_item_display_only_get(const Elm_Genlist_Item *it);
1518    EAPI void              elm_genlist_item_show(Elm_Genlist_Item *item);
1519    EAPI void              elm_genlist_item_bring_in(Elm_Genlist_Item *item);
1520    EAPI void              elm_genlist_item_top_show(Elm_Genlist_Item *item);
1521    EAPI void              elm_genlist_item_top_bring_in(Elm_Genlist_Item *item);
1522    EAPI void              elm_genlist_item_middle_show(Elm_Genlist_Item *it);
1523    EAPI void              elm_genlist_item_middle_bring_in(Elm_Genlist_Item *it);
1524    EAPI void              elm_genlist_item_del(Elm_Genlist_Item *item);
1525    EAPI const void       *elm_genlist_item_data_get(const Elm_Genlist_Item *item);
1526    EAPI void              elm_genlist_item_data_set(Elm_Genlist_Item *it, const void *data);
1527    EAPI const Evas_Object *elm_genlist_item_object_get(const Elm_Genlist_Item *it);
1528    EAPI void              elm_genlist_item_update(Elm_Genlist_Item *item);
1529    EAPI void              elm_genlist_item_item_class_update(Elm_Genlist_Item *it, const Elm_Genlist_Item_Class *itc);
1530    EAPI void              elm_genlist_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v);
1531    EINA_DEPRECATED EAPI void elm_genlist_set_edit_mode(Evas_Object *obj, int emode, Elm_Genlist_Edit_Class *ec);
1532    EAPI void              elm_genlist_edit_mode_set(Evas_Object *obj, int emode, Elm_Genlist_Edit_Class *ec);
1533    EAPI void              elm_genlist_edit_selected_items_del(Evas_Object *obj);
1534    EINA_DEPRECATED EAPI void elm_genlist_selected_items_del(Evas_Object *obj);
1535    EAPI Eina_List *       elm_genlist_edit_selected_items_get(const Evas_Object *obj);
1536    EAPI void              elm_genlist_item_rename_mode_set(Elm_Genlist_Item *it, int emode);
1537
1538    EAPI Elm_Genlist_GroupItem *elm_genlist_groupitem_add(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data);
1539    EAPI void              elm_genlist_groupitem_del( Elm_Genlist_GroupItem *git);
1540    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_GroupItem *git, void (*func) (void *data, Evas_Object *obj, void *event_info), const void *func_data);   
1541    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_GroupItem *git, void (*func) (void *data, Evas_Object *obj, void *event_info), const void *func_data);
1542    EAPI void              elm_genlist_item_move_after(Elm_Genlist_Item *it, Elm_Genlist_Item *after );
1543    EAPI void              elm_genlist_effect_set(const Evas_Object *obj, Eina_Bool emode);
1544    EAPI void              elm_genlist_pinch_zoom_set(Evas_Object *obj, Eina_Bool emode);
1545    EAPI void              elm_genlist_pinch_zoom_mode_set(Evas_Object *obj, Eina_Bool emode);
1546    EAPI Eina_Bool         elm_genlist_pinch_zoom_mode_get(const Evas_Object *obj);
1547    EINA_DEPRECATED EAPI void              elm_genlist_queue_exception_set(const Evas_Object *obj, Eina_Bool emode);
1548
1549    EAPI Evas_Object *elm_check_add(Evas_Object *parent);
1550    EAPI void         elm_check_label_set(Evas_Object *obj, const char *label);
1551    EAPI const char  *elm_check_label_get(const Evas_Object *obj);
1552    EAPI void         elm_check_icon_set(Evas_Object *obj, Evas_Object *icon);
1553    EAPI Evas_Object *elm_check_icon_get(const Evas_Object *obj);
1554    EAPI void         elm_check_state_set(Evas_Object *obj, Eina_Bool state);
1555    EAPI Eina_Bool    elm_check_state_get(const Evas_Object *obj);
1556    EAPI void         elm_check_state_pointer_set(Evas_Object *obj, Eina_Bool *statep);
1557
1558    EAPI Evas_Object *elm_radio_add(Evas_Object *parent);
1559    EAPI void         elm_radio_label_set(Evas_Object *obj, const char *label);
1560    EAPI const char  *elm_radio_label_get(const Evas_Object *obj);
1561    EAPI void         elm_radio_icon_set(Evas_Object *obj, Evas_Object *icon);
1562    EAPI Evas_Object *elm_radio_icon_get(const Evas_Object *obj);
1563    EAPI void         elm_radio_group_add(Evas_Object *obj, Evas_Object *group);
1564    EAPI void         elm_radio_state_value_set(Evas_Object *obj, int value);
1565    EAPI void         elm_radio_value_set(Evas_Object *obj, int value);
1566    EAPI int          elm_radio_value_get(const Evas_Object *obj);
1567    EAPI void         elm_radio_value_pointer_set(Evas_Object *obj, int *valuep);
1568
1569    typedef struct _Elm_Segment_Item Elm_Segment_Item;
1570    EAPI Evas_Object *elm_segment_control_add(Evas_Object *parent);
1571    EAPI void         elm_segment_control_item_selected_set(Elm_Segment_Item *item, Eina_Bool select);
1572    EAPI int          elm_segment_control_item_index_get(Elm_Segment_Item *item);
1573    EAPI Evas_Object *elm_segment_control_item_object_get(Elm_Segment_Item *it);
1574    EAPI Evas_Object *elm_segment_control_item_label_object_set(Elm_Segment_Item *item, char *label);   
1575    EAPI Elm_Segment_Item * elm_segment_control_add_segment(Evas_Object *obj, Evas_Object *icon, const char *label, Eina_Bool animate);
1576    EAPI void elm_segment_control_insert_segment_at(Evas_Object *obj, Evas_Object *icon, const char *label, unsigned int index, Eina_Bool animate);
1577    EAPI void elm_segment_control_delete_segment(Evas_Object *obj, Elm_Segment_Item *item, Eina_Bool animate);
1578    EAPI void elm_segment_control_delete_segment_at(Evas_Object *obj,  unsigned int index, Eina_Bool animate);
1579    EAPI const char  *elm_segment_control_get_segment_label_at(Evas_Object *obj, unsigned int index);
1580    EAPI Evas_Object *elm_segment_control_get_segment_icon_at(Evas_Object *obj, unsigned int index);  
1581    EAPI Elm_Segment_Item *elm_segment_control_selected_segment_get(const Evas_Object *obj, int *value);
1582    EAPI int elm_segment_control_get_segment_count(Evas_Object *obj);   
1583
1584    EAPI Evas_Object *elm_page_control_add(Evas_Object *parent);
1585    EAPI void         elm_page_control_page_count_set(Evas_Object *obj, unsigned int page_count);
1586    EAPI void         elm_page_control_page_id_set(Evas_Object *obj, unsigned int page_id);
1587    EAPI unsigned int elm_page_control_page_id_get(Evas_Object *obj);
1588    EAPI Evas_Object *elm_pager_add(Evas_Object *parent);
1589    EAPI void         elm_pager_content_push(Evas_Object *obj, Evas_Object *content);
1590    EAPI void         elm_pager_content_pop(Evas_Object *obj);
1591    EAPI void         elm_pager_to_content_pop(Evas_Object *obj, Evas_Object *content);
1592    EAPI void         elm_pager_content_promote(Evas_Object *obj, Evas_Object *content);
1593    EAPI Evas_Object *elm_pager_content_bottom_get(const Evas_Object *obj);
1594    EAPI Evas_Object *elm_pager_content_top_get(const Evas_Object *obj);
1595    EAPI void         elm_pager_animation_disable_set(Evas_Object *obj, Eina_Bool disable);
1596
1597    /* available item styles:
1598     * default
1599     * fade
1600     * fade_translucide
1601     * fade_invisible
1602     */
1603
1604    typedef struct _Elm_Slideshow_Item_Class Elm_Slideshow_Item_Class;
1605    typedef struct _Elm_Slideshow_Item_Class_Func Elm_Slideshow_Item_Class_Func;
1606    typedef struct _Elm_Slideshow_Item       Elm_Slideshow_Item;
1607    typedef Evas_Object *(*SlideshowItemGetFunc) (void *data, Evas_Object *obj);
1608    typedef void         (*SlideshowItemDelFunc) (void *data, Evas_Object *obj);
1609
1610    struct _Elm_Slideshow_Item_Class
1611      {
1612         struct _Elm_Slideshow_Item_Class_Func 
1613           {
1614              SlideshowItemGetFunc get;
1615              SlideshowItemDelFunc del;
1616           } func;
1617      };
1618
1619    EAPI Evas_Object        *elm_slideshow_add(Evas_Object *parent);
1620    EAPI Elm_Slideshow_Item *elm_slideshow_item_add(Evas_Object *obj, const Elm_Slideshow_Item_Class *itc, const void *data);
1621    EAPI void                elm_slideshow_show(Elm_Slideshow_Item *item);
1622    EAPI void                elm_slideshow_next(Evas_Object *obj);
1623    EAPI void                elm_slideshow_previous(Evas_Object *obj);
1624    EAPI const Eina_List    *elm_slideshow_transitions_get(const Evas_Object *obj);
1625    EAPI void                elm_slideshow_transition_set(Evas_Object *obj, const char *);
1626    EAPI const char         *elm_slideshow_transition_get(const Evas_Object *obj);
1627    EAPI void                elm_slideshow_timeout_set(Evas_Object *obj ,int timeout);
1628    EAPI int                 elm_slideshow_timeout_get(const Evas_Object *obj);
1629    EAPI void                elm_slideshow_loop_set(Evas_Object *obj, Eina_Bool loop);
1630    EAPI Eina_Bool           elm_slideshow_loop_get(const Evas_Object *obj);
1631    EAPI void                elm_slideshow_clear(Evas_Object *obj);
1632    EAPI const Eina_List    *elm_slideshow_items_get(const Evas_Object *obj);
1633    EAPI void                elm_slideshow_item_del(Elm_Slideshow_Item *item);
1634    EAPI void               *elm_slideshow_item_data_get(Elm_Slideshow_Item *item);
1635    EAPI Elm_Slideshow_Item *elm_slideshow_item_current_get(const Evas_Object *obj);
1636    EAPI Evas_Object*        elm_slideshow_item_object_get(Elm_Slideshow_Item* item);
1637    EAPI const char         *elm_slideshow_layout_get(const Evas_Object *obj);
1638    EAPI void                elm_slideshow_layout_set(Evas_Object *obj, const char *layout);
1639    EAPI const Eina_List    *elm_slideshow_layouts_get(const Evas_Object *obj);
1640
1641
1642    EAPI Evas_Object *elm_fileselector_add(Evas_Object *parent);
1643    EAPI void         elm_fileselector_is_save_set(Evas_Object *obj, Eina_Bool is_save);
1644    EAPI Eina_Bool    elm_fileselector_is_save_get(const Evas_Object *obj);
1645    EAPI void         elm_fileselector_folder_only_set(Evas_Object *obj, Eina_Bool only);
1646    EAPI Eina_Bool    elm_fileselector_folder_only_get(const Evas_Object *obj);
1647    EAPI void         elm_fileselector_buttons_ok_cancel_set(Evas_Object *obj, Eina_Bool buttons);
1648    EAPI Eina_Bool    elm_fileselector_buttons_ok_cancel_get(const Evas_Object *obj);
1649    EAPI Eina_Bool    elm_fileselector_expandable_get(const Evas_Object *obj);
1650    EAPI void         elm_fileselector_expandable_set(Evas_Object *obj, Eina_Bool expand);
1651    EAPI void         elm_fileselector_path_set(Evas_Object *obj, const char *path);
1652    EAPI const char  *elm_fileselector_path_get(const Evas_Object *obj);
1653    EAPI const char  *elm_fileselector_selected_get(const Evas_Object *obj);
1654    EAPI Eina_Bool    elm_fileselector_selected_set(Evas_Object *obj, const char *path);
1655
1656    /* smart callbacks called:
1657     * "selected" - the user click on a file
1658     * "directory,open" - the list is populate with a new content. event_info is a directory.
1659     * "done" - the user click on the ok or cancel buttons
1660     */
1661
1662    EAPI Evas_Object *elm_progressbar_add(Evas_Object *parent);
1663    EAPI void         elm_progressbar_pulse_set(Evas_Object *obj, Eina_Bool pulse);
1664    EAPI Eina_Bool    elm_progressbar_pulse_get(const Evas_Object *obj);
1665    EAPI void         elm_progressbar_pulse(Evas_Object *obj, Eina_Bool state);
1666    EAPI void         elm_progressbar_value_set(Evas_Object *obj, double val);
1667    EAPI double       elm_progressbar_value_get(const Evas_Object *obj);
1668    EAPI void         elm_progressbar_label_set(Evas_Object *obj, const char *label);
1669    EAPI const char  *elm_progressbar_label_get(const Evas_Object *obj);
1670    EAPI void         elm_progressbar_icon_set(Evas_Object *obj, Evas_Object *icon);
1671    EAPI Evas_Object *elm_progressbar_icon_get(const Evas_Object *obj);
1672    EAPI void         elm_progressbar_span_size_set(Evas_Object *obj, Evas_Coord size);
1673    EAPI Evas_Coord   elm_progressbar_span_size_get(const Evas_Object *obj);
1674    EAPI void         elm_progressbar_unit_format_set(Evas_Object *obj, const char *format);
1675    EAPI const char  *elm_progressbar_unit_format_get(const Evas_Object *obj);
1676    EAPI void         elm_progressbar_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
1677    EAPI Eina_Bool    elm_progressbar_horizontal_get(const Evas_Object *obj);
1678    EAPI void         elm_progressbar_inverted_set(Evas_Object *obj, Eina_Bool inverted);
1679    EAPI Eina_Bool    elm_progressbar_inverted_get(const Evas_Object *obj);
1680    /* smart callbacks called:
1681     */
1682    /* available item styles:
1683     * default
1684     * wheel (simple style, no text, no progression, only pulse is available)
1685     */
1686
1687    EAPI Evas_Object *elm_separator_add(Evas_Object *parent);
1688    EAPI void         elm_separator_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
1689    EAPI Eina_Bool    elm_separator_horizontal_get(const Evas_Object *obj);
1690    /* smart callbacks called:
1691     */
1692
1693    EAPI Evas_Object *elm_spinner_add(Evas_Object *parent);
1694    EAPI void         elm_spinner_label_format_set(Evas_Object *obj, const char *fmt);
1695    EAPI const char  *elm_spinner_label_format_get(const Evas_Object *obj);
1696    EAPI void         elm_spinner_min_max_set(Evas_Object *obj, double min, double max);
1697    EAPI void         elm_spinner_min_max_get(const Evas_Object *obj, double *min, double *max);
1698    EAPI void         elm_spinner_step_set(Evas_Object *obj, double step);
1699    EAPI double       elm_spinner_step_get(const Evas_Object *obj);
1700    EAPI void         elm_spinner_value_set(Evas_Object *obj, double val);
1701    EAPI double       elm_spinner_value_get(const Evas_Object *obj);
1702    EAPI void         elm_spinner_wrap_set(Evas_Object *obj, Eina_Bool wrap);
1703    EAPI Eina_Bool    elm_spinner_wrap_get(const Evas_Object *obj);
1704    EAPI void         elm_spinner_editable_set(Evas_Object *obj, Eina_Bool editable);
1705    EAPI Eina_Bool    elm_spinner_editable_get(const Evas_Object *obj);
1706    EAPI void         elm_spinner_special_value_add(Evas_Object *obj, double value, const char *label);
1707    EAPI void         elm_spinner_interval_set(Evas_Object *obj, double interval);
1708    EAPI double       elm_spinner_interval_get(const Evas_Object *obj);
1709    /* smart callbacks called:
1710     * "changed" - when the spinner value changes
1711     * "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).
1712     */
1713    /* available item styles:
1714     * default
1715     * vertical (two up/down buttons at the right side and text left aligned)
1716     */
1717
1718    typedef struct _Elm_Index_Item Elm_Index_Item;
1719    EAPI Evas_Object *elm_index_add(Evas_Object *parent);
1720    EAPI void         elm_index_active_set(Evas_Object *obj, Eina_Bool active);
1721    EAPI void         elm_index_item_level_set(Evas_Object *obj, int level);
1722    EAPI int          elm_index_item_level_get(const Evas_Object *obj);
1723    EAPI const void  *elm_index_item_selected_get(const Evas_Object *obj, int level);
1724    EAPI void         elm_index_item_append(Evas_Object *obj, const char *letter, const void *item);
1725    EAPI void         elm_index_item_prepend(Evas_Object *obj, const char *letter, const void *item);
1726    EAPI void         elm_index_item_append_relative(Evas_Object *obj, const char *letter, const void *item, const void *relative);
1727    EAPI void         elm_index_item_prepend_relative(Evas_Object *obj, const char *letter, const void *item, const void *relative);
1728    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);
1729    EAPI void         elm_index_item_del(Evas_Object *obj, const void *item);
1730    EAPI Elm_Index_Item *elm_index_item_find(Evas_Object *obj, const void *item);
1731    EAPI void         elm_index_item_clear(Evas_Object *obj);
1732    EAPI void         elm_index_item_go(Evas_Object *obj, int level);
1733    EAPI void        *elm_index_item_data_get(const Elm_Index_Item *item);
1734    EAPI void         elm_index_item_data_set(Elm_Index_Item *it, const void *data);
1735    EAPI const char  *elm_index_item_letter_get(const Elm_Index_Item *item);
1736    EAPI void         elm_index_button_image_invisible_set(Evas_Object *obj, Eina_Bool invisible);
1737    /* smart callbacks called:
1738     * "changed" - when the selected index item changes
1739     * "delay,changed" - when the selected index item changes, but after some small idle period
1740     * "selected" - when the user releases heir finger and selects an item
1741     */
1742
1743    typedef enum _Elm_Photocam_Zoom_Mode
1744      {
1745         ELM_PHOTOCAM_ZOOM_MODE_MANUAL = 0,
1746         ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT,
1747         ELM_PHOTOCAM_ZOOM_MODE_AUTO_FILL,
1748         ELM_PHOTOCAM_ZOOM_MODE_LAST
1749      } Elm_Photocam_Zoom_Mode;
1750    EAPI Evas_Object *elm_photocam_add(Evas_Object *parent);
1751    EAPI int elm_photocam_file_set(Evas_Object *obj, const char *file);
1752    EAPI const char * elm_photocam_file_get(const Evas_Object *obj);
1753    EAPI void         elm_photocam_zoom_set(Evas_Object *obj, double zoom);
1754    EAPI double       elm_photocam_zoom_get(const Evas_Object *obj);
1755    EAPI void         elm_photocam_zoom_mode_set(Evas_Object *obj, Elm_Photocam_Zoom_Mode mode);
1756    EAPI Elm_Photocam_Zoom_Mode elm_photocam_zoom_mode_get(const Evas_Object *obj);
1757    EAPI void         elm_photocam_image_size_get(const Evas_Object *obj, int *w, int *h);
1758    EAPI void         elm_photocam_region_get(const Evas_Object *obj, int *x, int *y, int *w, int *h);
1759    EAPI void         elm_photocam_image_region_show(Evas_Object *obj, int x, int y, int w, int h);
1760    EAPI void         elm_photocam_image_region_bring_in(Evas_Object *obj, int x, int y, int w, int h);
1761    EAPI void         elm_photocam_paused_set(Evas_Object *obj, Eina_Bool paused);
1762    EAPI Eina_Bool    elm_photocam_paused_get(const Evas_Object *obj);
1763    EAPI Evas_Object *elm_photocam_internal_image_get(const Evas_Object *obj);
1764    EAPI void         elm_photocam_bounce_set(Evas_Object *obj,  Eina_Bool h_bounce, Eina_Bool v_bounce);
1765    EAPI void         elm_photocam_bounce_get(const Evas_Object *obj,  Eina_Bool *h_bounce, Eina_Bool *v_bounce);
1766
1767    /* smart callbacks called:
1768     * "clicked" - when image clicked
1769     * "press" - when mouse/finger held down initially on image
1770     * "longpressed" - when mouse/finger held for long time on image
1771     * "clicked,double" - when mouse/finger double-clicked
1772     * "load" - when photo load begins
1773     * "loaded" - when photo load done
1774     * "load,details" - when detailed image load begins
1775     * "loaded,details" - when detailed image load done
1776     * "zoom,start" - when zooming started
1777     * "zoom,stop" - when zooming stopped
1778     * "zoom,change" - when auto zoom mode changed zoom level
1779     * "scroll - the content has been scrolled (moved)
1780     * "scroll,anim,start" - scrolling animation has started
1781     * "scroll,anim,stop" - scrolling animation has stopped
1782     * "scroll,drag,start" - dragging the contents around has started
1783     * "scroll,drag,stop" - dragging the contents around has stopped
1784     */
1785
1786    /* map */
1787    typedef enum _Elm_Map_Zoom_Mode
1788      {
1789         ELM_MAP_ZOOM_MODE_MANUAL,
1790         ELM_MAP_ZOOM_MODE_AUTO_FIT,
1791         ELM_MAP_ZOOM_MODE_AUTO_FILL,
1792         ELM_MAP_ZOOM_MODE_LAST
1793      } Elm_Map_Zoom_Mode;
1794
1795    typedef enum _Elm_Map_Sources
1796      {
1797         ELM_MAP_SOURCE_MAPNIK,
1798         ELM_MAP_SOURCE_OSMARENDER,
1799         ELM_MAP_SOURCE_CYCLEMAP,
1800         ELM_MAP_SOURCE_MAPLINT,
1801         ELM_MAP_SOURCE_DECARTA,
1802         ELM_MAP_SOURCE_CUSTOM_1,
1803         ELM_MAP_SOURCE_CUSTOM_2,
1804         ELM_MAP_SOURCE_CUSTOM_3,
1805         ELM_MAP_SOURCE_CUSTOM_4,
1806         ELM_MAP_SOURCE_CUSTOM_5,
1807         ELM_MAP_SOURCE_CUSTOM_6,
1808         ELM_MAP_SOURCE_MODULE,
1809         ELM_MAP_SOURCE_LAST
1810      } Elm_Map_Sources;
1811
1812    typedef struct _Elm_Map_Marker Elm_Map_Marker;
1813    typedef struct _Elm_Map_Marker_Class Elm_Map_Marker_Class;
1814    typedef struct _Elm_Map_Group_Class Elm_Map_Group_Class;
1815    typedef Evas_Object *(*ElmMapMarkerGetFunc)      (Evas_Object *obj, Elm_Map_Marker *marker, void *data);
1816    typedef void         (*ElmMapMarkerDelFunc)      (Evas_Object *obj, Elm_Map_Marker *marker, void *data, Evas_Object *o);
1817    typedef Evas_Object *(*ElmMapMarkerIconGetFunc)  (Evas_Object *obj, Elm_Map_Marker *marker, void *data);
1818    typedef Evas_Object *(*ElmMapGroupIconGetFunc)  (Evas_Object *obj, void *data);
1819    typedef char *(*ElmMapSourceURLFunc) (void *data, int x, int y, int zoom);
1820
1821    EAPI Evas_Object *elm_map_add(Evas_Object *parent);
1822    EAPI void         elm_map_zoom_set(Evas_Object *obj, int zoom);
1823    EAPI double       elm_map_zoom_get(const Evas_Object *obj);
1824    EAPI void         elm_map_zoom_mode_set(Evas_Object *obj, Elm_Map_Zoom_Mode mode);
1825    EAPI Elm_Map_Zoom_Mode elm_map_zoom_mode_get(const Evas_Object *obj);
1826    EAPI void         elm_map_geo_region_get(const Evas_Object *obj, double *lon, double *lat);
1827    EAPI void         elm_map_geo_region_bring_in(Evas_Object *obj, double lon, double lat);
1828    EAPI void         elm_map_geo_region_show(Evas_Object *obj, double lon, double lat);
1829    EAPI void         elm_map_paused_set(Evas_Object *obj, Eina_Bool paused);
1830    EAPI Eina_Bool    elm_map_paused_get(const Evas_Object *obj);
1831    EAPI void         elm_map_paused_markers_set(Evas_Object *obj, Eina_Bool paused);
1832    EAPI Eina_Bool    elm_map_paused_markers_get(const Evas_Object *obj);
1833    EAPI void         elm_map_utils_convert_coord_into_geo(const Evas_Object *obj, int x, int y, int size, double *lon, double *lat);
1834    EAPI void         elm_map_utils_convert_geo_into_coord(const Evas_Object *obj, double lon, double lat, int size, int *x, int *y);
1835    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);
1836    EAPI void         elm_map_max_marker_per_group_set(Evas_Object *obj, int max);
1837    EAPI void         elm_map_marker_remove(Elm_Map_Marker *marker);
1838    EAPI void         elm_map_marker_bring_in(Elm_Map_Marker *marker);
1839    EAPI void         elm_map_marker_show(Elm_Map_Marker *marker);
1840    EAPI void         elm_map_markers_list_show(Eina_List *markers);
1841    EAPI Evas_Object *elm_map_marker_object_get(Elm_Map_Marker *marker);
1842    EAPI void         elm_map_marker_update(Elm_Map_Marker *marker);
1843    EAPI void         elm_map_bubbles_close(Evas_Object *obj);
1844
1845    EAPI Elm_Map_Group_Class * elm_map_group_class_new(Evas_Object *obj);
1846    EAPI void         elm_map_group_class_style_set(Elm_Map_Group_Class *clas, const char *style);
1847    EAPI void         elm_map_group_class_icon_cb_set(Elm_Map_Group_Class *clas, ElmMapGroupIconGetFunc icon_get);
1848    EAPI void         elm_map_group_class_data_set(Elm_Map_Group_Class *clas, void *data);
1849    EAPI void         elm_map_group_class_zoom_displayed_set(Elm_Map_Group_Class *clas, int zoom);
1850    EAPI void         elm_map_group_class_zoom_grouped_set(Elm_Map_Group_Class *clas, int zoom);
1851    EAPI void         elm_map_group_class_hide_set(Evas_Object *obj, Elm_Map_Group_Class *clas, Eina_Bool hide);
1852
1853    EAPI Elm_Map_Marker_Class * elm_map_marker_class_new(Evas_Object *obj);
1854    EAPI void         elm_map_marker_class_style_set(Elm_Map_Marker_Class *clas, const char *style);
1855    EAPI void         elm_map_marker_class_icon_cb_set(Elm_Map_Marker_Class *clas, ElmMapMarkerIconGetFunc icon_get);
1856    EAPI void         elm_map_marker_class_get_cb_set(Elm_Map_Marker_Class *clas, ElmMapMarkerGetFunc get);
1857    EAPI void         elm_map_marker_class_del_cb_set(Elm_Map_Marker_Class *clas, ElmMapMarkerDelFunc del);
1858
1859    EAPI void         elm_map_source_set(Evas_Object *obj, Elm_Map_Sources source);
1860    EAPI Elm_Map_Sources elm_map_source_get(const Evas_Object *obj);
1861    EAPI void         elm_map_source_custom_api_set(Elm_Map_Sources source, const char *label,
1862                                 int zoom_min, int zoom_max, ElmMapSourceURLFunc url_cb);
1863    EAPI int          elm_map_source_zoom_min_get(Elm_Map_Sources source);
1864    EAPI int          elm_map_source_zoom_max_get(Elm_Map_Sources source);
1865    EAPI const char  *elm_map_source_name_get(Elm_Map_Sources source);
1866    /* smart callbacks called:
1867     * "clicked" - when image clicked
1868     * "press" - when mouse/finger held down initially on image
1869     * "longpressed" - when mouse/finger held for long time on image
1870     * "clicked,double" - when mouse/finger double-clicked
1871     * "load,details" - when detailed image load begins
1872     * "loaded,details" - when detailed image load done
1873     * "zoom,start" - when zooming started
1874     * "zoom,stop" - when zooming stopped
1875     * "zoom,change" - when auto zoom mode changed zoom level
1876     * "scroll - the content has been scrolled (moved)
1877     * "scroll,anim,start" - scrolling animation has started
1878     * "scroll,anim,stop" - scrolling animation has stopped
1879     * "scroll,drag,start" - dragging the contents around has started
1880     * "scroll,drag,stop" - dragging the contents around has stopped
1881     */
1882
1883    /* panel */
1884    typedef enum _Elm_Panel_Orient
1885      {
1886         ELM_PANEL_ORIENT_TOP,
1887         ELM_PANEL_ORIENT_BOTTOM,
1888         ELM_PANEL_ORIENT_LEFT,
1889         ELM_PANEL_ORIENT_RIGHT,
1890      } Elm_Panel_Orient;
1891    EAPI Evas_Object          *elm_panel_add(Evas_Object *parent);
1892    EAPI void                  elm_panel_orient_set(Evas_Object *obj, Elm_Panel_Orient orient);
1893    EAPI Elm_Panel_Orient      elm_panel_orient_get(Evas_Object *obj);
1894    EAPI void                  elm_panel_content_set(Evas_Object *obj, Evas_Object *content);
1895    EAPI Evas_Object          *elm_panel_content_unset(Evas_Object *obj);
1896    EAPI void                  elm_panel_hidden_set(Evas_Object *obj, Eina_Bool hidden);
1897    EAPI Eina_Bool             elm_panel_hidden_get(Evas_Object *obj);
1898    EAPI void                  elm_panel_toggle(Evas_Object *obj);
1899
1900
1901    /* panes */
1902    /**
1903     * TODO
1904     *
1905     * Update the minimun height of the bar in the theme. No minimun should be set in the vertical theme
1906     * Add events (move, start ...)
1907     */
1908    EAPI Evas_Object          *elm_panes_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
1909    EAPI void                  elm_panes_content_left_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
1910    EAPI void                  elm_panes_content_right_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
1911    EAPI Evas_Object          *elm_panes_content_left_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1912    EAPI Evas_Object          *elm_panes_content_right_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1913    EAPI Evas_Object          *elm_panes_content_left_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
1914    EAPI Evas_Object          *elm_panes_content_right_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
1915    EAPI double                elm_panes_content_left_size_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1916    EAPI void                  elm_panes_content_left_size_set(Evas_Object *obj, double size) EINA_ARG_NONNULL(1);
1917    EAPI void                  elm_panes_horizontal_set(Evas_Object *obj, Eina_Bool horizontal) EINA_ARG_NONNULL(1);
1918    EAPI Eina_Bool             elm_panes_horizontal_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1919    EAPI void                  elm_panes_fixed_set(Evas_Object *obj, Eina_Bool fixed) EINA_ARG_NONNULL(1);
1920    EAPI Eina_Bool             elm_panes_fixed_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1921    /* flip */
1922    typedef enum _Elm_Flip_Mode
1923      {
1924         ELM_FLIP_ROTATE_Y_CENTER_AXIS,
1925         ELM_FLIP_ROTATE_X_CENTER_AXIS,
1926         ELM_FLIP_ROTATE_XZ_CENTER_AXIS,
1927         ELM_FLIP_ROTATE_YZ_CENTER_AXIS,
1928         ELM_FLIP_CUBE_LEFT,
1929         ELM_FLIP_CUBE_RIGHT,
1930         ELM_FLIP_CUBE_UP,
1931         ELM_FLIP_CUBE_DOWN
1932      } Elm_Flip_Mode;
1933
1934    EAPI Evas_Object *elm_flip_add(Evas_Object *parent);
1935    EAPI void         elm_flip_content_front_set(Evas_Object *obj, Evas_Object *content);
1936    EAPI void         elm_flip_content_back_set(Evas_Object *obj, Evas_Object *content);
1937    EAPI Evas_Object *elm_flip_content_front_get(const Evas_Object *obj);
1938    EAPI Evas_Object *elm_flip_content_back_get(const Evas_Object *obj);
1939    EAPI Eina_Bool    elm_flip_front_get(const Evas_Object *obj);
1940    EAPI void         elm_flip_perspective_set(Evas_Object *obj, Evas_Coord foc, Evas_Coord x, Evas_Coord y);
1941    EAPI void         elm_flip_go(Evas_Object *obj, Elm_Flip_Mode mode);
1942    /* smart callbacks called:
1943     * "animate,done" - when a flip animation is finished
1944     */
1945
1946    EAPI Evas_Object *elm_scrolled_entry_add(Evas_Object *parent);
1947    EAPI void         elm_scrolled_entry_single_line_set(Evas_Object *obj, Eina_Bool single_line);
1948    EAPI Eina_Bool    elm_scrolled_entry_single_line_get(const Evas_Object *obj);
1949    EAPI void         elm_scrolled_entry_password_set(Evas_Object *obj, Eina_Bool password);
1950    EAPI Eina_Bool    elm_scrolled_entry_password_get(const Evas_Object *obj);
1951    EAPI void         elm_scrolled_entry_entry_set(Evas_Object *obj, const char *entry);
1952    EAPI const char  *elm_scrolled_entry_entry_get(const Evas_Object *obj);
1953    EAPI const char  *elm_scrolled_entry_selection_get(const Evas_Object *obj);
1954    EAPI void         elm_scrolled_entry_entry_insert(Evas_Object *obj, const char *entry);
1955    EAPI void         elm_scrolled_entry_line_wrap_set(Evas_Object *obj, Eina_Bool wrap);
1956    EAPI void         elm_scrolled_entry_line_char_wrap_set(Evas_Object *obj, Eina_Bool wrap);
1957    EAPI void         elm_scrolled_entry_editable_set(Evas_Object *obj, Eina_Bool editable);
1958    EAPI Eina_Bool    elm_scrolled_entry_editable_get(const Evas_Object *obj);
1959    EAPI void         elm_scrolled_entry_select_none(Evas_Object *obj);
1960    EAPI void         elm_scrolled_entry_select_all(Evas_Object *obj);
1961    EAPI Eina_Bool    elm_scrolled_entry_cursor_next(Evas_Object *obj);
1962    EAPI Eina_Bool    elm_scrolled_entry_cursor_prev(Evas_Object *obj);
1963    EAPI Eina_Bool    elm_scrolled_entry_cursor_up(Evas_Object *obj);
1964    EAPI Eina_Bool    elm_scrolled_entry_cursor_down(Evas_Object *obj);
1965    EAPI void         elm_scrolled_entry_cursor_begin_set(Evas_Object *obj);
1966    EAPI void         elm_scrolled_entry_cursor_end_set(Evas_Object *obj);
1967    EAPI void         elm_scrolled_entry_cursor_line_begin_set(Evas_Object *obj);
1968    EAPI void         elm_scrolled_entry_cursor_line_end_set(Evas_Object *obj);
1969    EAPI void         elm_scrolled_entry_cursor_selection_begin(Evas_Object *obj);
1970    EAPI void         elm_scrolled_entry_cursor_selection_end(Evas_Object *obj);
1971    EAPI Eina_Bool    elm_scrolled_entry_cursor_is_format_get(const Evas_Object *obj);
1972    EAPI Eina_Bool    elm_scrolled_entry_cursor_is_visible_format_get(const Evas_Object *obj);
1973    EAPI const char  *elm_scrolled_entry_cursor_content_get(const Evas_Object *obj);
1974    EAPI void         elm_scrolled_entry_selection_cut(Evas_Object *obj);
1975    EAPI void         elm_scrolled_entry_selection_copy(Evas_Object *obj);
1976    EAPI void         elm_scrolled_entry_selection_paste(Evas_Object *obj);
1977    EAPI void         elm_scrolled_entry_context_menu_clear(Evas_Object *obj);
1978    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);
1979    EAPI void         elm_scrolled_entry_context_menu_disabled_set(Evas_Object *obj, Eina_Bool disabled);
1980    EAPI Eina_Bool    elm_scrolled_entry_context_menu_disabled_get(const Evas_Object *obj);
1981    EAPI void         elm_scrolled_entry_scrollbar_policy_set(Evas_Object *obj, Elm_Scroller_Policy h, Elm_Scroller_Policy v);
1982    EAPI void         elm_scrolled_entry_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
1983    EAPI void         elm_scrolled_entry_maximum_bytes_set(Evas_Object *obj, int max_no_of_bytes);
1984    EINA_DEPRECATED EAPI void elm_scrolled_entry_password_show_last_character_set(Evas_Object *obj, Eina_Bool show_last_character);
1985
1986    EAPI void         elm_scrolled_entry_input_panel_enabled_set(Evas_Object *obj, Eina_Bool enabled);
1987    EAPI void         elm_scrolled_entry_input_panel_layout_set(Evas_Object *obj, Elm_Input_Panel_Layout layout);
1988    EAPI Ecore_IMF_Context *elm_scrolled_entry_imf_context_get(Evas_Object *obj);
1989    EAPI void         elm_scrolled_entry_autocapitalization_set(Evas_Object *obj, Eina_Bool autocap);
1990    EAPI void         elm_scrolled_entry_autoperiod_set(Evas_Object *obj, Eina_Bool autoperiod);
1991
1992    EAPI Evas_Object *elm_conformant_add(Evas_Object *parent);
1993    EAPI void         elm_conformant_content_set(Evas_Object *obj, Evas_Object *content);
1994    EAPI Evas_Object *elm_conformant_content_unset(Evas_Object *obj);
1995
1996
1997    EAPI Evas_Object *elm_mapbuf_add(Evas_Object *parent);
1998    EAPI void         elm_mapbuf_content_set(Evas_Object *obj, Evas_Object *content);
1999    EAPI Evas_Object *elm_mapbuf_content_unset(Evas_Object *obj);
2000    EAPI void         elm_mapbuf_enabled_set(Evas_Object *obj, Eina_Bool enabled);
2001    EAPI Eina_Bool    elm_mapbuf_enabled_get(const Evas_Object *obj);
2002    EAPI void         elm_mapbuf_smooth_set(Evas_Object *obj, Eina_Bool smooth);
2003    EAPI Eina_Bool    elm_mapbuf_smooth_get(const Evas_Object *obj);
2004    EAPI void         elm_mapbuf_alpha_set(Evas_Object *obj, Eina_Bool alpha);
2005    EAPI Eina_Bool    elm_mapbuf_alpha_get(const Evas_Object *obj);
2006
2007    /* animator */
2008    typedef enum 
2009      {
2010         ELM_ANIMATOR_CURVE_LINEAR,
2011         ELM_ANIMATOR_CURVE_IN_OUT,
2012         ELM_ANIMATOR_CURVE_IN,
2013         ELM_ANIMATOR_CURVE_OUT
2014      } Elm_Animator_Curve_Style;
2015    typedef struct _Elm_Animator Elm_Animator;
2016   /**
2017    * Called back per loop of an elementary animators cycle
2018    * @param data user-data given to elm_animator_operation_callback_set()
2019    * @param animator the animator being run
2020    * @param double the position in the animation
2021    */
2022    typedef void (*Elm_Animator_Operation_Cb) (void *data, Elm_Animator *animator, double frame);
2023   /**
2024    * Called back when an elementary animator finishes
2025    * @param data user-data given to elm_animator_completion_callback_set()
2026    */
2027    typedef void (*Elm_Animator_Completion_Cb) (void *data);
2028
2029    EAPI Elm_Animator*            elm_animator_add(Evas_Object *parent);
2030    EAPI void                     elm_animator_del(Elm_Animator *animator);
2031    EAPI void                     elm_animator_duration_set(Elm_Animator *animator, double duration);
2032    EAPI void                     elm_animator_operation_callback_set(Elm_Animator *animator, Elm_Animator_Operation_Cb func, void *data);
2033    EAPI void                     elm_animator_completion_callback_set(Elm_Animator *animator, Elm_Animator_Completion_Cb func, void *data);
2034    EAPI void                     elm_animator_stop(Elm_Animator *animator);
2035    EAPI void                     elm_animator_repeat_set(Elm_Animator *animator, unsigned int repeat_cnt);
2036    EAPI void                     elm_animator_animate(Elm_Animator *animator);
2037    EAPI void                     elm_animator_curve_style_set(Elm_Animator *animator, Elm_Animator_Curve_Style cs);
2038    EAPI void                     elm_animator_auto_reverse_set(Elm_Animator *animator, Eina_Bool reverse);
2039    EAPI Elm_Animator_Curve_Style elm_animator_curve_style_get(const Elm_Animator *animator) EINA_ARG_NONNULL(1);
2040    EAPI Eina_Bool                elm_animator_auto_reverse_get(const Elm_Animator *animator) EINA_ARG_NONNULL(1);
2041    EAPI Eina_Bool                elm_animator_operating_get(const Elm_Animator *animator) EINA_ARG_NONNULL(1);
2042    EAPI unsigned int             elm_animator_repeat_get(const Elm_Animator *animator);
2043    EAPI void                     elm_animator_pause(Elm_Animator *animator);
2044    EAPI void                     elm_animator_resume(Elm_Animator *animator);
2045
2046    /* calendar */
2047    typedef enum 
2048      {
2049         ELM_CALENDAR_UNIQUE, 
2050         ELM_CALENDAR_DAILY,
2051         ELM_CALENDAR_WEEKLY,
2052         ELM_CALENDAR_MONTHLY, 
2053         ELM_CALENDAR_ANNUALLY
2054      } Elm_Calendar_Mark_Repeat;
2055    typedef struct _Elm_Calendar_Mark Elm_Calendar_Mark;
2056
2057    EAPI Evas_Object *elm_calendar_add(Evas_Object *parent);
2058    EAPI const char **elm_calendar_weekdays_names_get(const Evas_Object *obj);
2059    EAPI void         elm_calendar_weekdays_names_set(Evas_Object *obj, const char *weekdays[]);
2060    EAPI double       elm_calendar_interval_get(const Evas_Object *obj);
2061    EAPI void         elm_calendar_interval_set(Evas_Object *obj, double interval);
2062    EAPI void         elm_calendar_min_max_year_get(const Evas_Object *obj, int *min, int *max);
2063    EAPI void         elm_calendar_min_max_year_set(Evas_Object *obj, int min, int max);
2064    EAPI Eina_Bool    elm_calendar_day_selection_enabled_get(const Evas_Object *obj);
2065    EAPI void         elm_calendar_day_selection_enabled_set(Evas_Object *obj, Eina_Bool enabled);
2066    EAPI Eina_Bool    elm_calendar_selected_time_get(const Evas_Object *obj, struct tm *selected_time);
2067    EAPI void         elm_calendar_selected_time_set(Evas_Object *obj, struct tm *selected_time);
2068    EAPI void         elm_calendar_format_function_set(Evas_Object *obj, char * (*format_function) (struct tm *stime));
2069    EAPI Elm_Calendar_Mark *elm_calendar_mark_add(Evas_Object *obj, const char *mark_type, struct tm *mark_time, Elm_Calendar_Mark_Repeat repeat);
2070    EAPI void         elm_calendar_mark_del(Elm_Calendar_Mark *mark);
2071    EAPI void         elm_calendar_marks_clear(Evas_Object *obj);
2072    EAPI const Eina_List *elm_calendar_marks_get(const Evas_Object *obj);
2073    EAPI void         elm_calendar_marks_draw(Evas_Object *obj);
2074    EAPI void         elm_calendar_text_weekday_color_set(const Evas_Object *obj, int pos);
2075    EAPI void         elm_calendar_text_saturday_color_set(const Evas_Object *obj, int pos);
2076    EAPI void         elm_calendar_text_sunday_color_set(const Evas_Object *obj, int pos);
2077
2078    typedef struct _Picker_Item Elm_Picker_Item;
2079    EINA_DEPRECATED EAPI Evas_Object     *elm_picker_add(Evas_Object *parent);
2080    EINA_DEPRECATED EAPI void             elm_picker_next(Evas_Object *obj);
2081    EINA_DEPRECATED EAPI void             elm_picker_prev(Evas_Object *obj);
2082    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);
2083    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);
2084    EINA_DEPRECATED EAPI const Eina_List *elm_picker_items_get(Evas_Object *obj);
2085    EINA_DEPRECATED EAPI Elm_Picker_Item *elm_picker_first_item_get(Evas_Object *obj);
2086    EINA_DEPRECATED EAPI Elm_Picker_Item *elm_picker_last_item_get(Evas_Object *obj);
2087    EINA_DEPRECATED EAPI Elm_Picker_Item *elm_picker_selected_item_get(Evas_Object *obj);
2088    EINA_DEPRECATED EAPI void             elm_picker_item_selected_set(Elm_Picker_Item *item);
2089    EINA_DEPRECATED EAPI void             elm_picker_item_del(Elm_Picker_Item *item);
2090    EINA_DEPRECATED EAPI const char      *elm_picker_item_label_get(Elm_Picker_Item *item);
2091    EINA_DEPRECATED EAPI void             elm_picker_item_label_set(Elm_Picker_Item *item, const char *label);
2092    EINA_DEPRECATED EAPI Elm_Picker_Item *elm_picker_item_prev(Elm_Picker_Item *item);
2093    EINA_DEPRECATED EAPI Elm_Picker_Item *elm_picker_item_next(Elm_Picker_Item *item);
2094    /* smart callback called:
2095     * "changed" - when picker selected item is changed
2096     * "overflowed" - when picker item is changed to first item from last item
2097     * "underflowed" - when picker item is changed to last item from first item.
2098     */
2099    /* available styles:
2100     * default
2101     * no_button
2102     * timepicker/ampm
2103     */
2104
2105    typedef struct _Discpicker_Item Elm_Discpicker_Item;
2106    EINA_DEPRECATED EAPI Evas_Object     *elm_discpicker_add(Evas_Object *parent);
2107    EINA_DEPRECATED EAPI void             elm_discpicker_row_height_set(Evas_Object *obj, unsigned int row_height);
2108    EINA_DEPRECATED EAPI void             elm_discpicker_next(Evas_Object *obj);
2109    EINA_DEPRECATED EAPI void             elm_discpicker_prev(Evas_Object *obj);
2110    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);
2111    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);
2112    EINA_DEPRECATED EAPI const Eina_List *elm_discpicker_items_get(Evas_Object *obj);
2113    EINA_DEPRECATED EAPI Elm_Discpicker_Item *elm_discpicker_first_item_get(Evas_Object *obj);
2114    EINA_DEPRECATED EAPI Elm_Discpicker_Item *elm_discpicker_last_item_get(Evas_Object *obj);
2115    EINA_DEPRECATED EAPI Elm_Discpicker_Item *elm_discpicker_selected_item_get(Evas_Object *obj);
2116    EINA_DEPRECATED EAPI void             elm_discpicker_item_selected_set(Elm_Discpicker_Item *item);
2117    EINA_DEPRECATED EAPI void             elm_discpicker_item_del(Elm_Discpicker_Item *item);
2118    EINA_DEPRECATED EAPI const char      *elm_discpicker_item_label_get(Elm_Discpicker_Item *item);
2119    EINA_DEPRECATED EAPI void             elm_discpicker_item_label_set(Elm_Discpicker_Item *item, const char *label);
2120    EINA_DEPRECATED EAPI Elm_Discpicker_Item *elm_discpicker_item_prev(Elm_Discpicker_Item *item);
2121    EINA_DEPRECATED EAPI Elm_Discpicker_Item *elm_discpicker_item_next(Elm_Discpicker_Item *item);
2122    EINA_DEPRECATED EAPI void            *elm_discpicker_item_data_get(Elm_Discpicker_Item *item);
2123    EINA_DEPRECATED EAPI void             elm_discpicker_item_data_set(Elm_Discpicker_Item *item, void *data);
2124    EINA_DEPRECATED EAPI Eina_Bool        elm_discpicker_item_disabled_get(Elm_Discpicker_Item *item);
2125    EINA_DEPRECATED EAPI void             elm_discpicker_item_disabled_set(Elm_Discpicker_Item *item, Eina_Bool disabled);
2126     /* smart callbacks called:
2127     * "selected" - when discpicker selected item is changed
2128     * "overflowed" - when discpicker item is changed to first item from last item
2129     * "underflowed" - when discpicker item is changed to last item from first item.
2130     */
2131    /* available styles:
2132     * default
2133     */
2134
2135    EAPI Evas_Object *elm_timepicker_add(Evas_Object *parent);
2136    EAPI void         elm_timepicker_time_set(Evas_Object *obj, int hrs, int min, int sec);
2137    EAPI void         elm_timepicker_time_get(Evas_Object *obj, int *hrs, int *min, int *sec);
2138    EAPI void         elm_timepicker_show_am_pm_set(Evas_Object *obj, Eina_Bool am_pm);
2139    EAPI void         elm_timepicker_show_seconds_set(Evas_Object *obj, Eina_Bool seconds);
2140    /* smart callback called:
2141     * "changed" - when timepicker selected item is changed
2142     */
2143    /* available styles:
2144     * default
2145     */
2146
2147    EAPI Evas_Object *elm_datepicker_add(Evas_Object *parent);
2148    EAPI void         elm_datepicker_date_set(Evas_Object *obj, int year, int month, int day);
2149    EAPI void         elm_datepicker_date_get(const Evas_Object *obj, int *year, int *month, int *day);
2150    EAPI void         elm_datepicker_date_min_set(Evas_Object *obj, int year, int month, int day);  // Not implemented
2151    EAPI void         elm_datepicker_date_min_get(const Evas_Object *obj, int *year, int *month, int *day);
2152    EAPI void         elm_datepicker_date_max_set(Evas_Object *obj, int year, int month, int day);  // Not implemented
2153    EAPI void         elm_datepicker_date_max_get(const Evas_Object *obj, int *year, int *month, int *day);
2154    EAPI void         elm_datepicker_date_format_set(Evas_Object *obj, const char *fmt);
2155    EAPI const char  *elm_datepicker_date_format_get(const Evas_Object *obj);
2156    /* smart callback called:
2157     * "changed" - when datepicker selected item is changed
2158     */
2159    /* available styles:
2160     * default
2161     */
2162
2163    /* datefield */
2164    typedef enum _Elm_Datefield_Layout
2165      {
2166         ELM_DATEFIELD_LAYOUT_TIME,
2167         ELM_DATEFIELD_LAYOUT_DATE,
2168         ELM_DATEFIELD_LAYOUT_DATEANDTIME
2169      } Elm_Datefield_Layout;
2170   
2171    EAPI Evas_Object *elm_datefield_add(Evas_Object *parent);
2172    EAPI void         elm_datefield_layout_set(Evas_Object *obj, Elm_Datefield_Layout layout);
2173    EAPI Elm_Datefield_Layout elm_datefield_layout_get(const Evas_Object *obj);
2174    EAPI void         elm_datefield_date_set(Evas_Object *obj, int year, int month, int day, int hour, int min);
2175    EAPI void         elm_datefield_date_get(const Evas_Object *obj, int *year, int *month, int *day, int *hour, int *min);
2176    EAPI Eina_Bool elm_datefield_date_max_set(Evas_Object *obj, int year, int month, int day);
2177    EAPI void         elm_datefield_date_max_get(const Evas_Object *obj, int *year, int *month, int *day);
2178    EAPI Eina_Bool elm_datefield_date_min_set(Evas_Object *obj, int year, int month, int day);
2179    EAPI void         elm_datefield_date_min_get(const Evas_Object *obj, int *year, int *month, int *day);
2180    EAPI void         elm_datefield_time_mode_set(Evas_Object *obj, Eina_Bool mode);    
2181    EAPI Eina_Bool    elm_datefield_time_mode_get(const Evas_Object *obj);
2182    EAPI void         elm_datefield_date_format_set(Evas_Object *obj, const char *fmt);
2183    EAPI const char  *elm_datefield_date_format_get(const Evas_Object *obj);
2184    EAPI void         elm_datefield_input_panel_state_callback_add(Evas_Object *obj, void (*pEventCallbackFunc) (void *data, Evas_Object *obj, int value), void *data);
2185    EAPI void         elm_datefield_input_panel_state_callback_del(Evas_Object *obj, void (*pEventCallbackFunc) (void *data, Evas_Object *obj, int value));  
2186    /* smart callbacks called:
2187    * "changed" - when datefield entry is changed, this signal is sent.
2188    */
2189    
2190    /* titlebar */
2191    EINA_DEPRECATED EAPI Evas_Object *elm_titlebar_add(Evas_Object *parent);
2192    EINA_DEPRECATED EAPI void         elm_titlebar_label_set(Evas_Object *obj, const char *label);
2193    EINA_DEPRECATED EAPI const char  *elm_titlebar_label_get(Evas_Object *obj);
2194    EINA_DEPRECATED EAPI void         elm_titlebar_icon_set(Evas_Object *obj, Evas_Object *icon);
2195    EINA_DEPRECATED EAPI Evas_Object *elm_titlebar_icon_get(Evas_Object *obj);
2196    EINA_DEPRECATED EAPI void         elm_titlebar_end_set(Evas_Object *obj, Evas_Object *end);
2197    EINA_DEPRECATED EAPI Evas_Object *elm_titlebar_end_get(Evas_Object *obj);
2198
2199    /* popup */
2200    typedef enum _Elm_Popup_Response
2201      {
2202         ELM_POPUP_RESPONSE_NONE = -1,
2203         ELM_POPUP_RESPONSE_TIMEOUT = -2,
2204         ELM_POPUP_RESPONSE_OK = -3,
2205         ELM_POPUP_RESPONSE_CANCEL = -4, 
2206         ELM_POPUP_RESPONSE_CLOSE = -5
2207      } Elm_Popup_Response;
2208
2209    typedef enum _Elm_Popup_Mode
2210      {
2211         ELM_POPUP_TYPE_NONE = 0,
2212         ELM_POPUP_TYPE_ALERT = (1 << 0)
2213      } Elm_Popup_Mode;
2214
2215    typedef enum _Elm_Popup_Orient
2216      {
2217         ELM_POPUP_ORIENT_TOP,
2218         ELM_POPUP_ORIENT_CENTER,
2219         ELM_POPUP_ORIENT_BOTTOM,
2220         ELM_POPUP_ORIENT_LEFT,
2221         ELM_POPUP_ORIENT_RIGHT,
2222         ELM_POPUP_ORIENT_TOP_LEFT,
2223         ELM_POPUP_ORIENT_TOP_RIGHT,
2224         ELM_POPUP_ORIENT_BOTTOM_LEFT,
2225         ELM_POPUP_ORIENT_BOTTOM_RIGHT
2226      } Elm_Popup_Orient;
2227
2228    /* smart callbacks called:
2229     * "response" - when ever popup is closed, this signal is sent with appropriate response id.".
2230     */
2231
2232    EAPI Evas_Object *elm_popup_add(Evas_Object *parent);
2233    EAPI void         elm_popup_desc_set(Evas_Object *obj, const char *text);
2234    EAPI const char  *elm_popup_desc_get(Evas_Object *obj);
2235    EAPI void         elm_popup_title_label_set(Evas_Object *obj, const char *text);
2236    EAPI const char  *elm_popup_title_label_get(Evas_Object *obj);
2237    EAPI void         elm_popup_title_icon_set(Evas_Object *obj, Evas_Object *icon);
2238    EAPI Evas_Object *elm_popup_title_icon_get(Evas_Object *obj);
2239    EAPI void         elm_popup_content_set(Evas_Object *obj, Evas_Object *content);
2240    EAPI Evas_Object* elm_popup_content_get(Evas_Object *obj);
2241    EAPI void         elm_popup_buttons_add(Evas_Object *obj,int no_of_buttons, char *first_button_text,  ...);
2242    EAPI Evas_Object* elm_popup_with_buttons_add(Evas_Object *parent, char *title, char *desc_text,int no_of_buttons, char *first_button_text, ... );
2243    EAPI void         elm_popup_timeout_set(Evas_Object *obj, int timeout);
2244    EAPI void         elm_popup_mode_set(Evas_Object *obj, Elm_Popup_Mode mode);
2245    EAPI void         elm_popup_response(Evas_Object *obj, int  response_id);
2246    EAPI void         elm_popup_orient_set(Evas_Object *obj, Elm_Popup_Orient orient);
2247    EINA_DEPRECATED EAPI void         elm_popup_rotation_set(Evas_Object *obj, int rot_angle);
2248    EAPI int          elm_popup_run(Evas_Object *obj);
2249    /* Contextual Popup */
2250    typedef struct _Ctxpopup_Item Elm_Ctxpopup_Item;
2251    
2252    typedef enum _Ctxpopup_Arrow_Direction
2253      {
2254         ELM_CTXPOPUP_ARROW_DOWN,
2255         ELM_CTXPOPUP_ARROW_RIGHT,
2256         ELM_CTXPOPUP_ARROW_LEFT,
2257         ELM_CTXPOPUP_ARROW_UP,
2258      } Elm_Ctxpopup_Arrow;
2259
2260    EAPI Evas_Object *elm_ctxpopup_add(Evas_Object *parent);
2261    EAPI void         elm_ctxpopup_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
2262    EAPI Eina_Bool    elm_ctxpopup_horizontal_get(Evas_Object *obj);
2263    EAPI void         elm_ctxpopup_item_icon_set(Elm_Ctxpopup_Item *item, Evas_Object *icon);
2264    EAPI void         elm_ctxpopup_item_label_set(Elm_Ctxpopup_Item *item, const char *label);
2265    EINA_DEPRECATED EAPI Elm_Ctxpopup_Item *elm_ctxpopup_label_add(Evas_Object *obj, const char *label, Evas_Smart_Cb func, void *data);
2266    EINA_DEPRECATED EAPI Elm_Ctxpopup_Item *elm_ctxpopup_icon_add(Evas_Object *obj, Evas_Object *icon, Evas_Smart_Cb func, void *data);
2267    EAPI Elm_Ctxpopup_Item *elm_ctxpopup_item_add(Evas_Object *obj, Evas_Object *icon, const char* label, Evas_Smart_Cb func, void *data);
2268    EAPI void         elm_ctxpopup_item_del(Elm_Ctxpopup_Item *item);
2269    EAPI void         elm_ctxpopup_item_disabled_set(Elm_Ctxpopup_Item *item, Eina_Bool disabled);
2270    EAPI void         elm_ctxpopup_clear(Evas_Object *obj);
2271    EAPI const char  *elm_ctxpopup_item_label_get(Elm_Ctxpopup_Item *item);      
2272    EAPI Evas_Object *elm_ctxpopup_item_icon_get(Elm_Ctxpopup_Item *item); 
2273    EAPI void         elm_ctxpopup_scroller_disabled_set(Evas_Object *obj, Eina_Bool disabled);
2274    EAPI void         elm_ctxpopup_screen_dimmed_disabled_set(Evas_Object *obj, Eina_Bool disabled);
2275    EAPI void         elm_ctxpopup_button_append(Evas_Object *obj, const char *label, Evas_Smart_Cb func, const void *data);
2276    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);
2277    EAPI void         elm_ctxpopup_content_set(Evas_Object *obj, Evas_Object *content);
2278    EAPI Evas_Object *elm_ctxpopup_content_unset(Evas_Object *obj);
2279    EAPI void         elm_ctxpopup_position_forced_set(Evas_Object *obj, Eina_Bool forced);
2280    EAPI Eina_Bool    elm_ctxpopup_position_forced_get(Evas_Object *obj);
2281    EAPI void         elm_ctxpopup_area_set(Evas_Object *obj, Evas_Object *rect); 
2282    
2283    /* Tab */
2284    typedef enum _Elm_Tab_Move_Type
2285      {
2286         ELM_TAB_MOVE_LEFT = 0,
2287         ELM_TAB_MOVE_RIGHT = 1
2288      } Elm_Tab_Move_Type;
2289
2290    typedef enum _Elm_Tab_Mode_Type
2291      {
2292         ELM_TAB_PORTRAIT_2 = 2,
2293         ELM_TAB_PORTRAIT_3 = 3,
2294         ELM_TAB_PORTRAIT_4 = 4,
2295         ELM_TAB_LANDSCAPE_2 = 12,
2296         ELM_TAB_LANDSCAPE_3 = 13,
2297         ELM_TAB_LANDSCAPE_4 = 14,
2298         ELM_TAB_LANDSCAPE_5 = 15,
2299      } Elm_Tab_Mode_Type;
2300
2301    typedef struct _Elm_Tab_Item Elm_Tab_Item;
2302
2303    EINA_DEPRECATED EAPI Evas_Object  *elm_tab_add(Evas_Object *parent);
2304    EINA_DEPRECATED EAPI void          elm_tab_set(Evas_Object *obj, int mode);
2305    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);
2306    EINA_DEPRECATED EAPI void          elm_tab_item_del(Elm_Tab_Item *item);
2307    EINA_DEPRECATED EAPI void          elm_tab_item_select(Elm_Tab_Item *item);
2308    EINA_DEPRECATED EAPI Evas_Object  *elm_tab_item_icon_get(Elm_Tab_Item *item);
2309    EINA_DEPRECATED EAPI const char   *elm_tab_item_label_get(Elm_Tab_Item *item);
2310    EINA_DEPRECATED EAPI void          elm_tab_item_label_set(Elm_Tab_Item *item, const char *label);
2311    EINA_DEPRECATED EAPI void          elm_tab_item_badge_set(Elm_Tab_Item *item, const int badge);   
2312    EINA_DEPRECATED EAPI Elm_Tab_Item *elm_tab_selected_item_get(Evas_Object *obj);   
2313    EINA_DEPRECATED EAPI Elm_Tab_Item *elm_tab_first_item_get(Evas_Object *obj);   
2314    EINA_DEPRECATED EAPI Elm_Tab_Item *elm_tab_last_item_get(Evas_Object *obj);   
2315    EINA_DEPRECATED EAPI Eina_List    *elm_tab_items_get(Evas_Object *obj);   
2316    EINA_DEPRECATED EAPI Elm_Tab_Item *elm_tab_item_prev(Elm_Tab_Item *item);   
2317    EINA_DEPRECATED EAPI Elm_Tab_Item *elm_tab_item_next(Elm_Tab_Item *item);   
2318    EINA_DEPRECATED EAPI void          elm_tab_move(Evas_Object *obj, int direction);
2319    EINA_DEPRECATED EAPI void          elm_tab_edit_disable_set(Evas_Object *obj, Eina_Bool disable);
2320    EINA_DEPRECATED EAPI Eina_Bool     elm_tab_edit_disable_get(Evas_Object *obj);
2321
2322    /* tansit */
2323    typedef enum 
2324      {
2325         ELM_TRANSIT_TWEEN_MODE_LINEAR,
2326         ELM_TRANSIT_TWEEN_MODE_SINUSODIAL,
2327         ELM_TRANSIT_TWEEN_MODE_DECELERATE,
2328         ELM_TRANSIT_TWEEN_MODE_ACCELERATE
2329      } Elm_Transit_Tween_Mode;
2330    
2331    typedef struct _transit Elm_Transit;
2332    typedef struct _effect Elm_Effect;
2333
2334    EAPI Elm_Transit           *elm_transit_add(Evas_Object *parent);
2335    EAPI void                   elm_transit_del(Elm_Transit *transit);
2336    EAPI void                   elm_transit_run(Elm_Transit *transit, double duration);
2337    EAPI void                   elm_transit_stop(Elm_Transit *transit);
2338    EAPI void                   elm_transit_completion_callback_set(Elm_Transit *transit, void (*op)(void *data,Elm_Transit* transit), void *data);
2339    EAPI void                   elm_transit_repeat_set(Elm_Transit *transit, unsigned int repeat);
2340    EAPI void                   elm_transit_auto_reverse_set(Elm_Transit *transit, Eina_Bool reverse);
2341    EAPI void                   elm_transit_tween_mode_set(Elm_Transit *transit, Elm_Transit_Tween_Mode tween_mode);
2342    EAPI void                   elm_transit_event_block_disabled_set(Elm_Transit *transit, Eina_Bool disabled);
2343    EAPI Eina_Bool              elm_transit_fx_insert(Elm_Transit *transit, Elm_Effect *effect);
2344    EAPI void                   elm_transit_fx_clear(Elm_Transit *transit);
2345    EAPI Eina_Bool              elm_transit_event_block_disabled_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
2346    EAPI void                   elm_transit_pause(Elm_Transit *transit);
2347    EAPI void                   elm_transit_resume(Elm_Transit *transit);
2348    EAPI Elm_Transit_Tween_Mode elm_transit_tween_mode_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
2349    EINA_DEPRECATED EAPI void   elm_transit_curve_style_set(Elm_Transit *transit, Elm_Animator_Curve_Style cs);
2350
2351    /* Translation FX */
2352    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);
2353
2354    /* Resizing FX */
2355    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);
2356
2357    /* Zoom Fx */
2358    EAPI Elm_Effect  *elm_fx_zoom_add(Evas_Object *obj, float from_rate, float to_rate);
2359
2360    /* Flip Fx */
2361    typedef enum 
2362      {
2363         ELM_FX_FLIP_AXIS_X, 
2364         ELM_FX_FLIP_AXIS_Y
2365      } Elm_Fx_Flip_Axis;
2366    EAPI Elm_Effect  *elm_fx_flip_add( Evas_Object *front, Evas_Object *back, Elm_Fx_Flip_Axis axis, Eina_Bool cw);
2367
2368    /* Blend Fx */
2369    EAPI Elm_Effect  *elm_fx_blend_add(Evas_Object *before, Evas_Object *after);
2370
2371    /* Fade Fx */
2372    EAPI Elm_Effect  *elm_fx_fade_add(Evas_Object *before, Evas_Object *after);
2373     
2374    /* Rotation Fx */
2375    EAPI Elm_Effect  *elm_fx_rotation_add(Evas_Object *obj, float from_degree, float to_degree, Eina_Bool cw);
2376
2377    /* Rotation3D Fx */
2378    EAPI Elm_Effect  *elm_fx_rotation3d_add(Evas_Object *obj, float from_degree, float to_degree, float* axis_dir, float* axis_pos);
2379    
2380    /* Color Fx */
2381    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);
2382
2383    /* Wipe Fx */
2384    typedef enum 
2385      {
2386         ELM_FX_WIPE_DIR_UP, 
2387         ELM_FX_WIPE_DIR_LEFT, 
2388         ELM_FX_WIPE_DIR_RIGHT, 
2389         ELM_FX_WIPE_DIR_DOWN
2390      } Elm_Fx_Wipe_Dir;
2391
2392    typedef enum 
2393      {
2394         ELM_FX_WIPE_TYPE_HIDE, 
2395         ELM_FX_WIPE_TYPE_SHOW
2396      } Elm_Fx_Wipe_Type;
2397    EAPI Elm_Effect  *elm_fx_wipe_add(Evas_Object *obj, Elm_Fx_Wipe_Type type, Elm_Fx_Wipe_Dir dir);
2398
2399    /* ResizableFlip Fx */
2400    EAPI Elm_Effect  *elm_fx_resizable_flip_add(Evas_Object *front, Evas_Object *back, Elm_Fx_Flip_Axis axis, Eina_Bool cw);
2401   
2402    /* ImageAnimation Fx */
2403    EAPI Elm_Effect  *elm_fx_image_animation_add(Evas_Object *icon, const char** images, unsigned int img_cnt);
2404
2405    /* NavigationBar */
2406    typedef enum 
2407      {
2408         ELM_NAVIGATIONBAR_FUNCTION_BUTTON1,
2409         ELM_NAVIGATIONBAR_FUNCTION_BUTTON2,
2410         ELM_NAVIGATIONBAR_FUNCTION_BUTTON3,
2411         ELM_NAVIGATIONBAR_BACK_BUTTON
2412      } Elm_Navi_Button_Type;
2413
2414    EAPI Evas_Object *elm_navigationbar_add(Evas_Object *parent);
2415    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);
2416    EAPI void         elm_navigationbar_pop(Evas_Object *obj);
2417    EAPI void         elm_navigationbar_to_content_pop(Evas_Object *obj, Evas_Object *content);
2418    EAPI void         elm_navigationbar_title_label_set(Evas_Object *obj, Evas_Object *content, const char *title);
2419    EAPI const char  *elm_navigationbar_title_label_get(Evas_Object *obj, Evas_Object *content);
2420    EAPI void         elm_navigationbar_title_object_add(Evas_Object *obj, Evas_Object *content, Evas_Object *title_obj);
2421    EAPI Eina_List   *elm_navigationbar_title_object_list_get(Evas_Object *obj, Evas_Object *content);
2422    EAPI Evas_Object *elm_navigationbar_content_top_get(Evas_Object *obj);
2423    EAPI Evas_Object *elm_navigationbar_content_bottom_get(Evas_Object *obj);
2424    EAPI void         elm_navigationbar_hidden_set(Evas_Object *obj, Eina_Bool hidden);
2425    EAPI void         elm_navigationbar_title_button_set(Evas_Object *obj, Evas_Object *content, Evas_Object *button, Elm_Navi_Button_Type button_type);
2426    EAPI Evas_Object *elm_navigationbar_title_button_get(Evas_Object *obj, Evas_Object *content, Elm_Navi_Button_Type button_type);
2427    EAPI const char  *elm_navigationbar_subtitle_label_get(Evas_Object *obj, Evas_Object *content);
2428    EAPI void         elm_navigationbar_subtitle_label_set(Evas_Object *obj, Evas_Object *content, const char *subtitle);
2429    EAPI void         elm_navigationbar_title_object_list_unset(Evas_Object *obj, Evas_Object *content, Eina_List **list);
2430    EAPI void         elm_navigationbar_animation_disable_set(Evas_Object *obj, Eina_Bool disable);
2431
2432      /* NavigationBar */
2433    typedef enum 
2434      {
2435         ELM_NAVIGATIONBAR_EX_BACK_BUTTON,
2436         ELM_NAVIGATIONBAR_EX_FUNCTION_BUTTON1,
2437         ELM_NAVIGATIONBAR_EX_FUNCTION_BUTTON2,
2438         ELM_NAVIGATIONBAR_EX_FUNCTION_BUTTON3,
2439         ELM_NAVIGATIONBAR_EX_MAX
2440      } Elm_Navi_ex_Button_Type;
2441    typedef struct _Elm_Navigationbar_ex_Item Elm_Navigationbar_ex_Item;
2442
2443    EAPI Evas_Object *elm_navigationbar_ex_add(Evas_Object *parent);
2444    EAPI Elm_Navigationbar_ex_Item *elm_navigationbar_ex_item_push(Evas_Object *obj, Evas_Object *content, const char *item_style);
2445    EAPI void         elm_navigationbar_ex_item_pop(Evas_Object *obj);
2446    EAPI void         elm_navigationbar_ex_item_promote(Elm_Navigationbar_ex_Item* item);
2447    EAPI void         elm_navigationbar_ex_to_item_pop(Elm_Navigationbar_ex_Item* item);
2448    EAPI void         elm_navigationbar_ex_item_title_label_set(Elm_Navigationbar_ex_Item *item, const char *title);
2449    EAPI const char  *elm_navigationbar_ex_item_title_label_get(Elm_Navigationbar_ex_Item* item);
2450    EAPI Elm_Navigationbar_ex_Item *elm_navigationbar_ex_item_top_get(const Evas_Object *obj);
2451    EAPI Elm_Navigationbar_ex_Item *elm_navigationbar_ex_item_bottom_get(const Evas_Object *obj);
2452    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);
2453    EAPI Evas_Object *elm_navigationbar_ex_item_title_button_get(Elm_Navigationbar_ex_Item* item, int button_type);
2454    EAPI void         elm_navigationbar_ex_item_title_object_set(Elm_Navigationbar_ex_Item* item, Evas_Object *title_obj);
2455    EAPI Evas_Object *elm_navigationbar_ex_item_title_object_unset(Elm_Navigationbar_ex_Item* item);
2456    EAPI void         elm_navigationbar_ex_item_title_hidden_set(Elm_Navigationbar_ex_Item* item, Eina_Bool hidden);
2457    EAPI Evas_Object *elm_navigationbar_ex_item_title_object_get(Elm_Navigationbar_ex_Item* item);
2458    EAPI const char  *elm_navigationbar_ex_item_subtitle_label_get(Elm_Navigationbar_ex_Item* item);
2459    EAPI void         elm_navigationbar_ex_item_subtitle_label_set( Elm_Navigationbar_ex_Item* item, const char *subtitle);
2460    EAPI void         elm_navigationbar_ex_item_style_set(Elm_Navigationbar_ex_Item* item, const char* item_style);
2461    EAPI const char  *elm_navigationbar_ex_item_style_get(Elm_Navigationbar_ex_Item* item);
2462    EAPI Evas_Object *elm_navigationbar_ex_item_content_unset(Elm_Navigationbar_ex_Item* item);
2463    EAPI Evas_Object *elm_navigationbar_ex_item_content_get(Elm_Navigationbar_ex_Item* item);
2464    EAPI void         elm_navigationbar_ex_delete_on_pop_set(Evas_Object *obj, Eina_Bool del_on_pop);
2465    EAPI Evas_Object *elm_navigationbar_ex_item_icon_get(Elm_Navigationbar_ex_Item* item);
2466    EAPI void         elm_navigationbar_ex_item_icon_set(Elm_Navigationbar_ex_Item* item, Evas_Object *icon);
2467    EAPI Evas_Object *elm_navigationbar_ex_item_title_button_unset(Elm_Navigationbar_ex_Item* item, int button_type);
2468    EAPI void         elm_navigationbar_ex_animation_disable_set(Evas_Object *obj, Eina_Bool disable);
2469    
2470    
2471    /* Tab Bar */
2472    #define TAB_BAR_SYSTEM_ICON_CONTACT "elm/icon/tabbar_contact/default" 
2473    #define TAB_BAR_SYSTEM_ICON_GROUP "elm/icon/tabbar_group/default" 
2474    #define TAB_BAR_SYSTEM_ICON_SONG "elm/icon/tabbar_song/default" 
2475    #define TAB_BAR_SYSTEM_ICON_FAVORITES "elm/icon/tabbar_favorites/default" 
2476    #define TAB_BAR_SYSTEM_ICON_SEARCH "elm/icon/tabbar_search/default" 
2477    #define TAB_BAR_SYSTEM_ICON_MESSAGE "elm/icon/tabbar_message/default" 
2478    #define TAB_BAR_SYSTEM_ICON_SETTING "elm/icon/tabbar_setting/default" 
2479
2480    EINA_DEPRECATED EAPI Evas_Object *elm_tabbar_add(Evas_Object *parent);
2481    EINA_DEPRECATED EAPI Elm_Tab_Item *elm_tabbar_item_add(Evas_Object *obj, const char *icon_path, const char *label, Evas_Object *view);
2482    EINA_DEPRECATED EAPI Evas_Object *elm_tabbar_item_icon_get(Elm_Tab_Item *it);
2483    EINA_DEPRECATED EAPI const char  *elm_tabbar_item_label_get(Elm_Tab_Item *it);
2484    EINA_DEPRECATED EAPI void         elm_tabbar_item_label_set(Elm_Tab_Item *it, const char *label);
2485    EINA_DEPRECATED EAPI void         elm_tabbar_item_select(Elm_Tab_Item *it);
2486    EINA_DEPRECATED EAPI void         elm_tabbar_edit_start(Evas_Object *obj);
2487    EINA_DEPRECATED EAPI void         elm_tabbar_item_visible_set(Elm_Tab_Item *it, Eina_Bool bar);
2488
2489    /* smart callbacks called:
2490     * "clicked" - when item clicked
2491     */
2492
2493    /* Control Bar */
2494    #define CONTROLBAR_SYSTEM_ICON_ALBUMS "controlbar_albums" 
2495    #define CONTROLBAR_SYSTEM_ICON_ARTISTS "controlbar_artists" 
2496    #define CONTROLBAR_SYSTEM_ICON_SONGS "controlbar_songs" 
2497    #define CONTROLBAR_SYSTEM_ICON_PLAYLIST "controlbar_playlist" 
2498    #define CONTROLBAR_SYSTEM_ICON_MORE "controlbar_more" 
2499    #define CONTROLBAR_SYSTEM_ICON_CONTACTS "controlbar_contacts" 
2500    #define CONTROLBAR_SYSTEM_ICON_DIALER "controlbar_dialer" 
2501    #define CONTROLBAR_SYSTEM_ICON_FAVORITES "controlbar_favorites" 
2502    #define CONTROLBAR_SYSTEM_ICON_LOGS "controlbar_logs" 
2503
2504    typedef enum _Elm_Controlbar_Mode_Type
2505      {
2506         ELM_CONTROLBAR_MODE_DEFAULT = 0,
2507         ELM_CONTROLBAR_MODE_TRANSLUCENCE,
2508         ELM_CONTROLBAR_MODE_TRANSPARENCY,
2509         ELM_CONTROLBAR_MODE_LARGE,
2510         ELM_CONTROLBAR_MODE_SMALL,
2511         ELM_CONTROLBAR_MODE_LEFT,
2512         ELM_CONTROLBAR_MODE_RIGHT
2513      } Elm_Controlbar_Mode_Type;
2514
2515    typedef struct _Elm_Controlbar_Item Elm_Controlbar_Item;
2516
2517    EAPI Evas_Object *elm_controlbar_add(Evas_Object *parent);
2518    EAPI Elm_Controlbar_Item *elm_controlbar_tab_item_append(Evas_Object *obj, const char *icon_path, const char *label, Evas_Object *view);
2519    EAPI Elm_Controlbar_Item *elm_controlbar_tab_item_prepend(Evas_Object *obj, const char *icon_path, const char *label, Evas_Object *view);
2520    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);
2521    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);
2522    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);
2523    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);
2524    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);
2525    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);
2526    EAPI Elm_Controlbar_Item *elm_controlbar_object_item_append(Evas_Object *obj, Evas_Object *obj_item, const int sel);
2527    EAPI Elm_Controlbar_Item *elm_controlbar_object_item_prepend(Evas_Object *obj, Evas_Object *obj_item, const int sel);
2528    EAPI Elm_Controlbar_Item *elm_controlbar_object_item_insert_before(Evas_Object *obj, Elm_Controlbar_Item *before, Evas_Object *obj_item, const int sel);
2529    EAPI Elm_Controlbar_Item *elm_controlbar_object_item_insert_after(Evas_Object *obj, Elm_Controlbar_Item *after, Evas_Object *obj_item, const int sel);
2530    EAPI void         elm_controlbar_item_del(Elm_Controlbar_Item *it);
2531    EAPI void         elm_controlbar_item_select(Elm_Controlbar_Item *it);
2532    EAPI void         elm_controlbar_item_visible_set(Elm_Controlbar_Item *it, Eina_Bool bar);
2533    EAPI Eina_Bool    elm_controlbar_item_visible_get(Elm_Controlbar_Item * it);
2534    EAPI void         elm_controlbar_item_disable_set(Elm_Controlbar_Item * it, Eina_Bool disable);
2535    EAPI void         elm_controlbar_item_icon_set(Elm_Controlbar_Item *it, const char *icon_path);
2536    EAPI Evas_Object *elm_controlbar_item_icon_get(Elm_Controlbar_Item *it);
2537    EAPI void         elm_controlbar_item_label_set(Elm_Controlbar_Item *it, const char *label);
2538    EAPI const char  *elm_controlbar_item_label_get(Elm_Controlbar_Item *it);
2539    EAPI Elm_Controlbar_Item *elm_controlbar_selected_item_get(Evas_Object *obj);
2540    EAPI Elm_Controlbar_Item *elm_controlbar_first_item_get(Evas_Object *obj);
2541    EAPI Elm_Controlbar_Item *elm_controlbar_last_item_get(Evas_Object *obj);
2542    EAPI Eina_List   *elm_controlbar_items_get(Evas_Object *obj);
2543    EAPI Elm_Controlbar_Item *elm_controlbar_item_prev(Elm_Controlbar_Item *it);
2544    EAPI Elm_Controlbar_Item *elm_controlbar_item_next(Elm_Controlbar_Item *it);
2545    EAPI void         elm_controlbar_item_view_set(Elm_Controlbar_Item *it, Evas_Object * view);
2546    EAPI Evas_Object *elm_controlbar_item_view_get(Elm_Controlbar_Item *it);
2547    EAPI void         elm_controlbar_mode_set(Evas_Object *obj, int mode);
2548    EAPI void         elm_controlbar_alpha_set(Evas_Object *obj, int alpha);
2549    EAPI void         elm_controlbar_item_auto_align_set(Evas_Object *obj, Eina_Bool auto_align);
2550    EAPI void         elm_controlbar_vertical_set(Evas_Object *obj, Eina_Bool vertical);
2551    /*======= Please don't use this APIs =======*/
2552    EAPI void         elm_controlbar_edit_start(Evas_Object *obj);
2553    EAPI void         elm_controlbar_item_editable_set(Elm_Controlbar_Item *it, Eina_Bool editable);
2554    EAPI void         elm_controlbar_view_set(Evas_Object *obj, Evas_Object *view);
2555    EAPI void         elm_controlbar_animation_set(Evas_Object *obj, void (*func) (void *data, Evas_Object *obj, void *event_info), void *data);
2556    EAPI void         elm_controlbar_item_animation_set(Evas_Object *obj, Eina_Bool auto_animation, Eina_Bool selected_animation);
2557    EAPI void         elm_controlbar_view_animation_set(Evas_Object *obj, const char *hide, const char *show);
2558    /*======= Just for test =======*/
2559
2560
2561   /* diskcontroller */
2562   typedef struct _Elm_Diskcontroller_Item Elm_Diskcontroller_Item;
2563
2564    EAPI Evas_Object *elm_diskcontroller_add(Evas_Object *parent);
2565    EAPI void         elm_diskcontroller_round_set(Evas_Object *obj, Eina_Bool round);
2566    EAPI Elm_Diskcontroller_Item *elm_diskcontroller_item_add(Evas_Object *obj, Evas_Object *icon, const char *label, void (*func) (void *data, Evas_Object *obj, void *event_info), const void *data);
2567    EAPI void         elm_diskcontroller_item_del(Elm_Diskcontroller_Item *it);
2568    EAPI const char  *elm_diskcontroller_item_label_get(Elm_Diskcontroller_Item *it);
2569    EAPI void         elm_diskcontroller_item_label_set(Elm_Diskcontroller_Item *it, const char *label);
2570    EAPI void         elm_diskcontroller_item_focus_set(Elm_Diskcontroller_Item *it);
2571    /* smart callbacks called:
2572     * "stop" - when scroller stop
2573     */
2574
2575    /* SearchBar */
2576    EAPI Evas_Object *elm_searchbar_add(Evas_Object *parent);
2577    EAPI void         elm_searchbar_text_set(Evas_Object *obj, const char *entry);
2578    EAPI const char  *elm_searchbar_text_get(Evas_Object *obj);
2579    EAPI Evas_Object *elm_searchbar_entry_get(Evas_Object *obj);
2580    EAPI void         elm_searchbar_cancel_button_animation_set(Evas_Object *obj, Eina_Bool cancel_btn_ani_flag);
2581    EAPI void         elm_searchbar_cancel_button_set(Evas_Object *obj, Eina_Bool visible);
2582    EAPI void         elm_searchbar_clear(Evas_Object *obj);
2583    EAPI void         elm_searchbar_boundary_rect_set(Evas_Object *obj, Eina_Bool boundary);
2584
2585    /* actionsheet */
2586    typedef enum _Elm_Actionsheet_Button_Type 
2587      {
2588         ELM_ACTIONSHEET_BT_NORMAL = 0,
2589         ELM_ACTIONSHEET_BT_CANCEL,
2590         ELM_ACTIONSHEET_BT_DESTRUCTIVE
2591      } Elm_Actionsheet_Button_Type;
2592
2593    EINA_DEPRECATED EAPI Evas_Object *elm_actionsheet_add(Evas_Object *parent);
2594    EINA_DEPRECATED EAPI void         elm_actionsheet_title_set(Evas_Object *obj, const char *title);
2595    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);
2596    EINA_DEPRECATED EAPI int          elm_actionsheet_button_title_get(Evas_Object *obj, const int index, char **title);
2597
2598    /* colorpicker */
2599    EINA_DEPRECATED EAPI Evas_Object *elm_colorpicker_add(Evas_Object *parent);
2600    EINA_DEPRECATED EAPI void         elm_colorpicker_color_set(Evas_Object *obj, int r, int g , int b);
2601    EINA_DEPRECATED EAPI void         elm_colorpicker_color_get(Evas_Object *obj, int *r, int *g , int *b);
2602    /* smart callbacks called:
2603     * "changed" - when color is changed
2604     */
2605
2606    /* colorselector */
2607    EAPI Evas_Object *elm_colorselector_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
2608    EAPI void         elm_colorselector_color_set(Evas_Object *obj, int r, int g , int b, int a) EINA_ARG_NONNULL(1);
2609    EAPI void         elm_colorselector_color_get(const Evas_Object *obj, int *r, int *g , int *b, int *a) EINA_ARG_NONNULL(1);
2610    /* smart callbacks called:
2611     * "changed" - when the color value changes
2612     */
2613
2614    /* colorpalette */
2615    typedef struct _Colorpalette_Color Elm_Colorpalette_Color; 
2616
2617    struct _Colorpalette_Color 
2618      {
2619         unsigned int r, g, b;
2620      };
2621
2622    EAPI Evas_Object *elm_colorpalette_add(Evas_Object *parent);
2623    EAPI void         elm_colorpalette_color_set(Evas_Object *obj, int color_num, Elm_Colorpalette_Color *color);
2624    EAPI void         elm_colorpalette_row_column_set(Evas_Object *obj, int row, int col);
2625    /* smart callbacks called:
2626     * "clicked" - when image clicked
2627     */
2628
2629    /* editfield */
2630    EAPI Evas_Object *elm_editfield_add(Evas_Object *parent);
2631    EAPI void         elm_editfield_label_set(Evas_Object *obj, const char *label);
2632    EAPI const char  *elm_editfield_label_get(Evas_Object *obj);
2633    EAPI void         elm_editfield_guide_text_set(Evas_Object *obj, const char *text);
2634    EAPI const char  *elm_editfield_guide_text_get(Evas_Object *obj);
2635    EAPI Evas_Object *elm_editfield_entry_get(Evas_Object *obj);
2636 //   EAPI Evas_Object *elm_editfield_clear_button_show(Evas_Object *obj, Eina_Bool show);
2637    EAPI void         elm_editfield_right_icon_set(Evas_Object *obj, Evas_Object *icon);
2638    EAPI Evas_Object *elm_editfield_right_icon_get(Evas_Object *obj);
2639    EAPI void         elm_editfield_left_icon_set(Evas_Object *obj, Evas_Object *icon);
2640    EAPI Evas_Object *elm_editfield_left_icon_get(Evas_Object *obj);
2641    EAPI void         elm_editfield_entry_single_line_set(Evas_Object *obj, Eina_Bool single_line);
2642    EAPI Eina_Bool    elm_editfield_entry_single_line_get(Evas_Object *obj);
2643    EAPI void         elm_editfield_eraser_set(Evas_Object *obj, Eina_Bool visible);
2644    EAPI Eina_Bool    elm_editfield_eraser_get(Evas_Object *obj);
2645    /* smart callbacks called:
2646     * "clicked" - when an editfield is clicked
2647     * "unfocused" - when an editfield is unfocused
2648     */
2649
2650
2651
2652    /* softkey */
2653    typedef enum 
2654      {
2655         ELM_SK_LEFT_BTN,
2656         ELM_SK_RIGHT_BTN,
2657      } Elm_Softkey_Type;
2658
2659    /* softkey */
2660    typedef struct _Elm_Softkey_Item Elm_Softkey_Item;
2661    EINA_DEPRECATED EAPI Evas_Object *elm_softkey_add(Evas_Object *parent);
2662    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);
2663    EINA_DEPRECATED EAPI void         elm_softkey_button_del(Evas_Object *obj, Elm_Softkey_Type type);
2664    EINA_DEPRECATED EAPI void         elm_softkey_button_show(Evas_Object *obj, Elm_Softkey_Type type);
2665    EINA_DEPRECATED EAPI void         elm_softkey_button_hide(Evas_Object *obj, Elm_Softkey_Type type);
2666
2667    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);
2668    EINA_DEPRECATED EAPI int          elm_softkey_panel_del(Evas_Object *obj);
2669    EINA_DEPRECATED EAPI int          elm_softkey_panel_close(Evas_Object *obj);
2670    EINA_DEPRECATED EAPI int          elm_softkey_panel_open(Evas_Object *obj);
2671
2672    EINA_DEPRECATED EAPI void         elm_softkey_item_icon_set(Elm_Softkey_Item *item, Evas_Object *icon);
2673    EINA_DEPRECATED EAPI Evas_Object *elm_softkey_item_icon_get(Elm_Softkey_Item * item);
2674    EINA_DEPRECATED EAPI void         elm_softkey_item_label_set(Elm_Softkey_Item *item, const char *label);
2675    EINA_DEPRECATED EAPI const char  *elm_softkey_item_label_get(Elm_Softkey_Item * item);
2676    EINA_DEPRECATED EAPI Eina_Bool    elm_softkey_item_disabled_get(Elm_Softkey_Item *item);
2677    EINA_DEPRECATED EAPI void         elm_softkey_item_disabled_set(Elm_Softkey_Item *item, Eina_Bool disabled);
2678    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 );
2679    /* smart callback called: 
2680     * "clicked" - the user clicked the button, event_info: Softkey item
2681     * "press"   - the user press the button, event_info: Softkey item
2682     * "panel,show" - when the panel is shown
2683     * "panel,hide" - when the panel is hidden
2684     */
2685        
2686    /* gridbox */
2687    EINA_DEPRECATED EAPI Evas_Object *elm_gridbox_add(Evas_Object *parent);
2688    EINA_DEPRECATED EAPI void         elm_gridbox_padding_set(Evas_Object *obj, Evas_Coord horizontal, Evas_Coord vertical);
2689    EINA_DEPRECATED EAPI void         elm_gridbox_item_size_set(Evas_Object *obj, Evas_Coord h_itemsize, Evas_Coord v_itemsize);
2690    EINA_DEPRECATED EAPI void         elm_gridbox_pack(Evas_Object *obj, Evas_Object *subobj);
2691    EINA_DEPRECATED EAPI Eina_Bool    elm_gridbox_unpack(Evas_Object *obj, Evas_Object *subobj);
2692    EINA_DEPRECATED EAPI Eina_List   *elm_gridbox_children_get(Evas_Object *obj);
2693    EINA_DEPRECATED EAPI void         elm_gridbox_homogenous_padding_set(Evas_Object *obj, Eina_Bool homogenous);
2694
2695    /* actionslider */                        
2696    typedef enum _Elm_Actionslider_Indicator_Pos  
2697      {        
2698         ELM_ACTIONSLIDER_INDICATOR_NONE,                                 
2699         ELM_ACTIONSLIDER_INDICATOR_LEFT,
2700         ELM_ACTIONSLIDER_INDICATOR_RIGHT,
2701         ELM_ACTIONSLIDER_INDICATOR_CENTER
2702      } Elm_Actionslider_Indicator_Pos;
2703
2704    typedef enum _Elm_Actionslider_Magnet_Pos
2705      {
2706         ELM_ACTIONSLIDER_MAGNET_NONE = 0,
2707         ELM_ACTIONSLIDER_MAGNET_LEFT = 1 << 0,
2708         ELM_ACTIONSLIDER_MAGNET_CENTER = 1 << 1, 
2709         ELM_ACTIONSLIDER_MAGNET_RIGHT= 1 << 2,
2710         ELM_ACTIONSLIDER_MAGNET_ALL = (1 << 3) -1,
2711         ELM_ACTIONSLIDER_MAGNET_BOTH = (1 << 3)
2712      } Elm_Actionslider_Magnet_Pos;
2713
2714    typedef enum _Elm_Actionslider_Label_Pos
2715      {
2716         ELM_ACTIONSLIDER_LABEL_LEFT,
2717         ELM_ACTIONSLIDER_LABEL_RIGHT,
2718         ELM_ACTIONSLIDER_LABEL_CENTER,
2719         ELM_ACTIONSLIDER_LABEL_BUTTON
2720      } Elm_Actionslider_Label_Pos;
2721
2722    EAPI Evas_Object                     *elm_actionslider_add(Evas_Object *parent);
2723    EAPI void                             elm_actionslider_indicator_pos_set(Evas_Object *obj, Elm_Actionslider_Indicator_Pos pos);
2724    EAPI Elm_Actionslider_Indicator_Pos   elm_actionslider_indicator_pos_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2725    EAPI void                             elm_actionslider_magnet_pos_set(Evas_Object *obj, Elm_Actionslider_Magnet_Pos pos);
2726    EAPI Elm_Actionslider_Magnet_Pos      elm_actionslider_magnet_pos_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2727    EAPI void                             elm_actionslider_label_set(Evas_Object *obj, Elm_Actionslider_Label_Pos pos, const char *label);
2728    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);
2729    EAPI void                             elm_actionslider_enabled_pos_set(Evas_Object *obj, Elm_Actionslider_Magnet_Pos pos) EINA_ARG_NONNULL(1);
2730    EAPI Elm_Actionslider_Magnet_Pos      elm_actionslider_enabled_pos_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2731    EAPI void                             elm_actionslider_indicator_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
2732    EAPI const char                      *elm_actionslider_indicator_label_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
2733    EAPI void                             elm_actionslider_hold(Evas_Object *obj, Eina_Bool flag);
2734    /* smart callbacks called:
2735     * "indicator,position" - when a button reaches to the special position like "left", "right" and "center".
2736     */
2737    
2738    /* gallery */
2739    struct _Elm_Gallery_Item 
2740      {
2741         Evas_Object *parent;
2742         Evas_Object *ly;
2743         Evas_Object *obj;
2744         const char *path;
2745         int index;
2746         Evas_Coord x, y, w, h;
2747         Evas_Coord mw, mh;      
2748         Eina_Bool on_hold : 1;
2749         Eina_Bool on_show : 1;
2750         Eina_Bool on_highquality : 1;           
2751      };
2752    typedef struct _Elm_Gallery_Item Elm_Gallery_Item;
2753    EINA_DEPRECATED EAPI Evas_Object *elm_gallery_add(Evas_Object *parent);
2754    EINA_DEPRECATED EAPI Eina_Bool    elm_gallery_data_set(Evas_Object *obj, Eina_List *list);
2755    EINA_DEPRECATED EAPI Elm_Gallery_Item *elm_gallery_item_append(Evas_Object *obj, const char *photo_file);
2756    EINA_DEPRECATED EAPI Elm_Gallery_Item *elm_gallery_item_prepend(Evas_Object *obj, const char *photo_file);
2757    EINA_DEPRECATED EAPI void         elm_gallery_item_del(Elm_Gallery_Item *it);
2758    EINA_DEPRECATED EAPI const char  *elm_gallery_item_file_get(Elm_Gallery_Item *it);
2759    EINA_DEPRECATED EAPI void         elm_gallery_item_show(Elm_Gallery_Item *it);
2760    EINA_DEPRECATED EAPI Eina_List   *elm_gallery_item_list_get(Evas_Object *obj);
2761    EINA_DEPRECATED EAPI void         elm_gallery_set_type(Evas_Object *obj,int type);
2762    EINA_DEPRECATED EAPI void         elm_gallery_set_max_count(Evas_Object *obj,int max_value);
2763
2764    /* Sliding Drawer */
2765    typedef enum _Elm_SlidingDrawer_Pos 
2766      {
2767         ELM_SLIDINGDRAWER_BOTTOM,
2768         ELM_SLIDINGDRAWER_LEFT,
2769         ELM_SLIDINGDRAWER_RIGHT,
2770         ELM_SLIDINGDRAWER_TOP
2771      } Elm_SlidingDrawer_Pos;
2772  
2773    typedef struct _Elm_SlidingDrawer_Drag_Value 
2774      {
2775         double x, y;
2776      } Elm_SlidingDrawer_Drag_Value;
2777
2778    EAPI Evas_Object *elm_slidingdrawer_add(Evas_Object *parent);
2779    EAPI void         elm_slidingdrawer_content_set (Evas_Object *obj, Evas_Object *content);
2780    EAPI Evas_Object *elm_slidingdrawer_content_unset(Evas_Object *obj);
2781    EAPI void         elm_slidingdrawer_pos_set(Evas_Object *obj, Elm_SlidingDrawer_Pos pos);
2782    EAPI void         elm_slidingdrawer_max_drag_value_set(Evas_Object *obj, double dw,  double dh);
2783    EAPI void         elm_slidingdrawer_drag_value_set(Evas_Object *obj, double dx, double dy);
2784    
2785    /* multibuttonentry */
2786    typedef struct _Multibuttonentry_Item Elm_Multibuttonentry_Item;
2787    EAPI Evas_Object               *elm_multibuttonentry_add(Evas_Object *parent);
2788    EAPI const char                *elm_multibuttonentry_label_get(Evas_Object *obj);
2789    EAPI void                       elm_multibuttonentry_label_set(Evas_Object *obj, const char *label);
2790    EAPI Evas_Object               *elm_multibuttonentry_entry_get(Evas_Object *obj);
2791    EAPI const char *               elm_multibuttonentry_guide_text_get(Evas_Object *obj);
2792    EAPI void                       elm_multibuttonentry_guide_text_set(Evas_Object *obj, const char *guidetext);
2793    EAPI int                        elm_multibuttonentry_contracted_state_get(Evas_Object *obj);
2794    EAPI void                       elm_multibuttonentry_contracted_state_set(Evas_Object *obj, int contracted);
2795    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_add_start(Evas_Object *obj, const char *label, void *data);
2796    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_add_end(Evas_Object *obj, const char *label, void *data);
2797    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_add_before(Evas_Object *obj, const char *label, Elm_Multibuttonentry_Item *before, void *data);
2798    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_add_after(Evas_Object *obj, const char *label, Elm_Multibuttonentry_Item *after, void *data);
2799    EAPI const Eina_List           *elm_multibuttonentry_items_get(Evas_Object *obj);
2800    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_first_get(Evas_Object *obj);
2801    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_last_get(Evas_Object *obj);
2802    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_selected_get(Evas_Object *obj);
2803    EAPI void                       elm_multibuttonentry_item_selected_set(Elm_Multibuttonentry_Item *item);
2804    EAPI void                       elm_multibuttonentry_item_unselect_all(Evas_Object *obj);
2805    EAPI void                       elm_multibuttonentry_item_del(Elm_Multibuttonentry_Item *item);
2806    EAPI void                       elm_multibuttonentry_items_del(Evas_Object *obj);
2807    EAPI const char                *elm_multibuttonentry_item_label_get(Elm_Multibuttonentry_Item *item);
2808    EAPI void                       elm_multibuttonentry_item_label_set(Elm_Multibuttonentry_Item *item, const char *str);
2809    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_prev(Elm_Multibuttonentry_Item *item);
2810    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_next(Elm_Multibuttonentry_Item *item);
2811    EAPI void                      *elm_multibuttonentry_item_data_get(Elm_Multibuttonentry_Item *item);
2812    EAPI void                       elm_multibuttonentry_item_data_set(Elm_Multibuttonentry_Item *item, void *data);
2813    /* smart callback called:
2814     * "selected" - This signal is emitted when the selected item of multibuttonentry is changed. 
2815     * "added" - This signal is emitted when a new multibuttonentry item is added.
2816     * "deleted" - This signal is emitted when a multibuttonentry item is deleted.
2817     * "expanded" - This signal is emitted when a multibuttonentry is expanded. 
2818     * "contracted" - This signal is emitted when a multibuttonentry is contracted. 
2819     * "contracted,state,changed" - This signal is emitted when the contracted state of multibuttonentry is changed. 
2820     */
2821    /* available styles:
2822     * default
2823     */
2824  
2825    /* stackedicon */
2826    typedef struct _Stackedicon_Item Elm_Stackedicon_Item;
2827    EAPI Evas_Object          *elm_stackedicon_add(Evas_Object *parent);
2828    EAPI Elm_Stackedicon_Item *elm_stackedicon_item_append(Evas_Object *obj, const char *path);
2829    EAPI Elm_Stackedicon_Item *elm_stackedicon_item_prepend(Evas_Object *obj, const char *path);
2830    EAPI void                  elm_stackedicon_item_del(Elm_Stackedicon_Item *it);
2831    EAPI Eina_List            *elm_stackedicon_item_list_get(Evas_Object *obj);
2832    /* smart callback called:
2833     * "expanded" - This signal is emitted when a stackedicon is expanded. 
2834     * "clicked" - This signal is emitted when a stackedicon is clicked.
2835     */
2836    /* available styles:
2837     * default
2838     */
2839
2840    /* dialoguegroup */
2841    typedef struct _Dialogue_Item Dialogue_Item;
2842    
2843    typedef enum _Elm_Dialoguegourp_Item_Style
2844      {
2845         ELM_DIALOGUEGROUP_ITEM_STYLE_DEFAULT = 0,
2846         ELM_DIALOGUEGROUP_ITEM_STYLE_EDITFIELD = (1 << 0),
2847         ELM_DIALOGUEGROUP_ITEM_STYLE_EDITFIELD_WITH_TITLE = (1 << 1),
2848         ELM_DIALOGUEGROUP_ITEM_STYLE_EDIT_TITLE = (1 << 2),
2849         ELM_DIALOGUEGROUP_ITEM_STYLE_HIDDEN = (1 << 3),
2850         ELM_DIALOGUEGROUP_ITEM_STYLE_DATAVIEW = (1 << 4),
2851         ELM_DIALOGUEGROUP_ITEM_STYLE_NO_BG = (1 << 5),
2852         ELM_DIALOGUEGROUP_ITEM_STYLE_SUB = (1 << 6),
2853         ELM_DIALOGUEGROUP_ITEM_STYLE_LAST = (1 << 7)
2854      } Elm_Dialoguegroup_Item_Style;
2855
2856    EAPI Evas_Object   *elm_dialoguegroup_add(Evas_Object *parent);
2857    EAPI Dialogue_Item *elm_dialoguegroup_append(Evas_Object *obj, Evas_Object *subobj, Elm_Dialoguegroup_Item_Style style);   
2858    EAPI Dialogue_Item *elm_dialoguegroup_prepend(Evas_Object *obj, Evas_Object *subobj, Elm_Dialoguegroup_Item_Style style);   
2859    EAPI Dialogue_Item *elm_dialoguegroup_insert_after(Evas_Object *obj, Evas_Object *subobj, Dialogue_Item *after, Elm_Dialoguegroup_Item_Style style);   
2860    EAPI Dialogue_Item *elm_dialoguegroup_insert_before(Evas_Object *obj, Evas_Object *subobj, Dialogue_Item *before, Elm_Dialoguegroup_Item_Style style);   
2861    EAPI void           elm_dialoguegroup_remove(Dialogue_Item *item);
2862    EAPI void           elm_dialoguegroup_remove_all(Evas_Object *obj);
2863    EAPI void           elm_dialoguegroup_title_set(Evas_Object *obj, const char *title);
2864    EAPI const char    *elm_dialoguegroup_title_get(Evas_Object *obj);
2865    EAPI void           elm_dialoguegroup_press_effect_set(Dialogue_Item *item, Eina_Bool press);
2866    EAPI Eina_Bool      elm_dialoguegroup_press_effect_get(Dialogue_Item *item);
2867    EAPI Evas_Object   *elm_dialoguegroup_item_content_get(Dialogue_Item *item);
2868    EAPI void           elm_dialoguegroup_item_style_set(Dialogue_Item *item, Elm_Dialoguegroup_Item_Style style);
2869    EAPI Elm_Dialoguegroup_Item_Style    elm_dialoguegroup_item_style_get(Dialogue_Item *item);
2870    EAPI void           elm_dialoguegroup_item_disabled_set(Dialogue_Item *item, Eina_Bool disabled);
2871    EAPI Eina_Bool      elm_dialoguegroup_item_disabled_get(Dialogue_Item *item);   
2872   
2873    /* AutoCompleteView */
2874    typedef Eina_Bool (*elmautocompleteview_matchfunction) (Evas_Object *obj, char *text, Evas_Object *list, void *data);
2875    EAPI Evas_Object *elm_autocompleteview_add(Evas_Object *parent);
2876    EAPI Evas_Object *elm_autocompleteview_entry_get(Evas_Object *obj);
2877    EAPI Evas_Object *elm_autocompleteview_editfield_get(Evas_Object *obj);
2878    EAPI void         elm_autocompleteview_threshold_set(Evas_Object *obj, int threshold);
2879    EAPI int          elm_autocompleteview_threshold_get(Evas_Object *obj);
2880    EAPI void         elm_autocompleteview_data_set(Evas_Object *obj, Eina_List *data_list);
2881    EAPI void         elm_autocompleteview_match_func_set(Evas_Object *obj, elmautocompleteview_matchfunction func, void *data);
2882    EAPI void         elm_autocompleteview_text_update(Evas_Object *obj, char *text);
2883
2884    /* Dayselector */
2885    typedef enum 
2886      { 
2887         ELM_DAYSELECTOR_SUN, 
2888         ELM_DAYSELECTOR_MON, 
2889         ELM_DAYSELECTOR_TUE, 
2890         ELM_DAYSELECTOR_WED, 
2891         ELM_DAYSELECTOR_THU, 
2892         ELM_DAYSELECTOR_FRI, 
2893         ELM_DAYSELECTOR_SAT 
2894      } Elm_DaySelector_Day;
2895
2896    EAPI Evas_Object *elm_dayselector_add(Evas_Object *parent);
2897    EAPI Eina_Bool    elm_dayselector_check_state_get(Evas_Object *obj, Elm_DaySelector_Day day);
2898    EAPI void         elm_dayselector_check_state_set(Evas_Object *obj, Elm_DaySelector_Day day, Eina_Bool checked);
2899    
2900    /* NoContents */
2901    EAPI Evas_Object *elm_nocontents_add(Evas_Object *parent);
2902    EAPI void         elm_nocontents_label_set(Evas_Object *obj, const char *label);
2903    EAPI const char  *elm_nocontents_label_get(const Evas_Object *obj);
2904    EAPI void         elm_nocontents_custom_set(const Evas_Object *obj, Evas_Object *custom);
2905    EAPI Evas_Object *elm_nocontents_custom_get(const Evas_Object *obj);
2906
2907    /* TickerNoti */
2908    typedef enum 
2909      { 
2910         ELM_TICKERNOTI_DEFAULT, 
2911         ELM_TICKERNOTI_DETAILVIEW
2912      } Elm_Tickernoti_Mode;
2913
2914    EAPI Evas_Object         *elm_tickernoti_add (Evas_Object *parent);
2915    EAPI void                 elm_tickernoti_icon_set (const Evas_Object *obj, Evas_Object *icon);
2916    EAPI Evas_Object         *elm_tickernoti_icon_get (const Evas_Object *obj);
2917    EAPI void                 elm_tickernoti_label_set (Evas_Object *obj, const char *label);
2918    EAPI const char          *elm_tickernoti_label_get (const Evas_Object *obj);
2919    EAPI void                 elm_tickernoti_detailview_label_set (Evas_Object *obj, const char *label);
2920    EAPI const char          *elm_tickernoti_detailview_label_get (const Evas_Object *obj);
2921    EAPI void                 elm_tickernoti_detailview_button_set (const Evas_Object *obj, Evas_Object *button);
2922    EAPI Evas_Object         *elm_tickernoti_detailview_button_get (const Evas_Object *obj);
2923    EAPI void                 elm_tickernoti_detailview_icon_set (const Evas_Object *obj, Evas_Object *icon);
2924    EAPI Evas_Object         *elm_tickernoti_detailview_icon_get (const Evas_Object *obj);
2925    EAPI Evas_Object         *elm_tickernoti_detailview_get (const Evas_Object *obj);
2926    EAPI int                  elm_tickernoti_rotation_get (const Evas_Object *obj);
2927    EAPI void                 elm_tickernoti_rotation_set (const Evas_Object *obj, int angle);
2928    EAPI void                 elm_tickernoti_mode_set (const Evas_Object *obj, Elm_Tickernoti_Mode mode);
2929    EAPI Elm_Tickernoti_Mode  elm_tickernoti_mode_get (const Evas_Object *obj);
2930
2931    /* Image Slider */
2932    typedef struct _Imageslider_Item Elm_Imageslider_Item;   
2933    typedef void (*Elm_Imageslider_Cb)(void *data, Evas_Object *obj, void *event_info);
2934    EAPI Evas_Object           *elm_imageslider_add(Evas_Object *parent);
2935    EAPI Elm_Imageslider_Item  *elm_imageslider_item_append(Evas_Object *obj, const char *photo_file, Elm_Imageslider_Cb func, void *data);
2936    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);
2937    EAPI Elm_Imageslider_Item  *elm_imageslider_item_prepend(Evas_Object *obj, const char *photo_file, Elm_Imageslider_Cb func, void *data);
2938    EAPI void                   elm_imageslider_item_del(Elm_Imageslider_Item *it);
2939    EAPI Elm_Imageslider_Item  *elm_imageslider_selected_item_get(Evas_Object *obj);
2940    EAPI Eina_Bool              elm_imageslider_item_selected_get(Elm_Imageslider_Item *it);
2941    EAPI void                   elm_imageslider_item_selected_set(Elm_Imageslider_Item *it);
2942    EAPI const char            *elm_imageslider_item_photo_file_get(Elm_Imageslider_Item *it);
2943    EAPI Elm_Imageslider_Item  *elm_imageslider_item_prev(Elm_Imageslider_Item *it);
2944    EAPI Elm_Imageslider_Item  *elm_imageslider_item_next(Elm_Imageslider_Item *it);
2945    EAPI void                   elm_imageslider_prev(Evas_Object *obj);
2946    EAPI void                   elm_imageslider_next(Evas_Object *obj);
2947
2948    /* Selection Info */
2949    EAPI Evas_Object *elm_selectioninfo_add(Evas_Object *parent);
2950    EAPI void         elm_selectioninfo_content_set(Evas_Object *obj, Evas_Object *content);
2951    EAPI void         elm_selectioninfo_parent_set(Evas_Object *obj, Evas_Object *parent);
2952    EAPI void         elm_selectioninfo_timeout_set(Evas_Object *obj, int timeout);
2953    EAPI void         elm_selectioninfo_timer_init(Evas_Object *obj);
2954    EAPI void         elm_selectioninfo_check_state_set(Evas_Object *obj, Eina_Bool *state, int count);
2955    EAPI int          elm_selectioninfo_checked_count_get(Evas_Object *obj);
2956    EAPI void         elm_selectioninfo_label_set(Evas_Object *obj, char* text);
2957
2958    /* smart callback called:
2959     * "selectioninfo,timeout" - when time out
2960     * "selectioninfo,show" - when selectioninfo show
2961     * "selectioninfo,hide" - when selectioninfo hide
2962     */
2963
2964    /* Xml Animator */
2965    typedef struct _Elm_Xml_Animator Elm_Xml_Animator;
2966
2967    EINA_DEPRECATED EAPI Elm_Xml_Animator *elm_xml_animator_add(Evas_Object *obj);
2968    EINA_DEPRECATED EAPI Eina_Bool    elm_xml_animator_file_set(Elm_Xml_Animator *xa, const char *file);
2969    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);
2970    EINA_DEPRECATED EAPI void         elm_xml_animator_object_del(Elm_Xml_Animator *xa, Evas_Object *obj);
2971    EINA_DEPRECATED EAPI void         elm_xml_animator_del(Elm_Xml_Animator *xa);
2972    EINA_DEPRECATED EAPI void         elm_xml_animator_run(Elm_Xml_Animator *xa);
2973    
2974 #ifdef __cplusplus
2975 }
2976 #endif
2977
2978 #endif