Merge branch 'master' of juyung.seo@165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs...
[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_IMF_DEF@ ELM_IMF
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 <Edje.h>
74
75 #ifdef ELM_EDBUS
76 # include <E_DBus.h>
77 # include <E_Hal.h>
78 #endif
79
80 #ifdef ELM_EFREET
81 # include <Efreet.h>
82 # include <Efreet_Mime.h>
83 # include <Efreet_Trash.h>
84 #endif
85
86 #ifdef ELM_ETHUMB
87 # include <Ethumb_Client.h>
88 #endif
89
90 #ifdef ELM_IMF
91 # include <Ecore_IMF.h>
92 #endif
93
94
95 #ifdef EAPI
96 # undef EAPI
97 #endif
98
99 #ifdef _WIN32
100 # ifdef ELEMENTARY_BUILD
101 #  ifdef DLL_EXPORT
102 #   define EAPI __declspec(dllexport)
103 #  else
104 #   define EAPI
105 #  endif /* ! DLL_EXPORT */
106 # else
107 #  define EAPI __declspec(dllimport)
108 # endif /* ! EFL_EVAS_BUILD */
109 #else
110 # ifdef __GNUC__
111 #  if __GNUC__ >= 4
112 #   define EAPI __attribute__ ((visibility("default")))
113 #  else
114 #   define EAPI
115 #  endif
116 # else
117 #  define EAPI
118 # endif
119 #endif /* ! _WIN32 */
120
121
122 /* allow usage from c++ */
123 #ifdef __cplusplus
124 extern "C" {
125 #endif
126
127 #define ELM_VERSION_MAJOR @VMAJ@
128 #define ELM_VERSION_MINOR @VMIN@
129    
130    typedef struct _Elm_Version
131      {
132         int major;
133         int minor;
134         int micro;
135         int revision;
136      } Elm_Version;
137    
138    EAPI extern Elm_Version *elm_version;
139    
140 /* handy macros */
141 #define ELM_RECTS_INTERSECT(x, y, w, h, xx, yy, ww, hh) (((x) < ((xx) + (ww))) && ((y) < ((yy) + (hh))) && (((x) + (w)) > (xx)) && (((y) + (h)) > (yy)))
142 #define ELM_PI 3.14159265358979323846
143
144 /**************************************************************************/
145    EAPI extern int ELM_ECORE_EVENT_ETHUMB_CONNECT;
146
147    /* Objects */
148    typedef enum _Elm_Win_Type
149      {
150         ELM_WIN_BASIC,
151         ELM_WIN_DIALOG_BASIC,
152         ELM_WIN_DESKTOP,
153         ELM_WIN_DOCK,
154         ELM_WIN_TOOLBAR,
155         ELM_WIN_MENU,
156         ELM_WIN_UTILITY,
157         ELM_WIN_SPLASH
158      } Elm_Win_Type;
159
160    typedef enum _Elm_Win_Keyboard_Mode
161      {
162         ELM_WIN_KEYBOARD_UNKNOWN,
163           ELM_WIN_KEYBOARD_OFF,
164           ELM_WIN_KEYBOARD_ON,
165           ELM_WIN_KEYBOARD_ALPHA,
166           ELM_WIN_KEYBOARD_NUMERIC,
167           ELM_WIN_KEYBOARD_PIN,
168           ELM_WIN_KEYBOARD_PHONE_NUMBER,
169           ELM_WIN_KEYBOARD_HEX,
170           ELM_WIN_KEYBOARD_TERMINAL,
171           ELM_WIN_KEYBOARD_PASSWORD,
172           ELM_WIN_KEYBOARD_IP,
173           ELM_WIN_KEYBOARD_HOST,
174           ELM_WIN_KEYBOARD_FILE,
175           ELM_WIN_KEYBOARD_URL,
176           ELM_WIN_KEYBOARD_KEYPAD,
177           ELM_WIN_KEYBOARD_J2ME
178      } Elm_Win_Keyboard_Mode;
179
180   /**
181    * Emitted when policy value changed.
182    */
183   EAPI extern int ELM_EVENT_POLICY_CHANGED;
184   typedef struct _Elm_Event_Policy_Changed
185     {
186        unsigned int policy;
187        int new_value;
188        int old_value;
189     } Elm_Event_Policy_Changed;
190
191   /**
192    * Policy identifiers.
193    *
194    * @see elm_policy_set()
195    */
196   typedef enum _Elm_Policy
197     {
198       ELM_POLICY_QUIT, /**< when should quit application automatically.
199                         * @see Elm_Policy_Quit.
200                         */
201       ELM_POLICY_LAST
202     } Elm_Policy;
203
204   typedef enum _Elm_Policy_Quit
205     {
206       ELM_POLICY_QUIT_NONE = 0, /**< never quit application automatically */
207       ELM_POLICY_QUIT_LAST_WINDOW_CLOSED /**< quit when last window is closed */
208     } Elm_Policy_Quit;
209
210   typedef enum _Elm_Thumb_Animation_Setting
211     {
212        ELM_THUMB_ANIMATION_START = 0, /* Play animation once */
213        ELM_THUMB_ANIMATION_LOOP,      /* Keep playing animation until stop is requested */
214        ELM_THUMB_ANIMATION_STOP,
215        ELM_THUMB_ANIMATION_LAST
216     } Elm_Thumb_Animation_Setting;
217    
218    typedef struct _Elm_Theme Elm_Theme;
219    
220    typedef enum _Elm_Clock_Digedit
221      {
222         ELM_CLOCK_NONE         = 0,
223         ELM_CLOCK_HOUR_DECIMAL = 1 << 0,
224         ELM_CLOCK_HOUR_UNIT    = 1 << 1,
225         ELM_CLOCK_MIN_DECIMAL  = 1 << 2,
226         ELM_CLOCK_MIN_UNIT     = 1 << 3,
227         ELM_CLOCK_SEC_DECIMAL  = 1 << 4,
228         ELM_CLOCK_SEC_UNIT     = 1 << 5,
229         ELM_CLOCK_ALL          = (1 << 6) - 1
230      } Elm_Clock_Digedit;
231    
232 #ifndef ELM_LIB_QUICKLAUNCH
233 #define ELM_MAIN() int main(int argc, char **argv) {elm_init(argc, argv); return elm_main(argc, argv);}
234 #else
235 #define ELM_MAIN() int main(int argc, char **argv) {return elm_quicklaunch_fallback(argc, argv);}
236 #endif
237
238 /**************************************************************************/
239    /* General calls */
240    EAPI void         elm_init(int argc, char **argv);
241    EAPI void         elm_shutdown(void);
242    EAPI void         elm_run(void);
243    EAPI void         elm_exit(void);
244
245    EAPI void         elm_quicklaunch_init(int argc, char **argv);
246    EAPI void         elm_quicklaunch_sub_init(int argc, char **argv);
247    EAPI void         elm_quicklaunch_sub_shutdown(void);
248    EAPI void         elm_quicklaunch_shutdown(void);
249    EAPI void         elm_quicklaunch_seed(void);
250    EAPI Eina_Bool    elm_quicklaunch_prepare(int argc, char **argv);
251    EAPI Eina_Bool    elm_quicklaunch_fork(int argc, char **argv, char *cwd, void (postfork_func) (void *data), void *postfork_data);
252    EAPI void         elm_quicklaunch_cleanup(void);
253    EAPI int          elm_quicklaunch_fallback(int argc, char **argv);
254    EAPI char        *elm_quicklaunch_exe_path_get(const char *exe);
255
256    EAPI void         elm_need_efreet(void);
257    EAPI void         elm_need_e_dbus(void);
258    EAPI void         elm_need_ethumb(void);
259
260    EAPI Eina_Bool    elm_policy_set(unsigned int policy, int value);
261    EAPI int          elm_policy_get(unsigned int policy);
262    
263    EAPI void         elm_all_flush(void);
264        
265    EAPI void         elm_object_scale_set(Evas_Object *obj, double scale);
266    EAPI double       elm_object_scale_get(const Evas_Object *obj);
267    EAPI void         elm_object_style_set(Evas_Object *obj, const char *style);
268    EAPI const char  *elm_object_style_get(const Evas_Object *obj);
269    EAPI void         elm_object_disabled_set(Evas_Object *obj, Eina_Bool disabled);
270    EAPI Eina_Bool    elm_object_disabled_get(const Evas_Object *obj);
271
272    EAPI Eina_Bool    elm_object_widget_check(const Evas_Object *obj);
273    EAPI Evas_Object *elm_object_parent_widget_get(const Evas_Object *obj);
274    EAPI const char  *elm_object_widget_type_get(const Evas_Object *obj);
275
276    EAPI double       elm_scale_get(void);
277    EAPI void         elm_scale_set(double scale);
278    EAPI void         elm_scale_all_set(double scale);
279    EAPI Evas_Coord   elm_finger_size_get(void);
280    EAPI void         elm_finger_size_set(Evas_Coord size);
281    EAPI void         elm_finger_size_all_set(Evas_Coord size);
282
283    EAPI Eina_Bool    elm_object_focus_get(Evas_Object *obj);
284    EAPI void         elm_object_focus(Evas_Object *obj);
285    EAPI void         elm_object_unfocus(Evas_Object *obj);
286    EAPI void         elm_object_focus_allow_set(Evas_Object *obj, Eina_Bool enable);
287    EAPI Eina_Bool    elm_object_focus_allow_get(const Evas_Object *obj);
288
289    EAPI void         elm_object_scroll_hold_push(Evas_Object *obj);
290    EAPI void         elm_object_scroll_hold_pop(Evas_Object *obj);
291    EAPI void         elm_object_scroll_freeze_push(Evas_Object *obj);
292    EAPI void         elm_object_scroll_freeze_pop(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            UIControlStateDefault,
447            UIControlStateHighlighted,
448            UIControlStateDisabled,
449            UIControlStateFocused,
450            UIControlStateReserved
451         }UIControlState;
452
453    EAPI Evas_Object *elm_button_add(Evas_Object *parent);
454    EAPI void         elm_button_label_set(Evas_Object *obj, const char *label);
455    EAPI void         elm_button_label_set_for_state(Evas_Object *obj, const char *label, UIControlState state);
456    EAPI const char  *elm_button_label_get(const Evas_Object *obj);
457    EAPI const char  *elm_button_label_get_for_state(const Evas_Object *obj, UIControlState state);
458    EAPI void         elm_button_icon_set(Evas_Object *obj, Evas_Object *icon);
459    EAPI Evas_Object *elm_button_icon_get(const Evas_Object *obj);
460    EAPI void         elm_button_autorepeat_set(Evas_Object *obj, Eina_Bool on);
461    EAPI void         elm_button_autorepeat_initial_timeout_set(Evas_Object *obj, double t);
462    EAPI void         elm_button_autorepeat_gap_timeout_set(Evas_Object *obj, double t);
463
464    EAPI Evas_Object *elm_fileselector_button_add(Evas_Object *parent);
465    EAPI void         elm_fileselector_button_label_set(Evas_Object *obj, const char *label);
466    EAPI const char  *elm_fileselector_button_label_get(const Evas_Object *obj);
467    EAPI void         elm_fileselector_button_icon_set(Evas_Object *obj, Evas_Object *icon);
468    EAPI Evas_Object *elm_fileselector_button_icon_get(const Evas_Object *obj);
469    EAPI void         elm_fileselector_button_window_title_set(Evas_Object *obj, const char *title);
470    EAPI const char  *elm_fileselector_button_window_title_get(const Evas_Object *obj);
471    EAPI void         elm_fileselector_button_window_size_set(Evas_Object *obj, Evas_Coord width, Evas_Coord height);
472    EAPI void         elm_fileselector_button_window_size_get(const Evas_Object *obj, Evas_Coord *width, Evas_Coord *height);
473    EAPI void         elm_fileselector_button_path_set(Evas_Object *obj, const char *path);
474    EAPI const char  *elm_fileselector_button_path_get(const Evas_Object *obj);
475    EAPI void         elm_fileselector_button_expandable_set(Evas_Object *obj, Eina_Bool value);
476    EAPI Eina_Bool    elm_fileselector_button_expandable_get(const Evas_Object *obj);
477    EAPI void         elm_fileselector_button_folder_only_set(Evas_Object *obj, Eina_Bool value);
478    EAPI Eina_Bool    elm_fileselector_button_folder_only_get(const Evas_Object *obj);
479    EAPI void         elm_fileselector_button_is_save_set(Evas_Object *obj, Eina_Bool value);
480    EAPI Eina_Bool    elm_fileselector_button_is_save_get(const Evas_Object *obj);
481    EAPI void         elm_fileselector_button_inwin_mode_set(Evas_Object *obj, Eina_Bool value);
482    EAPI Eina_Bool    elm_fileselector_button_inwin_mode_get(const Evas_Object *obj);
483    EAPI void         elm_fileselector_button_selected_set(Evas_Object *obj, const char *path);
484    EAPI const char  *elm_fileselector_button_selected_get(const Evas_Object *obj);
485
486    /* available styles:
487     * default
488     * anchor
489     * hoversel_vertical
490     * hoversel_vertical_entry
491     */
492    /* smart callbacks called:
493     * "clicked" - the user clicked the button
494     * "repeated" - the user pressed the button without releasing it
495     * "unpressed" - when the button is unpressed (released)
496     */
497
498    typedef enum _Elm_Scroller_Policy
499      {
500         ELM_SCROLLER_POLICY_AUTO = 0,
501         ELM_SCROLLER_POLICY_ON,
502         ELM_SCROLLER_POLICY_OFF,
503         ELM_SCROLLER_POLICY_LAST
504      }
505    Elm_Scroller_Policy;
506
507    EAPI Evas_Object *elm_scroller_add(Evas_Object *parent);
508    EAPI void         elm_scroller_content_set(Evas_Object *obj, Evas_Object *child);
509    EAPI void         elm_scroller_custom_widget_base_theme_set(Evas_Object *obj, const char *widget, const char *base);
510    EAPI void         elm_scroller_content_min_limit(Evas_Object *obj, Eina_Bool w, Eina_Bool h);
511    EAPI void         elm_scroller_region_show(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
512    EAPI void         elm_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v);
513    EAPI void         elm_scroller_policy_get(const Evas_Object *obj, Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v);
514    EAPI void         elm_scroller_region_get(const Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
515    EAPI void         elm_scroller_child_size_get(const Evas_Object *obj, Evas_Coord *w, Evas_Coord *h);
516    EAPI void         elm_scroller_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
517    EAPI void         elm_scroller_page_relative_set(Evas_Object *obj, double h_pagerel, double v_pagerel);
518    EAPI void         elm_scroller_page_size_set(Evas_Object *obj, Evas_Coord h_pagesize, Evas_Coord v_pagesize);
519    EAPI void         elm_scroller_region_bring_in(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
520    EAPI void         elm_scroller_page_move_set(Evas_Object *obj, Eina_Bool set);
521    /* smart callbacks called:
522     * "edge,left"
523     * "edge,right"
524     * "edge,top"
525     * "edge,bottom"
526     * "scroll"
527     * "scroll,anim,start"
528     * "scroll,anim,stop"
529     * "scroll,drag,start"
530     * "scroll,drag,stop"
531     */
532
533    EAPI Evas_Object *elm_label_add(Evas_Object *parent);
534    EAPI void         elm_label_label_set(Evas_Object *obj, const char *label);
535    EAPI const char  *elm_label_label_get(const Evas_Object *obj);
536    EAPI void         elm_label_line_wrap_set(Evas_Object *obj, Eina_Bool wrap);
537    EAPI Eina_Bool    elm_label_line_wrap_get(const Evas_Object *obj);
538    EAPI void         elm_label_wrap_width_set(Evas_Object *obj, Evas_Coord w);
539    EAPI Evas_Coord   elm_label_wrap_width_get(const Evas_Object *obj);
540    EAPI void         elm_label_fontsize_set(Evas_Object *obj, const int fontsize);
541    EAPI void         elm_label_text_color_set(Evas_Object *obj, unsigned int r, unsigned int g, unsigned int b, unsigned int a);
542    EAPI void         elm_label_text_align_set(Evas_Object *obj, char *alignmode);
543    EAPI void         elm_label_background_color_set(Evas_Object *obj, unsigned int r, unsigned int g, unsigned int b, unsigned int a);
544    EAPI void         elm_label_ellipsis_set(Evas_Object *obj, Eina_Bool ellipsis);
545    /* available styles:
546     * default
547     * marker
548     */
549    /* smart callbacks called:
550     */
551
552    EAPI Evas_Object *elm_toggle_add(Evas_Object *parent);
553    EAPI void         elm_toggle_label_set(Evas_Object *obj, const char *label);
554    EAPI const char  *elm_toggle_label_get(const Evas_Object *obj);
555    EAPI void         elm_toggle_icon_set(Evas_Object *obj, Evas_Object *icon);
556    EAPI Evas_Object *elm_toggle_icon_get(const Evas_Object *obj);
557    EAPI void         elm_toggle_states_labels_set(Evas_Object *obj, const char *onlabel, const char *offlabel);
558    EAPI void         elm_toggle_states_labels_get(const Evas_Object *obj, const char **onlabel, const char **offlabel);
559    EAPI void         elm_toggle_state_set(Evas_Object *obj, Eina_Bool state);
560    EAPI Eina_Bool    elm_toggle_state_get(const Evas_Object *obj);
561    EAPI void         elm_toggle_state_pointer_set(Evas_Object *obj, Eina_Bool *statep);
562    /* smart callbacks called:
563     * "changed" - the user toggled the state
564     */
565
566    EAPI Evas_Object *elm_frame_add(Evas_Object *parent);
567    EAPI void         elm_frame_label_set(Evas_Object *obj, const char *label);
568    EAPI const char  *elm_frame_label_get(const Evas_Object *obj);
569    EAPI void         elm_frame_content_set(Evas_Object *obj, Evas_Object *content);
570    /* available styles:
571     * default
572     * pad_small
573     * pad_medium
574     * pad_large
575     * pad_huge
576     * outdent_top
577     * outdent_bottom
578     */
579    /* smart callbacks called:
580     */
581
582    EAPI Evas_Object *elm_table_add(Evas_Object *parent);
583    EAPI void         elm_table_homogenous_set(Evas_Object *obj, Eina_Bool homogenous);
584    EAPI void         elm_table_padding_set(Evas_Object *obj, Evas_Coord horizontal, Evas_Coord vertical);
585    EAPI void         elm_table_pack(Evas_Object *obj, Evas_Object *subobj, int x, int y, int w, int h);
586    EAPI void         elm_table_unpack(Evas_Object *obj, Evas_Object *subobj);
587    EAPI void         elm_table_clear(Evas_Object *obj, Eina_Bool clear);
588        
589    typedef struct _Elm_Gengrid_Item_Class Elm_Gengrid_Item_Class;
590    typedef struct _Elm_Gengrid_Item_Class_Func Elm_Gengrid_Item_Class_Func;
591    typedef struct _Elm_Gengrid_Item Elm_Gengrid_Item;
592    typedef char        *(*GridItemLabelGetFunc) (const void *data, Evas_Object *obj, const char *part);
593    typedef Evas_Object *(*GridItemIconGetFunc)  (const void *data, Evas_Object *obj, const char *part);
594    typedef Eina_Bool    (*GridItemStateGetFunc) (const void *data, Evas_Object *obj, const char *part);
595    typedef void         (*GridItemDelFunc)      (const void *data, Evas_Object *obj);
596
597    struct _Elm_Gengrid_Item_Class
598      {
599         const char *item_style;
600         struct _Elm_Gengrid_Item_Class_Func
601           {
602              GridItemLabelGetFunc label_get;
603              GridItemIconGetFunc icon_get;
604              GridItemStateGetFunc state_get;
605              GridItemDelFunc del;
606           } func;
607      };
608
609    EAPI Evas_Object *elm_gengrid_add(Evas_Object *parent);
610    EAPI void         elm_gengrid_item_size_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h);
611    EAPI void         elm_gengrid_item_size_get(const Evas_Object *obj, Evas_Coord *w, Evas_Coord *h);
612    EAPI void         elm_gengrid_align_set(Evas_Object *obj, double align_x, double align_y);
613    EAPI void         elm_gengrid_align_get(const Evas_Object *obj, double *align_x, double *align_y);
614    EAPI void         elm_gengrid_item_del(Elm_Gengrid_Item *item);
615    EAPI void         elm_gengrid_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select);
616    EAPI Eina_Bool    elm_gengrid_always_select_mode_get(const Evas_Object *obj);
617    EAPI void         elm_gengrid_no_select_mode_set(Evas_Object *obj, Eina_Bool no_select);
618    EAPI Eina_Bool    elm_gengrid_no_select_mode_get(const Evas_Object *obj);
619    EAPI void         elm_gengrid_multi_select_set(Evas_Object *obj, Eina_Bool multi);
620    EAPI Eina_Bool    elm_gengrid_multi_select_get(const Evas_Object *obj);
621    EAPI void         elm_gengrid_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
622    EAPI void         elm_gengrid_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce);
623    EAPI void         elm_gengrid_horizontal_set(Evas_Object *obj, Eina_Bool setting);
624    EAPI void         elm_gengrid_clear(Evas_Object *obj);
625    EAPI void        *elm_gengrid_item_data_get(Elm_Gengrid_Item *item);
626    EAPI void         elm_gengrid_item_pos_get(const Elm_Gengrid_Item *item, unsigned int *x, unsigned int *y);
627    EAPI void         elm_gengrid_item_selected_set(Elm_Gengrid_Item *item, Eina_Bool selected);
628    EAPI Eina_Bool    elm_gengrid_item_selected_get(const Elm_Gengrid_Item *item);
629    EAPI const Evas_Object *elm_gengrid_item_object_get(Elm_Gengrid_Item *item);
630    EAPI const Eina_List *elm_gengrid_selected_items_get(const Evas_Object *obj);
631    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);
632    /* smart callbacks called:
633     *
634     * selected - User has selected a item.
635     * unselected - User has unselected a item.
636     * clicked - User has double-clicked a item.
637     * realized - An evas object for a item was built.
638     * scroll - the content has been scrolled (moved).
639     * "scroll,drag,start" - dragging the contents around has started.
640     * "scroll,drat,stop" - dragging the contents around has stopped.
641     * drag - Gengrid is being dragged.
642     * "drag,start,up" - Gengrid has been dragged (not scrolled) up.
643     * "drag,start,down" - Gengrid has been dragged (not scrolled) down.
644     * "drag,start,left" - Gengrid has been dragged (not scrolled) left.
645     * "drag,start,rigth" - Gengrid has been dragged (nto scrolled) right.
646     * "drag,stop" - Gengrid is not being dragged.
647     */
648
649    EAPI Evas_Object *elm_clock_add(Evas_Object *parent);
650    EAPI void         elm_clock_time_set(Evas_Object *obj, int hrs, int min, int sec);
651    EAPI void         elm_clock_time_get(const Evas_Object *obj, int *hrs, int *min, int *sec);
652    EAPI void         elm_clock_edit_set(Evas_Object *obj, Eina_Bool edit);
653    EAPI Eina_Bool    elm_clock_edit_get(const Evas_Object *obj);
654    EAPI void         elm_clock_digit_edit_set(Evas_Object *obj, Elm_Clock_Digedit digedit);
655    EAPI Elm_Clock_Digedit elm_clock_digit_edit_get(const Evas_Object *obj);
656    EAPI void         elm_clock_show_am_pm_set(Evas_Object *obj, Eina_Bool am_pm);
657    EAPI Eina_Bool    elm_clock_show_am_pm_get(const Evas_Object *obj);
658    EAPI void         elm_clock_show_seconds_set(Evas_Object *obj, Eina_Bool seconds);
659    EAPI Eina_Bool    elm_clock_show_seconds_get(const Evas_Object *obj);
660    /* smart callbacks called:
661     * "changed" - the user changed the time
662     */
663
664    EAPI Evas_Object *elm_layout_add(Evas_Object *parent);
665    EAPI Eina_Bool    elm_layout_file_set(Evas_Object *obj, const char *file, const char *group);
666    EAPI Eina_Bool    elm_layout_theme_set(Evas_Object *obj, const char *clas, const char *group, const char *style);
667    EAPI void         elm_layout_content_set(Evas_Object *obj, const char *swallow, Evas_Object *content);
668    EAPI Evas_Object *elm_layout_edje_get(const Evas_Object *obj);
669    EAPI void         elm_layout_sizing_eval(Evas_Object *obj);
670    /* smart callbacks called:
671     */
672
673    typedef enum _Elm_Notify_Orient
674      {
675          ELM_NOTIFY_ORIENT_TOP,
676          ELM_NOTIFY_ORIENT_CENTER,
677          ELM_NOTIFY_ORIENT_BOTTOM,
678          ELM_NOTIFY_ORIENT_LEFT,
679          ELM_NOTIFY_ORIENT_RIGHT,
680          ELM_NOTIFY_ORIENT_TOP_LEFT,
681          ELM_NOTIFY_ORIENT_TOP_RIGHT,
682          ELM_NOTIFY_ORIENT_BOTTOM_LEFT,
683          ELM_NOTIFY_ORIENT_BOTTOM_RIGHT
684      } Elm_Notify_Orient;
685    EAPI Evas_Object *elm_notify_add(Evas_Object *parent);
686    EAPI void         elm_notify_content_set(Evas_Object *obj, Evas_Object *content);
687    EAPI void         elm_notify_parent_set(Evas_Object *obj, Evas_Object *parent);
688    EAPI void         elm_notify_orient_set(Evas_Object *obj, Elm_Notify_Orient orient);
689    EAPI void         elm_notify_timeout_set(Evas_Object *obj, int timeout);
690    EAPI void         elm_notify_timer_init(Evas_Object *obj);
691    EAPI void         elm_notify_repeat_events_set(Evas_Object *obj, Eina_Bool repeat);
692    /* smart callbacks called:
693     */
694    
695    typedef enum _Elm_Hover_Axis
696      {
697         ELM_HOVER_AXIS_NONE,
698           ELM_HOVER_AXIS_HORIZONTAL,
699           ELM_HOVER_AXIS_VERTICAL,
700           ELM_HOVER_AXIS_BOTH
701      } Elm_Hover_Axis;
702    EAPI Evas_Object *elm_hover_add(Evas_Object *parent);
703    EAPI void         elm_hover_target_set(Evas_Object *obj, Evas_Object *target);
704    EAPI Evas_Object *elm_hover_target_get(Evas_Object *obj);
705    EAPI void         elm_hover_parent_set(Evas_Object *obj, Evas_Object *parent);
706    EAPI Evas_Object *elm_hover_parent_get(Evas_Object *obj);
707    EAPI void         elm_hover_content_set(Evas_Object *obj, const char *swallow, Evas_Object *content);
708    EAPI const char  *elm_hover_best_content_location_get(const Evas_Object *obj, Elm_Hover_Axis pref_axis);
709    /* available styles:
710     * default
711     * popout
712     * menu
713     * hoversel_vertical
714     */
715    /* smart callbacks called:
716     * "clicked" - the user clicked the empty space in the hover to dismiss
717     */
718
719    typedef struct _Elm_Entry_Anchor_Info Elm_Entry_Anchor_Info;
720    struct _Elm_Entry_Anchor_Info
721      {
722         const char *name;
723         int button;
724         Evas_Coord x, y, w, h;
725      };
726    typedef enum _Elm_Icon_Type
727      {
728         ELM_ICON_NONE,
729           ELM_ICON_FILE,
730           ELM_ICON_STANDARD
731      } Elm_Icon_Type;
732    typedef struct _Elm_Hoversel_Item Elm_Hoversel_Item;
733    EAPI Evas_Object *elm_entry_add(Evas_Object *parent);
734    EAPI void         elm_entry_single_line_set(Evas_Object *obj, Eina_Bool single_line);
735    EAPI Eina_Bool    elm_entry_single_line_get(const Evas_Object *obj);
736    EAPI void         elm_entry_password_set(Evas_Object *obj, Eina_Bool password);
737    EAPI Eina_Bool    elm_entry_password_get(const Evas_Object *obj);
738    EAPI void         elm_entry_password_show_last_character_set(Evas_Object *obj, Eina_Bool show_last_character);
739
740    EAPI void         elm_entry_entry_set(Evas_Object *obj, const char *entry);
741    EAPI const char  *elm_entry_entry_get(const Evas_Object *obj);
742    EAPI const char  *elm_entry_selection_get(const Evas_Object *obj);
743    EAPI void         elm_entry_entry_insert(Evas_Object *obj, const char *entry);
744    EAPI void         elm_entry_line_wrap_set(Evas_Object *obj, Eina_Bool wrap);
745    EAPI void         elm_entry_line_char_wrap_set(Evas_Object *obj, Eina_Bool wrap);
746    EAPI void         elm_entry_editable_set(Evas_Object *obj, Eina_Bool editable);
747    EAPI Eina_Bool    elm_entry_editable_get(const Evas_Object *obj);
748    EAPI void         elm_entry_select_none(Evas_Object *obj);
749    EAPI void         elm_entry_select_all(Evas_Object *obj);
750    EAPI Eina_Bool    elm_entry_cursor_next(Evas_Object *obj);
751    EAPI Eina_Bool    elm_entry_cursor_prev(Evas_Object *obj);
752    EAPI Eina_Bool    elm_entry_cursor_up(Evas_Object *obj);
753    EAPI Eina_Bool    elm_entry_cursor_down(Evas_Object *obj);
754    EAPI void         elm_entry_cursor_begin_set(Evas_Object *obj);
755    EAPI void         elm_entry_cursor_end_set(Evas_Object *obj);
756    EAPI void         elm_entry_cursor_line_begin_set(Evas_Object *obj);
757    EAPI void         elm_entry_cursor_line_end_set(Evas_Object *obj);
758    EAPI void         elm_entry_cursor_selection_begin(Evas_Object *obj);
759    EAPI void         elm_entry_cursor_selection_end(Evas_Object *obj);
760    EAPI Eina_Bool    elm_entry_cursor_is_format_get(const Evas_Object *obj);
761    EAPI Eina_Bool    elm_entry_cursor_is_visible_format_get(const Evas_Object *obj);
762    EAPI const char  *elm_entry_cursor_content_get(const Evas_Object *obj);
763    EAPI void         elm_entry_selection_cut(Evas_Object *obj);
764    EAPI void         elm_entry_selection_copy(Evas_Object *obj);
765    EAPI void         elm_entry_selection_paste(Evas_Object *obj);
766    EAPI void         elm_entry_context_menu_clear(Evas_Object *obj);
767    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);
768    EAPI void         elm_entry_context_menu_disabled_set(Evas_Object *obj, Eina_Bool disabled);
769    EAPI Eina_Bool    elm_entry_context_menu_disabled_get(const Evas_Object *obj);
770    EAPI void         elm_entry_item_provider_append(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item), void *data);
771    EAPI void         elm_entry_item_provider_prepend(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item), void *data);
772    EAPI void         elm_entry_item_provider_remove(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item), void *data);
773    EAPI char        *elm_entry_markup_to_utf8(const char *s);
774    EAPI char        *elm_entry_utf8_to_markup(const char *s);
775
776    EAPI void         elm_entry_autocapitalization_set(Evas_Object *obj, Eina_Bool on);
777    EAPI void         elm_entry_autoenable_returnkey_set(Evas_Object *obj, Eina_Bool on);
778 #ifdef ELM_IMF
779    EAPI const Ecore_IMF_Context *elm_entry_imf_context_get(Evas_Object *obj);
780 #else
781    EAPI void        *elm_entry_imf_context_get(Evas_Object *obj);
782 #endif
783    EAPI void            elm_entry_maximum_bytes_set(Evas_Object *obj, int max_no_of_bytes);
784
785    /* smart callbacks called:
786     * "changed" - the text content changed
787     * "selection,start" - the user started selecting text
788     * "selection,changed" - the user modified the selection size/location
789     * "selection,cleared" - the user cleared the selection
790     * "selection,paste" - the user requested a paste of text
791     * "selection,copy" - the user copied the text
792     * "selection,cut" - the user cut the text
793     * "cursor,changed" - the cursor changed position
794     * "anchor,clicked" - achor called was clicked | event_info = Elm_Entry_Anchor_Info
795     * "activated" - when the enter key is pressed (useful for single line)
796     * "press" - when finger/mouse is pressed down
797     * "clicked" - when finger/mouse is pressed and released (without a drag etc.)
798     * "clicked,double" - when finger/mouse is double-pressed
799     * "longpressed" - the entry has been longpressed
800     * "focused" - the entry has received keyboard focus
801     * "unfocused" - keyboard focus is gone
802     */
803
804    /* composite widgets - these basically put together basic widgets above
805     * in convenient packages that do more than basic stuff */
806    typedef enum _Elm_Text_Format
807      {
808         ELM_TEXT_FORMAT_PLAIN_UTF8,
809         ELM_TEXT_FORMAT_MARKUP_UTF8
810      } Elm_Text_Format;
811    EAPI Evas_Object *elm_notepad_add(Evas_Object *parent);
812    EAPI void         elm_notepad_file_set(Evas_Object *obj, const char *file, Elm_Text_Format format);
813    EAPI void         elm_notepad_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
814    /* smart callbacks called:
815     */
816
817    typedef struct _Elm_Entry_Anchorview_Info Elm_Entry_Anchorview_Info;
818    struct _Elm_Entry_Anchorview_Info
819      {
820         const char *name;
821         int button;
822         Evas_Object *hover;
823         struct
824           {
825              Evas_Coord x, y, w, h;
826           } anchor, hover_parent;
827         Eina_Bool hover_left : 1;
828         Eina_Bool hover_right : 1;
829         Eina_Bool hover_top : 1;
830         Eina_Bool hover_bottom : 1;
831      };
832    EAPI Evas_Object *elm_anchorview_add(Evas_Object *parent);
833    EAPI void         elm_anchorview_text_set(Evas_Object *obj, const char *text);
834    EAPI const char  *elm_anchorview_text_get(const Evas_Object *obj);
835
836    EAPI void         elm_anchorview_hover_parent_set(Evas_Object *obj, Evas_Object *parent);
837    EAPI void         elm_anchorview_hover_style_set(Evas_Object *obj, const char *style);
838    EAPI void         elm_anchorview_hover_end(Evas_Object *obj);
839    EAPI void         elm_anchorview_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
840    EAPI void         elm_anchorview_item_provider_append(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *anchorview, const char *item), void *data);
841    EAPI void         elm_anchorview_item_provider_prepend(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *anchorview, const char *item), void *data);
842    EAPI void         elm_anchorview_item_provider_remove(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *anchorview, const char *item), void *data);
843    /* smart callbacks called:
844     * "anchor,clicked" - achor called was clicked | event_info = Elm_Entry_Anchorview_Info
845     */
846
847    typedef struct _Elm_Entry_Anchorblock_Info Elm_Entry_Anchorblock_Info;
848    struct _Elm_Entry_Anchorblock_Info
849      {
850         const char *name;
851         int button;
852         Evas_Object *hover;
853         struct
854           {
855              Evas_Coord x, y, w, h;
856           } anchor, hover_parent;
857         Eina_Bool hover_left : 1;
858         Eina_Bool hover_right : 1;
859         Eina_Bool hover_top : 1;
860         Eina_Bool hover_bottom : 1;
861      };
862    EAPI Evas_Object *elm_anchorblock_add(Evas_Object *parent);
863    EAPI void         elm_anchorblock_text_set(Evas_Object *obj, const char *text);
864    EAPI const char  *elm_anchorblock_text_get(const Evas_Object *obj);
865    EAPI void         elm_anchorblock_hover_parent_set(Evas_Object *obj, Evas_Object *parent);
866    EAPI void         elm_anchorblock_hover_style_set(Evas_Object *obj, const char *style);
867    EAPI void         elm_anchorblock_hover_end(Evas_Object *obj);
868    EAPI void         elm_anchorblock_item_provider_append(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *anchorblock, const char *item), void *data);
869    EAPI void         elm_anchorblock_item_provider_prepend(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *anchorblock, const char *item), void *data);
870    EAPI void         elm_anchorblock_item_provider_remove(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *anchorblock, const char *item), void *data);
871    /* smart callbacks called:
872     * "anchor,clicked" - achor called was clicked | event_info = Elm_Entry_Anchorblock_Info
873     */
874
875    EAPI Evas_Object *elm_bubble_add(Evas_Object *parent);
876    EAPI void         elm_bubble_label_set(Evas_Object *obj, const char *label);
877    EAPI const char  *elm_bubble_label_get(const Evas_Object *obj);
878    EAPI void         elm_bubble_info_set(Evas_Object *obj, const char *info);
879    EAPI const char  *elm_bubble_info_get(const Evas_Object *obj);
880
881    EAPI void         elm_bubble_content_set(Evas_Object *obj, Evas_Object *content);
882    EAPI void         elm_bubble_icon_set(Evas_Object *obj, Evas_Object *icon);
883    EAPI Evas_Object *elm_bubble_icon_get(const Evas_Object *obj);
884    EAPI void         elm_bubble_corner_set(Evas_Object *obj, const char *corner);
885    /* smart callbacks called:
886     */
887
888    EAPI Evas_Object *elm_photo_add(Evas_Object *parent);
889    EAPI Eina_Bool    elm_photo_file_set(Evas_Object *obj, const char *file);
890    EAPI void         elm_photo_size_set(Evas_Object *obj, int size);
891    /* smart callbacks called:
892     * "clicked" - the user clicked the icon
893     */
894
895    EAPI Evas_Object *elm_thumb_add(Evas_Object *parent);
896    EAPI void         elm_thumb_file_set(Evas_Object *obj, const char *file, const char *key);
897    EAPI void         elm_thumb_file_get(const Evas_Object *obj, const char **file, const char **key);
898    EAPI void         elm_thumb_path_get(const Evas_Object *obj, const char **file, const char **key);
899    EAPI void         elm_thumb_keep_aspect_set(Evas_Object *obj, Eina_Bool setting);
900    EAPI Eina_Bool    elm_thumb_keep_aspect_get(const Evas_Object *obj);
901    EAPI void         elm_thumb_align_set(Evas_Object *obj, float x_align, float y_align);
902    EAPI void         elm_thumb_align_get(const Evas_Object *obj, float *x, float *y);
903    EAPI void         elm_thumb_animate_set(Evas_Object *obj, Elm_Thumb_Animation_Setting s);
904    EAPI Elm_Thumb_Animation_Setting elm_thumb_animate_get(const Evas_Object *obj);
905    EAPI Eina_Bool    elm_thumb_ethumb_client_connected(void);
906 #ifdef ELM_ETHUMB
907    EAPI Ethumb_Client *elm_thumb_ethumb_client_get(void);
908 #else
909    EAPI void        *elm_thumb_ethumb_client_get(void);
910 #endif
911    /* smart callbacks called:
912     * "clicked" - the user clicked the thumb
913     * "clicked,double" - the user double clicked the thumb
914     * "press" - the user pressed the thumb
915     * "generate,start" - the thumbnail generation started
916     * "generate,stop" - the thumbnail generation stopped
917     * "generate,error" - the thumbnail generation failed
918     * "load,error" - the thumbnail image loading failed
919     */
920
921    EAPI Evas_Object *elm_hoversel_add(Evas_Object *parent);
922    EAPI void         elm_hoversel_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
923    EAPI Eina_Bool    elm_hoversel_horizontal_get(const Evas_Object *obj);
924    EAPI void         elm_hoversel_hover_parent_set(Evas_Object *obj, Evas_Object *parent);
925    EAPI void         elm_hoversel_label_set(Evas_Object *obj, const char *label);
926    EAPI const char  *elm_hoversel_label_get(const Evas_Object *obj);
927    EAPI void         elm_hoversel_icon_set(Evas_Object *obj, Evas_Object *icon);
928    EAPI Evas_Object *elm_hoversel_icon_get(const Evas_Object *obj);
929    EAPI void         elm_hoversel_hover_begin(Evas_Object *obj);
930    EAPI void         elm_hoversel_hover_end(Evas_Object *obj);
931    EAPI Eina_Bool    elm_hoversel_expanded_get(Evas_Object *obj);
932    EAPI void         elm_hoversel_clear(Evas_Object *obj);
933    EAPI const Eina_List * elm_hoversel_items_get(const Evas_Object *obj);
934    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);
935    EAPI void         elm_hoversel_item_del(Elm_Hoversel_Item *item);
936    EAPI void         elm_hoversel_item_del_cb_set(Elm_Hoversel_Item *it, Evas_Smart_Cb func);
937    EAPI void        *elm_hoversel_item_data_get(Elm_Hoversel_Item *it);
938    EAPI const char  *elm_hoversel_item_label_get(Elm_Hoversel_Item *it);
939    EAPI void         elm_hoversel_item_icon_set(Elm_Hoversel_Item *it, const char *icon_file, const char *icon_group, Elm_Icon_Type icon_type);
940    EAPI void         elm_hoversel_item_icon_get(Elm_Hoversel_Item *it, const char **icon_file, const char **icon_group, Elm_Icon_Type *icon_type);
941    /* smart callbacks called:
942     * "clicked" - the user clicked the hoversel button and popped up the sel
943     * "selected" - an item in the hoversel list is selected
944     * "dismissed" - the hover is dismissed
945     */
946
947    typedef struct _Elm_Toolbar_Item Elm_Toolbar_Item;
948    EAPI Evas_Object      *elm_toolbar_add(Evas_Object *parent);
949    EAPI void              elm_toolbar_icon_size_set(Evas_Object *obj, int icon_size);
950    EAPI int               elm_toolbar_icon_size_get(const Evas_Object *obj);
951    EAPI Elm_Toolbar_Item *elm_toolbar_item_add(Evas_Object *obj, Evas_Object *icon, const char *label, Evas_Smart_Cb func, const void *data);
952    EAPI Evas_Object      *elm_toolbar_item_icon_get(Elm_Toolbar_Item *item);
953    EAPI const char       *elm_toolbar_item_label_get(const Elm_Toolbar_Item *item);
954    EAPI Eina_Bool         elm_toolbar_item_selected_get(const Elm_Toolbar_Item *item);
955    EAPI void              elm_toolbar_item_label_set(Elm_Toolbar_Item *item, const char *label);
956    EAPI void              elm_toolbar_item_del(Elm_Toolbar_Item *item);
957    EAPI void              elm_toolbar_item_del_cb_set(Elm_Toolbar_Item *it, Evas_Smart_Cb func);
958    EAPI void              elm_toolbar_item_select(Elm_Toolbar_Item *item);
959    EAPI Eina_Bool         elm_toolbar_item_disabled_get(Elm_Toolbar_Item *item);
960    EAPI void              elm_toolbar_item_disabled_set(Elm_Toolbar_Item *item, Eina_Bool disabled);
961    EAPI void              elm_toolbar_item_separator_set(Elm_Toolbar_Item *item, Eina_Bool separator);
962    EAPI Eina_Bool         elm_toolbar_item_separator_get(Elm_Toolbar_Item *item);
963    EAPI Eina_List        *elm_toolbar_item_get_all(Evas_Object *obj);
964    EAPI Elm_Toolbar_Item *elm_toolbar_item_get_first(Evas_Object *obj);
965    EAPI Elm_Toolbar_Item *elm_toolbar_item_get_last(Evas_Object *obj);
966    EAPI Elm_Toolbar_Item *elm_toolbar_item_get_next(Evas_Object *obj);
967    EAPI Elm_Toolbar_Item *elm_toolbar_item_select_next(Evas_Object *obj);
968    EAPI Elm_Toolbar_Item *elm_toolbar_item_select_first(Evas_Object *obj);
969    EAPI Elm_Toolbar_Item *elm_toolbar_item_select_last(Evas_Object *obj);
970    EAPI Elm_Toolbar_Item *elm_toolbar_item_find_by_label(Evas_Object *obj, const char *label);
971    EAPI void              elm_toolbar_scrollable_set(Evas_Object *obj, Eina_Bool scrollable);
972    EAPI Eina_Bool         elm_toolbar_scrollable_get(Evas_Object *obj);
973    EAPI void              elm_toolbar_homogenous_set(Evas_Object *obj, Eina_Bool homogenous);
974    EAPI Eina_Bool         elm_toolbar_homogenous_get(Evas_Object *obj);
975    EAPI void              elm_toolbar_menu_parent_set(Evas_Object *obj, Evas_Object *parent);
976    EAPI Evas_Object      *elm_toolbar_menu_parent_get(Evas_Object *obj);
977    EAPI void              elm_toolbar_item_unselect_all(Evas_Object *obj);
978    EAPI void              elm_toolbar_align_set(Evas_Object *obj, double align);
979    EAPI double            elm_toolbar_align_get(const Evas_Object *obj);
980    EAPI void              elm_toolbar_item_menu_set(Elm_Toolbar_Item *item, Eina_Bool menu);
981    EAPI Evas_Object      *elm_toolbar_item_menu_get(Elm_Toolbar_Item *item);
982    /* smart callbacks called:
983     * "clicked" - when the user clicks on a toolbar item and becomes selected
984     */
985
986    typedef struct _Menu_Item Elm_Menu_Item;
987    EAPI Evas_Object     *elm_menu_add(Evas_Object *parent);
988    EAPI void             elm_menu_parent_set(Evas_Object *obj, Evas_Object *parent);
989    EAPI void             elm_menu_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y);
990    EAPI Evas_Object     *elm_menu_object_get(const Elm_Menu_Item *it);
991    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);
992    EAPI void             elm_menu_item_label_set(Elm_Menu_Item *item, const char *label);
993    EAPI const char      *elm_menu_item_label_get(Elm_Menu_Item *item);
994    EAPI void             elm_menu_item_icon_set(Elm_Menu_Item *item, Evas_Object *icon);
995    EAPI Evas_Object     *elm_menu_item_icon_get(Elm_Menu_Item *item);
996    EAPI void             elm_menu_item_disabled_set(Elm_Menu_Item *item, Eina_Bool disabled);
997    EAPI Eina_Bool        elm_menu_item_disabled_get(Elm_Menu_Item *item);
998    EAPI Elm_Menu_Item   *elm_menu_item_separator_add(Evas_Object *obj, Elm_Menu_Item *parent);
999    EAPI Eina_Bool        elm_menu_item_is_separator(Elm_Menu_Item *item);
1000    EAPI void             elm_menu_item_del(Elm_Menu_Item *item);
1001    EAPI void             elm_menu_item_del_cb_set(Elm_Menu_Item *it, Evas_Smart_Cb func);
1002    EAPI void            *elm_menu_item_data_get(const Elm_Menu_Item *it);
1003    EAPI void             elm_menu_item_data_set(Elm_Menu_Item *item, const void *data);
1004    EAPI const Eina_List *elm_menu_item_subitems_get(Elm_Menu_Item *item);
1005    /* smart callbacks called:
1006     * "clicked" - the user clicked the empty space in the menu to dismiss. event_info is NULL.
1007     */
1008
1009    typedef enum _Elm_List_Mode
1010      {
1011         ELM_LIST_COMPRESS = 0,
1012         ELM_LIST_SCROLL,
1013         ELM_LIST_LIMIT,
1014         ELM_LIST_LAST
1015      } Elm_List_Mode;
1016    typedef struct _Elm_List_Item Elm_List_Item;
1017    EAPI Evas_Object     *elm_list_add(Evas_Object *parent);
1018    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);
1019    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);
1020    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);
1021    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);
1022    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);
1023    EAPI void             elm_list_clear(Evas_Object *obj);
1024    EAPI void             elm_list_go(Evas_Object *obj);
1025    EAPI void             elm_list_multi_select_set(Evas_Object *obj, Eina_Bool multi);
1026    EAPI Eina_Bool        elm_list_multi_select_get(const Evas_Object *obj);
1027    EAPI void             elm_list_horizontal_mode_set(Evas_Object *obj, Elm_List_Mode mode);
1028    EAPI Elm_List_Mode    elm_list_horizontal_mode_get(const Evas_Object *obj);
1029    EAPI void             elm_list_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select);
1030    EAPI Eina_Bool        elm_list_always_select_mode_get(const Evas_Object *obj);
1031    EAPI const Eina_List *elm_list_items_get(const Evas_Object *obj);
1032    EAPI Elm_List_Item   *elm_list_selected_item_get(const Evas_Object *obj);
1033    EAPI const Eina_List *elm_list_selected_items_get(const Evas_Object *obj);
1034    EAPI void             elm_list_item_selected_set(Elm_List_Item *item, Eina_Bool selected);
1035    EAPI Eina_Bool        elm_list_item_selected_get(Elm_List_Item *item);
1036    EAPI void             elm_list_item_show(Elm_List_Item *item);
1037    EAPI void             elm_list_item_del(Elm_List_Item *item);
1038    EAPI void             elm_list_item_del_cb_set(Elm_List_Item *item, Evas_Smart_Cb func);
1039    EAPI void            *elm_list_item_data_get(const Elm_List_Item *item);
1040    EAPI Evas_Object     *elm_list_item_icon_get(const Elm_List_Item *item);
1041    EAPI void             elm_list_item_icon_set(Elm_List_Item *item, Evas_Object *icon);
1042    EAPI Evas_Object     *elm_list_item_end_get(const Elm_List_Item *item);
1043    EAPI void             elm_list_item_end_set(Elm_List_Item *item, Evas_Object *end);
1044    EAPI Evas_Object     *elm_list_item_base_get(const Elm_List_Item *item);
1045    EAPI const char      *elm_list_item_label_get(const Elm_List_Item *item);
1046    EAPI void             elm_list_item_label_set(Elm_List_Item *item, const char *text);
1047    EAPI Elm_List_Item   *elm_list_item_prev(const Elm_List_Item *it);
1048    EAPI Elm_List_Item   *elm_list_item_next(const Elm_List_Item *it);
1049    EAPI void             elm_list_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
1050    EAPI void             elm_list_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v);
1051    EAPI void             elm_list_scroller_policy_get(const Evas_Object *obj, Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v);
1052    /* smart callbacks called:
1053     * "clicked" - when the user double-clicked an item
1054     * "selected" - when the user selected an item
1055     * "unselected" - when the user selected an item
1056     * "longpressed" - an item in the hoversel list is long-pressed
1057     */
1058
1059    // FIXME: incomplete - carousel. don't use this until this comment is removed
1060    typedef struct _Elm_Carousel_Item Elm_Carousel_Item;
1061    EAPI Evas_Object       *elm_carousel_add(Evas_Object *parent);
1062    EAPI Elm_Carousel_Item *elm_carousel_item_add(Evas_Object *obj, Evas_Object *icon, const char *label, Evas_Smart_Cb func, const void *data);
1063    EAPI void               elm_carousel_item_del(Elm_Carousel_Item *item);
1064    EAPI void               elm_carousel_item_select(Elm_Carousel_Item *item);
1065    /* smart callbacks called:
1066     * "clicked" - when the user clicks on a carousel item and becomes selected
1067     */
1068
1069    EAPI Evas_Object *elm_slider_add(Evas_Object *parent);
1070    EAPI void         elm_slider_label_set(Evas_Object *obj, const char *label);
1071    EAPI const char  *elm_slider_label_get(const Evas_Object *obj);
1072    EAPI void         elm_slider_icon_set(Evas_Object *obj, Evas_Object *icon);
1073    EAPI Evas_Object *elm_slider_icon_get(const Evas_Object *obj);
1074    EAPI void         elm_slider_span_size_set(Evas_Object *obj, Evas_Coord size);
1075    EAPI Evas_Coord   elm_slider_span_size_get(const Evas_Object *obj);
1076    EAPI void         elm_slider_unit_format_set(Evas_Object *obj, const char *format);
1077    EAPI const char  *elm_slider_unit_format_get(const Evas_Object *obj);
1078    EAPI void         elm_slider_indicator_format_set(Evas_Object *obj, const char *indicator);
1079    EAPI const char  *elm_slider_indicator_format_get(const Evas_Object *obj);
1080    EAPI void         elm_slider_indicator_format_function_set(Evas_Object *obj, const char *(*func)(double val));
1081    EAPI void         elm_slider_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
1082    EAPI Eina_Bool    elm_slider_horizontal_get(const Evas_Object *obj);
1083    EAPI void         elm_slider_min_max_set(Evas_Object *obj, double min, double max);
1084    EAPI void         elm_slider_min_max_get(const Evas_Object *obj, double *min, double *max);
1085    EAPI void         elm_slider_value_set(Evas_Object *obj, double val);
1086    EAPI double       elm_slider_value_get(const Evas_Object *obj);
1087    EAPI void         elm_slider_inverted_set(Evas_Object *obj, Eina_Bool inverted);
1088    EAPI Eina_Bool    elm_slider_inverted_get(const Evas_Object *obj);
1089
1090    // added for supporting aqua feature
1091    EAPI Eina_Bool       elm_slider_right_icon_set(Evas_Object *obj, Evas_Object *icon);
1092    EAPI Evas_Object *   elm_slider_right_icon_get(Evas_Object *obj);
1093    EAPI void            elm_slider_indicator_show_set(Evas_Object *obj, Eina_Bool show);
1094    EAPI void            elm_slider_value_animated_set(Evas_Object *obj, double val);
1095
1096    typedef enum _Elm_Genlist_Item_Flags
1097      {
1098         ELM_GENLIST_ITEM_NONE = 0,
1099         ELM_GENLIST_ITEM_SUBITEMS = (1 << 0)
1100      } Elm_Genlist_Item_Flags;
1101      typedef enum _Elm_Genlist_Edit_Mode
1102     {
1103       ELM_GENLIST_EDIT_MODE_NONE    = 0,
1104       ELM_GENLIST_EDIT_MODE_REORDER = (1 << 0),
1105       ELM_GENLIST_EDIT_MODE_INSERT  = (1 << 1),
1106       ELM_GENLIST_EDIT_MODE_DELETE  = (1 << 2)
1107     }Elm_Genlist_Edit_Mode;
1108    typedef struct _Elm_Genlist_Item_Class Elm_Genlist_Item_Class;
1109    typedef struct _Elm_Genlist_Item       Elm_Genlist_Item;
1110    typedef struct _Elm_Genlist_GroupItem       Elm_Genlist_GroupItem;
1111    typedef struct _Elm_Genlist_Item_Class_Func Elm_Genlist_Item_Class_Func;
1112    typedef struct _Elm_Genlist_Edit_Class Elm_Genlist_Edit_Class;
1113    typedef char        *(*GenlistItemLabelGetFunc) (const void *data, Evas_Object *obj, const char *part);
1114    typedef Evas_Object *(*GenlistItemIconGetFunc)  (const void *data, Evas_Object *obj, const char *part);
1115    typedef Eina_Bool    (*GenlistItemStateGetFunc) (const void *data, Evas_Object *obj, const char *part);
1116    typedef void         (*GenlistItemDelFunc)      (const void *data, Evas_Object *obj);
1117    typedef int          (*GenlistItemEditModeGetFunc)  (const void *data, Evas_Object *obj, const int enabled_edit_modes);
1118    typedef void         (*GenlistInsertNewFunc)      (Evas_Object *genlist, Elm_Genlist_Item *rel_item);
1119    typedef Eina_Bool    (*GenlistMoveFunc)      ( Evas_Object *genlist, Elm_Genlist_Item *item, Elm_Genlist_Item *rel_item, Eina_Bool move_after);
1120    typedef Eina_Bool    (*GenlistRemoveItemFunc)     (Evas_Object *genlist, Elm_Genlist_Item *rel_item);
1121
1122    struct _Elm_Genlist_Item_Class
1123      {
1124         const char *item_style;
1125         struct _Elm_Genlist_Item_Class_Func
1126           {
1127              GenlistItemLabelGetFunc label_get;
1128              GenlistItemIconGetFunc icon_get;
1129              GenlistItemStateGetFunc state_get;
1130              GenlistItemDelFunc del;
1131              GenlistItemEditModeGetFunc editmode_get;
1132           } func;
1133      };
1134
1135    struct _Elm_Genlist_Edit_Class
1136      {
1137         GenlistRemoveItemFunc remove;
1138         GenlistInsertNewFunc insert_new;
1139         GenlistMoveFunc move;
1140      };
1141    EAPI Evas_Object      *elm_genlist_add(Evas_Object *parent);
1142    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);
1143    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);
1144    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);
1145    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);
1146    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);
1147    EAPI void              elm_genlist_item_move_after(Elm_Genlist_Item *it, Elm_Genlist_Item *after );
1148    EAPI void              elm_genlist_clear(Evas_Object *obj);
1149    EAPI Elm_Genlist_GroupItem *elm_genlist_groupitem_add(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data);
1150    EAPI void             elm_genlist_groupitem_del( Elm_Genlist_GroupItem *git);
1151    EAPI void              elm_genlist_multi_select_set(Evas_Object *obj, Eina_Bool multi);
1152
1153    EAPI Elm_Genlist_Item *elm_genlist_selected_item_get(const Evas_Object *obj);
1154    EAPI const Eina_List  *elm_genlist_selected_items_get(const Evas_Object *obj);
1155    EAPI Eina_List        *elm_genlist_realized_items_get(const Evas_Object *obj);
1156    EAPI Elm_Genlist_Item *elm_genlist_at_xy_item_get(const Evas_Object *obj, Evas_Coord x, Evas_Coord y, int *posret);
1157    EAPI Elm_Genlist_Item *elm_genlist_first_item_get(const Evas_Object *obj);
1158    EAPI Elm_Genlist_Item *elm_genlist_last_item_get(const Evas_Object *obj);
1159    /* available item styles:
1160     * default
1161     * default_style - The text part is a textblock
1162     * double_label
1163     * icon_top_text_bottom
1164     */
1165
1166    /* Genlist Item operation */
1167    EAPI Elm_Genlist_Item *elm_genlist_item_next_get(const Elm_Genlist_Item *item);
1168    EAPI Elm_Genlist_Item *elm_genlist_item_prev_get(const Elm_Genlist_Item *item);
1169    EAPI Evas_Object      *elm_genlist_item_genlist_get(const Elm_Genlist_Item *item);
1170    EAPI Elm_Genlist_Item *elm_genlist_item_parent_get(const Elm_Genlist_Item *it);
1171    EAPI void              elm_genlist_item_subitems_clear(Elm_Genlist_Item *item);
1172    EAPI void              elm_genlist_item_selected_set(Elm_Genlist_Item *item, Eina_Bool selected);
1173    EAPI Eina_Bool         elm_genlist_item_selected_get(const Elm_Genlist_Item *item);
1174    EAPI void              elm_genlist_item_expanded_set(Elm_Genlist_Item *item, Eina_Bool expanded);
1175    EAPI Eina_Bool         elm_genlist_item_expanded_get(const Elm_Genlist_Item *item);
1176    EAPI void              elm_genlist_item_disabled_set(Elm_Genlist_Item *item, Eina_Bool disabled);
1177    EAPI Eina_Bool         elm_genlist_item_disabled_get(const Elm_Genlist_Item *item);
1178    EAPI void              elm_genlist_item_display_only_set(Elm_Genlist_Item *it, Eina_Bool display_only);
1179    EAPI Eina_Bool         elm_genlist_item_display_only_get(const Elm_Genlist_Item *it);
1180        
1181    EAPI void              elm_genlist_item_show(Elm_Genlist_Item *item);
1182    EAPI void              elm_genlist_item_bring_in(Elm_Genlist_Item *item);
1183    EAPI void              elm_genlist_item_top_show(Elm_Genlist_Item *item);
1184    EAPI void              elm_genlist_item_top_bring_in(Elm_Genlist_Item *item);
1185    EAPI void              elm_genlist_item_middle_show(Elm_Genlist_Item *it);
1186    EAPI void              elm_genlist_item_middle_bring_in(Elm_Genlist_Item *it);
1187    EAPI void              elm_genlist_item_del(Elm_Genlist_Item *item);
1188    EAPI const void       *elm_genlist_item_data_get(const Elm_Genlist_Item *item);
1189    EAPI void              elm_genlist_item_data_set(Elm_Genlist_Item *it, const void *data);
1190    EAPI const Evas_Object *elm_genlist_item_object_get(const Elm_Genlist_Item *it);
1191    EAPI void              elm_genlist_item_update(Elm_Genlist_Item *item);
1192    EAPI void              elm_genlist_horizontal_mode_set(Evas_Object *obj, Elm_List_Mode mode);
1193    EAPI void              elm_genlist_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select);
1194    EAPI void              elm_genlist_no_select_mode_set(Evas_Object *obj, Eina_Bool no_select);
1195    EAPI void              elm_genlist_compress_mode_set(Evas_Object *obj, Eina_Bool compress);
1196    EAPI void              elm_genlist_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
1197    EAPI void              elm_genlist_homogeneous_set(Evas_Object *obj, Eina_Bool homogeneous);
1198    EAPI void              elm_genlist_block_count_set(Evas_Object *obj, int n);
1199    EAPI void              elm_genlist_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v);
1200    EAPI void              elm_genlist_set_edit_mode(Evas_Object *obj, int emode, Elm_Genlist_Edit_Class *ec);
1201
1202    EAPI Evas_Object *elm_check_add(Evas_Object *parent);
1203    EAPI void         elm_check_label_set(Evas_Object *obj, const char *label);
1204    EAPI const char  *elm_check_label_get(const Evas_Object *obj);
1205    EAPI void         elm_check_icon_set(Evas_Object *obj, Evas_Object *icon);
1206    EAPI Evas_Object *elm_check_icon_get(const Evas_Object *obj);
1207    EAPI void         elm_check_state_set(Evas_Object *obj, Eina_Bool state);
1208    EAPI Eina_Bool    elm_check_state_get(const Evas_Object *obj);
1209    EAPI void         elm_check_state_pointer_set(Evas_Object *obj, Eina_Bool *statep);
1210
1211    EAPI Evas_Object *elm_radio_add(Evas_Object *parent);
1212    EAPI void         elm_radio_label_set(Evas_Object *obj, const char *label);
1213    EAPI const char  *elm_radio_label_get(const Evas_Object *obj);
1214    EAPI void         elm_radio_icon_set(Evas_Object *obj, Evas_Object *icon);
1215    EAPI Evas_Object *elm_radio_icon_get(const Evas_Object *obj);
1216    EAPI void         elm_radio_group_add(Evas_Object *obj, Evas_Object *group);
1217    EAPI void         elm_radio_state_value_set(Evas_Object *obj, int value);
1218    EAPI void         elm_radio_value_set(Evas_Object *obj, int value);
1219    EAPI int          elm_radio_value_get(const Evas_Object *obj);
1220    EAPI void         elm_radio_value_pointer_set(Evas_Object *obj, int *valuep);
1221    typedef struct _Elm_Segment_Item Elm_Segment_Item;
1222    EAPI Evas_Object *elm_segment_control_add(Evas_Object *parent);
1223    EAPI Elm_Segment_Item * elm_segment_control_add_segment(Evas_Object *obj, Evas_Object *icon, const char *label, Eina_Bool animate);
1224    EAPI void             elm_segment_control_insert_segment_at(Evas_Object *obj, Evas_Object *icon, const char *label, unsigned int index, Eina_Bool animate);
1225    EAPI Evas_Object *elm_segment_control_get_segment_at(Evas_Object *obj, unsigned int index);
1226    EAPI void             elm_segment_control_delete_segment(Evas_Object *obj, Elm_Segment_Item *item, Eina_Bool animate);
1227    EAPI void             elm_segment_control_delete_segment_at(Evas_Object *obj,  unsigned int index, Eina_Bool animate);
1228    EAPI const char  *elm_segment_control_get_segment_label_at(Evas_Object *obj, unsigned int index);
1229    EAPI Evas_Object *elm_segment_control_get_segment_icon_at(Evas_Object *obj, unsigned int index);
1230    EAPI Elm_Segment_Item *elm_segment_control_selected_segment_get(const Evas_Object *obj, int *value);
1231    EAPI int         elm_segment_control_get_segment_count(Evas_Object *obj);
1232
1233    EAPI Evas_Object *elm_page_control_add(Evas_Object *parent);
1234    EAPI void            elm_page_control_page_count_set(Evas_Object *obj, unsigned int page_count);
1235    EAPI void            elm_page_control_page_id_set(Evas_Object *obj, unsigned int page_id);
1236    EAPI unsigned int elm_page_control_page_id_get(Evas_Object *obj);
1237    EAPI Evas_Object *elm_pager_add(Evas_Object *parent);
1238    EAPI void         elm_pager_content_push(Evas_Object *obj, Evas_Object *content);
1239    EAPI void         elm_pager_content_pop(Evas_Object *obj);
1240    EAPI void         elm_pager_content_promote(Evas_Object *obj, Evas_Object *content);
1241    EAPI Evas_Object *elm_pager_content_bottom_get(const Evas_Object *obj);
1242    EAPI Evas_Object *elm_pager_content_top_get(const Evas_Object *obj);
1243    EAPI void         elm_pager_animation_set(Evas_Object *obj, Eina_Bool animation);
1244   /* available item styles:
1245     * default
1246     * fade
1247     * fade_translucide
1248     */
1249
1250    typedef struct _Elm_Slideshow_Item_Class Elm_Slideshow_Item_Class;
1251    typedef struct _Elm_Slideshow_Item_Class_Func Elm_Slideshow_Item_Class_Func;
1252    typedef struct _Elm_Slideshow_Item       Elm_Slideshow_Item;
1253    typedef Evas_Object *(*SlideshowItemGetFunc) (void *data, Evas_Object *obj);
1254    typedef void         (*SlideshowItemDelFunc) (void *data, Evas_Object *obj);
1255
1256    struct _Elm_Slideshow_Item_Class
1257      {
1258         struct _Elm_Slideshow_Item_Class_Func {
1259              SlideshowItemGetFunc get;
1260              SlideshowItemDelFunc del;
1261         } func;
1262      };
1263
1264    EAPI Evas_Object *   elm_slideshow_add(Evas_Object *parent);
1265    EAPI Elm_Slideshow_Item* elm_slideshow_item_add(Evas_Object *obj, const Elm_Slideshow_Item_Class *itc, const void *data);
1266    EAPI void            elm_slideshow_show(Elm_Slideshow_Item *item);
1267    EAPI void            elm_slideshow_next(Evas_Object *obj);
1268    EAPI void            elm_slideshow_previous(Evas_Object *obj);
1269    EAPI const Eina_List *elm_slideshow_transitions_get(const Evas_Object *obj);
1270    EAPI void            elm_slideshow_transition_set(Evas_Object *obj, const char *);
1271    EAPI const char     *elm_slideshow_transition_get(const Evas_Object *obj);
1272    EAPI void            elm_slideshow_timeout_set(Evas_Object *obj ,int timeout);
1273    EAPI int             elm_slideshow_timeout_get(const Evas_Object *obj);
1274    EAPI void            elm_slideshow_loop_set(Evas_Object *obj, Eina_Bool loop);
1275    EAPI Eina_Bool       elm_slideshow_loop_get(const Evas_Object *obj);
1276    EAPI void            elm_slideshow_clear(Evas_Object *obj);
1277    EAPI const Eina_List *elm_slideshow_items_get(const Evas_Object *obj);
1278    EAPI void            elm_slideshow_item_del(Elm_Slideshow_Item *item);
1279    EAPI void *          elm_slideshow_item_data_get(Elm_Slideshow_Item *item);
1280    EAPI Elm_Slideshow_Item* elm_slideshow_item_current_get(const Evas_Object *obj);
1281    EAPI Evas_Object*    elm_slideshow_item_object_get(Elm_Slideshow_Item* item);
1282
1283
1284    EAPI Evas_Object *elm_fileselector_add(Evas_Object *parent);
1285    EAPI void         elm_fileselector_is_save_set(Evas_Object *obj, Eina_Bool is_save);
1286    EAPI Eina_Bool    elm_fileselector_is_save_get(const Evas_Object *obj);
1287    EAPI void         elm_fileselector_folder_only_set(Evas_Object *obj, Eina_Bool only);
1288    EAPI Eina_Bool    elm_fileselector_folder_only_get(const Evas_Object *obj);
1289    EAPI void         elm_fileselector_buttons_ok_cancel_set(Evas_Object *obj, Eina_Bool buttons);
1290    EAPI Eina_Bool    elm_fileselector_buttons_ok_cancel_get(const Evas_Object *obj);
1291    EAPI Eina_Bool    elm_fileselector_expandable_get(const Evas_Object *obj);
1292    EAPI void         elm_fileselector_expandable_set(Evas_Object *obj, Eina_Bool expand);
1293    EAPI void         elm_fileselector_path_set(Evas_Object *obj, const char *path);
1294    EAPI const char  *elm_fileselector_path_get(const Evas_Object *obj);
1295    EAPI const char  *elm_fileselector_selected_get(const Evas_Object *obj);
1296    EAPI Eina_Bool    elm_fileselector_selected_set(Evas_Object *obj, const char *path);
1297
1298    /* smart callbacks called:
1299     * "selected" - the user click on a file
1300     * "directory,open" - the list is populate with a new content. event_info is a directory.
1301     * "done" - the user click on the ok or cancel buttons
1302     */
1303
1304    EAPI Evas_Object *elm_progressbar_add(Evas_Object *parent);
1305    EAPI void         elm_progressbar_pulse_set(Evas_Object *obj, Eina_Bool pulse);
1306    EAPI Eina_Bool    elm_progressbar_pulse_get(const Evas_Object *obj);
1307    EAPI void         elm_progressbar_pulse(Evas_Object *obj, Eina_Bool state);
1308    EAPI void         elm_progressbar_value_set(Evas_Object *obj, double val);
1309    EAPI double       elm_progressbar_value_get(const Evas_Object *obj);
1310    EAPI void         elm_progressbar_label_set(Evas_Object *obj, const char *label);
1311    EAPI const char  *elm_progressbar_label_get(const Evas_Object *obj);
1312    EAPI void         elm_progressbar_icon_set(Evas_Object *obj, Evas_Object *icon);
1313    EAPI Evas_Object *elm_progressbar_icon_get(const Evas_Object *obj);
1314    EAPI void         elm_progressbar_span_size_set(Evas_Object *obj, Evas_Coord size);
1315    EAPI Evas_Coord   elm_progressbar_span_size_get(const Evas_Object *obj);
1316    EAPI void         elm_progressbar_unit_format_set(Evas_Object *obj, const char *format);
1317    EAPI const char  *elm_progressbar_unit_format_get(const Evas_Object *obj);
1318    EAPI void         elm_progressbar_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
1319    EAPI Eina_Bool    elm_progressbar_horizontal_get(const Evas_Object *obj);
1320    EAPI void         elm_progressbar_inverted_set(Evas_Object *obj, Eina_Bool inverted);
1321    EAPI Eina_Bool    elm_progressbar_inverted_get(const Evas_Object *obj);
1322    /* smart callbacks called:
1323     */
1324    /* available item styles:
1325     * default
1326     * wheel (simple style, no text, no progression, only pulse is available)
1327     */
1328
1329    EAPI Evas_Object *elm_separator_add(Evas_Object *parent);
1330    EAPI void         elm_separator_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
1331    EAPI Eina_Bool    elm_separator_horizontal_get(const Evas_Object *obj);
1332    /* smart callbacks called:
1333     */
1334
1335    EAPI Evas_Object *elm_spinner_add(Evas_Object *parent);
1336    EAPI void         elm_spinner_label_format_set(Evas_Object *obj, const char *fmt);
1337    EAPI const char  *elm_spinner_label_format_get(const Evas_Object *obj);
1338    EAPI void         elm_spinner_min_max_set(Evas_Object *obj, double min, double max);
1339    EAPI void         elm_spinner_min_max_get(const Evas_Object *obj, double *min, double *max);
1340    EAPI void         elm_spinner_step_set(Evas_Object *obj, double step);
1341    EAPI double       elm_spinner_step_get(const Evas_Object *obj);
1342    EAPI void         elm_spinner_value_set(Evas_Object *obj, double val);
1343    EAPI double       elm_spinner_value_get(const Evas_Object *obj);
1344    EAPI void         elm_spinner_wrap_set(Evas_Object *obj, Eina_Bool wrap);
1345    EAPI Eina_Bool    elm_spinner_wrap_get(const Evas_Object *obj);
1346    EAPI void         elm_spinner_editable_set(Evas_Object *obj, Eina_Bool editable);
1347    EAPI Eina_Bool    elm_spinner_editable_get(const Evas_Object *obj);
1348    EAPI void         elm_spinner_special_value_add(Evas_Object *obj, double value, const char *label);
1349    /* smart callbacks called:
1350     * "changed" - when the spinner value changes
1351     * "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).
1352     */
1353    /* available item styles:
1354     * default
1355     * vertical (two up/down buttons at the right side and text left aligned)
1356     */
1357
1358    typedef struct _Elm_Index_Item Elm_Index_Item;
1359    EAPI Evas_Object *elm_index_add(Evas_Object *parent);
1360    EAPI void         elm_index_active_set(Evas_Object *obj, Eina_Bool active);
1361    EAPI void         elm_index_item_level_set(Evas_Object *obj, int level);
1362    EAPI int          elm_index_item_level_get(const Evas_Object *obj);
1363    EAPI const void  *elm_index_item_selected_get(const Evas_Object *obj, int level);
1364    EAPI void         elm_index_item_append(Evas_Object *obj, const char *letter, const void *item);
1365    EAPI void         elm_index_item_prepend(Evas_Object *obj, const char *letter, const void *item);
1366    EAPI void         elm_index_item_append_relative(Evas_Object *obj, const char *letter, const void *item, const void *relative);
1367    EAPI void         elm_index_item_prepend_relative(Evas_Object *obj, const char *letter, const void *item, const void *relative);
1368    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);
1369    EAPI void         elm_index_item_del(Evas_Object *obj, const void *item);
1370    EAPI Elm_Index_Item *elm_index_item_find(Evas_Object *obj, const void *item);
1371    EAPI void         elm_index_item_clear(Evas_Object *obj);
1372    EAPI void         elm_index_item_go(Evas_Object *obj, int level);
1373    EAPI void         *elm_index_item_data_get(const Elm_Index_Item *item);
1374    EAPI void         elm_index_item_data_set(Elm_Index_Item *it, const void *data);
1375    EAPI const char   *elm_index_item_letter_get(const Elm_Index_Item *item);
1376    /* smart callbacks called:
1377     * "changed" - when the selected index item changes
1378     * "delay,changed" - when the selected index item changes, but after some small idle period
1379     * "selected" - when the user releases heir finger and selects an item
1380     */
1381
1382    typedef enum _Elm_Photocam_Zoom_Mode
1383      {
1384         ELM_PHOTOCAM_ZOOM_MODE_MANUAL = 0,
1385         ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT,
1386         ELM_PHOTOCAM_ZOOM_MODE_AUTO_FILL,
1387         ELM_PHOTOCAM_ZOOM_MODE_LAST
1388      } Elm_Photocam_Zoom_Mode;
1389    EAPI Evas_Object *elm_photocam_add(Evas_Object *parent);
1390    EAPI int          elm_photocam_file_set(Evas_Object *obj, const char *file);
1391    EAPI const char * elm_photocam_file_get(const Evas_Object *obj);
1392    EAPI void         elm_photocam_zoom_set(Evas_Object *obj, double zoom);
1393    EAPI double       elm_photocam_zoom_get(const Evas_Object *obj);
1394    EAPI void         elm_photocam_zoom_mode_set(Evas_Object *obj, Elm_Photocam_Zoom_Mode mode);
1395    EAPI Elm_Photocam_Zoom_Mode elm_photocam_zoom_mode_get(const Evas_Object *obj);
1396    EAPI void         elm_photocam_image_size_get(const Evas_Object *obj, int *w, int *h);
1397    EAPI void         elm_photocam_region_get(const Evas_Object *obj, int *x, int *y, int *w, int *h);
1398    EAPI void         elm_photocam_image_region_show(Evas_Object *obj, int x, int y, int w, int h);
1399    EAPI void         elm_photocam_image_region_bring_in(Evas_Object *obj, int x, int y, int w, int h);
1400    EAPI void         elm_photocam_paused_set(Evas_Object *obj, Eina_Bool paused);
1401    EAPI Eina_Bool    elm_photocam_paused_get(const Evas_Object *obj);
1402    EAPI Evas_Object *elm_photocam_internal_image_get(const Evas_Object *obj);
1403    
1404    /* smart callbacks called:
1405     * "clicked" - when image clicked
1406     * "press" - when mouse/finger held down initially on image
1407     * "longpressed" - when mouse/finger held for long time on image
1408     * "clicked,double" - when mouse/finger double-clicked
1409     * "load" - when photo load begins
1410     * "loaded" - when photo load done
1411     * "load,details" - when detailed image load begins
1412     * "loaded,details" - when detailed image load done
1413     * "zoom,start" - when zooming started
1414     * "zoom,stop" - when zooming stopped
1415     * "zoom,change" - when auto zoom mode changed zoom level
1416     * "scroll - the content has been scrolled (moved)
1417     * "scroll,anim,start" - scrolling animation has started
1418     * "scroll,anim,stop" - scrolling animation has stopped
1419     * "scroll,drag,start" - dragging the contents around has started
1420     * "scroll,drag,stop" - dragging the contents around has stopped
1421     */
1422
1423    typedef enum _Elm_Map_Zoom_Mode
1424      {
1425         ELM_MAP_ZOOM_MODE_MANUAL,
1426         ELM_MAP_ZOOM_MODE_AUTO_FIT,
1427         ELM_MAP_ZOOM_MODE_AUTO_FILL,
1428         ELM_MAP_ZOOM_MODE_LAST
1429      } Elm_Map_Zoom_Mode;
1430
1431    typedef enum _Elm_Map_Sources
1432      {
1433         ELM_MAP_SOURCE_MAPNIK,
1434         ELM_MAP_SOURCE_OSMARENDER,
1435         ELM_MAP_SOURCE_CYCLEMAP,
1436         ELM_MAP_SOURCE_MAPLINT,
1437         ELM_MAP_SOURCE_CUSTOM_1,
1438         ELM_MAP_SOURCE_CUSTOM_2,
1439         ELM_MAP_SOURCE_CUSTOM_3,
1440         ELM_MAP_SOURCE_CUSTOM_4,
1441         ELM_MAP_SOURCE_CUSTOM_5,
1442         ELM_MAP_SOURCE_CUSTOM_6,
1443         ELM_MAP_SOURCE_CUSTOM_7,
1444         ELM_MAP_SOURCE_LAST
1445      } Elm_Map_Sources;
1446
1447    typedef struct _Elm_Map_Marker Elm_Map_Marker;
1448    typedef struct _Elm_Map_Marker_Class Elm_Map_Marker_Class;
1449    typedef struct _Elm_Map_Group_Class Elm_Map_Group_Class;
1450    typedef Evas_Object *(*ElmMapMarkerGetFunc)      (Evas_Object *obj, Elm_Map_Marker *marker, void *data);
1451    typedef void         (*ElmMapMarkerDelFunc)      (Evas_Object *obj, Elm_Map_Marker *marker, void *data, Evas_Object *o);
1452    typedef Evas_Object *(*ElmMapMarkerIconGetFunc)  (Evas_Object *obj, Elm_Map_Marker *marker, void *data);
1453    typedef Evas_Object *(*ElmMapGroupIconGetFunc)  (Evas_Object *obj, void *data);
1454    typedef char *(*ElmMapSourceURLFunc) (int x, int y, int zoom);
1455
1456    EAPI Evas_Object *elm_map_add(Evas_Object *parent);
1457    EAPI void         elm_map_zoom_set(Evas_Object *obj, int zoom);
1458    EAPI double       elm_map_zoom_get(const Evas_Object *obj);
1459    EAPI void         elm_map_zoom_mode_set(Evas_Object *obj, Elm_Map_Zoom_Mode mode);
1460    EAPI Elm_Map_Zoom_Mode elm_map_zoom_mode_get(const Evas_Object *obj);
1461    EAPI void         elm_map_geo_region_get(const Evas_Object *obj, double *lon, double *lat);
1462    EAPI void         elm_map_geo_region_bring_in(Evas_Object *obj, double lon, double lat);
1463    EAPI void         elm_map_geo_region_show(Evas_Object *obj, double lon, double lat);
1464    EAPI void         elm_map_paused_set(Evas_Object *obj, Eina_Bool paused);
1465    EAPI Eina_Bool    elm_map_paused_get(const Evas_Object *obj);
1466    EAPI void         elm_map_paused_markers_set(Evas_Object *obj, Eina_Bool paused);
1467    EAPI Eina_Bool    elm_map_paused_markers_get(const Evas_Object *obj);
1468    EAPI void         elm_map_utils_convert_coord_into_geo(int x, int y, int size, double *lon, double *lat);
1469    EAPI void         elm_map_utils_convert_geo_into_coord(double lon, double lat, int size, int *x, int *y);
1470    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);
1471    EAPI void         elm_map_max_marker_per_group_set(Evas_Object *obj, int max);
1472    EAPI void         elm_map_marker_remove(Elm_Map_Marker *marker);
1473    EAPI void         elm_map_marker_bring_in(Elm_Map_Marker *marker);
1474    EAPI void         elm_map_marker_show(Elm_Map_Marker *marker);
1475    EAPI void         elm_map_markers_list_show(Eina_List *markers);
1476    EAPI Evas_Object *elm_map_marker_object_get(Elm_Map_Marker *marker);
1477    EAPI void         elm_map_marker_update(Elm_Map_Marker *marker);
1478    EAPI void         elm_map_bubbles_close(Evas_Object *obj);
1479
1480    EAPI Elm_Map_Group_Class * elm_map_group_class_new(Evas_Object *obj);
1481    EAPI void         elm_map_group_class_style_set(Elm_Map_Group_Class *clas, const char *style);
1482    EAPI void         elm_map_group_class_icon_cb_set(Elm_Map_Group_Class *clas, ElmMapGroupIconGetFunc icon_get);
1483    EAPI void         elm_map_group_class_data_set(Elm_Map_Group_Class *clas, void *data);
1484    EAPI void         elm_map_group_class_zoom_displayed_set(Elm_Map_Group_Class *clas, int zoom);
1485    EAPI void         elm_map_group_class_zoom_grouped_set(Elm_Map_Group_Class *clas, int zoom);
1486    EAPI void         elm_map_group_class_hide_set(Evas_Object *obj, Elm_Map_Group_Class *clas, Eina_Bool hide);
1487
1488    EAPI Elm_Map_Marker_Class * elm_map_marker_class_new(Evas_Object *obj);
1489    EAPI void         elm_map_marker_class_style_set(Elm_Map_Marker_Class *clas, const char *style);
1490    EAPI void         elm_map_marker_class_icon_cb_set(Elm_Map_Marker_Class *clas, ElmMapMarkerIconGetFunc icon_get);
1491    EAPI void         elm_map_marker_class_get_cb_set(Elm_Map_Marker_Class *clas, ElmMapMarkerGetFunc get);
1492    EAPI void         elm_map_marker_class_del_cb_set(Elm_Map_Marker_Class *clas, ElmMapMarkerDelFunc del);
1493
1494    EAPI void         elm_map_source_set(Evas_Object *obj, Elm_Map_Sources source);
1495    EAPI Elm_Map_Sources elm_map_source_get(const Evas_Object *obj);
1496    EAPI void         elm_map_source_custom_api_set(Elm_Map_Sources source, const char *label, 
1497                                 int zoom_min, int zoom_max, ElmMapSourceURLFunc url_cb);
1498    EAPI int          elm_map_source_zoom_min_get(Elm_Map_Sources source);
1499    EAPI int          elm_map_source_zoom_max_get(Elm_Map_Sources source);
1500    EAPI const char * elm_map_source_name_get(Elm_Map_Sources source);
1501    /* smart callbacks called:
1502     * "clicked" - when image clicked
1503     * "press" - when mouse/finger held down initially on image
1504     * "longpressed" - when mouse/finger held for long time on image
1505     * "clicked,double" - when mouse/finger double-clicked
1506     * "load,details" - when detailed image load begins
1507     * "loaded,details" - when detailed image load done
1508     * "zoom,start" - when zooming started
1509     * "zoom,stop" - when zooming stopped
1510     * "zoom,change" - when auto zoom mode changed zoom level
1511     * "scroll - the content has been scrolled (moved)
1512     * "scroll,anim,start" - scrolling animation has started
1513     * "scroll,anim,stop" - scrolling animation has stopped
1514     * "scroll,drag,start" - dragging the contents around has started
1515     * "scroll,drag,stop" - dragging the contents around has stopped
1516     */
1517
1518    typedef enum _Elm_Panel_Orient
1519      {
1520         ELM_PANEL_ORIENT_TOP,
1521           ELM_PANEL_ORIENT_BOTTOM,
1522           ELM_PANEL_ORIENT_LEFT,
1523           ELM_PANEL_ORIENT_RIGHT,
1524      } Elm_Panel_Orient;
1525    EAPI Evas_Object          *elm_panel_add(Evas_Object *parent);
1526    EAPI void                  elm_panel_orient_set(Evas_Object *obj, Elm_Panel_Orient orient);
1527    EAPI Elm_Panel_Orient      elm_panel_orient_get(Evas_Object *obj);
1528    EAPI void                  elm_panel_content_set(Evas_Object *obj, Evas_Object *content);
1529    EAPI void                  elm_panel_hidden_set(Evas_Object *obj, Eina_Bool hidden);
1530    EAPI Eina_Bool             elm_panel_hidden_get(Evas_Object *obj);
1531    EAPI void                  elm_panel_toggle(Evas_Object *obj);
1532
1533    typedef enum _Elm_Flip_Mode
1534      {
1535         ELM_FLIP_ROTATE_Y_CENTER_AXIS,
1536           ELM_FLIP_ROTATE_X_CENTER_AXIS,
1537           ELM_FLIP_ROTATE_XZ_CENTER_AXIS,
1538           ELM_FLIP_ROTATE_YZ_CENTER_AXIS
1539      } Elm_Flip_Mode;
1540    
1541    EAPI Evas_Object *elm_flip_add(Evas_Object *parent);
1542    EAPI void         elm_flip_content_front_set(Evas_Object *obj, Evas_Object *content);
1543    EAPI void         elm_flip_content_back_set(Evas_Object *obj, Evas_Object *content);
1544    EAPI Evas_Object *elm_flip_content_front_get(const Evas_Object *obj);
1545    EAPI Evas_Object *elm_flip_content_back_get(const Evas_Object *obj);
1546    EAPI Eina_Bool    elm_flip_front_get(const Evas_Object *obj);
1547    EAPI void         elm_flip_perspective_set(Evas_Object *obj, Evas_Coord foc, Evas_Coord x, Evas_Coord y);
1548    EAPI void         elm_flip_go(Evas_Object *obj, Elm_Flip_Mode mode);
1549    /* smart callbacks called:
1550     * "animate,done" - when a flip animation is finished
1551     */
1552    
1553    EAPI Evas_Object *elm_scrolled_entry_add(Evas_Object *parent);
1554    EAPI void         elm_scrolled_entry_single_line_set(Evas_Object *obj, Eina_Bool single_line);
1555    EAPI Eina_Bool    elm_scrolled_entry_single_line_get(const Evas_Object *obj);
1556    EAPI void         elm_scrolled_entry_password_set(Evas_Object *obj, Eina_Bool password);
1557    EAPI Eina_Bool    elm_scrolled_entry_password_get(const Evas_Object *obj);
1558    EAPI void         elm_scrolled_entry_entry_set(Evas_Object *obj, const char *entry);
1559    EAPI const char  *elm_scrolled_entry_entry_get(const Evas_Object *obj);
1560    EAPI const char  *elm_scrolled_entry_selection_get(const Evas_Object *obj);
1561    EAPI void         elm_scrolled_entry_entry_insert(Evas_Object *obj, const char *entry);
1562    EAPI void         elm_scrolled_entry_line_wrap_set(Evas_Object *obj, Eina_Bool wrap);
1563    EAPI void         elm_scrolled_entry_line_char_wrap_set(Evas_Object *obj, Eina_Bool wrap);
1564    EAPI void         elm_scrolled_entry_editable_set(Evas_Object *obj, Eina_Bool editable);
1565    EAPI Eina_Bool    elm_scrolled_entry_editable_get(const Evas_Object *obj);
1566    EAPI void         elm_scrolled_entry_select_none(Evas_Object *obj);
1567    EAPI void         elm_scrolled_entry_select_all(Evas_Object *obj);
1568    EAPI Eina_Bool    elm_scrolled_entry_cursor_next(Evas_Object *obj);
1569    EAPI Eina_Bool    elm_scrolled_entry_cursor_prev(Evas_Object *obj);
1570    EAPI Eina_Bool    elm_scrolled_entry_cursor_up(Evas_Object *obj);
1571    EAPI Eina_Bool    elm_scrolled_entry_cursor_down(Evas_Object *obj);
1572    EAPI void         elm_scrolled_entry_cursor_begin_set(Evas_Object *obj);
1573    EAPI void         elm_scrolled_entry_cursor_end_set(Evas_Object *obj);
1574    EAPI void         elm_scrolled_entry_cursor_line_begin_set(Evas_Object *obj);
1575    EAPI void         elm_scrolled_entry_cursor_line_end_set(Evas_Object *obj);
1576    EAPI void         elm_scrolled_entry_cursor_selection_begin(Evas_Object *obj);
1577    EAPI void         elm_scrolled_entry_cursor_selection_end(Evas_Object *obj);
1578    EAPI Eina_Bool    elm_scrolled_entry_cursor_is_format_get(const Evas_Object *obj);
1579    EAPI Eina_Bool    elm_scrolled_entry_cursor_is_visible_format_get(const Evas_Object *obj);
1580    EAPI const char  *elm_scrolled_entry_cursor_content_get(const Evas_Object *obj);
1581    EAPI void         elm_scrolled_entry_selection_cut(Evas_Object *obj);
1582    EAPI void         elm_scrolled_entry_selection_copy(Evas_Object *obj);
1583    EAPI void         elm_scrolled_entry_selection_paste(Evas_Object *obj);
1584    EAPI void         elm_scrolled_entry_context_menu_clear(Evas_Object *obj);
1585    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);
1586    EAPI void         elm_scrolled_entry_context_menu_disabled_set(Evas_Object *obj, Eina_Bool disabled);
1587    EAPI Eina_Bool    elm_scrolled_entry_context_menu_disabled_get(const Evas_Object *obj);
1588    EAPI void         elm_scrolled_entry_scrollbar_policy_set(Evas_Object *obj, Elm_Scroller_Policy h, Elm_Scroller_Policy v);
1589    EAPI void         elm_scrolled_entry_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
1590    EAPI void                      elm_scrolled_entry_maximum_bytes_set(Evas_Object *obj, int max_no_of_bytes);
1591    EAPI void                    elm_scrolled_entry_password_show_last_character_set(Evas_Object *obj, Eina_Bool show_last_character);
1592
1593    EAPI Evas_Object *elm_conformant_add(Evas_Object *parent);
1594    EAPI void         elm_conformant_content_set(Evas_Object *obj, Evas_Object *content);
1595
1596    EAPI Evas_Object *elm_mapbuf_add(Evas_Object *parent);
1597    EAPI void         elm_mapbuf_content_set(Evas_Object *obj, Evas_Object *content);
1598    EAPI void         elm_mapbuf_enabled_set(Evas_Object *obj, Eina_Bool enabled);
1599    EAPI Eina_Bool    elm_mapbuf_enabled_get(const Evas_Object *obj);
1600    EAPI void         elm_mapbuf_smooth_set(Evas_Object *obj, Eina_Bool smooth);
1601    EAPI Eina_Bool    elm_mapbuf_smooth_get(const Evas_Object *obj);
1602    EAPI void         elm_mapbuf_alpha_set(Evas_Object *obj, Eina_Bool alpha);
1603    EAPI Eina_Bool    elm_mapbuf_alpha_get(const Evas_Object *obj);
1604
1605    typedef struct _Picker_Item Elm_Picker_Item;
1606    EAPI Evas_Object     *elm_picker_add(Evas_Object *parent);
1607    EAPI void            elm_picker_next(Evas_Object *obj);
1608    EAPI void            elm_picker_prev(Evas_Object *obj);
1609    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);
1610    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);
1611    EAPI const Eina_List *elm_picker_items_get(Evas_Object *obj);
1612    EAPI Elm_Picker_Item *elm_picker_first_item_get(Evas_Object *obj);
1613    EAPI Elm_Picker_Item *elm_picker_last_item_get(Evas_Object *obj);
1614    EAPI Elm_Picker_Item *elm_picker_selected_item_get(Evas_Object *obj);
1615    EAPI void             elm_picker_item_selected_set(Elm_Picker_Item *item);
1616    EAPI void             elm_picker_item_del(Elm_Picker_Item *item);
1617    EAPI const char      *elm_picker_item_label_get(Elm_Picker_Item *item);
1618    EAPI void             elm_picker_item_label_set(Elm_Picker_Item *item, const char *label);
1619    EAPI Elm_Picker_Item *elm_picker_item_prev(Elm_Picker_Item *item);
1620    EAPI Elm_Picker_Item *elm_picker_item_next(Elm_Picker_Item *item);
1621    /* smart callback called:
1622     * "changed" - when picker selected item is changed
1623     * "overflowed" - when picker item is changed to first item from last item
1624     * "underflowed" - when picker item is changed to last item from first item.
1625     */
1626    /* available styles:
1627     * default
1628     * no_button
1629     * timepicker/ampm
1630     */
1631
1632    typedef struct _Picker2_Item Elm_Picker2_Item;
1633    EAPI Evas_Object     *elm_picker2_add(Evas_Object *parent);
1634    EAPI void            elm_picker2_row_height_set(Evas_Object *obj, unsigned int row_height);
1635    EAPI void            elm_picker2_next(Evas_Object *obj);
1636    EAPI void            elm_picker2_prev(Evas_Object *obj);
1637    EAPI Elm_Picker2_Item *elm_picker2_item_append(Evas_Object *obj, const char *label, void (*func)(void *data, Evas_Object *obj, void *event_info), void *data);
1638    EAPI Elm_Picker2_Item *elm_picker2_item_prepend(Evas_Object *obj, const char *label, void (*func)(void *data, Evas_Object *obj, void *event_info), void *data);
1639    EAPI const Eina_List *elm_picker2_items_get(Evas_Object *obj);
1640    EAPI Elm_Picker2_Item *elm_picker2_first_item_get(Evas_Object *obj);
1641    EAPI Elm_Picker2_Item *elm_picker2_last_item_get(Evas_Object *obj);
1642    EAPI Elm_Picker2_Item *elm_picker2_selected_item_get(Evas_Object *obj);
1643    EAPI void             elm_picker2_item_selected_set(Elm_Picker2_Item *item);
1644    EAPI void             elm_picker2_item_del(Elm_Picker2_Item *item);
1645    EAPI const char      *elm_picker2_item_label_get(Elm_Picker2_Item *item);
1646    EAPI void             elm_picker2_item_label_set(Elm_Picker2_Item *item, const char *label);
1647    EAPI Elm_Picker2_Item *elm_picker2_item_prev(Elm_Picker2_Item *item);
1648    EAPI Elm_Picker2_Item *elm_picker2_item_next(Elm_Picker2_Item *item);
1649    EAPI void             *elm_picker2_item_data_get(Elm_Picker2_Item *item);
1650    EAPI void              elm_picker2_item_data_set(Elm_Picker2_Item *item, void *data);
1651    EAPI Eina_Bool         elm_picker2_item_disabled_get(Elm_Picker2_Item *item);
1652    EAPI void              elm_picker2_item_disabled_set(Elm_Picker2_Item *item, Eina_Bool disabled);
1653     /* smart callback called:
1654     * "selected" - when picker selected item is changed
1655     * "overflowed" - when picker item is changed to first item from last item
1656     * "underflowed" - when picker item is changed to last item from first item.
1657     */
1658    /* available styles:
1659     * default
1660     */
1661
1662    EAPI Evas_Object *elm_timepicker_add(Evas_Object *parent);
1663    EAPI void         elm_timepicker_time_set(Evas_Object *obj, int hrs, int min, int sec);
1664    EAPI void         elm_timepicker_time_get(Evas_Object *obj, int *hrs, int *min, int *sec);
1665    EAPI void         elm_timepicker_show_am_pm_set(Evas_Object *obj, Eina_Bool am_pm);
1666    EAPI void         elm_timepicker_show_seconds_set(Evas_Object *obj, Eina_Bool seconds);
1667    /* smart callback called:
1668     * "changed" - when timepicker selected item is changed
1669     */
1670    /* available styles:
1671     * default
1672     */
1673
1674    EAPI Evas_Object *elm_datepicker_add(Evas_Object *parent);
1675    EAPI void         elm_datepicker_date_set(Evas_Object *obj, int year, int month, int day);
1676    EAPI void         elm_datepicker_date_get(Evas_Object *obj, int *year, int *month, int *day);
1677    EAPI void         elm_datepicker_date_min_set(Evas_Object *obj, int year, int month, int day);  // Not implemented
1678    EAPI void         elm_datepicker_date_min_get(Evas_Object *obj, int *year, int *month, int *day);
1679    EAPI void         elm_datepicker_date_max_set(Evas_Object *obj, int year, int month, int day);  // Not implemented
1680    EAPI void         elm_datepicker_date_max_get(Evas_Object *obj, int *year, int *month, int *day);
1681    EAPI void         elm_datepicker_date_format_set(Evas_Object *obj, const char *fmt);
1682    EAPI const char  *elm_datepicker_date_format_get(Evas_Object *obj);
1683    /* smart callback called:
1684     * "changed" - when datepicker selected item is changed
1685     */
1686    /* available styles:
1687     * default
1688     */
1689
1690    EAPI Evas_Object *elm_datepicker2_add(Evas_Object *parent);
1691    EAPI void         elm_datepicker2_date_set(Evas_Object *obj, int year, int month, int day);
1692    EAPI void         elm_datepicker2_date_get(Evas_Object *obj, int *year, int *month, int *day);
1693    EAPI void         elm_datepicker2_date_min_set(Evas_Object *obj, int year, int month, int day);  // Not implemented
1694    EAPI void         elm_datepicker2_date_min_get(Evas_Object *obj, int *year, int *month, int *day);
1695    EAPI void         elm_datepicker2_date_max_set(Evas_Object *obj, int year, int month, int day);  // Not implemented
1696    EAPI void         elm_datepicker2_date_max_get(Evas_Object *obj, int *year, int *month, int *day);
1697    EAPI void         elm_datepicker2_date_format_set(Evas_Object *obj, const char *fmt);
1698    EAPI const char  *elm_datepicker2_date_format_get(Evas_Object *obj);
1699    /* smart callback called:
1700     * "changed" - when datepicker selected item is changed
1701     */
1702    /* available styles:
1703     * default
1704     */
1705     
1706     /* titlebar */
1707    EAPI Evas_Object *elm_titlebar_add(Evas_Object *parent);
1708    EAPI void         elm_titlebar_label_set(Evas_Object *obj, const char *label);
1709    EAPI const char  *elm_titlebar_label_get(Evas_Object *obj);
1710    EAPI void         elm_titlebar_icon_set(Evas_Object *obj, Evas_Object *icon);
1711    EAPI Evas_Object *elm_titlebar_icon_get(Evas_Object *obj);
1712    EAPI void         elm_titlebar_end_set(Evas_Object *obj, Evas_Object *end);
1713    EAPI Evas_Object *elm_titlebar_end_get(Evas_Object *obj);    
1714         /* popup */
1715         typedef enum _Elm_Popup_Response
1716         {
1717                 ELM_POPUP_RESPONSE_NONE = -1,
1718                 ELM_POPUP_RESPONSE_TIMEOUT = -2,
1719                 ELM_POPUP_RESPONSE_OK = -3,
1720                 ELM_POPUP_RESPONSE_CANCEL = -4, 
1721                 ELM_POPUP_RESPONSE_CLOSE = -5
1722
1723         }Elm_Popup_Response;
1724
1725         typedef enum _Elm_Popup_Mode
1726         {
1727                 ELM_POPUP_TYPE_NONE = 0,
1728                 ELM_POPUP_TYPE_ALERT = (1 << 0)
1729                 
1730         }Elm_Popup_Mode;
1731         typedef enum _Elm_Popup_Orient
1732         {
1733                  ELM_POPUP_ORIENT_TOP,
1734                  ELM_POPUP_ORIENT_CENTER,
1735                  ELM_POPUP_ORIENT_BOTTOM,
1736                  ELM_POPUP_ORIENT_LEFT,
1737                  ELM_POPUP_ORIENT_RIGHT,
1738                  ELM_POPUP_ORIENT_TOP_LEFT,
1739                  ELM_POPUP_ORIENT_TOP_RIGHT,
1740                  ELM_POPUP_ORIENT_BOTTOM_LEFT,
1741                  ELM_POPUP_ORIENT_BOTTOM_RIGHT
1742         }Elm_Popup_Orient;
1743
1744          /* smart callbacks called:
1745     * "response" - when ever popup is closed, this signal is sent with appropriate response id.".
1746     */
1747
1748         EAPI Evas_Object *elm_popup_add(Evas_Object *parent);
1749         EAPI void elm_popup_desc_set(Evas_Object *obj, const char *text);
1750         EAPI const char* elm_popup_desc_get(Evas_Object *obj);
1751         EAPI void elm_popup_title_label_set(Evas_Object *obj, const char *text);
1752         EAPI const char* elm_popup_title_label_get(Evas_Object *obj);
1753         EAPI void elm_popup_title_icon_set(Evas_Object *obj, Evas_Object *icon);
1754         EAPI void elm_popup_content_set(Evas_Object *obj, Evas_Object *content);
1755         EAPI Evas_Object* elm_popup_content_get(Evas_Object *obj);
1756         EAPI void elm_popup_buttons_add(Evas_Object *obj,int no_of_buttons, char *first_button_text,  ...);
1757         Evas_Object* elm_popup_add_with_buttons(Evas_Object *parent, char *title, char *desc_text,int no_of_buttons, char *first_button_text, ... );
1758         EAPI void elm_popup_timeout_set(Evas_Object *obj, int timeout);
1759         EAPI void elm_popup_set_mode(Evas_Object *obj, Elm_Popup_Mode mode);
1760         EAPI void elm_popup_response(Evas_Object *obj, int  response_id);
1761         EAPI void elm_popup_orient_set(Evas_Object *obj, Elm_Popup_Orient orient);
1762         EAPI void elm_popup_rotation_set(Evas_Object *obj, int rot_angle);
1763    /* Contextual Popup */
1764    typedef struct _Ctxpopup_Item Elm_Ctxpopup_Item;
1765
1766    EAPI Evas_Object* elm_ctxpopup_add(Evas_Object* parent);
1767    EAPI void elm_ctxpopup_horizontal_set(Evas_Object* obj, Eina_Bool horizontal);
1768    EAPI Eina_Bool elm_ctxpopup_horizontal_get(Evas_Object* obj);
1769    EAPI void elm_ctxpopup_item_icon_set(Elm_Ctxpopup_Item* item, Evas_Object* icon);
1770    EAPI void elm_ctxpopup_item_label_set(Elm_Ctxpopup_Item* item, const char* label);
1771    EAPI Elm_Ctxpopup_Item* elm_ctxpopup_icon_add( Evas_Object* obj, Evas_Object* icon, void (*func ) (void* data, Evas_Object* obj, void* event_info ), const void* data ); 
1772    EAPI Elm_Ctxpopup_Item* elm_ctxpopup_label_add( Evas_Object* obj, const char* label, void (*func ) (void* data, Evas_Object* obj, void* event_info ), const void* data );
1773    EAPI void elm_ctxpopup_item_del(Elm_Ctxpopup_Item* item);
1774    EAPI void elm_ctxpopup_item_disabled_set(Elm_Ctxpopup_Item* item, Eina_Bool disabled);
1775    EAPI void elm_ctxpopup_clear(Evas_Object* obj);
1776    EAPI const char* elm_ctxpopup_item_label_get( Elm_Ctxpopup_Item* item );     
1777    EAPI Evas_Object* elm_ctxpopup_item_icon_get( Elm_Ctxpopup_Item* item ); 
1778    EAPI void elm_ctxpopup_scroller_disabled_set(Evas_Object* obj, Eina_Bool disabled );
1779
1780
1781
1782 /* Tab */
1783    typedef enum _Elm_Tab_Move_Type
1784      {
1785         ELM_TAB_MOVE_LEFT = 0,
1786         ELM_TAB_MOVE_RIGHT = 1
1787      } Elm_Tab_Move_Type;
1788
1789    typedef enum _Elm_Tab_Mode_Type
1790      {
1791         ELM_TAB_PORTRAIT_2 = 2,
1792         ELM_TAB_PORTRAIT_3 = 3,
1793         ELM_TAB_PORTRAIT_4 = 4,
1794         ELM_TAB_LANDSCAPE_2 = 12,
1795         ELM_TAB_LANDSCAPE_3 = 13,
1796         ELM_TAB_LANDSCAPE_4 = 14,
1797         ELM_TAB_LANDSCAPE_5 = 15,
1798      } Elm_Tab_Mode_Type;
1799
1800    typedef struct _Elm_Tab_Item Elm_Tab_Item;
1801
1802    EAPI Evas_Object *elm_tab_add(Evas_Object *parent);
1803    EAPI void elm_tab_set(Evas_Object *obj, int mode);
1804    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);
1805    EAPI void elm_tab_item_del(Elm_Tab_Item *item);
1806    EAPI void elm_tab_item_select(Elm_Tab_Item *item);
1807    EAPI Evas_Object *elm_tab_item_icon_get(Elm_Tab_Item *item);
1808    EAPI const char *elm_tab_item_label_get(Elm_Tab_Item *item);
1809    EAPI void elm_tab_item_label_set(Elm_Tab_Item *item, const char *label);
1810    EAPI void elm_tab_item_badge_set(Elm_Tab_Item *item, const int badge);   
1811    EAPI Elm_Tab_Item *elm_tab_selected_item_get(Evas_Object *obj);   
1812    EAPI Elm_Tab_Item *elm_tab_first_item_get(Evas_Object *obj);   
1813    EAPI Elm_Tab_Item *elm_tab_last_item_get(Evas_Object *obj);   
1814    EAPI Eina_List *elm_tab_items_get(Evas_Object *obj);   
1815    EAPI Elm_Tab_Item *elm_tab_item_prev(Elm_Tab_Item *item);   
1816    EAPI Elm_Tab_Item *elm_tab_item_next(Elm_Tab_Item *item);   
1817    EAPI void elm_tab_move(Evas_Object *obj, int direction);
1818    EAPI void elm_tab_edit_disable_set(Evas_Object *obj, Eina_Bool disable);
1819    EAPI Eina_Bool elm_tab_edit_disable_get(Evas_Object *obj);
1820
1821
1822    /* animator */
1823    typedef struct _animator Elm_Animator;
1824
1825    typedef enum { ELM_ANIMATOR_CURVE_LINEAR, ELM_ANIMATOR_CURVE_IN_OUT, ELM_ANIMATOR_CURVE_IN, ELM_ANIMATOR_CURVE_OUT } Elm_Animator_Curve_Style; 
1826
1827    EAPI Elm_Animator* elm_animator_add( Evas_Object* parent );
1828    EAPI void elm_animator_del( Elm_Animator* animator );
1829    EAPI void elm_animator_duration_set( Elm_Animator* animator, const double duration );
1830    EAPI void elm_animator_operation_callback_set( Elm_Animator* animator, void (*op)(void*, Elm_Animator*, const double), void* data ); 
1831    EAPI void elm_animator_completion_callback_set( Elm_Animator* animator, void (*op)(void*), void* data );
1832    EAPI void elm_animator_operation_set( Elm_Animator* animator, void (*op)(void*, Elm_Animator*, const double), void* data ) __attribute__((deprecated));
1833    EAPI void elm_animator_completion_set( Elm_Animator* animator, void (*op)(void*), void* data ) __attribute__((deprecated));
1834    EAPI void elm_animator_stop( Elm_Animator* animator );
1835    EAPI void elm_animator_repeat_set( Elm_Animator* animator, const unsigned int repeat_cnt );
1836    EAPI void elm_animator_animate( Elm_Animator* animator );
1837    EAPI void elm_animator_curve_style_set( Elm_Animator* animator, Elm_Animator_Curve_Style cs );
1838    EAPI void elm_animator_auto_reverse_set( Elm_Animator* animator, Eina_Bool reverse );
1839    EAPI Eina_Bool elm_animator_auto_reverse_get( Elm_Animator* animator );
1840    EAPI Eina_Bool elm_animator_operating_get( Elm_Animator* animator );
1841    EAPI unsigned int elm_animator_repeat_get( Elm_Animator* animator );
1842
1843    
1844
1845   /*tansit*/
1846    typedef struct _transit Elm_Transit;
1847    typedef struct _effect Elm_Effect;
1848
1849    EAPI Elm_Transit* elm_transit_add( Evas_Object* parent );
1850    EAPI void elm_transit_del( Elm_Transit* transit );
1851    EAPI void elm_transit_run( Elm_Transit* transit, const double duration );
1852    EAPI void elm_transit_stop( Elm_Transit* transit );
1853
1854    //Please Use elm_transit_completion_callback_set
1855    EAPI void elm_transit_completion_set( Elm_Transit* transit, void (*op)(void*), void* data ) __attribute__((deprecated));
1856    EAPI void elm_transit_completion_callback_set( Elm_Transit* transit, void (*op)(void*,Elm_Transit*), void* data );
1857    EAPI void elm_transit_repeat_set( Elm_Transit* transit, const unsigned int repeat );
1858    EAPI void elm_transit_auto_reverse_set( Elm_Transit* transit, Eina_Bool reverse );
1859    EAPI void elm_transit_curve_style_set( Elm_Transit* transit, Elm_Animator_Curve_Style cs );
1860    EAPI void elm_transit_event_block_disabled_set( Elm_Transit* transit, Eina_Bool disable );
1861    EAPI Eina_Bool elm_transit_fx_insert( Elm_Transit* transit, Elm_Effect* effect );
1862    EAPI void elm_transit_fx_clear( Elm_Transit* transit );
1863    EAPI Eina_Bool elm_transit_event_block_disabled_get( Elm_Transit* transit );
1864
1865    /*Translation FX*/  
1866    EAPI Elm_Effect* elm_fx_translation_add( Evas_Object* obj, const Evas_Coord from_x, const Evas_Coord from_y, const Evas_Coord to_x,  const Evas_Coord to_y );
1867
1868    /*Transfer FX*/  
1869    //Please Use Translation FX
1870    EAPI Elm_Effect* elm_fx_transfer_add( Evas_Object* obj, const Evas_Coord from_x, const Evas_Coord from_y, const Evas_Coord to_x,  const Evas_Coord to_y ) __attribute__((deprecated));
1871
1872    /*Resizing FX*/  
1873    EAPI Elm_Effect* elm_fx_resizing_add( Evas_Object* obj, const Evas_Coord from_w, const Evas_Coord from_h, const Evas_Coord to_w,  const Evas_Coord to_h );
1874
1875    /*Zoom Fx*/  
1876    EAPI Elm_Effect* elm_fx_zoom_add( Evas_Object* obj, float from_rate, float to_rate );
1877
1878    /*Flip Fx*/
1879    typedef enum { ELM_FX_FLIP_AXIS_X, ELM_FX_FLIP_AXIS_Y } Elm_Fx_Flip_Axis;
1880    EAPI Elm_Effect* elm_fx_flip_add( Evas_Object* front, Evas_Object* back, const Elm_Fx_Flip_Axis axis, const Eina_Bool cw );
1881
1882    /*Blend Fx*/
1883    EAPI Elm_Effect* elm_fx_blend_add( Evas_Object* before, Evas_Object* after );
1884
1885    /*Fade Fx*/
1886    EAPI Elm_Effect* elm_fx_fade_add( Evas_Object* before, Evas_Object* after );
1887     
1888    /*Rotation Fx*/
1889    EAPI Elm_Effect* elm_fx_rotation_add( Evas_Object* obj, const float from_degree, const float to_degree, const Eina_Bool cw );
1890
1891    /*Color Fx*/
1892    EAPI Elm_Effect* elm_fx_color_add( Evas_Object* obj, const unsigned int from_r, const unsigned int from_g, const unsigned int from_b, const unsigned int from_a,  const unsigned int to_r ,const unsigned int to_g, const unsigned int to_b, const unsigned int to_a );
1893
1894    /*Wipe Fx*/
1895    typedef enum { ELM_FX_WIPE_DIR_LEFT, ELM_FX_WIPE_DIR_RIGHT, ELM_FX_WIPE_DIR_UP, ELM_FX_WIPE_DIR_DOWN } Elm_Fx_Wipe_Dir;
1896    typedef enum { ELM_FX_WIPE_TYPE_HIDE, ELM_FX_WIPE_TYPE_SHOW } Elm_Fx_Wipe_Type;
1897    EAPI Elm_Effect* elm_fx_wipe_add( Evas_Object* obj, Elm_Fx_Wipe_Type type,  Elm_Fx_Wipe_Dir dir );
1898
1899    /*ResizableFlip Fx*/
1900    EAPI Elm_Effect* elm_fx_resizable_flip_add( Evas_Object* front, Evas_Object* back, const Elm_Fx_Flip_Axis axis, const Eina_Bool cw );
1901    
1902    /*Transform Fx*/
1903    typedef struct _elm_fx_matrix {
1904         float _11, _12, _13, _14;
1905         float _21, _22, _23, _24;
1906         float _31, _32, _33, _34;
1907         float _41, _42, _43, _44;
1908    } Elm_Fx_Matrix;
1909 /*
1910    EAPI Elm_Effect* elm_fx_transform_add( Evas_Object* obj, Elm_Fx_Matrix* from, Elm_Fx_Matrix* to ); 
1911    EAPI void elm_fx_transform_identity_set( Elm_Fx_Matrix* m );
1912    EAPI void elm_fx_transform_translate( Elm_Fx_Matrix* m, const float pos_x, const float pos_y, const float pos_z );
1913    EAPI void elm_fx_transform_scale( Elm_Fx_Matrix* m, const float scale_x, const float scale_y, const float scale_z );
1914    EAPI void elm_fx_transform_rotate( Elm_Fx_Matrix* m, const float rad_x, const float rad_y, const float rad_z );
1915    EAPI void elm_fx_transform_multiply( Elm_Fx_Matrix* m, Elm_Fx_Matrix* m1, Elm_Fx_Matrix* m2 );
1916    */
1917
1918    /* NavigationBar */
1919    EAPI Evas_Object *elm_navigationbar_add(Evas_Object *parent);
1920    EAPI void elm_navigationbar_push(Evas_Object *obj, const char *title, Evas_Object *left_btn, Evas_Object *right_btn, Evas_Object *content, Eina_Bool animation);
1921    EAPI void elm_navigationbar_pop(Evas_Object *obj, Eina_Bool animation);
1922    EAPI void elm_navigationbar_title_set(Evas_Object *obj, Evas_Object *content, const char *title);
1923    EAPI const char *elm_navigationbar_title_get(Evas_Object *obj, Evas_Object *content);
1924    EAPI void elm_navigationbar_back_button_set(Evas_Object *obj, Evas_Object *content, Evas_Object *button, Eina_Bool animation);
1925    EAPI Evas_Object *elm_navigationbar_back_button_get(Evas_Object *obj, Evas_Object *content);
1926    EAPI void elm_navigationbar_left_button_set(Evas_Object *obj, Evas_Object *content, Evas_Object *button, Eina_Bool animation);
1927    EAPI Evas_Object *elm_navigationbar_left_button_get(Evas_Object *obj, Evas_Object *content);
1928    EAPI void elm_navigationbar_right_button_set(Evas_Object *obj, Evas_Object *content, Evas_Object *button, Eina_Bool animation);
1929    EAPI Evas_Object *elm_navigationbar_right_button_get(Evas_Object *obj, Evas_Object *content);
1930    EAPI Evas_Object *elm_navigationbar_content_top_get(Evas_Object *obj);
1931    EAPI void elm_navigationbar_hidden_set(Evas_Object *obj, Eina_Bool hidden, Eina_Bool animation);
1932    
1933
1934    /* Tab Bar */
1935    #define TAB_BAR_SYSTEM_ICON_CONTACT "elm/icon/tabbar_contact/default" 
1936    #define TAB_BAR_SYSTEM_ICON_GROUP "elm/icon/tabbar_group/default" 
1937    #define TAB_BAR_SYSTEM_ICON_SONG "elm/icon/tabbar_song/default" 
1938    #define TAB_BAR_SYSTEM_ICON_FAVORITES "elm/icon/tabbar_favorites/default" 
1939    #define TAB_BAR_SYSTEM_ICON_SEARCH "elm/icon/tabbar_search/default" 
1940    #define TAB_BAR_SYSTEM_ICON_MESSAGE "elm/icon/tabbar_message/default" 
1941    #define TAB_BAR_SYSTEM_ICON_SETTING "elm/icon/tabbar_setting/default" 
1942
1943    EAPI Evas_Object *elm_tabbar_add(Evas_Object *parent);
1944    EAPI Elm_Tab_Item *elm_tabbar_item_add(Evas_Object *obj, const char *icon_path, const char *label, Evas_Object *view);
1945    EAPI Evas_Object *elm_tabbar_item_icon_get(Elm_Tab_Item *it);
1946    EAPI const char *elm_tabbar_item_label_get(Elm_Tab_Item *it);
1947    EAPI void elm_tabbar_item_label_set(Elm_Tab_Item *it, const char *label);
1948    EAPI void elm_tabbar_item_select(Elm_Tab_Item *it);
1949    EAPI void elm_tabbar_edit_start(Evas_Object *obj);
1950    EAPI void elm_tabbar_item_visible_set(Elm_Tab_Item *it, Eina_Bool bar);
1951
1952   /* smart callbacks called:
1953    * "clicked" - when item clicked
1954     */
1955
1956   /* diskcontroller */
1957   typedef struct _Elm_Diskcontroller_Item Elm_Diskcontroller_Item;
1958
1959    EAPI Evas_Object *elm_diskcontroller_add(Evas_Object *parent);
1960    EAPI void elm_diskcontroller_round_set(Evas_Object *obj, Eina_Bool round);
1961    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);
1962    EAPI void elm_diskcontroller_item_del(Elm_Diskcontroller_Item *it);
1963    EAPI const char *elm_diskcontroller_item_label_get(Elm_Diskcontroller_Item *it);
1964    EAPI void elm_diskcontroller_item_label_set(Elm_Diskcontroller_Item *it, const char *label);
1965    EAPI void elm_diskcontroller_item_focus_set(Elm_Diskcontroller_Item *it);
1966    /* smart callbacks called:
1967     * "stop" - when scroller stop
1968     */
1969
1970    /* SearchBar */
1971    EAPI Evas_Object *elm_searchbar_add(Evas_Object *parent);
1972    EAPI void elm_searchbar_text_set(Evas_Object *obj, const char *entry);
1973    EAPI const char *elm_searchbar_text_get(Evas_Object *obj);
1974    EAPI Evas_Object *elm_searchbar_entry_get(Evas_Object *obj);
1975    EAPI void elm_searchbar_cancel_button_animation_set(Evas_Object *obj, Eina_Bool cancel_btn_ani_flag);
1976
1977    /* actionsheet */
1978    typedef enum _Elm_Actionsheet_Button_Type {
1979       ELM_ACTIONSHEET_BT_NORMAL = 0,
1980       ELM_ACTIONSHEET_BT_CANCEL,
1981       ELM_ACTIONSHEET_BT_DESTRUCTIVE
1982    } Elm_Actionsheet_Button_Type;
1983
1984    EAPI Evas_Object *elm_actionsheet_add(Evas_Object *parent);
1985    EAPI void elm_actionsheet_title_set(Evas_Object *obj, const char *title);
1986    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);
1987    EAPI int elm_actionsheet_button_title_get(Evas_Object *obj, const int index, char **title);
1988
1989    /* Toolbar 2 */
1990    typedef struct _Elm_Toolbar2_Item Elm_Toolbar2_Item;
1991    EAPI Evas_Object *elm_toolbar2_add(Evas_Object *parent);
1992    EAPI void elm_toolbar2_icon_size_set(Evas_Object *obj, int icon_size);
1993    EAPI int elm_toolbar2_icon_size_get(Evas_Object *obj);
1994    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);
1995    EAPI Evas_Object *elm_toolbar2_item_icon_get(Elm_Toolbar2_Item *item);
1996    EAPI void elm_toolbar2_item_del(Elm_Toolbar2_Item *it);
1997    EAPI void elm_toolbar2_item_del_cb_set(Elm_Toolbar2_Item *it, void (*func)(void *data, Evas_Object *obj, void *event_info));
1998    EAPI void elm_toolbar2_scrollable_set(Evas_Object *obj, Eina_Bool scrollable);
1999    EAPI void elm_toolbar2_homogenous_set(Evas_Object *obj, Eina_Bool homogenous);
2000    EAPI void elm_toolbar2_align_set(Evas_Object *obj, double align);
2001
2002   /* colorpicker */
2003    EAPI Evas_Object *elm_colorpicker_add(Evas_Object *parent);
2004    EAPI void elm_colorpicker_color_set(Evas_Object *obj, unsigned int r, unsigned int g , unsigned int b);
2005    EAPI void elm_colorpicker_color_get(Evas_Object *obj, unsigned int *r, unsigned int *g , unsigned int *b);
2006     /* smart callbacks called:
2007     * "clicked" - when bar or button is clicked
2008     */
2009
2010
2011  /* colorpalette */
2012     typedef struct _Colorpalette_Color Elm_Colorpalette_Color; 
2013
2014     struct _Colorpalette_Color {
2015      unsigned int r, g, b;
2016     };
2017
2018     EAPI Evas_Object *elm_colorpalette_add(Evas_Object *parent);
2019     EAPI void elm_colorpalette_color_set(Evas_Object *obj, int color_num, Elm_Colorpalette_Color *color);
2020     EAPI void elm_colorpalette_row_column_set(Evas_Object *obj, int row, int col);
2021     /* smart callbacks called:
2022     * "clicked" - when image clicked
2023     */
2024
2025    /* editfield */
2026    EAPI Evas_Object *elm_editfield_add(Evas_Object *parent);
2027    EAPI void elm_editfield_label_set(Evas_Object *obj, const char *label);
2028    EAPI const char* elm_editfield_label_get(Evas_Object *obj);
2029    EAPI void elm_editfield_guide_text_set(Evas_Object *obj, const char *text);
2030    EAPI const char* elm_editfield_guide_text_get(Evas_Object *obj);
2031    EAPI Evas_Object *elm_editfield_entry_get(Evas_Object *obj);
2032    EAPI Evas_Object *elm_editfield_clear_button_show(Evas_Object *obj, Eina_Bool show);
2033    EAPI Eina_Bool elm_editfield_right_icon_set(Evas_Object *obj, Evas_Object *icon);
2034    EAPI Evas_Object *elm_editfield_right_icon_get(Evas_Object *obj);
2035    EAPI Eina_Bool elm_editfield_left_icon_set(Evas_Object *obj, Evas_Object *icon);
2036    EAPI Evas_Object *elm_editfield_lett_icon_get(Evas_Object *obj);
2037    EAPI void elm_editfield_entry_single_line_set(Evas_Object *obj, Eina_Bool single_line);
2038
2039  /* softkey */
2040    typedef enum {
2041                 ELM_SK_LEFT_BTN,
2042                 ELM_SK_RIGHT_BTN,
2043    } Elm_Softkey_Type;
2044
2045    /* softkey */
2046    typedef struct _Elm_Softkey_Item Elm_Softkey_Item;
2047    EAPI Evas_Object *elm_softkey_add(Evas_Object *parent);
2048    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);
2049    EAPI void         elm_softkey_button_del(Evas_Object *obj, Elm_Softkey_Type type);
2050    EAPI void         elm_softkey_button_show(Evas_Object *obj, Elm_Softkey_Type type);
2051    EAPI void         elm_softkey_button_hide(Evas_Object *obj, Elm_Softkey_Type type);
2052
2053    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);
2054    EAPI int          elm_softkey_panel_del(Evas_Object *obj);
2055    EAPI int          elm_softkey_panel_close(Evas_Object *obj);
2056    EAPI int          elm_softkey_panel_open(Evas_Object *obj);
2057
2058    EAPI void         elm_softkey_item_icon_set(Elm_Softkey_Item *item, Evas_Object *icon);
2059    EAPI Evas_Object *elm_softkey_item_icon_get(Elm_Softkey_Item * item);
2060    EAPI void         elm_softkey_item_label_set(Elm_Softkey_Item *item, const char *label);
2061    EAPI const char  *elm_softkey_item_label_get(Elm_Softkey_Item * item);
2062    EAPI Eina_Bool    elm_softkey_item_disabled_get(Elm_Softkey_Item *item);
2063    EAPI void         elm_softkey_item_disabled_set(Elm_Softkey_Item *item, Eina_Bool disabled);
2064    EAPI void         elm_softkey_item_callback_set(Elm_Softkey_Item* item, void (*func)(void *data, Evas_Object *obj, void *event_info), const void *data );
2065    /* smart callback called: 
2066     * "clicked" - the user clicked the button, event_info: Softkey item
2067     * "press"   - the user press the button, event_info: Softkey item
2068     * "panel,show" - when the panel is shown
2069         * "panel,hide" - when the panel is hidden
2070     */
2071        
2072    /* gridbox */
2073    EAPI Evas_Object *elm_gridbox_add(Evas_Object *parent);
2074    EAPI void elm_gridbox_padding_set(Evas_Object *obj, Evas_Coord horizontal, Evas_Coord vertical);
2075    EAPI void elm_gridbox_item_size_set(Evas_Object *obj, Evas_Coord h_itemsize, Evas_Coord v_itemsize);
2076    EAPI void elm_gridbox_pack(Evas_Object *obj, Evas_Object *subobj);
2077    EAPI Eina_Bool elm_gridbox_unpack(Evas_Object *obj, Evas_Object *subobj);
2078    EAPI Eina_List *elm_gridbox_children_get(Evas_Object *obj);
2079    EAPI void elm_gridbox_homogenous_padding_set(Evas_Object *obj, Eina_Bool homogenous);
2080
2081    /* actionslider */                        
2082    typedef enum _Elm_Actionslider_Indicator_Pos  
2083    {                                         
2084       ELM_ACTIONSLIDER_INDICATOR_LEFT,
2085       ELM_ACTIONSLIDER_INDICATOR_RIGHT,
2086       ELM_ACTIONSLIDER_INDICATOR_CENTER
2087    } Elm_Actionslider_Indicator_Pos; 
2088    typedef enum _Elm_Actionslider_Magnet_Pos
2089    {
2090       ELM_ACTIONSLIDER_MAGNET_LEFT,
2091       ELM_ACTIONSLIDER_MAGNET_RIGHT,
2092       ELM_ACTIONSLIDER_MAGNET_BOTH,
2093       ELM_ACTIONSLIDER_MAGNET_CENTER
2094    } Elm_Actionslider_Magnet_Pos;
2095    typedef enum _Elm_Actionslider_Label_Pos
2096    {
2097       ELM_ACTIONSLIDER_LABEL_LEFT,
2098       ELM_ACTIONSLIDER_LABEL_RIGHT,
2099       ELM_ACTIONSLIDER_LABEL_CENTER
2100    } Elm_Actionslider_Label_Pos;
2101
2102    EAPI Evas_Object *elm_actionslider_add(Evas_Object *parent);
2103    EAPI void elm_actionslider_indicator_pos_set(Evas_Object *obj, Elm_Actionslider_Indicator_Pos pos);
2104    EAPI void elm_actionslider_magnet_pos_set(Evas_Object *obj, Elm_Actionslider_Magnet_Pos pos);
2105    EAPI int elm_actionslider_label_set(Evas_Object *obj, Elm_Actionslider_Label_Pos pos, const char *label);
2106    EAPI int elm_actionslider_hold(Evas_Object *obj, Eina_Bool flag);
2107    /* smart callbacks called:
2108     * "indicator,position" - when a button reaches to the special position like "left", "right" and "center".
2109     */
2110  
2111 #ifdef __cplusplus
2112 }
2113 #endif
2114
2115 #endif