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