Elementary: Removed trailing whitespaces from c,h,am,ac,in.
[framework/uifw/elementary.git] / src / lib / Elementary.h.in
index 0ae22f3..ae91d4f 100644 (file)
@@ -1,7 +1,83 @@
 /*
  *
- * vim:ts=8:sw=3:sts=3:expandtab:cino=>5n-2f0^-2{2(0W1st0
+ * vim:ts=8:sw=3:sts=3:expandtab:cino=>5n-3f0^-2{2(0W1st0
  */
+
+/**
+@file elementary.dox
+@brief Elementary Widget Library
+*/
+
+/**
+@mainpage Elementary
+@image html  elementary.png
+@version @PACKAGE_VERSION@
+@author Carsten Haitzler <raster@@rasterman.com>
+@author Gustavo Sverzut Barbieri <barbieri@@profusion.mobi>
+@author Cedric Bail <cedric.bail@@free.fr>
+@author Vincent Torri <vtorri@@univ-evry.fr>
+@author Daniel Kolesa <quaker66@@gmail.com>
+@author Jaime Thomas <avi.thomas@@gmail.com>
+@author Swisscom - http://www.swisscom.ch/
+@author Christopher Michael <devilhorns@@comcast.net>
+@author Marco Trevisan (Treviño) <mail@@3v1n0.net>
+@author Michael Bouchaud <michael.bouchaud@@gmail.com>
+@author Jonathan Atton (Watchwolf) <jonathan.atton@@gmail.com>
+@author Brian Wang <brian.wang.0721@@gmail.com>
+@author Mike Blumenkrantz (zmike) <mike@@zentific.com>
+@author Samsung Electronics <tbd>
+@author Samsung SAIT <tbd>
+@author Brett Nash <nash@@nash.id.au>
+@author Bruno Dilly <bdilly@@profusion.mobi>
+@author Rafael Fonseca <rfonseca@@profusion.mobi>
+@author Chuneon Park <chuneon.park@@samsung.com>
+@author Woohyun Jung <wh0705.jung@@samsung.com>
+@author Jaehwan Kim <jae.hwan.kim@@samsung.com>
+@author Wonguk Jeong <wonguk.jeong@@samsung.com>
+@author Leandro A. F. Pereira <leandro@@profusion.mobi>
+@author Helen Fornazier <helen.fornazier@@profusion.mobi>
+@author Gustavo Lima Chaves <glima@@profusion.mobi>
+@author Fabiano Fidêncio <fidencio@@profusion.mobi>
+@author Tiago Falcão <tiago@@profusion.mobi>
+@author Otavio Pontes <otavio@@profusion.mobi>
+@author Viktor Kojouharov <vkojouharov@@gmail.com>
+@author Daniel Juyung Seo (SeoZ) <juyung.seo@@samsung.com> <seojuyung2@@gmail.com>
+@author Sangho Park <sangho.g.park@@samsung.com> <gouache95@@gmail.com>
+@author Rajeev Ranjan (Rajeev) <rajeev.r@@samsung.com> <rajeev.jnnce@@gmail.com>
+@author Seunggyun Kim <sgyun.kim@@samsung.com> <tmdrbs@@gmail.com>
+@author Sohyun Kim <anna1014.kim@@samsung.com> <sohyun.anna@@gmail.com>
+@author Jihoon Kim <jihoon48.kim@@samsung.com>
+@author Jeonghyun Yun (arosis) <jh0506.yun@@samsung.com>
+@author Tom Hacohen <tom@@stosb.com>
+@author Aharon Hillel <a.hillel@@partner.samsung.com>
+@author Jonathan Atton (Watchwolf) <jonathan.atton@@gmail.com>
+@author Shinwoo Kim <kimcinoo@@gmail.com>
+@author Govindaraju SM <govi.sm@@samsung.com> <govism@@gmail.com>
+@author Prince Kumar Dubey <prince.dubey@@samsung.com> <prince.dubey@@gmail.com>
+@date 2008-2011
+
+@section intro What is Elementary?
+
+This is a VERY SIMPLE toolkit. It is not meant for writing extensive desktop
+applications (yet). Small simple ones with simple needs.
+
+It is meant to make the programmers work almost brainless but give them lots
+of flexibility.
+
+License: LGPL v2 (see COPYING in the base of Elementary's source). This
+applies to all files in the source here.
+
+Acknowledgements: There is a lot that goes into making a widget set, and
+they don't happen out of nothing. It's like trying to make everyone
+everywhere happy, regardless of age, gender, race or nationality - and
+that is really tough. So thanks to people and organisations behind this,
+aslisted in the Authors section above.
+
+@verbatim
+Pants
+@endverbatim
+*/
+
 #ifndef ELEMENTARY_H
 #define ELEMENTARY_H
 
 #include <Eina.h>
 #include <Eet.h>
 #include <Evas.h>
+#include <Evas_GL.h>
 #include <Ecore.h>
 #include <Ecore_Evas.h>
 #include <Ecore_File.h>
