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