@@ -175,10 +252,10 @@ extern "C" {
     */
    typedef enum _Elm_Policy
      {
-       ELM_POLICY_QUIT, /**< when should quit application automatically.
-                         * @see Elm_Policy_Quit.
-                         */
-       ELM_POLICY_LAST
+        ELM_POLICY_QUIT, /**< when should quit application automatically.
+                          * @see Elm_Policy_Quit.
+                          */
+        ELM_POLICY_LAST
      } Elm_Policy;
 
    typedef enum _Elm_Policy_Quit
@@ -200,6 +277,19 @@ extern "C" {
      } Elm_Text_Format;
 
    /**
+    * Line wrapping types.
+    */
+   typedef enum _Elm_Wrap_Type
+     {
+        ELM_WRAP_NONE = 0, /**< No wrap - value is zero */
+        ELM_WRAP_CHAR, /**< Char wrap - wrap between graphmes */
+        ELM_WRAP_WORD, /**< Word wrap - wrap in allowed wrapping points (as defined in the unicode standard) */
+        ELM_WRAP_MIXED, /**< Mixed wrap - Word wrap, and if that fails, char wrap. */
+        ELM_WRAP_LAST
+     } Elm_Wrap_Type;
+
+
+   /**
     * Called back when a widget's tooltip is activated and needs content.
     * @param data user-data given to elm_object_tooltip_content_cb_set()
     * @param obj owner widget.
@@ -230,6 +320,17 @@ extern "C" {
    EAPI void         elm_run(void);
    EAPI void         elm_exit(void);
 
+   EAPI void         elm_app_info_set(void *mainfunc, const char *dom, const char *checkfile);
+   EAPI void         elm_app_compile_bin_dir_set(const char *dir);
+   EAPI void         elm_app_compile_lib_dir_set(const char *dir);
+   EAPI void         elm_app_compile_data_dir_set(const char *dir);
+   EAPI void         elm_app_compile_locale_set(const char *dir);
+   EAPI const char  *elm_app_prefix_dir_get(void);
+   EAPI const char  *elm_app_bin_dir_get(void);
+   EAPI const char  *elm_app_lib_dir_get(void);
+   EAPI const char  *elm_app_data_dir_get(void);
+   EAPI const char  *elm_app_locale_dir_get(void);
+
    EAPI void         elm_quicklaunch_mode_set(Eina_Bool ql_on);
    EAPI Eina_Bool    elm_quicklaunch_mode_get(void);
    EAPI int          elm_quicklaunch_init(int argc, char **argv);
@@ -254,7 +355,7 @@ extern "C" {
    EAPI int          elm_cache_flush_interval_get(void);
    EAPI void         elm_cache_flush_interval_set(int size);
    EAPI void         elm_cache_flush_interval_all_set(int size);
-   EAPI Eina_Bool    elm_cache_flush_enmabled_get(void);
+   EAPI Eina_Bool    elm_cache_flush_enabled_get(void);
    EAPI void         elm_cache_flush_enabled_set(Eina_Bool enabled);
    EAPI void         elm_cache_flush_enabled_all_set(Eina_Bool enabled);
    EAPI int          elm_font_cache_get(void);
@@ -272,6 +373,10 @@ extern "C" {
 
    EAPI void         elm_object_scale_set(Evas_Object *obj, double scale) EINA_ARG_NONNULL(1);
    EAPI double       elm_object_scale_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool    elm_object_mirrored_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void         elm_object_mirrored_set(Evas_Object *obj, Eina_Bool mirrored) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool    elm_object_mirrored_automatic_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void         elm_object_mirrored_automatic_set(Evas_Object *obj, Eina_Bool automatic) EINA_ARG_NONNULL(1);
    EAPI void         elm_object_style_set(Evas_Object *obj, const char *style) EINA_ARG_NONNULL(1);
    EAPI const char  *elm_object_style_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_object_disabled_set(Evas_Object *obj, Eina_Bool disabled) EINA_ARG_NONNULL(1);
@@ -286,6 +391,9 @@ extern "C" {
    EAPI void         elm_scale_set(double scale);
    EAPI void         elm_scale_all_set(double scale);
 
+   EAPI Eina_Bool    elm_mirrored_get(void);
+   EAPI void         elm_mirrored_set(Eina_Bool mirrored);
+
    EAPI Eina_Bool    elm_config_save(void);
    EAPI void         elm_config_reload(void);
 
@@ -455,12 +563,19 @@ extern "C" {
         ELM_WIN_TOOLBAR,
         ELM_WIN_MENU,
         ELM_WIN_UTILITY,
-        ELM_WIN_SPLASH
+        ELM_WIN_SPLASH,
+        ELM_WIN_DROPDOWN_MENU,
+        ELM_WIN_POPUP_MENU,
+        ELM_WIN_TOOLTIP,
+        ELM_WIN_NOTIFICATION,
+        ELM_WIN_COMBO,
+        ELM_WIN_DND,
+        ELM_WIN_INLINED_IMAGE,
      } Elm_Win_Type;
 
    typedef enum _Elm_Win_Keyboard_Mode
      {
-       ELM_WIN_KEYBOARD_UNKNOWN,
+        ELM_WIN_KEYBOARD_UNKNOWN,
         ELM_WIN_KEYBOARD_OFF,
         ELM_WIN_KEYBOARD_ON,
         ELM_WIN_KEYBOARD_ALPHA,
@@ -478,6 +593,14 @@ extern "C" {
         ELM_WIN_KEYBOARD_J2ME
      } Elm_Win_Keyboard_Mode;
 
+   typedef enum _Elm_Illume_Command
+     {
+        ELM_ILLUME_COMMAND_FOCUS_BACK,
+        ELM_ILLUME_COMMAND_FOCUS_FORWARD,
+        ELM_ILLUME_COMMAND_FOCUS_HOME,
+        ELM_ILLUME_COMMAND_CLOSE
+     } Elm_Illume_Command;
+
    EAPI Evas_Object *elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type);
    EAPI void         elm_win_resize_object_add(Evas_Object *obj, Evas_Object *subobj) EINA_ARG_NONNULL(1);
    EAPI void         elm_win_resize_object_del(Evas_Object *obj, Evas_Object *subobj) EINA_ARG_NONNULL(1);
@@ -521,6 +644,9 @@ extern "C" {
    EAPI int          elm_win_quickpanel_priority_minor_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_win_quickpanel_zone_set(Evas_Object *obj, int zone) EINA_ARG_NONNULL(1);
    EAPI int          elm_win_quickpanel_zone_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void         elm_win_prop_focus_skip_set(Evas_Object *obj, Eina_Bool skip); EINA_ARG_NONNULL(1);
+   EAPI void         elm_win_illume_command_send(Evas_Object *obj, Elm_Illume_Command command, void *params); EINA_ARG_NONNULL(1);
+   EAPI Evas_Object *elm_win_inlined_image_object_get(Evas_Object *obj);
    EAPI void         elm_win_focus_highlight_enabled_set(Evas_Object *obj, Eina_Bool enabled) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool    elm_win_focus_highlight_enabled_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_win_focus_highlight_style_set(Evas_Object *obj, const char *style) EINA_ARG_NONNULL(1);
@@ -583,6 +709,7 @@ extern "C" {
    EAPI void          elm_bg_overlay_set(Evas_Object *obj, Evas_Object *overlay) EINA_ARG_NONNULL(1);
    EAPI Evas_Object  *elm_bg_overlay_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI Evas_Object  *elm_bg_overlay_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void          elm_bg_load_size_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h) EINA_ARG_NONNULL(1);
    /* smart callbacks called:
     */
 
@@ -597,6 +724,7 @@ extern "C" {
 
    EAPI Evas_Object          *elm_icon_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool             elm_icon_file_set(Evas_Object *obj, const char *file, const char *group) EINA_ARG_NONNULL(1, 2);
+   EAPI void                  elm_icon_thumb_set(const Evas_Object *obj, const char *file, const char *group) EINA_ARG_NONNULL(1, 2);
    EAPI void                  elm_icon_file_get(const Evas_Object *obj, const char **file, const char **group) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool             elm_icon_standard_set(Evas_Object *obj, const char *name) EINA_ARG_NONNULL(1);
    EAPI const char           *elm_icon_standard_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
@@ -646,18 +774,59 @@ extern "C" {
    EAPI Elm_Image_Orient elm_image_orient_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void             elm_image_editable_set(Evas_Object *obj, Eina_Bool set) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool        elm_image_editable_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI Evas_Object     *elm_image_object_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /* smart callbacks called:
     * "clicked" - the user clicked the image
     */
 
+   /* glview */
+   typedef void (*Elm_GLView_Func)(Evas_Object *obj);
+
+   typedef enum _Elm_GLView_Mode
+     {
+        ELM_GLVIEW_ALPHA   = 1,
+        ELM_GLVIEW_DEPTH   = 2,
+        ELM_GLVIEW_STENCIL = 4
+     } Elm_GLView_Mode;
+
+   /**
+    * Defines a policy for the glview resizing.
+    *
+    * @note Default is ELM_GLVIEW_RESIZE_POLICY_RECREATE
+    */
+   typedef enum _Elm_GLView_Resize_Policy
+     {
+        ELM_GLVIEW_RESIZE_POLICY_RECREATE = 1,      /**< Resize the internal surface along with the image */
+        ELM_GLVIEW_RESIZE_POLICY_SCALE    = 2       /**< Only reize the internal image and not the surface */
+     } Elm_GLView_Resize_Policy;
+
+   typedef enum _Elm_GLView_Render_Policy
+     {
+        ELM_GLVIEW_RENDER_POLICY_ON_DEMAND = 1,     /**< Render only when there is a need for redrawing */
+        ELM_GLVIEW_RENDER_POLICY_ALWAYS    = 2      /**< Render always even when it is not visible */
+     } Elm_GLView_Render_Policy;
+
+
+   EAPI Evas_Object     *elm_glview_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+   EAPI void             elm_glview_size_set(Evas_Object *obj, Evas_Coord width, Evas_Coord height) EINA_ARG_NONNULL(1);
+   EAPI void             elm_glview_size_get(const Evas_Object *obj, Evas_Coord *width, Evas_Coord *height) EINA_ARG_NONNULL(1);
+   EAPI Evas_GL_API     *elm_glview_gl_api_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool        elm_glview_mode_set(Evas_Object *obj, Elm_GLView_Mode mode) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool        elm_glview_scale_policy_set(Evas_Object *obj, Elm_GLView_Resize_Policy policy) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool        elm_glview_render_policy_set(Evas_Object *obj, Elm_GLView_Render_Policy policy) EINA_ARG_NONNULL(1);
+   EAPI void             elm_glview_render_func_set(Evas_Object *obj, Elm_GLView_Func func);
+   EAPI void             elm_glview_changed_set(Evas_Object *obj) EINA_ARG_NONNULL(1);
+
    /* box */
    typedef struct _Elm_Box_Transition Elm_Box_Transition;
 
    EAPI Evas_Object        *elm_box_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
    EAPI void                elm_box_horizontal_set(Evas_Object *obj, Eina_Bool horizontal) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool           elm_box_horizontal_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI void                elm_box_homogenous_set(Evas_Object *obj, Eina_Bool homogenous) EINA_ARG_NONNULL(1);
-   EAPI Eina_Bool           elm_box_homogenous_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void                elm_box_homogeneous_set(Evas_Object *obj, Eina_Bool homogeneous) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool           elm_box_homogeneous_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void elm_box_homogenous_set(Evas_Object *obj, Eina_Bool homogenous) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Eina_Bool elm_box_homogenous_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void                elm_box_pack_start(Evas_Object *obj, Evas_Object *subobj) EINA_ARG_NONNULL(1);
    EAPI void                elm_box_pack_end(Evas_Object *obj, Evas_Object *subobj) EINA_ARG_NONNULL(1);
    EAPI void                elm_box_pack_before(Evas_Object *obj, Evas_Object *subobj, Evas_Object *before) EINA_ARG_NONNULL(1);
@@ -785,25 +954,24 @@ extern "C" {
    EAPI void         elm_scroller_region_bring_in(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h) EINA_ARG_NONNULL(1);
    EAPI void         elm_scroller_propagate_events_set(Evas_Object *obj, Eina_Bool propagation);
    EAPI Eina_Bool    elm_scroller_propagate_events_get(const Evas_Object *obj);
-
    /* smart callbacks called:
-    * "edge,left"
-    * "edge,right"
-    * "edge,top"
-    * "edge,bottom"
-    * "scroll"
-    * "scroll,anim,start"
-    * "scroll,anim,stop"
-    * "scroll,drag,start"
-    * "scroll,drag,stop"
+    * "edge,left" - the left edge of the content has been reached
+    * "edge,right" - the right edge of the content has been reached
+    * "edge,top" - the top edge of the content has been reached
+    * "edge,bottom" - the bottom edge of the content has been reached
+    * "scroll" - the content has been scrolled (moved)
+    * "scroll,anim,start" - scrolling animation has started
+    * "scroll,anim,stop" - scrolling animation has stopped
+    * "scroll,drag,start" - dragging the contents around has started
+    * "scroll,drag,stop" - dragging the contents around has stopped
     */
 
    /* label */
    EAPI Evas_Object *elm_label_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
    EAPI void         elm_label_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
    EAPI const char  *elm_label_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI void         elm_label_line_wrap_set(Evas_Object *obj, Eina_Bool wrap) EINA_ARG_NONNULL(1);
-   EAPI Eina_Bool    elm_label_line_wrap_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void         elm_label_line_wrap_set(Evas_Object *obj, Elm_Wrap_Type wrap) EINA_ARG_NONNULL(1);
+   EAPI Elm_Wrap_Type elm_label_line_wrap_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_label_wrap_width_set(Evas_Object *obj, Evas_Coord w) EINA_ARG_NONNULL(1);
    EAPI Evas_Coord   elm_label_wrap_width_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_label_wrap_height_set(Evas_Object *obj, Evas_Coord h) EINA_ARG_NONNULL(1);
@@ -837,7 +1005,9 @@ extern "C" {
    EAPI Eina_Bool    elm_toggle_state_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_toggle_state_pointer_set(Evas_Object *obj, Eina_Bool *statep) EINA_ARG_NONNULL(1);
    /* smart callbacks called:
-    * "changed" - the user toggled the state
+    * "changed" - Whenever the toggle value has been changed.  Is not called
+    *             until the toggle is released by the cursor (assuming it has been triggered
+    *             by the cursor in the first place).
     */
 
    /* frame */
@@ -861,9 +1031,11 @@ extern "C" {
 
    /* table */
    EAPI Evas_Object *elm_table_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
-   EAPI void         elm_table_homogenous_set(Evas_Object *obj, Eina_Bool homogenous) EINA_ARG_NONNULL(1);
+   EAPI void         elm_table_homogeneous_set(Evas_Object *obj, Eina_Bool homogeneous) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool    elm_table_homogeneous_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI void        elm_table_padding_set(Evas_Object *obj, Evas_Coord horizontal, Evas_Coord vertical) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void elm_table_homogenous_set(Evas_Object *obj, Eina_Bool homogenous) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Eina_Bool elm_table_homogenous_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void         elm_table_padding_set(Evas_Object *obj, Evas_Coord horizontal, Evas_Coord vertical) EINA_ARG_NONNULL(1);
    EAPI void         elm_table_padding_get(const Evas_Object *obj, Evas_Coord *horizontal, Evas_Coord *vertical) EINA_ARG_NONNULL(1);
    EAPI void         elm_table_pack(Evas_Object *obj, Evas_Object *subobj, int x, int y, int w, int h) EINA_ARG_NONNULL(1);
    EAPI void         elm_table_unpack(Evas_Object *obj, Evas_Object *subobj) EINA_ARG_NONNULL(1);
@@ -880,13 +1052,14 @@ extern "C" {
 
    struct _Elm_Gengrid_Item_Class
      {
-       const char             *item_style;
-       struct _Elm_Gengrid_Item_Class_Func {
-          GridItemLabelGetFunc  label_get;
-          GridItemIconGetFunc   icon_get;
-          GridItemStateGetFunc  state_get;
-          GridItemDelFunc       del;
-        } func;
+        const char             *item_style;
+        struct _Elm_Gengrid_Item_Class_Func
+          {
+             GridItemLabelGetFunc  label_get;
+             GridItemIconGetFunc   icon_get;
+             GridItemStateGetFunc  state_get;
+             GridItemDelFunc       del;
+          } func;
      };
 
    EAPI Evas_Object       *elm_gengrid_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
@@ -895,6 +1068,8 @@ extern "C" {
    EAPI void               elm_gengrid_align_set(Evas_Object *obj, double align_x, double align_y) EINA_ARG_NONNULL(1);
    EAPI void               elm_gengrid_align_get(const Evas_Object *obj, double *align_x, double *align_y) EINA_ARG_NONNULL(1);
 
+   EAPI void               elm_gengrid_reorder_mode_set(Evas_Object *obj, Eina_Bool reorder_mode) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool          elm_gengrid_reorder_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void               elm_gengrid_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool          elm_gengrid_always_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void               elm_gengrid_no_select_mode_set(Evas_Object *obj, Eina_Bool no_select) EINA_ARG_NONNULL(1);
@@ -904,8 +1079,10 @@ extern "C" {
    EAPI void               elm_gengrid_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce) EINA_ARG_NONNULL(1);
    EAPI void               elm_gengrid_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce) EINA_ARG_NONNULL(1);
    EAPI void               elm_gengrid_page_relative_set(Evas_Object *obj, double h_pagerel, double v_pagerel) EINA_ARG_NONNULL(1);
+   EAPI void               elm_gengrid_page_relative_get(const Evas_Object *obj, double *h_pagerel, double *v_pagerel) EINA_ARG_NONNULL(1);
    EAPI void               elm_gengrid_page_size_set(Evas_Object *obj, Evas_Coord h_pagesize, Evas_Coord v_pagesize) EINA_ARG_NONNULL(1);
    EAPI void               elm_gengrid_horizontal_set(Evas_Object *obj, Eina_Bool setting) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool          elm_gengrid_horizontal_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    EAPI Elm_Gengrid_Item  *elm_gengrid_first_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI Elm_Gengrid_Item  *elm_gengrid_last_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
@@ -939,7 +1116,7 @@ extern "C" {
    EAPI void               elm_gengrid_item_cursor_engine_only_set(Elm_Gengrid_Item *item, Eina_Bool engine_only) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool          elm_gengrid_item_cursor_engine_only_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
 
-   EAPI void              elm_gengrid_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void               elm_gengrid_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI Elm_Gengrid_Item  *elm_gengrid_selected_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI const Eina_List   *elm_gengrid_selected_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
@@ -949,11 +1126,11 @@ extern "C" {
    EAPI Elm_Gengrid_Item  *elm_gengrid_item_insert_after(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic, const void *data, Elm_Gengrid_Item *relative, Evas_Smart_Cb func, const void *func_data) EINA_ARG_NONNULL(1);
    /* smart callbacks called:
     *
-    * selected - User has selected a item.
-    * unselected - User has unselected a item.
-    * clicked - User has double-clicked a item.
-    * realized - An evas object for a item was built.
-    * unrealized - An evas object for a item was deleted.
+    * selected - User has selected an item.
+    * unselected - User has unselected an item.
+    * clicked,double - User has double-clicked or pressed enter on an item.
+    * realized - An evas object for an item was built.
+    * unrealized - An evas object for an item was deleted.
     * changed - An item has been added, removed, resized or moved,
     * or gengrid has been resized or horizontal property has been changed.
     * scroll - the content has been scrolled (moved).
@@ -977,7 +1154,7 @@ extern "C" {
         ELM_CLOCK_MIN_UNIT     = 1 << 3,
         ELM_CLOCK_SEC_DECIMAL  = 1 << 4,
         ELM_CLOCK_SEC_UNIT     = 1 << 5,
-        ELM_CLOCK_ALL         = (1 << 6) - 1
+        ELM_CLOCK_ALL          = (1 << 6) - 1
      } Elm_Clock_Digedit;
 
    EAPI Evas_Object      *elm_clock_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
@@ -985,14 +1162,14 @@ extern "C" {
    EAPI void              elm_clock_time_get(const Evas_Object *obj, int *hrs, int *min, int *sec) EINA_ARG_NONNULL(1);
    EAPI void              elm_clock_edit_set(Evas_Object *obj, Eina_Bool edit) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool         elm_clock_edit_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI void             elm_clock_digit_edit_set(Evas_Object *obj, Elm_Clock_Digedit digedit) EINA_ARG_NONNULL(1);
+   EAPI void              elm_clock_digit_edit_set(Evas_Object *obj, Elm_Clock_Digedit digedit) EINA_ARG_NONNULL(1);
    EAPI Elm_Clock_Digedit elm_clock_digit_edit_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void              elm_clock_show_am_pm_set(Evas_Object *obj, Eina_Bool am_pm) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool         elm_clock_show_am_pm_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void              elm_clock_show_seconds_set(Evas_Object *obj, Eina_Bool seconds) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool         elm_clock_show_seconds_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void              elm_clock_interval_set(Evas_Object *obj, double interval) EINA_ARG_NONNULL(1);
-   EAPI double           elm_clock_interval_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI double            elm_clock_interval_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /* smart callbacks called:
     * "changed" - the user changed the time
     */
@@ -1002,7 +1179,7 @@ extern "C" {
    EAPI Eina_Bool          elm_layout_file_set(Evas_Object *obj, const char *file, const char *group) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool          elm_layout_theme_set(Evas_Object *obj, const char *clas, const char *group, const char *style) EINA_ARG_NONNULL(1);
    EAPI void               elm_layout_content_set(Evas_Object *obj, const char *swallow, Evas_Object *content) EINA_ARG_NONNULL(1);
-   EAPI const Evas_Object *elm_layout_content_get(const Evas_Object *obj, const char *swallow) EINA_ARG_NONNULL(1);
+   EAPI Evas_Object       *elm_layout_content_get(const Evas_Object *obj, const char *swallow) EINA_ARG_NONNULL(1);
    EAPI Evas_Object       *elm_layout_content_unset(Evas_Object *obj, const char *swallow) EINA_ARG_NONNULL(1);
    EAPI void               elm_layout_text_set(Evas_Object *obj, const char *part, const char *text) EINA_ARG_NONNULL(1);
    EAPI const char        *elm_layout_text_get(const Evas_Object *obj, const char *part) EINA_ARG_NONNULL(1);
@@ -1164,9 +1341,9 @@ extern "C" {
    typedef struct _Elm_Entry_Anchor_Info Elm_Entry_Anchor_Info;
    struct _Elm_Entry_Anchor_Info
      {
-       const char *name;
-       int         button;
-       Evas_Coord  x, y, w, h;
+        const char *name;
+        int         button;
+        Evas_Coord  x, y, w, h;
      };
    typedef enum _Elm_Icon_Type
      {
@@ -1186,8 +1363,7 @@ extern "C" {
    EAPI Eina_Bool    elm_entry_is_empty(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI const char  *elm_entry_selection_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_entry_entry_insert(Evas_Object *obj, const char *entry) EINA_ARG_NONNULL(1);
-   EAPI void         elm_entry_line_wrap_set(Evas_Object *obj, Eina_Bool wrap) EINA_ARG_NONNULL(1);
-   EAPI void         elm_entry_line_char_wrap_set(Evas_Object *obj, Eina_Bool wrap) EINA_ARG_NONNULL(1);
+   EAPI void         elm_entry_line_wrap_set(Evas_Object *obj, Elm_Wrap_Type wrap) EINA_ARG_NONNULL(1);
    EAPI void         elm_entry_editable_set(Evas_Object *obj, Eina_Bool editable) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool    elm_entry_editable_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_entry_select_none(Evas_Object *obj) EINA_ARG_NONNULL(1);
@@ -1206,6 +1382,8 @@ extern "C" {
    EAPI Eina_Bool    elm_entry_cursor_is_visible_format_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI const char  *elm_entry_cursor_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool    elm_entry_cursor_geometry_get(const Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) EINA_ARG_NONNULL(1);
+   EAPI void         elm_entry_cursor_pos_set(Evas_Object *obj, int pos) EINA_ARG_NONNULL(1);
+   EAPI int          elm_entry_cursor_pos_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_entry_selection_cut(Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_entry_selection_copy(Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_entry_selection_paste(Evas_Object *obj) EINA_ARG_NONNULL(1);
@@ -1219,8 +1397,8 @@ extern "C" {
    EAPI void         elm_entry_text_filter_append(Evas_Object *obj, void (*func) (void *data, Evas_Object *entry, char **text), void *data) EINA_ARG_NONNULL(1, 2);
    EAPI void         elm_entry_text_filter_prepend(Evas_Object *obj, void (*func) (void *data, Evas_Object *entry, char **text), void *data) EINA_ARG_NONNULL(1, 2);
    EAPI void         elm_entry_text_filter_remove(Evas_Object *obj, void (*func) (void *data, Evas_Object *entry, char **text), void *data) EINA_ARG_NONNULL(1, 2);
-   EAPI char        *elm_entry_markup_to_utf8(const char *s);
-   EAPI char        *elm_entry_utf8_to_markup(const char *s);
+   EAPI char        *elm_entry_markup_to_utf8(const char *s) EINA_MALLOC EINA_WARN_UNUSED_RESULT;
+   EAPI char        *elm_entry_utf8_to_markup(const char *s) EINA_MALLOC EINA_WARN_UNUSED_RESULT;
    EAPI void         elm_entry_file_set(Evas_Object *obj, const char *file, Elm_Text_Format format) EINA_ARG_NONNULL(1);
    EAPI void         elm_entry_file_get(const Evas_Object *obj, const char **file, Elm_Text_Format *format) EINA_ARG_NONNULL(1);
    EAPI void         elm_entry_file_save(Evas_Object *obj) EINA_ARG_NONNULL(1);
@@ -1270,16 +1448,16 @@ extern "C" {
    typedef struct _Elm_Entry_Anchorview_Info Elm_Entry_Anchorview_Info;
    struct _Elm_Entry_Anchorview_Info
      {
-       const char     *name;
-       int             button;
-       Evas_Object    *hover;
+        const char     *name;
+        int             button;
+        Evas_Object    *hover;
         struct {
-          Evas_Coord    x, y, w, h;
+             Evas_Coord    x, y, w, h;
         } anchor, hover_parent;
-       Eina_Bool       hover_left : 1;
-       Eina_Bool       hover_right : 1;
-       Eina_Bool       hover_top : 1;
-       Eina_Bool       hover_bottom : 1;
+        Eina_Bool       hover_left : 1;
+        Eina_Bool       hover_right : 1;
+        Eina_Bool       hover_top : 1;
+        Eina_Bool       hover_bottom : 1;
      };
    EAPI Evas_Object *elm_anchorview_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
    EAPI void         elm_anchorview_text_set(Evas_Object *obj, const char *text) EINA_ARG_NONNULL(1);
@@ -1303,16 +1481,16 @@ extern "C" {
    typedef struct _Elm_Entry_Anchorblock_Info Elm_Entry_Anchorblock_Info;
    struct _Elm_Entry_Anchorblock_Info
      {
-       const char     *name;
-       int             button;
-       Evas_Object    *hover;
-       struct {
-          Evas_Coord    x, y, w, h;
+        const char     *name;
+        int             button;
+        Evas_Object    *hover;
+        struct {
+             Evas_Coord    x, y, w, h;
         } anchor, hover_parent;
-       Eina_Bool       hover_left : 1;
-       Eina_Bool       hover_right : 1;
-       Eina_Bool       hover_top : 1;
-       Eina_Bool       hover_bottom : 1;
+        Eina_Bool       hover_left : 1;
+        Eina_Bool       hover_right : 1;
+        Eina_Bool       hover_top : 1;
+        Eina_Bool       hover_bottom : 1;
      };
    EAPI Evas_Object *elm_anchorblock_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
    EAPI void         elm_anchorblock_text_set(Evas_Object *obj, const char *text) EINA_ARG_NONNULL(1);
@@ -1356,6 +1534,8 @@ extern "C" {
    EAPI void         elm_photo_editable_set(Evas_Object *obj, Eina_Bool set) EINA_ARG_NONNULL(1);
    /* smart callbacks called:
     * "clicked" - the user clicked the icon
+    * "drag,start" - Someone started dragging the image out of the object
+    * "drag,end" - Dragged item was dropped (somewhere)
     */
 
    /* thumb */
@@ -1369,10 +1549,10 @@ extern "C" {
 
    EAPI Evas_Object                 *elm_thumb_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
    EAPI void                         elm_thumb_reload(Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI void                        elm_thumb_file_set(Evas_Object *obj, const char *file, const char *key) EINA_ARG_NONNULL(1);
-   EAPI void                        elm_thumb_file_get(const Evas_Object *obj, const char **file, const char **key) EINA_ARG_NONNULL(1);
-   EAPI void                        elm_thumb_path_get(const Evas_Object *obj, const char **file, const char **key) EINA_ARG_NONNULL(1);
-   EAPI void                        elm_thumb_animate_set(Evas_Object *obj, Elm_Thumb_Animation_Setting s) EINA_ARG_NONNULL(1);
+   EAPI void                         elm_thumb_file_set(Evas_Object *obj, const char *file, const char *key) EINA_ARG_NONNULL(1);
+   EAPI void                         elm_thumb_file_get(const Evas_Object *obj, const char **file, const char **key) EINA_ARG_NONNULL(1);
+   EAPI void                         elm_thumb_path_get(const Evas_Object *obj, const char **file, const char **key) EINA_ARG_NONNULL(1);
+   EAPI void                         elm_thumb_animate_set(Evas_Object *obj, Elm_Thumb_Animation_Setting s) EINA_ARG_NONNULL(1);
    EAPI Elm_Thumb_Animation_Setting  elm_thumb_animate_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void                        *elm_thumb_ethumb_client_get(void);
    EAPI Eina_Bool                    elm_thumb_ethumb_client_connected(void);
@@ -1381,15 +1561,15 @@ extern "C" {
    /* available styles:
     * default
     * noframe
-    *
-    * smart callbacks called:
-    * "clicked" - the user clicked the thumb
-    * "clicked,double" - the user double clicked the thumb
-    * "press" - the user pressed the thumb
-    * "generate,start" - the thumbnail generation started
-    * "generate,stop" - the thumbnail generation stopped
-    * "generate,error" - the thumbnail generation failed
-    * "load,error" - the thumbnail image loading failed
+    */
+   /* smart callbacks called:
+    * "clicked" - This is called when a user has clicked the thumb without dragging around.
+    * "clicked,double" - This is called when a user has double-clicked the thumb.
+    * "press" - This is called when a user has pressed down the thumb.
+    * "generate,start" - The thumbnail generation started.
+    * "generate,stop" - The generation process stopped.
+    * "generate,error" - The generation failed.
+    * "load,error" - The thumbnail image loading failed.
     */
 
    /* hoversel */
@@ -1469,8 +1649,10 @@ extern "C" {
    EAPI Eina_Bool               elm_toolbar_item_separator_get(const Elm_Toolbar_Item *item) EINA_ARG_NONNULL(1);
    EAPI void                    elm_toolbar_mode_shrink_set(Evas_Object *obj, Elm_Toolbar_Shrink_Mode shrink_mode) EINA_ARG_NONNULL(1);
    EAPI Elm_Toolbar_Shrink_Mode elm_toolbar_mode_shrink_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI void                    elm_toolbar_homogenous_set(Evas_Object *obj, Eina_Bool homogenous) EINA_ARG_NONNULL(1);
-   EAPI Eina_Bool               elm_toolbar_homogenous_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void                    elm_toolbar_homogeneous_set(Evas_Object *obj, Eina_Bool homogeneous) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool               elm_toolbar_homogeneous_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void    elm_toolbar_homogenous_set(Evas_Object *obj, Eina_Bool homogenous) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Eina_Bool elm_toolbar_homogenous_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void                    elm_toolbar_menu_parent_set(Evas_Object *obj, Evas_Object *parent) EINA_ARG_NONNULL(1);
    EAPI Evas_Object            *elm_toolbar_menu_parent_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void                    elm_toolbar_align_set(Evas_Object *obj, double align) EINA_ARG_NONNULL(1);
@@ -1532,13 +1714,17 @@ extern "C" {
    EAPI void               elm_menu_parent_set(Evas_Object *obj, Evas_Object *parent) EINA_ARG_NONNULL(1);
    EAPI Evas_Object       *elm_menu_parent_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void               elm_menu_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y) EINA_ARG_NONNULL(1);
-   EAPI Evas_Object       *elm_menu_object_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1);
+   EAPI void               elm_menu_close(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI const Eina_List   *elm_menu_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI Evas_Object       *elm_menu_item_object_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1);
    EAPI Elm_Menu_Item     *elm_menu_item_add(Evas_Object *obj, Elm_Menu_Item *parent, const char *icon, const char *label, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
    EAPI void               elm_menu_item_label_set(Elm_Menu_Item *item, const char *label) EINA_ARG_NONNULL(1);
    EAPI const char        *elm_menu_item_label_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
    EAPI void               elm_menu_item_icon_set(Elm_Menu_Item *item, const char *icon) EINA_ARG_NONNULL(1, 2);
    EAPI const char        *elm_menu_item_icon_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
    EAPI const Evas_Object *elm_menu_item_object_icon_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
+   EAPI void               elm_menu_item_selected_set(Elm_Menu_Item *item, Eina_Bool selected) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool          elm_menu_item_selected_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
    EAPI void               elm_menu_item_disabled_set(Elm_Menu_Item *item, Eina_Bool disabled) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool          elm_menu_item_disabled_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
    EAPI Elm_Menu_Item     *elm_menu_item_separator_add(Evas_Object *obj, Elm_Menu_Item *parent) EINA_ARG_NONNULL(1);
@@ -1548,6 +1734,12 @@ extern "C" {
    EAPI void              *elm_menu_item_data_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1);
    EAPI void               elm_menu_item_data_set(Elm_Menu_Item *item, const void *data) EINA_ARG_NONNULL(1);
    EAPI const Eina_List   *elm_menu_item_subitems_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
+   EAPI const Elm_Menu_Item *elm_menu_selected_item_get(const Evas_Object * obj) EINA_ARG_NONNULL(1);
+   EAPI const Elm_Menu_Item *elm_menu_last_item_get(const Evas_Object * obj) EINA_ARG_NONNULL(1);
+   EAPI const Elm_Menu_Item *elm_menu_first_item_get(const Evas_Object * obj) EINA_ARG_NONNULL(1);
+   EAPI const Elm_Menu_Item *elm_menu_item_next_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1);
+   EAPI const Elm_Menu_Item *elm_menu_item_prev_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1);
+
    /* smart callbacks called:
     * "clicked" - the user clicked the empty space in the menu to dismiss. event_info is NULL.
     */
@@ -1577,7 +1769,7 @@ extern "C" {
    EAPI void             elm_list_horizontal_set(Evas_Object *obj, Eina_Bool horizontal) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool        elm_list_horizontal_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void             elm_list_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select) EINA_ARG_NONNULL(1);
-   EAPI Eina_Bool       elm_list_always_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool        elm_list_always_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI const Eina_List *elm_list_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI Elm_List_Item   *elm_list_selected_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI const Eina_List *elm_list_selected_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
@@ -1618,7 +1810,7 @@ extern "C" {
    EAPI void             elm_list_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v) EINA_ARG_NONNULL(1);
    EAPI void             elm_list_scroller_policy_get(const Evas_Object *obj, Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v) EINA_ARG_NONNULL(1);
    /* smart callbacks called:
-    * "clicked" - when the user double-clicked an item
+    * "clicked,double" - when the user double-clicked an item
     * "selected" - when the user selected an item
     * "unselected" - when the user selected an item
     * "longpressed" - an item in the hoversel list is long-pressed
@@ -1655,6 +1847,15 @@ extern "C" {
    EAPI Eina_Bool          elm_slider_inverted_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void               elm_slider_indicator_show_set(Evas_Object *obj, Eina_Bool show) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool          elm_slider_indicator_show_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /* smart callbacks called:
+    * "changed" - Whenever the slider value is changed by the user.
+    * "slider,drag,start" - dragging the slider indicator around has started
+    * "slider,drag,stop" - dragging the slider indicator around has stopped
+    * "delay,changed" - A short time after the value is changed by the user.
+    *                   This will be called only when the user stops dragging for a very short
+    *                   period or when they release their finger/mouse, so it avoids possibly
+    *                   expensive reactions to the value change.
+    */
 
    /* actionslider */
    typedef enum _Elm_Actionslider_Pos
@@ -1699,16 +1900,20 @@ extern "C" {
    typedef Evas_Object *(*GenlistItemIconGetFunc)  (void *data, Evas_Object *obj, const char *part);
    typedef Eina_Bool    (*GenlistItemStateGetFunc) (void *data, Evas_Object *obj, const char *part);
    typedef void         (*GenlistItemDelFunc)      (void *data, Evas_Object *obj);
+   typedef void         (*GenlistItemMovedFunc)    (Evas_Object *obj, Elm_Genlist_Item *item, Elm_Genlist_Item *rel_item, Eina_Bool move_after);
 
    struct _Elm_Genlist_Item_Class
      {
-       const char                *item_style;
-       struct {
-          GenlistItemLabelGetFunc  label_get;
-          GenlistItemIconGetFunc   icon_get;
-          GenlistItemStateGetFunc  state_get;
-          GenlistItemDelFunc       del;
-        } func;
+        const char                *item_style;
+        struct
+          {
+             GenlistItemLabelGetFunc  label_get;
+             GenlistItemIconGetFunc   icon_get;
+             GenlistItemStateGetFunc  state_get;
+             GenlistItemDelFunc       del;
+             GenlistItemMovedFunc     moved;
+          } func;
+        const char                *mode_item_style;
      };
 
    EAPI Evas_Object      *elm_genlist_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
@@ -1738,6 +1943,7 @@ extern "C" {
    EAPI Elm_Genlist_Item *elm_genlist_item_prepend(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Genlist_Item *parent, Elm_Genlist_Item_Flags flags, Evas_Smart_Cb func, const void *func_data) EINA_ARG_NONNULL(1);
    EAPI Elm_Genlist_Item *elm_genlist_item_insert_before(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Genlist_Item *parent, Elm_Genlist_Item *before, Elm_Genlist_Item_Flags flags, Evas_Smart_Cb func, const void *func_data) EINA_ARG_NONNULL(1, 5);
    EAPI Elm_Genlist_Item *elm_genlist_item_insert_after(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Genlist_Item *parent, Elm_Genlist_Item *after, Elm_Genlist_Item_Flags flags, Evas_Smart_Cb func, const void *func_data) EINA_ARG_NONNULL(1, 5);
+EAPI Elm_Genlist_Item *elm_genlist_item_sorted_insert(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Genlist_Item *parent, Elm_Genlist_Item_Flags flags, Eina_Compare_Cb comp, Evas_Smart_Cb func,const void *func_data);
    /* operations to retrieve existing items */
    EAPI Elm_Genlist_Item *elm_genlist_selected_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI const Eina_List  *elm_genlist_selected_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
@@ -1793,6 +1999,88 @@ extern "C" {
    EAPI const char        *elm_genlist_item_cursor_style_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
    EAPI void               elm_genlist_item_cursor_engine_only_set(Elm_Genlist_Item *item, Eina_Bool engine_only) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool          elm_genlist_item_cursor_engine_only_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
+   EAPI void               elm_genlist_realized_items_update(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void               elm_genlist_item_mode_set(Elm_Genlist_Item *it, const char *mode_type, Eina_Bool mode_set) EINA_ARG_NONNULL(1, 2);
+   EAPI const char        *elm_genlist_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI const Elm_Genlist_Item *elm_genlist_mode_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void               elm_genlist_reorder_mode_set(Evas_Object *obj, Eina_Bool reorder_mode) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool          elm_genlist_reorder_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /** Signals that you can add callbacks for are:
+    * "clicked,double" - This is called when a user has double-clicked an item.
+    *                    The event_info parameter is the genlist item that was
+    *                    double-clicked.
+    * "selected" - This is called when a user has made an item selected. The
+    *              event_info parameter is the genlist item that was selected.
+    * "unselected" - This is called when a user has made an item unselected. The
+    *                 event_info parameter is the genlist item that was
+    *                 unselected.
+    * "expanded" - This is called when elm_genlist_item_expanded_set() is called
+    *              and the item is now meant to be expanded. The event_info
+    *              parameter is the genlist item that was indicated to expand.
+    *              It is the job of this callback to then fill in the child
+    *              items.
+    * "contracted" - This is called when elm_genlist_item_expanded_set() is
+    *                called and the item is now meant to be contracted. The
+    *                event_info parameter is the genlist item that was indicated
+    *                to contract. It is the job of this callback to then delete
+    *                the child items.
+    * "expand,request" - This is called when a user has indicated they want to
+    *                    expand a tree branch item. The callback should decide
+    *                    if the item can expand (has any children) and then call
+    *                    elm_genlist_item_expanded_set() appropriately to set
+    *                    the state. The event_info parameter is the genlist item
+    *                    that was indicated to expand.
+    * "contract,request" - This is called when a user has indicated they want to
+    *                      contract a tree branch item. The callback should
+    *                      decide if the item can contract (has any children)
+    *                      and then call elm_genlist_item_expanded_set()
+    *                      appropriately to set the state. The event_info
+    *                      parameter is the genlist item that was indicated to
+    *                      contract.
+    * "realized" - This is called when the item in the list is created as a real
+    *              evas object. event_info parameter is the genlist item that
+    *              was created. The object may be deleted at any time, so it is
+    *              up to the caller to not use the object pointer from
+    *              elm_genlist_item_object_get() in a way where it may point to
+    *              freed objects.
+    * "unrealized" - This is called just before an item is unrealized. After
+    *                this call icon objects provided will be deleted and the
+    *                item object itself delete or be put into a floating cache.
+    * "drag,start,up" - This is called when the item in the list has been
+    *                   dragged (not scrolled) up.
+    * "drag,start,down" - This is called when the item in the list has been
+    *                     dragged (not scrolled) down.
+    * "drag,start,left" - This is called when the item in the list has been
+    *                     dragged (not scrolled) left.
+    * "drag,start,right" - This is called when the item in the list has been
+    *                      dragged (not scrolled) right.
+    * "drag,stop" - This is called when the item in the list has stopped being
+    *               dragged.
+    * "drag" - This is called when the item in the list is being dragged.
+    * "longpressed" - This is called when the item is pressed for a certain
+    *                 amount of time. By default it's 1 second.
+    * "scroll,edge,top" - This is called when the genlist is scrolled until the
+    *                     top edge.
+    * "scroll,edge,bottom" - This is called when the genlist is scrolled until
+    *                        the bottom edge.
+    * "scroll,edge,left" - This is called when the genlist is scrolled until the
+    *                      left edge.
+    * "scroll,edge,right" - This is called when the genlist is scrolled until
+    *                       the right edge.
+    * "multi,swipe,left" - This is called when the genlist is multi-touch swiped
+    *                       left.
+    * "multi,swipe,right" - This is called when the genlist is multi-touch
+    *                       swiped right.
+    * "multi,swipe,up" - This is called when the genlist is multi-touch swiped
+    *                    up.
+    * "multi,swipe,down" - This is called when the genlist is multi-touch swiped
+    *                      down.
+    * "multi,pinch,out" - This is called when the genlist is multi-touch pinched
+    *                     out.
+    * "multi,pinch,in" - This is called when the genlist is multi-touch pinched
+    *                    in.
+    * "swipe" - This is called when the genlist is swiped.
+    */
 
    /* check */
    EAPI Evas_Object *elm_check_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
@@ -1804,6 +2092,9 @@ extern "C" {
    EAPI void         elm_check_state_set(Evas_Object *obj, Eina_Bool state); EINA_ARG_NONNULL(1)
    EAPI Eina_Bool    elm_check_state_get(const Evas_Object *obj); EINA_ARG_NONNULL(1)
    EAPI void         elm_check_state_pointer_set(Evas_Object *obj, Eina_Bool *statep); EINA_ARG_NONNULL(1)
+   /* smart callbacks called:
+    * "changed" - This is called whenever the user changes the state of one of the check object.
+    */
 
    /* radio */
    EAPI Evas_Object *elm_radio_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
@@ -1818,6 +2109,9 @@ extern "C" {
    EAPI void         elm_radio_value_set(Evas_Object *obj, int value) EINA_ARG_NONNULL(1);
    EAPI int          elm_radio_value_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_radio_value_pointer_set(Evas_Object *obj, int *valuep) EINA_ARG_NONNULL(1);
+   /* smart callbacks called:
+    * "changed" - when the radio status is changed
+    */
 
    /* pager */
    EAPI Evas_Object *elm_pager_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
@@ -1832,6 +2126,9 @@ extern "C" {
     * fade_translucide
     * fade_invisible
     */
+   /* smart callbacks called:
+    * "hide,finished" - when the previous page is hided
+    */
 
    typedef struct _Elm_Slideshow_Item_Class Elm_Slideshow_Item_Class;
    typedef struct _Elm_Slideshow_Item_Class_Func Elm_Slideshow_Item_Class_Func;
@@ -1841,14 +2138,16 @@ extern "C" {
 
    struct _Elm_Slideshow_Item_Class
      {
-       struct _Elm_Slideshow_Item_Class_Func {
-          SlideshowItemGetFunc get;
-          SlideshowItemDelFunc del;
-       } func;
+        struct _Elm_Slideshow_Item_Class_Func
+          {
+             SlideshowItemGetFunc get;
+             SlideshowItemDelFunc del;
+          } func;
      };
 
    EAPI Evas_Object        *elm_slideshow_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
    EAPI Elm_Slideshow_Item *elm_slideshow_item_add(Evas_Object *obj, const Elm_Slideshow_Item_Class *itc, const void *data) EINA_ARG_NONNULL(1);
+   EAPI Elm_Slideshow_Item *elm_slideshow_item_sorted_insert(Evas_Object *obj, const Elm_Slideshow_Item_Class *itc, const void *data, Eina_Compare_Cb func) EINA_ARG_NONNULL(1);
    EAPI void                elm_slideshow_show(Elm_Slideshow_Item *item) EINA_ARG_NONNULL(1);
    EAPI void                elm_slideshow_next(Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void                elm_slideshow_previous(Evas_Object *obj) EINA_ARG_NONNULL(1);
@@ -1865,9 +2164,15 @@ extern "C" {
    EAPI void               *elm_slideshow_item_data_get(const Elm_Slideshow_Item *item) EINA_ARG_NONNULL(1);
    EAPI Elm_Slideshow_Item *elm_slideshow_item_current_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI Evas_Object*        elm_slideshow_item_object_get(const Elm_Slideshow_Item* item) EINA_ARG_NONNULL(1);
+   EAPI Elm_Slideshow_Item *elm_slideshow_item_nth_get(const Evas_Object *obj, unsigned int nth) EINA_ARG_NONNULL(1);
    EAPI const char         *elm_slideshow_layout_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void                elm_slideshow_layout_set(Evas_Object *obj, const char *layout) EINA_ARG_NONNULL(1);
    EAPI const Eina_List    *elm_slideshow_layouts_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void                elm_slideshow_cache_before_set(Evas_Object *obj, int count) EINA_ARG_NONNULL(1);
+   EAPI int                 elm_slideshow_cache_before_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void                elm_slideshow_cache_after_set(Evas_Object *obj, int count) EINA_ARG_NONNULL(1);
+   EAPI int                 elm_slideshow_cache_after_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI unsigned int        elm_slideshow_count_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /* smart callbacks called:
     * "changed" - when the slideshow switch to another item
     */
@@ -1966,6 +2271,7 @@ extern "C" {
 
    EAPI Evas_Object    *elm_index_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
    EAPI void            elm_index_active_set(Evas_Object *obj, Eina_Bool active) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool       elm_index_active_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void            elm_index_item_level_set(Evas_Object *obj, int level) EINA_ARG_NONNULL(1);
    EAPI int             elm_index_item_level_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void           *elm_index_item_selected_get(const Evas_Object *obj, int level) EINA_ARG_NONNULL(1);
@@ -2022,8 +2328,8 @@ extern "C" {
     * "clicked,double" - when mouse/finger double-clicked
     * "load" - when photo load begins
     * "loaded" - when photo load done
-    * "load,details" - when detailed image load begins
-    * "loaded,details" - when detailed image load done
+    * "load,detail" - when detailed image load begins
+    * "loaded,detail" - when detailed image load done
     * "zoom,start" - when zooming started
     * "zoom,stop" - when zooming stopped
     * "zoom,change" - when auto zoom mode changed zoom level
@@ -2043,34 +2349,67 @@ extern "C" {
         ELM_MAP_ZOOM_MODE_LAST
      } Elm_Map_Zoom_Mode;
 
-   typedef enum _Elm_Map_Sources
+   typedef enum _Elm_Map_Route_Sources
+     {
+        ELM_MAP_ROUTE_SOURCE_YOURS,
+        ELM_MAP_ROUTE_SOURCE_MONAV,
+        ELM_MAP_ROUTE_SOURCE_ORS,
+        ELM_MAP_ROUTE_SOURCE_LAST
+     } Elm_Map_Route_Sources;
+
+   typedef enum _Elm_Map_Name_Sources
      {
-        ELM_MAP_SOURCE_MAPNIK,
-        ELM_MAP_SOURCE_OSMARENDER,
-        ELM_MAP_SOURCE_CYCLEMAP,
-        ELM_MAP_SOURCE_MAPLINT,
-        ELM_MAP_SOURCE_CUSTOM_1,
-        ELM_MAP_SOURCE_CUSTOM_2,
-        ELM_MAP_SOURCE_CUSTOM_3,
-        ELM_MAP_SOURCE_CUSTOM_4,
-        ELM_MAP_SOURCE_CUSTOM_5,
-        ELM_MAP_SOURCE_CUSTOM_6,
-        ELM_MAP_SOURCE_MODULE,
-        ELM_MAP_SOURCE_LAST
-     } Elm_Map_Sources;
-
-   typedef struct _Elm_Map_Marker       Elm_Map_Marker;
-   typedef struct _Elm_Map_Marker_Class Elm_Map_Marker_Class;
-   typedef struct _Elm_Map_Group_Class  Elm_Map_Group_Class;
+        ELM_MAP_NAME_SOURCE_NOMINATIM,
+        ELM_MAP_NAME_SOURCE_LAST
+     } Elm_Map_Name_Sources;
+
+   typedef enum _Elm_Map_Route_Type
+     {
+        ELM_MAP_ROUTE_TYPE_MOTOCAR,
+        ELM_MAP_ROUTE_TYPE_BICYCLE,
+        ELM_MAP_ROUTE_TYPE_FOOT,
+        ELM_MAP_ROUTE_TYPE_LAST
+     } Elm_Map_Route_Type;
+
+   typedef enum _Elm_Map_Route_Method
+     {
+        ELM_MAP_ROUTE_METHOD_FASTEST,
+        ELM_MAP_ROUTE_METHOD_SHORTEST,
+        ELM_MAP_ROUTE_METHOD_LAST
+     } Elm_Map_Route_Method;
+
+   typedef enum _Elm_Map_Name_Method
+     {
+        ELM_MAP_NAME_METHOD_SEARCH,
+        ELM_MAP_NAME_METHOD_REVERSE,
+        ELM_MAP_NAME_METHOD_LAST
+     } Elm_Map_Name_Method;
+
+   typedef struct _Elm_Map_Marker          Elm_Map_Marker;
+   typedef struct _Elm_Map_Marker_Class    Elm_Map_Marker_Class;
+   typedef struct _Elm_Map_Group_Class     Elm_Map_Group_Class;
+   typedef struct _Elm_Map_Route           Elm_Map_Route;
+   typedef struct _Elm_Map_Name            Elm_Map_Name;
+   typedef struct _Elm_Map_Track           Elm_Map_Track;
+
    typedef Evas_Object *(*ElmMapMarkerGetFunc)      (Evas_Object *obj, Elm_Map_Marker *marker, void *data);
    typedef void         (*ElmMapMarkerDelFunc)      (Evas_Object *obj, Elm_Map_Marker *marker, void *data, Evas_Object *o);
    typedef Evas_Object *(*ElmMapMarkerIconGetFunc)  (Evas_Object *obj, Elm_Map_Marker *marker, void *data);
    typedef Evas_Object *(*ElmMapGroupIconGetFunc)   (Evas_Object *obj, void *data);
-   typedef char        *(*ElmMapSourceURLFunc)      (Evas_Object *obj, int x, int y, int zoom);
+
+   typedef char        *(*ElmMapModuleSourceFunc) (void);
+   typedef int          (*ElmMapModuleZoomMinFunc) (void);
+   typedef int          (*ElmMapModuleZoomMaxFunc) (void);
+   typedef char        *(*ElmMapModuleUrlFunc) (Evas_Object *obj, int x, int y, int zoom);
+   typedef int          (*ElmMapModuleRouteSourceFunc) (void);
+   typedef char        *(*ElmMapModuleRouteUrlFunc) (Evas_Object *obj, char *type_name, int method, double flon, double flat, double tlon, double tlat);
+   typedef char        *(*ElmMapModuleNameUrlFunc) (Evas_Object *obj, int method, char *name, double lon, double lat);
+   typedef Eina_Bool    (*ElmMapModuleGeoIntoCoordFunc) (const Evas_Object *obj, int zoom, double lon, double lat, int size, int *x, int *y);
+   typedef Eina_Bool    (*ElmMapModuleCoordIntoGeoFunc) (const Evas_Object *obj, int zoom, int x, int y, int size, double *lon, double *lat);
 
    EAPI Evas_Object          *elm_map_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
    EAPI void                  elm_map_zoom_set(Evas_Object *obj, int zoom) EINA_ARG_NONNULL(1);
-   EAPI double                elm_map_zoom_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI int                   elm_map_zoom_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void                  elm_map_zoom_mode_set(Evas_Object *obj, Elm_Map_Zoom_Mode mode) EINA_ARG_NONNULL(1);
    EAPI Elm_Map_Zoom_Mode     elm_map_zoom_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void                  elm_map_geo_region_get(const Evas_Object *obj, double *lon, double *lat) EINA_ARG_NONNULL(1);
@@ -2081,11 +2420,15 @@ extern "C" {
    EAPI void                  elm_map_paused_markers_set(Evas_Object *obj, Eina_Bool paused) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool             elm_map_paused_markers_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void                  elm_map_utils_downloading_status_get(const Evas_Object *obj, int *try_num, int *finish_num) EINA_ARG_NONNULL(1, 2, 3);
-   EAPI void                 elm_map_utils_convert_coord_into_geo(const Evas_Object *obj, int x, int y, int size, double *lon, double *lat);
-   EAPI void                  elm_map_utils_convert_geo_into_coord(const Evas_Object *obj, double lon, double lat, int size, int *x, int *y);
+   EAPI void                  elm_map_utils_convert_coord_into_geo(const Evas_Object *obj, int x, int y, int size, double *lon, double *lat) EINA_ARG_NONNULL(1, 5, 6);
+   EAPI void                  elm_map_utils_convert_geo_into_coord(const Evas_Object *obj, double lon, double lat, int size, int *x, int *y) EINA_ARG_NONNULL(1, 5, 6);
+   EAPI Elm_Map_Name         *elm_map_utils_convert_coord_into_name(const Evas_Object *obj, double lon, double lat) EINA_ARG_NONNULL(1);
+   EAPI Elm_Map_Name         *elm_map_utils_convert_name_into_coord(const Evas_Object *obj, char *address) EINA_ARG_NONNULL(1, 2);
+   EAPI void                  elm_map_utils_rotate_coord(const Evas_Object *obj, const Evas_Coord x, const Evas_Coord y, const Evas_Coord cx, const Evas_Coord cy, const double degree, Evas_Coord *xx, Evas_Coord *yy) EINA_ARG_NONNULL(1);
    EAPI Elm_Map_Marker       *elm_map_marker_add(Evas_Object *obj, double lon, double lat, Elm_Map_Marker_Class *clas, Elm_Map_Group_Class *clas_group, void *data) EINA_ARG_NONNULL(1, 4, 5);
    EAPI void                  elm_map_max_marker_per_group_set(Evas_Object *obj, int max) EINA_ARG_NONNULL(1);
    EAPI void                  elm_map_marker_remove(Elm_Map_Marker *marker) EINA_ARG_NONNULL(1);
+   EAPI void                  elm_map_marker_region_get(const Elm_Map_Marker *marker, double *lon, double *lat) EINA_ARG_NONNULL(1);
    EAPI void                  elm_map_marker_bring_in(Elm_Map_Marker *marker) EINA_ARG_NONNULL(1);
    EAPI void                  elm_map_marker_show(Elm_Map_Marker *marker) EINA_ARG_NONNULL(1);
    EAPI void                  elm_map_markers_list_show(Eina_List *markers) EINA_ARG_NONNULL(1);
@@ -2104,12 +2447,36 @@ extern "C" {
    EAPI void                  elm_map_marker_class_icon_cb_set(Elm_Map_Marker_Class *clas, ElmMapMarkerIconGetFunc icon_get) EINA_ARG_NONNULL(1);
    EAPI void                  elm_map_marker_class_get_cb_set(Elm_Map_Marker_Class *clas, ElmMapMarkerGetFunc get) EINA_ARG_NONNULL(1);
    EAPI void                  elm_map_marker_class_del_cb_set(Elm_Map_Marker_Class *clas, ElmMapMarkerDelFunc del) EINA_ARG_NONNULL(1);
-   EAPI void                  elm_map_source_set(Evas_Object *obj, Elm_Map_Sources source) EINA_ARG_NONNULL(1);
-   EAPI Elm_Map_Sources       elm_map_source_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI void                  elm_map_source_custom_api_set(Elm_Map_Sources source, const char *label, int zoom_min, int zoom_max, ElmMapSourceURLFunc url_cb) EINA_ARG_NONNULL(2, 5);
-   EAPI int                   elm_map_source_zoom_min_get(Elm_Map_Sources source);
-   EAPI int                   elm_map_source_zoom_max_get(Elm_Map_Sources source);
-   EAPI const char           *elm_map_source_name_get(Elm_Map_Sources source);
+   EAPI const char          **elm_map_source_names_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void                  elm_map_source_name_set(Evas_Object *obj, const char *source_name) EINA_ARG_NONNULL(1);
+   EAPI const char           *elm_map_source_name_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void                  elm_map_route_source_set(Evas_Object *obj, Elm_Map_Route_Sources source) EINA_ARG_NONNULL(1);
+   EAPI Elm_Map_Route_Sources elm_map_route_source_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void                  elm_map_source_zoom_min_set(Evas_Object *obj, int zoom) EINA_ARG_NONNULL(1);
+   EAPI int                   elm_map_source_zoom_min_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void                  elm_map_source_zoom_max_set(Evas_Object *obj, int zoom) EINA_ARG_NONNULL(1);
+   EAPI int                   elm_map_source_zoom_max_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void                  elm_map_user_agent_set(Evas_Object *obj, const char *user_agent) EINA_ARG_NONNULL(1, 2);
+   EAPI const char           *elm_map_user_agent_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI Elm_Map_Route        *elm_map_route_add(Evas_Object *obj, Elm_Map_Route_Type type, Elm_Map_Route_Method method, double flon, double flat, double tlon, double tlat) EINA_ARG_NONNULL(1);
+   EAPI void                  elm_map_route_remove(Elm_Map_Route *route) EINA_ARG_NONNULL(1);
+   EAPI void                  elm_map_route_color_set(Elm_Map_Route *route, int r, int g , int b, int a) EINA_ARG_NONNULL(1);
+   EAPI void                  elm_map_route_color_get(const Elm_Map_Route *route, int *r, int *g , int *b, int *a) EINA_ARG_NONNULL(1);
+   EAPI double                elm_map_route_distance_get(const Elm_Map_Route *route) EINA_ARG_NONNULL(1);
+   EAPI const char           *elm_map_route_node_get(const Elm_Map_Route *route) EINA_ARG_NONNULL(1);
+   EAPI const char           *elm_map_route_waypoint_get(const Elm_Map_Route *route) EINA_ARG_NONNULL(1);
+   EAPI const char           *elm_map_name_address_get(const Elm_Map_Name *name) EINA_ARG_NONNULL(1);
+   EAPI void                  elm_map_name_region_get(const Elm_Map_Name *name, double *lon, double *lat) EINA_ARG_NONNULL(1);
+   EAPI void                  elm_map_name_remove(Elm_Map_Name *name) EINA_ARG_NONNULL(1);
+   EAPI void                  elm_map_rotate_set(Evas_Object *obj, double degree, Evas_Coord cx, Evas_Coord cy) EINA_ARG_NONNULL(1);
+   EAPI void                  elm_map_rotate_get(const Evas_Object *obj, double *degree, Evas_Coord *cx, Evas_Coord *cy) EINA_ARG_NONNULL(1, 2, 3, 4);
+   EAPI void                  elm_map_wheel_disabled_set(Evas_Object *obj, Eina_Bool disabled) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool             elm_map_wheel_disabled_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI Elm_Map_Track        *elm_map_track_add(Evas_Object *obj, const char *gpx_file) EINA_ARG_NONNULL(1);
+   EAPI void                  elm_map_track_remove(Elm_Map_Track *track) EINA_ARG_NONNULL(1);
+   EAPI void                  elm_map_track_color_set(Elm_Map_Track *track, int r, int g , int b, int a) EINA_ARG_NONNULL(1);
+   EAPI void                  elm_map_track_color_get(const Elm_Map_Track *track, int *r, int *g , int *b, int *a) EINA_ARG_NONNULL(1);
+
    /* smart callbacks called:
     * "clicked" - when image clicked
     * "press" - when mouse/finger held down initially on image
@@ -2175,8 +2542,26 @@ extern "C" {
         ELM_FLIP_CUBE_LEFT,
         ELM_FLIP_CUBE_RIGHT,
         ELM_FLIP_CUBE_UP,
-        ELM_FLIP_CUBE_DOWN
+        ELM_FLIP_CUBE_DOWN,
+        ELM_FLIP_PAGE_LEFT,
+        ELM_FLIP_PAGE_RIGHT,
+        ELM_FLIP_PAGE_UP,
+        ELM_FLIP_PAGE_DOWN
      } Elm_Flip_Mode;
+   typedef enum _Elm_Flip_Interaction
+     {
+        ELM_FLIP_INTERACTION_NONE,
+        ELM_FLIP_INTERACTION_ROTATE,
+        ELM_FLIP_INTERACTION_CUBE,
+        ELM_FLIP_INTERACTION_PAGE
+     } Elm_Flip_Interaction;
+   typedef enum _Elm_Flip_Direction
+     {
+        ELM_FLIP_DIRECTION_UP,
+        ELM_FLIP_DIRECTION_DOWN,
+        ELM_FLIP_DIRECTION_LEFT,
+        ELM_FLIP_DIRECTION_RIGHT
+     } Elm_Flip_Direction;
 
    EAPI Evas_Object *elm_flip_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
    EAPI void         elm_flip_content_front_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
@@ -2188,7 +2573,14 @@ extern "C" {
    EAPI Eina_Bool    elm_flip_front_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_flip_perspective_set(Evas_Object *obj, Evas_Coord foc, Evas_Coord x, Evas_Coord y) EINA_ARG_NONNULL(1);
    EAPI void         elm_flip_go(Evas_Object *obj, Elm_Flip_Mode mode) EINA_ARG_NONNULL(1);
+   EAPI void         elm_flip_interaction_set(Evas_Object *obj, Elm_Flip_Interaction mode);
+   EAPI Elm_Flip_Interaction elm_flip_interaction_get(const Evas_Object *obj);
+   EAPI void         elm_flip_interacton_direction_enabled_set(Evas_Object *obj, Elm_Flip_Direction dir, Eina_Bool enabled);
+   EAPI Eina_Bool    elm_flip_interacton_direction_enabled_get(Evas_Object *obj, Elm_Flip_Direction dir);
+   EAPI void         elm_flip_interacton_direction_hitsize_set(Evas_Object *obj, Elm_Flip_Direction dir, double hitsize);
+   EAPI double       elm_flip_interacton_direction_hitsize_get(Evas_Object *obj, Elm_Flip_Direction dir);
    /* smart callbacks called:
+    * "animate,begin" - when a flip animation was started
     * "animate,done" - when a flip animation is finished
     */
 
@@ -2203,8 +2595,7 @@ extern "C" {
    EAPI Eina_Bool    elm_scrolled_entry_is_empty(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI const char  *elm_scrolled_entry_selection_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_scrolled_entry_entry_insert(Evas_Object *obj, const char *entry) EINA_ARG_NONNULL(1);
-   EAPI void         elm_scrolled_entry_line_wrap_set(Evas_Object *obj, Eina_Bool wrap) EINA_ARG_NONNULL(1);
-   EAPI void         elm_scrolled_entry_line_char_wrap_set(Evas_Object *obj, Eina_Bool wrap) EINA_ARG_NONNULL(1);
+   EAPI void         elm_scrolled_entry_line_wrap_set(Evas_Object *obj, Elm_Wrap_Type wrap) EINA_ARG_NONNULL(1);
    EAPI void         elm_scrolled_entry_editable_set(Evas_Object *obj, Eina_Bool editable) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool    elm_scrolled_entry_editable_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_scrolled_entry_select_none(Evas_Object *obj) EINA_ARG_NONNULL(1);
@@ -2222,6 +2613,8 @@ extern "C" {
    EAPI Eina_Bool    elm_scrolled_entry_cursor_is_format_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool    elm_scrolled_entry_cursor_is_visible_format_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI const char  *elm_scrolled_entry_cursor_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void         elm_scrolled_entry_cursor_pos_set(Evas_Object *obj, int pos) EINA_ARG_NONNULL(1);
+   EAPI int          elm_scrolled_entry_cursor_pos_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_scrolled_entry_selection_cut(Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_scrolled_entry_selection_copy(Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_scrolled_entry_selection_paste(Evas_Object *obj) EINA_ARG_NONNULL(1);
@@ -2251,12 +2644,15 @@ extern "C" {
    EAPI void         elm_scrolled_entry_file_save(Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_scrolled_entry_autosave_set(Evas_Object *obj, Eina_Bool autosave) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool    elm_scrolled_entry_autosave_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void         elm_scrolled_entry_cnp_textonly_set(Evas_Object *obj, Eina_Bool textonly) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool    elm_scrolled_entry_cnp_textonly_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /* conformant */
    EAPI Evas_Object *elm_conformant_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
    EAPI void         elm_conformant_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
    EAPI Evas_Object *elm_conformant_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI Evas_Object *elm_conformant_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI Evas_Object *elm_conformant_content_area_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /* mapbuf */
    EAPI Evas_Object *elm_mapbuf_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
@@ -2372,7 +2768,6 @@ extern "C" {
    EINA_DEPRECATED EAPI void               elm_calendar_text_saturday_color_set(Evas_Object *obj, int pos) EINA_ARG_NONNULL(1);
    EINA_DEPRECATED EAPI void               elm_calendar_text_sunday_color_set(Evas_Object *obj, int pos) EINA_ARG_NONNULL(1);
    EINA_DEPRECATED EAPI void               elm_calendar_text_weekday_color_set(Evas_Object *obj, int pos) EINA_ARG_NONNULL(1);
-
    /* smart callbacks called:
     * changed - emitted when the user select a day or change the displayed
     * month.
@@ -2393,7 +2788,7 @@ extern "C" {
    EAPI void                   elm_diskselector_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI const Eina_List       *elm_diskselector_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI Elm_Diskselector_Item *elm_diskselector_item_append(Evas_Object *obj, const char *label, Evas_Object *icon, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
-   EAPI void                  elm_diskselector_item_del(Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
+   EAPI void                   elm_diskselector_item_del(Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
    EAPI void                   elm_diskselector_item_del_cb_set(Elm_Diskselector_Item *item, Evas_Smart_Cb func) EINA_ARG_NONNULL(1);
    EAPI void                  *elm_diskselector_item_data_get(const Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
    EAPI Evas_Object           *elm_diskselector_item_icon_get(const Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
@@ -2419,6 +2814,7 @@ extern "C" {
    EAPI const char            *elm_diskselector_item_cursor_style_get(const Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
    EAPI void                   elm_diskselector_item_cursor_engine_only_set(Elm_Diskselector_Item *item, Eina_Bool engine_only) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool              elm_diskselector_item_cursor_engine_only_get(const Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
+   EAPI void                   elm_diskselector_display_item_num_set(Evas_Object *obj, int num) EINA_ARG_NONNULL(1);
    /* smart callbacks called:
     * "selected" - when item is selected (scroller stops)
     */
@@ -2443,11 +2839,11 @@ extern "C" {
      } Elm_Ctxpopup_Direction;
 
    EAPI Evas_Object  *elm_ctxpopup_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
-   EAPI Evas_Object  *elm_ctxpopup_item_icon_get(const Elm_Ctxpopup_Item *item) EINA_ARG_NONNULL(1); 
+   EAPI Evas_Object  *elm_ctxpopup_item_icon_get(const Elm_Ctxpopup_Item *item) EINA_ARG_NONNULL(1);
    EAPI void          elm_ctxpopup_item_icon_set(Elm_Ctxpopup_Item *item, Evas_Object *icon) EINA_ARG_NONNULL(1);
-   EAPI const char   *elm_ctxpopup_item_label_get(const Elm_Ctxpopup_Item *item) EINA_ARG_NONNULL(1);  
+   EAPI const char   *elm_ctxpopup_item_label_get(const Elm_Ctxpopup_Item *item) EINA_ARG_NONNULL(1);
    EAPI void          elm_ctxpopup_item_label_set(Elm_Ctxpopup_Item *item, const char *label) EINA_ARG_NONNULL(1);
-   EAPI void          elm_ctxpopup_hover_parent_set(Evas_Object *obj, Evas_Object *parent) EINA_ARG_NONNULL(1, 2); 
+   EAPI void          elm_ctxpopup_hover_parent_set(Evas_Object *obj, Evas_Object *parent) EINA_ARG_NONNULL(1, 2);
    EAPI Evas_Object  *elm_ctxpopup_hover_parent_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void          elm_ctxpopup_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void          elm_ctxpopup_horizontal_set(Evas_Object *obj, Eina_Bool horizontal) EINA_ARG_NONNULL(1);
@@ -2456,10 +2852,10 @@ extern "C" {
    EAPI void          elm_ctxpopup_item_del(Elm_Ctxpopup_Item *item) EINA_ARG_NONNULL(1);
    EAPI void          elm_ctxpopup_item_disabled_set(Elm_Ctxpopup_Item *item, Eina_Bool disabled) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool     elm_ctxpopup_item_disabled_get(const Elm_Ctxpopup_Item *item) EINA_ARG_NONNULL(1);
-   EAPI void         elm_ctxpopup_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1, 2);
+   EAPI void          elm_ctxpopup_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1, 2);
    EAPI Evas_Object  *elm_ctxpopup_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI void         elm_ctxpopup_direction_priority_set(Evas_Object *obj, Elm_Ctxpopup_Direction first, Elm_Ctxpopup_Direction second, Elm_Ctxpopup_Direction third, Elm_Ctxpopup_Direction fourth) EINA_ARG_NONNULL(1);
-   EAPI void         elm_ctxpopup_direction_priority_get(Evas_Object *obj, Elm_Ctxpopup_Direction *first, Elm_Ctxpopup_Direction *second, Elm_Ctxpopup_Direction *third, Elm_Ctxpopup_Direction *fourth) EINA_ARG_NONNULL(1);
+   EAPI void          elm_ctxpopup_direction_priority_set(Evas_Object *obj, Elm_Ctxpopup_Direction first, Elm_Ctxpopup_Direction second, Elm_Ctxpopup_Direction third, Elm_Ctxpopup_Direction fourth) EINA_ARG_NONNULL(1);
+   EAPI void          elm_ctxpopup_direction_priority_get(Evas_Object *obj, Elm_Ctxpopup_Direction *first, Elm_Ctxpopup_Direction *second, Elm_Ctxpopup_Direction *third, Elm_Ctxpopup_Direction *fourth) EINA_ARG_NONNULL(1);
    /* smart callbacks called:
     * "dismissed" - the ctxpopup was dismissed
     */
@@ -2491,43 +2887,50 @@ extern "C" {
      } Elm_Transit_Effect_Wipe_Type;
 
    typedef struct _Elm_Transit Elm_Transit;
-
-   EAPI Elm_Transit           *elm_transit_add(void);
-   EAPI void                   elm_transit_del(Elm_Transit *transit) EINA_ARG_NONNULL(1);
-   EAPI void                   elm_transit_effect_add(Elm_Transit *transit, void (*cb)(void *data, Elm_Transit *transit, double progress), void *data, void (*data_free_cb)(void *data, Elm_Transit *transit)) EINA_ARG_NONNULL(1, 2);
-   EAPI void                   elm_transit_effect_del(Elm_Transit *transit, void (*cb)(void *data, Elm_Transit *transit, double progress), void *data) EINA_ARG_NONNULL(1, 2);
-   EAPI void                   elm_transit_object_add(Elm_Transit *transit, Evas_Object *obj) EINA_ARG_NONNULL(1, 2);
-   EAPI void                   elm_transit_object_remove(Elm_Transit *transit, Evas_Object *obj) EINA_ARG_NONNULL(1, 2);
-   EAPI const Eina_List       *elm_transit_objects_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
-   EINA_DEPRECATED EAPI void                   elm_transit_event_block_set(Elm_Transit *transit, Eina_Bool disabled) EINA_ARG_NONNULL(1);
-   EINA_DEPRECATED EAPI Eina_Bool              elm_transit_event_block_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
-   EAPI void                   elm_transit_event_enabled_set(Elm_Transit *transit, Eina_Bool enabled) EINA_ARG_NONNULL(1);
-   EAPI Eina_Bool              elm_transit_event_enabled_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
-   EAPI void                   elm_transit_del_cb_set(Elm_Transit *transit, void (*cb)(void *data, Elm_Transit* transit), void *data) EINA_ARG_NONNULL(1);
-   EAPI void                   elm_transit_auto_reverse_set(Elm_Transit *transit, Eina_Bool reverse) EINA_ARG_NONNULL(1);
-   EAPI Eina_Bool              elm_transit_auto_reverse_get(Elm_Transit *transit) EINA_ARG_NONNULL(1) EINA_ARG_NONNULL(1);
-   EAPI void                   elm_transit_repeat_times_set(Elm_Transit *transit, int repeat) EINA_ARG_NONNULL(1);
-   EAPI int                    elm_transit_repeat_times_get(Elm_Transit *transit) EINA_ARG_NONNULL(1);
-   EAPI void                   elm_transit_tween_mode_set(Elm_Transit *transit, Elm_Transit_Tween_Mode tween_mode) EINA_ARG_NONNULL(1);
-   EAPI Elm_Transit_Tween_Mode elm_transit_tween_mode_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1) EINA_ARG_NONNULL(1);
-   EAPI void                   elm_transit_duration_set(Elm_Transit *transit, double duration) EINA_ARG_NONNULL(1); 
-   EAPI double                 elm_transit_duration_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
-   EAPI void                   elm_transit_go(Elm_Transit *transit) EINA_ARG_NONNULL(1);
-   EAPI void                   elm_transit_paused_set(Elm_Transit *transit, Eina_Bool paused) EINA_ARG_NONNULL(1);
-   EAPI Eina_Bool              elm_transit_paused_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
-   EAPI double                 elm_transit_progress_value_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
-
-   EAPI void                  *elm_transit_effect_resizing_add(Elm_Transit* transit, Evas_Coord from_w, Evas_Coord from_h, Evas_Coord to_w, Evas_Coord to_h);
-   EAPI void                  *elm_transit_effect_translation_add(Elm_Transit* transit, Evas_Coord from_dx, Evas_Coord dy, Evas_Coord to_dx, Evas_Coord to_dy);
-   EAPI void                  *elm_transit_effect_zoom_add(Elm_Transit *transit, float from_rate, float to_rate);
-   EAPI void                  *elm_transit_effect_flip_add(Elm_Transit *transit, Elm_Transit_Effect_Flip_Axis axis, Eina_Bool cw);
-   EAPI void                  *elm_transit_effect_resizable_flip_add(Elm_Transit *transit, Elm_Transit_Effect_Flip_Axis axis, Eina_Bool cw);
-   EAPI void                  *elm_transit_effect_wipe_add(Elm_Transit *transit, Elm_Transit_Effect_Wipe_Type type, Elm_Transit_Effect_Wipe_Dir dir);
-   EAPI void                  *elm_transit_effect_color_add(Elm_Transit *transit, unsigned int from_r, unsigned int from_g, unsigned int from_b, unsigned int from_a, unsigned int to_r, unsigned int to_g, unsigned int to_b, unsigned int to_a);
-   EAPI void                  *elm_transit_effect_fade_add(Elm_Transit *transit);
-   EAPI void                  *elm_transit_effect_blend_add(Elm_Transit *transit);
-   EAPI void                  *elm_transit_effect_rotation_add(Elm_Transit *transit, float from_degree, float to_degree);
-   EAPI void                  *elm_transit_effect_image_animation_add(Elm_Transit *transit, Eina_List *images);       
+   typedef void Elm_Transit_Effect;
+   typedef void (*Elm_Transit_Effect_Transition_Cb) (Elm_Transit_Effect *effect, Elm_Transit *transit, double progress);
+   typedef void (*Elm_Transit_Effect_End_Cb) (Elm_Transit_Effect *effect, Elm_Transit *transit);
+
+   EAPI Elm_Transit                *elm_transit_add(void);
+   EAPI void                        elm_transit_del(Elm_Transit *transit) EINA_ARG_NONNULL(1);
+   EAPI void                        elm_transit_effect_add(Elm_Transit *transit, Elm_Transit_Effect_Transition_Cb transition_cb, Elm_Transit_Effect *effect, Elm_Transit_Effect_End_Cb end_cb) EINA_ARG_NONNULL(1, 2);
+   EAPI void                        elm_transit_effect_del(Elm_Transit *transit, Elm_Transit_Effect_Transition_Cb transition_cb, Elm_Transit_Effect *effect) EINA_ARG_NONNULL(1, 2);
+   EAPI void                        elm_transit_object_add(Elm_Transit *transit, Evas_Object *obj) EINA_ARG_NONNULL(1, 2);
+   EAPI void                        elm_transit_object_remove(Elm_Transit *transit, Evas_Object *obj) EINA_ARG_NONNULL(1, 2);
+   EAPI const Eina_List            *elm_transit_objects_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
+   EAPI void                        elm_transit_objects_final_state_keep_set(Elm_Transit *transit, Eina_Bool state_keep) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool                   elm_transit_objects_final_state_keep_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void                elm_transit_event_block_set(Elm_Transit *transit, Eina_Bool disabled) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Eina_Bool           elm_transit_event_block_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
+   EAPI void                        elm_transit_event_enabled_set(Elm_Transit *transit, Eina_Bool enabled) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool                   elm_transit_event_enabled_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
+   EAPI void                        elm_transit_del_cb_set(Elm_Transit *transit, void (*cb)(void *data, Elm_Transit* transit), void *data) EINA_ARG_NONNULL(1);
+   EAPI void                        elm_transit_auto_reverse_set(Elm_Transit *transit, Eina_Bool reverse) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool                   elm_transit_auto_reverse_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
+   EAPI void                        elm_transit_repeat_times_set(Elm_Transit *transit, int repeat) EINA_ARG_NONNULL(1);
+   EAPI int                         elm_transit_repeat_times_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
+   EAPI void                        elm_transit_tween_mode_set(Elm_Transit *transit, Elm_Transit_Tween_Mode tween_mode) EINA_ARG_NONNULL(1);
+   EAPI Elm_Transit_Tween_Mode      elm_transit_tween_mode_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
+   EAPI void                        elm_transit_duration_set(Elm_Transit *transit, double duration) EINA_ARG_NONNULL(1);
+   EAPI double                      elm_transit_duration_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
+   EAPI void                        elm_transit_go(Elm_Transit *transit) EINA_ARG_NONNULL(1);
+   EAPI void                        elm_transit_paused_set(Elm_Transit *transit, Eina_Bool paused) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool                   elm_transit_paused_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
+   EAPI double                      elm_transit_progress_value_get(const Elm_Transit *transit) EINA_ARG_NONNULL(1);
+   EAPI void                        elm_transit_chain_transit_add(Elm_Transit *transit, Elm_Transit *chain_transit) EINA_ARG_NONNULL(1, 2);
+   EAPI Eina_List                  *elm_transit_chain_transits_get(const Elm_Transit *transit);
+
+   EAPI Elm_Transit_Effect *elm_transit_effect_resizing_add(Elm_Transit* transit, Evas_Coord from_w, Evas_Coord from_h, Evas_Coord to_w, Evas_Coord to_h);
+   EAPI Elm_Transit_Effect *elm_transit_effect_translation_add(Elm_Transit* transit, Evas_Coord from_dx, Evas_Coord dy, Evas_Coord to_dx, Evas_Coord to_dy);
+   EAPI Elm_Transit_Effect *elm_transit_effect_zoom_add(Elm_Transit *transit, float from_rate, float to_rate);
+   EAPI Elm_Transit_Effect *elm_transit_effect_flip_add(Elm_Transit *transit, Elm_Transit_Effect_Flip_Axis axis, Eina_Bool cw);
+   EAPI Elm_Transit_Effect *elm_transit_effect_resizable_flip_add(Elm_Transit *transit, Elm_Transit_Effect_Flip_Axis axis, Eina_Bool cw);
+   EAPI Elm_Transit_Effect *elm_transit_effect_wipe_add(Elm_Transit *transit, Elm_Transit_Effect_Wipe_Type type, Elm_Transit_Effect_Wipe_Dir dir);
+   EAPI Elm_Transit_Effect *elm_transit_effect_color_add(Elm_Transit *transit, unsigned int from_r, unsigned int from_g, unsigned int from_b, unsigned int from_a, unsigned int to_r, unsigned int to_g, unsigned int to_b, unsigned int to_a);
+   EAPI Elm_Transit_Effect *elm_transit_effect_fade_add(Elm_Transit *transit);
+   EAPI Elm_Transit_Effect *elm_transit_effect_blend_add(Elm_Transit *transit);
+   EAPI Elm_Transit_Effect *elm_transit_effect_rotation_add(Elm_Transit *transit, float from_degree, float to_degree);
+   EAPI Elm_Transit_Effect *elm_transit_effect_image_animation_add(Elm_Transit *transit, Eina_List *images);
 
   typedef struct _Elm_Store                      Elm_Store;
   typedef struct _Elm_Store_Filesystem           Elm_Store_Filesystem;
@@ -2548,55 +2951,56 @@ extern "C" {
 
   typedef enum
     {
-      ELM_STORE_ITEM_MAPPING_NONE = 0,
-      ELM_STORE_ITEM_MAPPING_LABEL, // const char * -> label
-      ELM_STORE_ITEM_MAPPING_STATE, // Eina_Bool -> state
-      ELM_STORE_ITEM_MAPPING_ICON, // char * -> icon path
-      ELM_STORE_ITEM_MAPPING_PHOTO, // char * -> photo path
-      ELM_STORE_ITEM_MAPPING_CUSTOM, // item->custom(it->data, it, part) -> void * (-> any)
-      // can add more here as needed by common apps
-      ELM_STORE_ITEM_MAPPING_LAST
+       ELM_STORE_ITEM_MAPPING_NONE = 0,
+       ELM_STORE_ITEM_MAPPING_LABEL, // const char * -> label
+       ELM_STORE_ITEM_MAPPING_STATE, // Eina_Bool -> state
+       ELM_STORE_ITEM_MAPPING_ICON, // char * -> icon path
+       ELM_STORE_ITEM_MAPPING_PHOTO, // char * -> photo path
+       ELM_STORE_ITEM_MAPPING_CUSTOM, // item->custom(it->data, it, part) -> void * (-> any)
+       // can add more here as needed by common apps
+       ELM_STORE_ITEM_MAPPING_LAST
     } Elm_Store_Item_Mapping_Type;
 
   struct _Elm_Store_Item_Mapping_Icon
     {
-      // FIXME: allow edje file icons
-      int                   w, h;
-      Elm_Icon_Lookup_Order lookup_order;
-      Eina_Bool             standard_name : 1;
-      Eina_Bool             no_scale : 1;
-      Eina_Bool             smooth : 1;
-      Eina_Bool             scale_up : 1;
-      Eina_Bool             scale_down : 1;
+       // FIXME: allow edje file icons
+       int                   w, h;
+       Elm_Icon_Lookup_Order lookup_order;
+       Eina_Bool             standard_name : 1;
+       Eina_Bool             no_scale : 1;
+       Eina_Bool             smooth : 1;
+       Eina_Bool             scale_up : 1;
+       Eina_Bool             scale_down : 1;
     };
 
   struct _Elm_Store_Item_Mapping_Empty
     {
-      Eina_Bool             dummy;
+       Eina_Bool             dummy;
     };
 
   struct _Elm_Store_Item_Mapping_Photo
     {
-      int                   size;
+       int                   size;
     };
 
   struct _Elm_Store_Item_Mapping_Custom
     {
-      Elm_Store_Item_Mapping_Cb func;
+       Elm_Store_Item_Mapping_Cb func;
     };
 
   struct _Elm_Store_Item_Mapping
     {
-      Elm_Store_Item_Mapping_Type     type;
-      const char                     *part;
-      int                             offset;
-      union {
-        Elm_Store_Item_Mapping_Empty  empty;
-        Elm_Store_Item_Mapping_Icon   icon;
-        Elm_Store_Item_Mapping_Photo  photo;
-        Elm_Store_Item_Mapping_Custom custom;
-        // add more types here
-      } details;
+       Elm_Store_Item_Mapping_Type     type;
+       const char                     *part;
+       int                             offset;
+       union
+         {
+            Elm_Store_Item_Mapping_Empty  empty;
+            Elm_Store_Item_Mapping_Icon   icon;
+            Elm_Store_Item_Mapping_Photo  photo;
+            Elm_Store_Item_Mapping_Custom custom;
+            // add more types here
+         } details;
     };
 
   struct _Elm_Store_Item_Info
@@ -2640,6 +3044,38 @@ extern "C" {
   EAPI const Elm_Store        *elm_store_item_store_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
   EAPI const Elm_Genlist_Item *elm_store_item_genlist_item_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
 
+   /* SegmentControl */
+   typedef struct _Elm_Segment_Item Elm_Segment_Item;
+   EAPI Evas_Object      *elm_segment_control_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+   EAPI Elm_Segment_Item *elm_segment_control_item_add(Evas_Object *obj, Evas_Object *icon, const char *label) EINA_ARG_NONNULL(1);
+   EAPI Elm_Segment_Item *elm_segment_control_item_insert_at(Evas_Object *obj, Evas_Object *icon, const char *label, int index) EINA_ARG_NONNULL(1);
+   EAPI void              elm_segment_control_item_del(Elm_Segment_Item *it) EINA_ARG_NONNULL(1);
+   EAPI void              elm_segment_control_item_del_at(Evas_Object *obj, int index) EINA_ARG_NONNULL(1);
+   EAPI int               elm_segment_control_item_count_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI Elm_Segment_Item *elm_segment_control_item_get(const Evas_Object *obj, int index) EINA_ARG_NONNULL(1);
+   EAPI const char       *elm_segment_control_item_label_get(const Evas_Object *obj, int index) EINA_ARG_NONNULL(1);
+   EAPI void              elm_segment_control_item_label_set(Elm_Segment_Item* it, const char* label) EINA_ARG_NONNULL(1);
+   EAPI Evas_Object      *elm_segment_control_item_icon_get(const Evas_Object *obj, int index) EINA_ARG_NONNULL(1);
+   EAPI void              elm_segment_control_item_icon_set(Elm_Segment_Item *it, Evas_Object *icon) EINA_ARG_NONNULL(1);
+   EAPI int               elm_segment_control_item_index_get(const Elm_Segment_Item *it) EINA_ARG_NONNULL(1);
+   EAPI Evas_Object      *elm_segment_control_item_object_get(const Elm_Segment_Item *it) EINA_ARG_NONNULL(1);
+   EAPI Elm_Segment_Item *elm_segment_control_item_selected_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void              elm_segment_control_item_selected_set(Elm_Segment_Item *it, Eina_Bool select) EINA_ARG_NONNULL(1);
+   /* smart callbacks called:
+    * "changed" -when the user clicks on a segment item which is not previously
+    *            selected and get selected. The event_info parameter is the
+    *            segment item index.
+    */
+
+   EAPI Evas_Object *elm_grid_add(Evas_Object *parent);
+   EAPI void         elm_grid_size_set(Evas_Object *obj, int w, int h);
+   EAPI void         elm_grid_size_get(Evas_Object *obj, int *w, int *h);
+   EAPI void         elm_grid_pack(Evas_Object *obj, Evas_Object *subobj, int x, int y, int w, int h);
+   EAPI void         elm_grid_unpack(Evas_Object *obj, Evas_Object *subobj);
+   EAPI void         elm_grid_clear(Evas_Object *obj, Eina_Bool clear);
+   EAPI void         elm_grid_pack_set(Evas_Object *subobj, int x, int y, int w, int h);
+   EAPI void         elm_grid_pack_get(Evas_Object *subobj, int *x, int *y, int *w, int *h);
+
 #ifdef __cplusplus
 }
 #endif