Elementary Cursor: Add documentation about hot spots
[framework/uifw/elementary.git] / src / lib / Elementary.h.in
index e2512ea..2da76c9 100644 (file)
@@ -11,7 +11,7 @@
 /**
 @mainpage Elementary
 @image html  elementary.png
-@version 0.7.0
+@version 0.8.0
 @date 2008-2011
 
 @section intro What is Elementary?
@@ -29,8 +29,7 @@ of flexibility.
 One can divide Elemementary into three main groups:
 @li @ref infralist - These are modules that deal with Elementary as a whole.
 @li @ref widgetslist - These are the widgets you'll compose your UI out of.
-@li @ref containerslist - These are the containers in which the widgets will be
-                          layouted.
+@li @ref containerslist - These are the containers which hold the widgets.
 
 @section license License
 
@@ -196,19 +195,11 @@ elm_main(int argc, char **argv)
 {
    Evas_Object *win, *bg, *box, *lab, *btn;
 
-   // new window - do the usual and give it a name, title and delete handler
-   win = elm_win_add(NULL, "hello", ELM_WIN_BASIC);
-   elm_win_title_set(win, "Hello");
+   // new window - do the usual and give it a name (hello) and title (Hello)
+   win = elm_win_util_standard_add("hello", "Hello");
    // when the user clicks "close" on a window there is a request to delete
    evas_object_smart_callback_add(win, "delete,request", on_done, NULL);
 
-   // add a standard bg
-   bg = elm_bg_add(win);
-   // add object as a resize object for the window (controls window minimum
-   // size as well as gets resized if window is resized)
-   elm_win_resize_object_add(win, bg);
-   evas_object_show(bg);
-
    // add a box object - default is vertical. a box holds children in a row,
    // either horizontally or vertically. nothing more.
    box = elm_box_add(win);
@@ -492,6 +483,12 @@ extern "C" {
    EAPI extern int ELM_ECORE_EVENT_ETHUMB_CONNECT;
 
    /**
+    * Emitted when the application has reconfigured elementary settings due
+    * to an external configuration tool asking it to.
+    */
+   EAPI extern int ELM_EVENT_CONFIG_ALL_CHANGED;
+
+   /**
     * Emitted when any Elementary's policy value is changed.
     */
    EAPI extern int ELM_EVENT_POLICY_CHANGED;
@@ -574,6 +571,14 @@ extern "C" {
         ELM_INPUT_PANEL_LAYOUT_INVALID
      } Elm_Input_Panel_Layout;
 
+   typedef enum
+     {
+        ELM_AUTOCAPITAL_TYPE_NONE,
+        ELM_AUTOCAPITAL_TYPE_WORD,
+        ELM_AUTOCAPITAL_TYPE_SENTENCE,
+        ELM_AUTOCAPITAL_TYPE_ALLCHARACTER,
+     } Elm_Autocapital_Type;
+
    /**
     * @typedef Elm_Object_Item
     * An Elementary Object item handle.
@@ -681,8 +686,8 @@ extern "C" {
     * @see elm_init() for an example. There, just after a request to
     * close the window comes, the main loop will be left.
     *
-    * @note By using the #ELM_POLICY_QUIT on your Elementary
-    * applications, you'll this function called automatically for you.
+    * @note By using the appropriate #ELM_POLICY_QUIT on your Elementary
+    * applications, you'll be able to get this function called automatically for you.
     *
     * @ingroup General
     */
@@ -744,7 +749,7 @@ extern "C" {
     * shared data directory for data files. For example, if the system
     * directory is @c /usr/local/share, then this directory name is
     * appended, creating @c /usr/local/share/myapp, if it @p was @c
-    * "myapp". It is expected the application installs data files in
+    * "myapp". It is expected that the application installs data files in
     * this directory.
     *
     * The @p checkfile is a file name or path of something inside the
@@ -768,7 +773,7 @@ extern "C" {
 
    /**
     * Provide information on the @b fallback application's binaries
-    * directory, on scenarios where they get overriden by
+    * directory, in scenarios where they get overriden by
     * elm_app_info_set().
     *
     * @param dir The path to the default binaries directory (compile time
@@ -838,7 +843,7 @@ extern "C" {
     * elm_app_info_set() and the way (environment) the application was
     * run from.
     *
-    * @return The directory prefix the application is actually using
+    * @return The directory prefix the application is actually using.
     */
    EAPI const char  *elm_app_prefix_dir_get(void);
 
@@ -848,7 +853,7 @@ extern "C" {
     * was run from.
     *
     * @return The binaries directory prefix the application is actually
-    * using
+    * using.
     */
    EAPI const char  *elm_app_bin_dir_get(void);
 
@@ -858,7 +863,7 @@ extern "C" {
     * was run from.
     *
     * @return The libraries directory prefix the application is actually
-    * using
+    * using.
     */
    EAPI const char  *elm_app_lib_dir_get(void);
 
@@ -868,7 +873,7 @@ extern "C" {
     * was run from.
     *
     * @return The data directory prefix the application is actually
-    * using
+    * using.
     */
    EAPI const char  *elm_app_data_dir_get(void);
 
@@ -878,7 +883,7 @@ extern "C" {
     * was run from.
     *
     * @return The locale directory prefix the application is actually
-    * using
+    * using.
     */
    EAPI const char  *elm_app_locale_dir_get(void);
 
@@ -899,7 +904,7 @@ extern "C" {
    EAPI Eina_Bool    elm_need_e_dbus(void);
 
    /**
-    * This must be called before any other function that handle with
+    * This must be called before any other function that deals with
     * elm_thumb objects or ethumb_client instances.
     *
     * @ingroup Thumb
@@ -907,7 +912,7 @@ extern "C" {
    EAPI Eina_Bool    elm_need_ethumb(void);
 
    /**
-    * This must be called before any other function that handle with
+    * This must be called before any other function that deals with
     * elm_web objects or ewk_view instances.
     *
     * @ingroup Web
@@ -937,7 +942,7 @@ extern "C" {
    EAPI Eina_Bool    elm_policy_set(unsigned int policy, int value);
 
    /**
-    * Gets the policy value set for given policy identifier.
+    * Gets the policy value for given policy identifier.
     *
     * @param policy policy identifier, as in #Elm_Policy.
     * @return The currently set policy value, for that
@@ -948,6 +953,27 @@ extern "C" {
    EAPI int          elm_policy_get(unsigned int policy);
 
    /**
+    * Change the language of the current application
+    *
+    * The @p lang passed must be the full name of the locale to use, for
+    * example "en_US.utf8" or "es_ES@euro".
+    *
+    * Changing language with this function will make Elementary run through
+    * all its widgets, translating strings set with
+    * elm_object_domain_translatable_text_part_set(). This way, an entire
+    * UI can have its language changed without having to restart the program.
+    *
+    * For more complex cases, like having formatted strings that need
+    * translation, widgets will also emit a "language,changed" signal that
+    * the user can listen to to manually translate the text.
+    *
+    * @param lang Language to set, must be the full name of the locale
+    *
+    * @ingroup General
+    */
+   EAPI void         elm_language_set(const char *lang);
+
+   /**
     * Set a label of an object
     *
     * @param obj The Elementary object
@@ -978,6 +1004,53 @@ extern "C" {
 #define elm_object_text_get(obj) elm_object_text_part_get((obj), NULL)
 
    /**
+    * Set the text for an objects' part, marking it as translatable.
+    *
+    * The string to set as @p text must be the original one. Do not pass the
+    * return of @c gettext() here. Elementary will translate the string
+    * internally and set it on the object using elm_object_text_part_set(),
+    * also storing the original string so that it can be automatically
+    * translated when the language is changed with elm_language_set().
+    *
+    * The @p domain will be stored along to find the translation in the
+    * correct catalog. It can be NULL, in which case it will use whatever
+    * domain was set by the application with @c textdomain(). This is useful
+    * in case you are building a library on top of Elementary that will have
+    * its own translatable strings, that should not be mixed with those of
+    * programs using the library.
+    *
+    * @param obj The object containing the text part
+    * @param part The name of the part to set
+    * @param domain The translation domain to use
+    * @param text The original, non-translated text to set
+    *
+    * @ingroup General
+    */
+   EAPI void         elm_object_domain_translatable_text_part_set(Evas_Object *obj, const char *part, const char *domain, const char *text);
+
+#define elm_object_domain_translatable_text_set(obj, domain, text) elm_object_domain_translatable_text_part_set((obj), NULL, (domain), (text))
+
+#define elm_object_translatable_text_set(obj, text) elm_object_domain_translatable_text_part_set((obj), NULL, NULL, (text))
+
+   /**
+    * Gets the original string set as translatable for an object
+    *
+    * When setting translated strings, the function elm_object_text_part_get()
+    * will return the translation returned by @c gettext(). To get the
+    * original string use this function.
+    *
+    * @param obj The object
+    * @param part The name of the part that was set
+    *
+    * @return The original, untranslated string
+    *
+    * @ingroup General
+    */
+   EAPI const char  *elm_object_translatable_text_part_get(const Evas_Object *obj, const char *part);
+
+#define elm_object_translatable_text_get(obj) elm_object_translatable_text_part_get((obj), NULL)
+
+   /**
     * Set a content of an object
     *
     * @param obj The Elementary object
@@ -1022,9 +1095,9 @@ extern "C" {
 #define elm_object_content_unset(obj) elm_object_content_part_unset((obj), NULL)
 
    /**
-    * Get the wiget object's handle which contains a given item
+    * Get the widget object's handle which contains a given item
     *
-    * @param item The Elementary object item 
+    * @param item The Elementary object item
     * @return The widget object
     *
     * @note This returns the widget object itself that an item belongs to.
@@ -1078,7 +1151,7 @@ extern "C" {
 #define elm_object_item_content_unset(it) elm_object_item_content_part_unset((it), NULL)
 
    /**
-    * Set a label of an objec itemt
+    * Set a label of an object item
     *
     * @param it The Elementary object item
     * @param part The text part name to set (NULL for the default label)
@@ -1093,7 +1166,7 @@ extern "C" {
 #define elm_object_item_text_set(it, label) elm_object_item_text_part_set((it), NULL, (label))
 
    /**
-    * Get a label of an object
+    * Get a label of an object item
     *
     * @param it The Elementary object item
     * @param part The text part name to get (NULL for the default label)
@@ -1105,6 +1178,8 @@ extern "C" {
     */
    EAPI const char *elm_object_item_text_part_get(const Elm_Object_Item *it, const char *part);
 
+#define elm_object_item_text_get(it) elm_object_item_text_part_get((it), NULL)
+
    /**
     * Set the text to read out when in accessibility mode
     *
@@ -1125,9 +1200,6 @@ extern "C" {
     */
    EAPI void elm_object_item_access_info_set(Elm_Object_Item *it, const char *txt);
 
-
-#define elm_object_item_text_get(it) elm_object_item_text_part_get((it), NULL)
-
    /**
     * Get the data associated with an object item
     * @param it The object item
@@ -1249,7 +1321,7 @@ extern "C" {
    /**
     * Set the configured cache flush enabled state
     *
-    * This sets the globally configured cache flush enabled state
+    * This sets the globally configured cache flush enabled state.
     *
     * @param size The cache flush enabled state
     * @ingroup Caches
@@ -1273,7 +1345,7 @@ extern "C" {
    /**
     * Get the configured font cache size
     *
-    * This gets the globally configured font cache size, in bytes
+    * This gets the globally configured font cache size, in bytes.
     *
     * @return The font cache size
     * @ingroup Caches
@@ -2832,6 +2904,46 @@ extern "C" {
    EAPI void             elm_scroll_thumbscroll_border_friction_all_set(double friction);
 
    /**
+    * Get the sensitivity amount which is be multiplied by the length of
+    * mouse dragging.
+    *
+    * @return the thumb scroll sensitivity friction
+    *
+    * @ingroup Scrolling
+    */
+   EAPI double           elm_scroll_thumbscroll_sensitivity_friction_get(void);
+
+   /**
+    * Set the sensitivity amount which is be multiplied by the length of
+    * mouse dragging.
+    *
+    * @param friction the thumb scroll sensitivity friction. @c 0.1 for
+    *        minimun sensitivity, @c 1.0 for maximum sensitivity. 0.25
+    *        is proper.
+    *
+    * @see elm_thumbscroll_sensitivity_friction_get()
+    * @note parameter value will get bound to 0.1 - 1.0 interval, always
+    *
+    * @ingroup Scrolling
+    */
+   EAPI void             elm_scroll_thumbscroll_sensitivity_friction_set(double friction);
+
+   /**
+    * Set the sensitivity amount which is be multiplied by the length of
+    * mouse dragging, for all Elementary application windows.
+    *
+    * @param friction the thumb scroll sensitivity friction. @c 0.1 for
+    *        minimun sensitivity, @c 1.0 for maximum sensitivity. 0.25
+    *        is proper.
+    *
+    * @see elm_thumbscroll_sensitivity_friction_get()
+    * @note parameter value will get bound to 0.1 - 1.0 interval, always
+    *
+    * @ingroup Scrolling
+    */
+   EAPI void             elm_scroll_thumbscroll_sensitivity_friction_all_set(double friction);
+
+   /**
     * @}
     */
 
@@ -3688,6 +3800,22 @@ extern "C" {
     */
    EAPI Evas_Object *elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type);
    /**
+    * Adds a window object with standard setup
+    *
+    * @param name The name of the window
+    * @param title The title for the window
+    *
+    * This creates a window like elm_win_add() but also puts in a standard
+    * background with elm_bg_add(), as well as setting the window title to
+    * @p title. The window type created is of type ELM_WIN_BASIC, with NULL
+    * as the parent widget.
+    * 
+    * @return The created object, or NULL on failure
+    *
+    * @see elm_win_add()
+    */
+   EAPI Evas_Object *elm_win_util_standard_add(const char *name, const char *title);
+   /**
     * Add @p subobj as a resize object of window @p obj.
     *
     *
@@ -4386,6 +4514,9 @@ extern "C" {
     * packing into any container object. It works just like an image, but has
     * some properties useful to a background, like setting it to tiled,
     * centered, scaled or stretched.
+    * 
+    * Default contents parts of the bg widget that you can use for are:
+    * @li "elm.swallow.content" - overlay of the bg
     *
     * Here is some sample code using it:
     * @li @ref bg_01_example_page
@@ -4503,7 +4634,7 @@ extern "C" {
     * @ingroup Bg
     */
 
-   EAPI void          elm_bg_overlay_set(Evas_Object *obj, Evas_Object *overlay) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void          elm_bg_overlay_set(Evas_Object *obj, Evas_Object *overlay) EINA_ARG_NONNULL(1);
 
    /**
     * Get the overlay object used for the background object.
@@ -4515,7 +4646,7 @@ extern "C" {
     *
     * @ingroup Bg
     */
-   EAPI Evas_Object  *elm_bg_overlay_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object  *elm_bg_overlay_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Get the overlay object used for the background object.
@@ -4527,7 +4658,7 @@ extern "C" {
     *
     * @ingroup Bg
     */
-   EAPI Evas_Object  *elm_bg_overlay_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object  *elm_bg_overlay_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Set the size of the pixmap representation of the image.
@@ -4665,7 +4796,7 @@ extern "C" {
     *
     * @param obj The icon object
     * @param file The path to file that will be used as icon image
-    * @param group The group that the icon belongs to in edje file
+    * @param group The group that the icon belongs to an edje file
     *
     * @return (@c EINA_TRUE = success, @c EINA_FALSE = error)
     *
@@ -4698,8 +4829,8 @@ extern "C" {
     * Get the file that will be used as icon.
     *
     * @param obj The icon object
-    * @param file The path to file that will be used as icon icon image
-    * @param group The group that the icon belongs to in edje file
+    * @param file The path to file that will be used as the icon image
+    * @param group The group that the icon belongs to, in edje file
     *
     * @see elm_icon_file_set()
     *
@@ -4748,7 +4879,7 @@ extern "C" {
     */
    EAPI const char           *elm_icon_standard_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
-    * Set the smooth effect for an icon object.
+    * Set the smooth scaling for an icon object.
     *
     * @param obj The icon object
     * @param smooth @c EINA_TRUE if smooth scaling should be used, @c EINA_FALSE
@@ -4768,7 +4899,7 @@ extern "C" {
     */
    EAPI void                  elm_icon_smooth_set(Evas_Object *obj, Eina_Bool smooth) EINA_ARG_NONNULL(1);
    /**
-    * Get the smooth effect for an icon object.
+    * Get whether smooth scaling is enabled for an icon object.
     *
     * @param obj The icon object
     * @return @c EINA_TRUE if smooth scaling is enabled, @c EINA_FALSE otherwise.
@@ -4964,11 +5095,11 @@ extern "C" {
     * @param anim @c EINA_TRUE if the object do animation job,
     * @c EINA_FALSE otherwise. Default is @c EINA_FALSE.
     *
-    * Even though elm icon's file can be animated,
-    * sometimes appication developer want to just first page of image.
-    * In that time, don't call this function, because default value is EINA_FALSE
-    * Only when you want icon support anition,
-    * use this function and set animated to EINA_TURE
+    * Since the default animation mode is set to EINA_FALSE, 
+    * the icon is shown without animation.
+    * This might be desirable when the application developer wants to show
+    * a snapshot of the animated icon.
+    * Set it to EINA_TRUE when the icon needs to be animated.
     * @ingroup Icon
     */
    EAPI void                elm_icon_animated_set(Evas_Object *obj, Eina_Bool animated) EINA_ARG_NONNULL(1);
@@ -4988,7 +5119,7 @@ extern "C" {
     * @param play @c EINA_TRUE the object play animation images,
     * @c EINA_FALSE otherwise. Default is @c EINA_FALSE.
     *
-    * If you want to play elm icon's animation, you set play to EINA_TURE.
+    * To play elm icon's animation, set play to EINA_TURE.
     * For example, you make gif player using this set/get API and click event.
     *
     * 1. Click event occurs
@@ -5004,7 +5135,7 @@ extern "C" {
     * @param obj The icon object
     * @return The play mode of the icon object
     *
-    * @see elm_icon_animated_lay_get
+    * @see elm_icon_animated_play_get
     * @ingroup Icon
     */
    EAPI Eina_Bool           elm_icon_animated_play_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
@@ -5137,6 +5268,7 @@ extern "C" {
     * @ingroup Image
     */
    EAPI Eina_Bool        elm_image_smooth_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
    /**
     * Gets the current size of the image.
     *
@@ -5212,7 +5344,7 @@ extern "C" {
     */
    EAPI void             elm_image_scale_get(const Evas_Object *obj, Eina_Bool *scale_up, Eina_Bool *scale_down) EINA_ARG_NONNULL(1);
    /**
-    * Set if the image fill the entire object area when keeping the aspect ratio.
+    * Set if the image fills the entire object area, when keeping the aspect ratio.
     *
     * @param obj The image object
     * @param fill_outside @c EINA_TRUE if the object is filled outside,
@@ -5282,11 +5414,7 @@ extern "C" {
     * Set the image orientation.
     *
     * @param obj The image object
-    * @param orient The image orientation
-    * (one of #ELM_IMAGE_ORIENT_NONE, #ELM_IMAGE_ROTATE_90_CW,
-    *  #ELM_IMAGE_ROTATE_180_CW, #ELM_IMAGE_ROTATE_90_CCW,
-    *  #ELM_IMAGE_FLIP_HORIZONTAL, #ELM_IMAGE_FLIP_VERTICAL,
-    *  #ELM_IMAGE_FLIP_TRANSPOSE, #ELM_IMAGE_FLIP_TRANSVERSE).
+    * @param orient The image orientation @ref Elm_Image_Orient
     *  Default is #ELM_IMAGE_ORIENT_NONE.
     *
     * This function allows to rotate or flip the given image.
@@ -5301,11 +5429,7 @@ extern "C" {
     * Get the image orientation.
     *
     * @param obj The image object
-    * @return The image orientation
-    * (one of #ELM_IMAGE_ORIENT_NONE, #ELM_IMAGE_ROTATE_90_CW,
-    *  #ELM_IMAGE_ROTATE_180_CW, #ELM_IMAGE_ROTATE_90_CCW,
-    *  #ELM_IMAGE_FLIP_HORIZONTAL, #ELM_IMAGE_FLIP_VERTICAL,
-    *  #ELM_IMAGE_FLIP_TRANSPOSE, #ELM_IMAGE_FLIP_TRANSVERSE)
+    * @return The image orientation @ref Elm_Image_Orient
     *
     * @see elm_image_orient_set()
     * @see @ref Elm_Image_Orient
@@ -5326,13 +5450,13 @@ extern "C" {
     */
    EAPI void             elm_image_editable_set(Evas_Object *obj, Eina_Bool set) EINA_ARG_NONNULL(1);
    /**
-    * Make the image 'editable'.
+    * Check if the image 'editable'.
     *
     * @param obj Image object.
     * @return Editability.
     *
-    * This means the image is a valid drag target for drag and drop, and can be
-    * cut or pasted too.
+    * A return value of EINA_TRUE means the image is a valid drag target
+    * for drag and drop, and can be cut or pasted too.
     *
     * @ingroup Image
     */
@@ -6039,6 +6163,12 @@ extern "C" {
     * continuous look across its options.
     * @li hoversel_vertical_entry: Another internal for @ref Hoversel.
     *
+    * Default contents parts of the button widget that you can use for are:
+    * @li "elm.swallow.content" - A icon of the button
+    *
+    * Default text parts of the button widget that you can use for are:
+    * @li "elm.text" - Label of the button
+    *
     * Follow through a complete example @ref button_example_01 "here".
     * @{
     */
@@ -6084,7 +6214,7 @@ extern "C" {
     * @param obj The button object
     * @param icon The icon object for the button
     */
-   EAPI void         elm_button_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void         elm_button_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
    /**
     * Get the icon used for the button
     *
@@ -6097,7 +6227,7 @@ extern "C" {
     *
     * @see elm_button_icon_unset()
     */
-   EAPI Evas_Object *elm_button_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_button_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Remove the icon set without deleting it and return the object
     *
@@ -6109,7 +6239,7 @@ extern "C" {
     * @param obj The button object
     * @return The icon object that was being used
     */
-   EAPI Evas_Object *elm_button_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_button_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Turn on/off the autorepeat event generated when the button is kept pressed
     *
@@ -6866,7 +6996,7 @@ extern "C" {
     * A scroller holds a single object and "scrolls it around". This means that
     * it allows the user to use a scrollbar (or a finger) to drag the viewable
     * region around, allowing to move through a much larger object that is
-    * contained in the scroller. The scroiller will always have a small minimum
+    * contained in the scroller. The scroller will always have a small minimum
     * size by default as it won't be limited by the contents of the scroller.
     *
     * Signals that you can add callbacks for are:
@@ -6887,6 +7017,12 @@ extern "C" {
     * @note When Elementary is in desktop mode the thumbscroll(a.k.a.
     * fingerscroll) won't work.
     *
+    * To set/get/unset the content of the panel, you can use
+    * elm_object_content_set/get/unset APIs.
+    * Once the content object is set, a previously set one will be deleted.
+    * If you want to keep that old content object, use the
+    * elm_object_content_unset() function
+    *
     * In @ref tutorial_scroller you'll find an example of how to use most of
     * this API.
     * @{
@@ -6920,7 +7056,7 @@ extern "C" {
     * If you want to keep that old content object, use the
     * elm_scroller_content_unset() function.
     */
-   EAPI void         elm_scroller_content_set(Evas_Object *obj, Evas_Object *child) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void         elm_scroller_content_set(Evas_Object *obj, Evas_Object *child) EINA_ARG_NONNULL(1);
    /**
     * @brief Get the content of the scroller widget
     *
@@ -6931,7 +7067,7 @@ extern "C" {
     *
     * @see elm_scroller_content_set()
     */
-   EAPI Evas_Object *elm_scroller_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_scroller_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Unset the content of the scroller widget
     *
@@ -6942,7 +7078,7 @@ extern "C" {
     *
     * @see elm_scroller_content_set()
     */
-   EAPI Evas_Object *elm_scroller_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_scroller_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Set custom theme elements for the scroller
     *
@@ -7024,8 +7160,8 @@ extern "C" {
     * @brief Get the size of the content object
     *
     * @param obj The scroller object
-    * @param w Width return
-    * @param h Height return
+    * @param w Width of the content object.
+    * @param h Height of the content object.
     *
     * This gets the size of the content object of the scroller.
     */
@@ -7034,21 +7170,21 @@ extern "C" {
     * @brief Set bouncing behavior
     *
     * @param obj The scroller object
-    * @param h_bounce Will the scroller bounce horizontally or not
-    * @param v_bounce Will the scroller bounce vertically or not
+    * @param h_bounce Allow bounce horizontally
+    * @param v_bounce Allow bounce vertically
     *
     * When scrolling, the scroller may "bounce" when reaching an edge of the
     * content object. This is a visual way to indicate the end has been reached.
-    * This is enabled by default for both axis. This will set if it is enabled
-    * for that axis with the boolean parameters for each axis.
+    * This is enabled by default for both axis. This API will set if it is enabled
+    * for the given axis with the boolean parameters for each axis.
     */
    EAPI void         elm_scroller_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce) EINA_ARG_NONNULL(1);
    /**
-    * @brief Get the bounce mode
+    * @brief Get the bounce behaviour
     *
     * @param obj The Scroller object
-    * @param h_bounce Allow bounce horizontally
-    * @param v_bounce Allow bounce vertically
+    * @param h_bounce Will the scroller bounce horizontally or not
+    * @param v_bounce Will the scroller bounce vertically or not
     *
     * @see elm_scroller_bounce_set()
     */
@@ -7067,7 +7203,7 @@ extern "C" {
     * viewport" is size (horizontally or vertically). 0.0 turns it off in that
     * axis. This is mutually exclusive with page size
     * (see elm_scroller_page_size_set()  for more information). Likewise 0.5
-    * is "half a viewport". Sane usable valus are normally between 0.0 and 1.0
+    * is "half a viewport". Sane usable values are normally between 0.0 and 1.0
     * including 1.0. If you only want 1 axis to be page "limited", use 0.0 for
     * the other axis.
     */
@@ -7093,9 +7229,9 @@ extern "C" {
     * @param v_pagenumber The vertical page number
     *
     * The page number starts from 0. 0 is the first page.
-    * Current page means the page which meet the top-left of the viewport.
-    * If there are two or more pages in the viewport, it returns the number of page
-    * which meet the top-left of the viewport.
+    * Current page means the page which meets the top-left of the viewport.
+    * If there are two or more pages in the viewport, it returns the number of the page
+    * which meets the top-left of the viewport.
     *
     * @see elm_scroller_last_page_get()
     * @see elm_scroller_page_show()
@@ -7192,7 +7328,7 @@ extern "C" {
     * This enables or disabled event propagation from the scroller content to
     * the scroller and its parent. By default event propagation is disabled.
     */
-   EAPI void         elm_scroller_propagate_events_set(Evas_Object *obj, Eina_Bool propagation);
+   EAPI void         elm_scroller_propagate_events_set(Evas_Object *obj, Eina_Bool propagation) EINA_ARG_NONNULL(1);
    /**
     * @brief Get event propagation for a scroller
     *
@@ -7203,7 +7339,40 @@ extern "C" {
     *
     * @see elm_scroller_propagate_events_set()
     */
-   EAPI Eina_Bool    elm_scroller_propagate_events_get(const Evas_Object *obj);
+   EAPI Eina_Bool    elm_scroller_propagate_events_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Set scrolling gravity on a scroller
+    *
+    * @param obj The scroller object
+    * @param x The scrolling horizontal gravity
+    * @param y The scrolling vertical gravity
+    *
+    * The gravity, defines how the scroller will adjust its view
+    * when the size of the scroller contents increase.
+    *
+    * The scroller will adjust the view to glue itself as follows.
+    *
+    *  x=0.0, for showing the left most region of the content.
+    *  x=1.0, for showing the right most region of the content.
+    *  y=0.0, for showing the bottom most region of the content.
+    *  y=1.0, for showing the top most region of the content.
+    *
+    * Default values for x and y are 0.0
+    */
+   EAPI void         elm_scroller_gravity_set(Evas_Object *obj, double x, double y) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Get scrolling gravity values for a scroller
+    *
+    * @param obj The scroller object
+    * @param x The scrolling horizontal gravity
+    * @param y The scrolling vertical gravity
+    *
+    * This gets gravity values for a scroller.
+    *
+    * @see elm_scroller_gravity_set()
+    *
+    */
+   EAPI void         elm_scroller_gravity_get(const Evas_Object *obj, double *x, double *y) EINA_ARG_NONNULL(1);
    /**
     * @}
     */
@@ -7234,6 +7403,9 @@ extern "C" {
     * Custom themes can of course invent new markup tags and style them any way
     * they like.
     *
+    * The following signals may be emitted by the label widget:
+    * @li "language,changed": The program's language changed.
+    *
     * See @ref tutorial_label for a demonstration of how to use a label widget.
     * @{
     */
@@ -7389,10 +7561,10 @@ extern "C" {
     * @param obj The label object
     * @param slide To start slide or stop
     *
-    * If set to true the text of the label will slide throught the length of
+    * If set to true, the text of the label will slide/scroll through the length of
     * label.
     *
-    * @warning This only work with the themes "slide_short", "slide_long" and
+    * @warning This only works with the themes "slide_short", "slide_long" and
     * "slide_bounce".
     */
    EAPI void         elm_label_slide_set(Evas_Object *obj, Eina_Bool slide) EINA_ARG_NONNULL(1);
@@ -7435,6 +7607,16 @@ extern "C" {
     * @brief A toggle is a slider which can be used to toggle between
     * two values.  It has two states: on and off.
     *
+    * This widget is deprecated. Please use elm_check_add() instead using the
+    * toggle style like:
+    * 
+    * @code
+    * obj = elm_check_add(parent);
+    * elm_object_style_set(obj, "toggle");
+    * elm_object_text_part_set(obj, "on", "ON");
+    * elm_object_text_part_set(obj, "off", "OFF");
+    * @endcode
+    * 
     * Signals that you can add callbacks for are:
     * @li "changed" - Whenever the toggle value has been changed.  Is not called
     *                 until the toggle is released by the cursor (assuming it
@@ -7450,7 +7632,7 @@ extern "C" {
     *
     * @return The toggle object
     */
-   EAPI Evas_Object *elm_toggle_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_toggle_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
    /**
     * @brief Sets the label to be displayed with the toggle.
     *
@@ -7478,8 +7660,10 @@ extern "C" {
     * Once the icon object is set, a previously set one will be deleted
     * If you want to keep that old content object, use the
     * elm_toggle_icon_unset() function.
+    *
+    * @deprecated use elm_object_content_set() instead.
     */
-   EAPI void         elm_toggle_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void         elm_toggle_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
    /**
     * @brief Get the icon used for the toggle
     *
@@ -7489,8 +7673,10 @@ extern "C" {
     * Return the icon object which is set for this widget.
     *
     * @see elm_toggle_icon_set()
+    *
+    * @deprecated use elm_object_content_get() instead.
     */
-   EAPI Evas_Object *elm_toggle_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_toggle_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Unset the icon used for the toggle
     *
@@ -7500,45 +7686,60 @@ extern "C" {
     * Unparent and return the icon object which was set for this widget.
     *
     * @see elm_toggle_icon_set()
+    *
+    * @deprecated use elm_object_content_unset() instead.
     */
-   EAPI Evas_Object *elm_toggle_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_toggle_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Sets the labels to be associated with the on and off states of the toggle.
     *
     * @param obj The toggle object
     * @param onlabel The label displayed when the toggle is in the "on" state
     * @param offlabel The label displayed when the toggle is in the "off" state
+    *
+    * @deprecated use elm_object_text_part_set() for "on" and "off" parts
+    * instead.
     */
-   EAPI void         elm_toggle_states_labels_set(Evas_Object *obj, const char *onlabel, const char *offlabel) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void         elm_toggle_states_labels_set(Evas_Object *obj, const char *onlabel, const char *offlabel) EINA_ARG_NONNULL(1);
    /**
-    * @brief Gets the labels associated with the on and off states of the toggle.
+    * @brief Gets the labels associated with the on and off states of the
+    * toggle.
     *
     * @param obj The toggle object
     * @param onlabel A char** to place the onlabel of @p obj into
     * @param offlabel A char** to place the offlabel of @p obj into
+    *
+    * @deprecated use elm_object_text_part_get() for "on" and "off" parts
+    * instead.
     */
-   EAPI void         elm_toggle_states_labels_get(const Evas_Object *obj, const char **onlabel, const char **offlabel) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void         elm_toggle_states_labels_get(const Evas_Object *obj, const char **onlabel, const char **offlabel) EINA_ARG_NONNULL(1);
    /**
     * @brief Sets the state of the toggle to @p state.
     *
     * @param obj The toggle object
     * @param state The state of @p obj
+    *
+    * @deprecated use elm_check_state_set() instead.
     */
-   EAPI void         elm_toggle_state_set(Evas_Object *obj, Eina_Bool state) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void         elm_toggle_state_set(Evas_Object *obj, Eina_Bool state) EINA_ARG_NONNULL(1);
    /**
     * @brief Gets the state of the toggle to @p state.
     *
     * @param obj The toggle object
     * @return The state of @p obj
+    *
+    * @deprecated use elm_check_state_get() instead.
     */
-   EAPI Eina_Bool    elm_toggle_state_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Eina_Bool    elm_toggle_state_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Sets the state pointer of the toggle to @p statep.
     *
     * @param obj The toggle object
     * @param statep The state pointer of @p obj
+    *
+    * @deprecated use elm_check_state_pointer_set() instead.
     */
-   EAPI void         elm_toggle_state_pointer_set(Evas_Object *obj, Eina_Bool *statep) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void         elm_toggle_state_pointer_set(Evas_Object *obj, Eina_Bool *statep) EINA_ARG_NONNULL(1);
    /**
     * @}
     */
@@ -7563,6 +7764,12 @@ extern "C" {
     *
     * Of all this styles only default shows the title. Frame emits no signals.
     *
+    * Default contents parts of the frame widget that you can use for are:
+    * @li "elm.swallow.content" - A content of the frame
+    *
+    * Default text parts of the frame widget that you can use for are:
+    * @li "elm.text" - Label of the frame
+    *
     * For a detailed example see the @ref tutorial_frame.
     *
     * @{
@@ -7603,7 +7810,7 @@ extern "C" {
     * @param obj The frame object
     * @param content The content will be filled in this frame object
     */
-   EAPI void         elm_frame_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void         elm_frame_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
    /**
     * @brief Get the content of the frame widget
     *
@@ -7612,7 +7819,7 @@ extern "C" {
     * @param obj The frame object
     * @return The content that is being used
     */
-   EAPI Evas_Object *elm_frame_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_frame_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Unset the content of the frame widget
     *
@@ -7621,7 +7828,7 @@ extern "C" {
     * @param obj The frame object
     * @return The content that was being used
     */
-   EAPI Evas_Object *elm_frame_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_frame_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @}
     */
@@ -7633,6 +7840,9 @@ extern "C" {
     * also span multiple columns or rows - even overlap (and then be raised or
     * lowered accordingly to adjust stacking if they do overlap).
     *
+    * For a Table widget the row/column count is not fixed.
+    * The table widget adjusts itself when subobjects are added to it dynamically.
+    *
     * The followin are examples of how to use a table:
     * @li @ref tutorial_table_01
     * @li @ref tutorial_table_02
@@ -7749,6 +7959,47 @@ extern "C" {
     * @}
     */
 
+   /* TEMPORARY: DOCS WILL BE FILLED IN WITH CNP/SED */
+   typedef struct Elm_Gen_Item Elm_Gen_Item;
+   typedef struct _Elm_Gen_Item_Class Elm_Gen_Item_Class;
+   typedef struct _Elm_Gen_Item_Class_Func Elm_Gen_Item_Class_Func; /**< Class functions for gen item classes. */
+   typedef char        *(*Elm_Gen_Item_Label_Get_Cb) (void *data, Evas_Object *obj, const char *part); /**< Label fetching class function for gen item classes. */
+   typedef Evas_Object *(*Elm_Gen_Item_Content_Get_Cb)  (void *data, Evas_Object *obj, const char *part); /**< Content(swallowed object) fetching class function for gen item classes. */
+   typedef Eina_Bool    (*Elm_Gen_Item_State_Get_Cb) (void *data, Evas_Object *obj, const char *part); /**< State fetching class function for gen item classes. */
+   typedef void         (*Elm_Gen_Item_Del_Cb)      (void *data, Evas_Object *obj); /**< Deletion class function for gen item classes. */
+   struct _Elm_Gen_Item_Class
+     {
+        const char             *item_style;
+        struct _Elm_Gen_Item_Class_Func
+          {
+             Elm_Gen_Item_Label_Get_Cb label_get;
+             Elm_Gen_Item_Content_Get_Cb  content_get;
+             Elm_Gen_Item_State_Get_Cb state_get;
+             Elm_Gen_Item_Del_Cb       del;
+          } func;
+     };
+   EAPI void elm_gen_clear(Evas_Object *obj);
+   EAPI void elm_gen_item_selected_set(Elm_Gen_Item *it, Eina_Bool selected);
+   EAPI Eina_Bool elm_gen_item_selected_get(const Elm_Gen_Item *it);
+   EAPI void elm_gen_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select);
+   EAPI Eina_Bool elm_gen_always_select_mode_get(const Evas_Object *obj);
+   EAPI void elm_gen_no_select_mode_set(Evas_Object *obj, Eina_Bool no_select);
+   EAPI Eina_Bool elm_gen_no_select_mode_get(const Evas_Object *obj);
+   EAPI void elm_gen_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
+   EAPI void elm_gen_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce);
+   EAPI void elm_gen_page_relative_set(Evas_Object *obj, double h_pagerel, double v_pagerel);
+   EAPI void elm_gen_page_relative_get(const Evas_Object *obj, double *h_pagerel, double *v_pagerel);
+   EAPI void elm_gen_page_size_set(Evas_Object *obj, Evas_Coord h_pagesize, Evas_Coord v_pagesize);
+   EAPI void elm_gen_current_page_get(const Evas_Object *obj, int *h_pagenumber, int *v_pagenumber);
+   EAPI void elm_gen_last_page_get(const Evas_Object *obj, int *h_pagenumber, int *v_pagenumber);
+   EAPI void elm_gen_page_show(const Evas_Object *obj, int h_pagenumber, int v_pagenumber);
+   EAPI void elm_gen_page_bring_in(const Evas_Object *obj, int h_pagenumber, int v_pagenumber);
+   EAPI Elm_Gen_Item *elm_gen_first_item_get(const Evas_Object *obj);
+   EAPI Elm_Gen_Item *elm_gen_last_item_get(const Evas_Object *obj);
+   EAPI Elm_Gen_Item *elm_gen_item_next_get(const Elm_Gen_Item *it);
+   EAPI Elm_Gen_Item *elm_gen_item_prev_get(const Elm_Gen_Item *it);
+   EAPI Evas_Object *elm_gen_item_widget_get(const Elm_Gen_Item *it);
+
    /**
     * @defgroup Gengrid Gengrid (Generic grid)
     *
@@ -7765,7 +8016,7 @@ extern "C" {
     *
     * @section Gengrid_Layouts Gengrid layouts
     *
-    * Gengrids may layout its items in one of two possible layouts:
+    * Gengrid may layout its items in one of two possible layouts:
     * - horizontal or
     * - vertical.
     *
@@ -7824,16 +8075,16 @@ extern "C" {
     * item's theme. This function @b must return a strdup'()ed string,
     * as the caller will free() it when done. See
     * #Elm_Gengrid_Item_Label_Get_Cb.
-    * - @c func.icon_get - This function is called when an item object
+    * - @c func.content_get - This function is called when an item object
     * is actually created. The @c data parameter will point to the
     * same data passed to elm_gengrid_item_append() and related item
     * creation functions. The @c obj parameter is the gengrid object
     * itself, while the @c part one is the name string of one of the
-    * existing (icon) swallow parts in the Edje group implementing the
-    * item's theme. It must return @c NULL, when no icon is desired,
+    * existing (content) swallow parts in the Edje group implementing the
+    * item's theme. It must return @c NULL, when no content is desired,
     * or a valid object handle, otherwise. The object will be deleted
     * by the gengrid on its deletion or when the item is "unrealized".
-    * See #Elm_Gengrid_Item_Icon_Get_Cb.
+    * See #Elm_Gengrid_Item_Content_Get_Cb.
     * - @c func.state_get - This function is called when an item
     * object is actually created. The @c data parameter will point to
     * the same data passed to elm_gengrid_item_append() and related
@@ -7864,7 +8115,7 @@ extern "C" {
     * modified (added, deleted, selected or unselected) of child items
     * on a gengrid.
     *
-    * If an item changes (internal (boolean) state, label or icon
+    * If an item changes (internal (boolean) state, label or content 
     * changes), then use elm_gengrid_item_update() to have gengrid
     * update the item with the new state. A gengrid will re-"realize"
     * the item, thus calling the functions in the
@@ -7941,13 +8192,13 @@ extern "C" {
     *   started.
     * - @c "scroll,drag,stop" - called when dragging the content has
     *   stopped.
-    * - @c "scroll,edge,top" - This is called when the gengrid is scrolled until
+    * - @c "edge,top" - This is called when the gengrid is scrolled until
     *   the top edge.
-    * - @c "scroll,edge,bottom" - This is called when the gengrid is scrolled
+    * - @c "edge,bottom" - This is called when the gengrid is scrolled
     *   until the bottom edge.
-    * - @c "scroll,edge,left" - This is called when the gengrid is scrolled
+    * - @c "edge,left" - This is called when the gengrid is scrolled
     *   until the left edge.
-    * - @c "scroll,edge,right" - This is called when the gengrid is scrolled
+    * - @c "edge,right" - This is called when the gengrid is scrolled
     *   until the right edge.
     *
     * List of gengrid examples:
@@ -7960,18 +8211,15 @@ extern "C" {
     */
 
    typedef struct _Elm_Gengrid_Item_Class Elm_Gengrid_Item_Class; /**< Gengrid item class definition structs */
-   typedef struct _Elm_Gengrid_Item_Class_Func Elm_Gengrid_Item_Class_Func; /**< Class functions for gengrid item classes. */
+   #define Elm_Gengrid_Item_Class Elm_Gen_Item_Class
    typedef struct _Elm_Gengrid_Item Elm_Gengrid_Item; /**< Gengrid item handles */
+   #define Elm_Gengrid_Item Elm_Gen_Item /**< Item of Elm_Genlist. Sub-type of Elm_Widget_Item */
+   typedef struct _Elm_Gengrid_Item_Class_Func Elm_Gengrid_Item_Class_Func; /**< Class functions for gengrid item classes. */
    typedef char        *(*Elm_Gengrid_Item_Label_Get_Cb) (void *data, Evas_Object *obj, const char *part); /**< Label fetching class function for gengrid item classes. */
-   typedef Evas_Object *(*Elm_Gengrid_Item_Icon_Get_Cb)  (void *data, Evas_Object *obj, const char *part); /**< Icon fetching class function for gengrid item classes. */
+   typedef Evas_Object *(*Elm_Gengrid_Item_Content_Get_Cb)  (void *data, Evas_Object *obj, const char *part); /**< Content (swallowed object) fetching class function for gengrid item classes. */
    typedef Eina_Bool    (*Elm_Gengrid_Item_State_Get_Cb) (void *data, Evas_Object *obj, const char *part); /**< State fetching class function for gengrid item classes. */
    typedef void         (*Elm_Gengrid_Item_Del_Cb)      (void *data, Evas_Object *obj); /**< Deletion class function for gengrid item classes. */
 
-   typedef char        *(*GridItemLabelGetFunc) (void *data, Evas_Object *obj, const char *part) EINA_DEPRECATED; /** DEPRECATED. Use Elm_Gengrid_Item_Label_Get_Cb. */
-   typedef Evas_Object *(*GridItemIconGetFunc)  (void *data, Evas_Object *obj, const char *part) EINA_DEPRECATED; /** DEPRECATED. Use Elm_Gengrid_Item_Icon_Get_Cb. */
-   typedef Eina_Bool    (*GridItemStateGetFunc) (void *data, Evas_Object *obj, const char *part) EINA_DEPRECATED; /** DEPRECATED. Use Elm_Gengrid_Item_State_Get_Cb. */
-   typedef void         (*GridItemDelFunc)      (void *data, Evas_Object *obj) EINA_DEPRECATED; /** DEPRECATED. Use Elm_Gengrid_Item_Del_Cb. */
-
    /**
     * @struct _Elm_Gengrid_Item_Class
     *
@@ -7984,12 +8232,12 @@ extern "C" {
         struct _Elm_Gengrid_Item_Class_Func
           {
              Elm_Gengrid_Item_Label_Get_Cb label_get;
-             Elm_Gengrid_Item_Icon_Get_Cb  icon_get;
+             Elm_Gengrid_Item_Content_Get_Cb content_get;
              Elm_Gengrid_Item_State_Get_Cb state_get;
              Elm_Gengrid_Item_Del_Cb       del;
           } func;
      }; /**< #Elm_Gengrid_Item_Class member definitions */
-
+   #define Elm_Gengrid_Item_Class_Func Elm_Gen_Item_Class_Func
    /**
     * Add a new gengrid widget to the given parent Elementary
     * (container) object
@@ -8249,8 +8497,52 @@ 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);
 
+   /**
+    * Insert an item in a gengrid widget using a user-defined sort function.
+    *
+    * @param obj The gengrid object.
+    * @param gic The item class for the item.
+    * @param data The item data.
+    * @param comp User defined comparison function that defines the sort order based on
+    * Elm_Gen_Item and its data param.
+    * @param func Convenience function called when the item is selected.
+    * @param func_data Data to be passed to @p func.
+    * @return A handle to the item added or @c NULL, on errors.
+    *
+    * This inserts an item in the gengrid based on user defined comparison function.
+    *
+    * @see elm_gengrid_item_append()
+    * @see elm_gengrid_item_prepend()
+    * @see elm_gengrid_item_insert_after()
+    * @see elm_gengrid_item_del()
+    * @see elm_gengrid_item_direct_sorted_insert()
+    *
+    * @ingroup Gengrid
+    */
    EAPI Elm_Gengrid_Item  *elm_gengrid_item_sorted_insert(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic, const void *data, Eina_Compare_Cb comp, Evas_Smart_Cb func, const void *func_data) EINA_ARG_NONNULL(1);
 
+   /**
+    * Insert an item in a gengrid widget using a user-defined sort function.
+    *
+    * @param obj The gengrid object.
+    * @param gic The item class for the item.
+    * @param data The item data.
+    * @param comp User defined comparison function that defines the sort order based on
+    * Elm_Gen_Item.
+    * @param func Convenience function called when the item is selected.
+    * @param func_data Data to be passed to @p func.
+    * @return A handle to the item added or @c NULL, on errors.
+    *
+    * This inserts an item in the gengrid based on user defined comparison function.
+    *
+    * @see elm_gengrid_item_append()
+    * @see elm_gengrid_item_prepend()
+    * @see elm_gengrid_item_insert_after()
+    * @see elm_gengrid_item_del()
+    * @see elm_gengrid_item_sorted_insert()
+    *
+    * @ingroup Gengrid
+    */
    EAPI Elm_Gengrid_Item  *elm_gengrid_item_direct_sorted_insert(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic, const void *data, Eina_Compare_Cb comp, Evas_Smart_Cb func, const void *func_data);
 
    /**
@@ -8273,7 +8565,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI void               elm_gengrid_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void               elm_gengrid_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select) EINA_ARG_NONNULL(1);
 
    /**
     * Get whether items on a given gengrid widget have their selection
@@ -8288,7 +8580,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI Eina_Bool          elm_gengrid_always_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Eina_Bool          elm_gengrid_always_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Set whether items on a given gengrid widget can be selected or not.
@@ -8306,7 +8598,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI void               elm_gengrid_no_select_mode_set(Evas_Object *obj, Eina_Bool no_select) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void               elm_gengrid_no_select_mode_set(Evas_Object *obj, Eina_Bool no_select) EINA_ARG_NONNULL(1);
 
    /**
     * Get whether items on a given gengrid widget can be selected or
@@ -8320,7 +8612,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI Eina_Bool          elm_gengrid_no_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Eina_Bool          elm_gengrid_no_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Enable or disable multi-selection in a given gengrid widget
@@ -8329,11 +8621,11 @@ extern "C" {
     * @param multi @c EINA_TRUE, to enable multi-selection,
     * @c EINA_FALSE to disable it.
     *
-    * Multi-selection is the ability for one to have @b more than one
+    * Multi-selection is the ability to have @b more than one
     * item selected, on a given gengrid, simultaneously. When it is
     * enabled, a sequence of clicks on different items will make them
     * all selected, progressively. A click on an already selected item
-    * will unselect it. If interecting via the keyboard,
+    * will unselect it. If interacting via the keyboard,
     * multi-selection is enabled while holding the "Shift" key.
     *
     * @note By default, multi-selection is @b disabled on gengrids
@@ -8378,7 +8670,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI void               elm_gengrid_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void               elm_gengrid_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce) EINA_ARG_NONNULL(1);
 
    /**
     * Get whether bouncing effects are enabled or disabled, for a
@@ -8394,7 +8686,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI void               elm_gengrid_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void               elm_gengrid_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce) EINA_ARG_NONNULL(1);
 
    /**
     * Set a given gengrid widget's scrolling page size, relative to
@@ -8428,7 +8720,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI void               elm_gengrid_page_relative_set(Evas_Object *obj, double h_pagerel, double v_pagerel) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void               elm_gengrid_page_relative_set(Evas_Object *obj, double h_pagerel, double v_pagerel) EINA_ARG_NONNULL(1);
 
    /**
     * Get a given gengrid widget's scrolling page size, relative to
@@ -8444,7 +8736,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI void               elm_gengrid_page_relative_get(const Evas_Object *obj, double *h_pagerel, double *v_pagerel) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void               elm_gengrid_page_relative_get(const Evas_Object *obj, double *h_pagerel, double *v_pagerel) EINA_ARG_NONNULL(1);
 
    /**
     * Set a given gengrid widget's scrolling page size
@@ -8472,7 +8764,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI void               elm_gengrid_page_size_set(Evas_Object *obj, Evas_Coord h_pagesize, Evas_Coord v_pagesize) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void               elm_gengrid_page_size_set(Evas_Object *obj, Evas_Coord h_pagesize, Evas_Coord v_pagesize) EINA_ARG_NONNULL(1);
 
    /**
     * @brief Get gengrid current page number.
@@ -8490,7 +8782,7 @@ extern "C" {
     * @see elm_gengrid_page_show()
     * @see elm_gengrid_page_brint_in()
     */
-   EAPI void         elm_gengrid_current_page_get(const Evas_Object *obj, int *h_pagenumber, int *v_pagenumber) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void         elm_gengrid_current_page_get(const Evas_Object *obj, int *h_pagenumber, int *v_pagenumber) EINA_ARG_NONNULL(1);
 
    /**
     * @brief Get scroll last page number.
@@ -8506,7 +8798,7 @@ extern "C" {
     * @see elm_gengrid_page_show()
     * @see elm_gengrid_page_brint_in()
     */
-   EAPI void         elm_gengrid_last_page_get(const Evas_Object *obj, int *h_pagenumber, int *v_pagenumber) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void         elm_gengrid_last_page_get(const Evas_Object *obj, int *h_pagenumber, int *v_pagenumber) EINA_ARG_NONNULL(1);
 
    /**
     * Show a specific virtual region within the gengrid content object by page number.
@@ -8530,7 +8822,7 @@ extern "C" {
     *
     * @see elm_gengrid_page_bring_in()
     */
-   EAPI void         elm_gengrid_page_show(const Evas_Object *obj, int h_pagenumber, int v_pagenumber) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void         elm_gengrid_page_show(const Evas_Object *obj, int h_pagenumber, int v_pagenumber) EINA_ARG_NONNULL(1);
 
    /**
     * Show a specific virtual region within the gengrid content object by page number.
@@ -8554,10 +8846,10 @@ extern "C" {
     *
     * @see elm_gengrid_page_show()
     */
-    EAPI void         elm_gengrid_page_bring_in(const Evas_Object *obj, int h_pagenumber, int v_pagenumber) EINA_ARG_NONNULL(1);
+    EINA_DEPRECATED EAPI void         elm_gengrid_page_bring_in(const Evas_Object *obj, int h_pagenumber, int v_pagenumber) EINA_ARG_NONNULL(1);
 
    /**
-    * Set for what direction a given gengrid widget will expand while
+    * Set the direction in which a given gengrid widget will expand while
     * placing its items.
     *
     * @param obj The gengrid object.
@@ -8606,7 +8898,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI Elm_Gengrid_Item  *elm_gengrid_first_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Elm_Gengrid_Item  *elm_gengrid_first_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Get the last item in a given gengrid widget
@@ -8622,7 +8914,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI Elm_Gengrid_Item  *elm_gengrid_last_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Elm_Gengrid_Item  *elm_gengrid_last_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Get the @b next item in a gengrid widget's internal list of items,
@@ -8639,7 +8931,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI Elm_Gengrid_Item  *elm_gengrid_item_next_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Elm_Gengrid_Item  *elm_gengrid_item_next_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
 
    /**
     * Get the @b previous item in a gengrid widget's internal list of items,
@@ -8656,7 +8948,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI Elm_Gengrid_Item  *elm_gengrid_item_prev_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Elm_Gengrid_Item  *elm_gengrid_item_prev_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
 
    /**
     * Get the gengrid object's handle which contains a given gengrid
@@ -8669,10 +8961,10 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI Evas_Object       *elm_gengrid_item_gengrid_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object       *elm_gengrid_item_gengrid_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
 
    /**
-    * Remove a gengrid item from the its parent, deleting it.
+    * Remove a gengrid item from its parent, deleting it.
     *
     * @param item The item to be removed.
     * @return @c EINA_TRUE on success or @c EINA_FALSE, otherwise.
@@ -8690,21 +8982,44 @@ extern "C" {
     * @param item The gengrid item
     *
     * This updates an item by calling all the item class functions
-    * again to get the icons, labels and states. Use this when the
-    * original item data has changed and you want thta changes to be
+    * again to get the contents, labels and states. Use this when the
+    * original item data has changed and you want the changes to be
     * reflected.
     *
     * @ingroup Gengrid
     */
    EAPI void               elm_gengrid_item_update(Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
+
+   /**
+    * Get the Gengrid Item class for the given Gengrid Item.
+    *
+    * @param item The gengrid item
+    *
+    * This returns the Gengrid_Item_Class for the given item. It can be used to examine
+    * the function pointers and item_style.
+    *
+    * @ingroup Gengrid
+    */
    EAPI const Elm_Gengrid_Item_Class *elm_gengrid_item_item_class_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
+
+   /**
+    * Get the Gengrid Item class for the given Gengrid Item.
+    *
+    * This sets the Gengrid_Item_Class for the given item. It can be used to examine
+    * the function pointers and item_style.
+    *
+    * @param item The gengrid item
+    * @param gic The gengrid item class describing the function pointers and the item style.
+    *
+    * @ingroup Gengrid
+    */
    EAPI void               elm_gengrid_item_item_class_set(Elm_Gengrid_Item *item, const Elm_Gengrid_Item_Class *gic) EINA_ARG_NONNULL(1, 2);
 
    /**
     * Return the data associated to a given gengrid item
     *
     * @param item The gengrid item.
-    * @return the data associated to this item.
+    * @return the data associated with this item.
     *
     * This returns the @c data value passed on the
     * elm_gengrid_item_append() and related item addition calls.
@@ -8717,18 +9032,19 @@ extern "C" {
    EAPI void              *elm_gengrid_item_data_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
 
    /**
-    * Set the data associated to a given gengrid item
+    * Set the data associated with a given gengrid item
     *
     * @param item The gengrid item
-    * @param data The new data pointer to set on it
+    * @param data The data pointer to set on it
     *
     * This @b overrides the @c data value passed on the
     * elm_gengrid_item_append() and related item addition calls. This
     * function @b won't call elm_gengrid_item_update() automatically,
-    * so you'd issue it afterwards if you want to hove the item
-    * updated to reflect the that new data.
+    * so you'd issue it afterwards if you want to have the item
+    * updated to reflect the new data.
     *
     * @see elm_gengrid_item_data_get()
+    * @see elm_gengrid_item_update()
     *
     * @ingroup Gengrid
     */
@@ -8739,12 +9055,10 @@ extern "C" {
     * gengrid's grid area.
     *
     * @param item The Gengrid item.
-    * @param x Pointer to variable where to store the item's <b>row
-    * number</b>.
-    * @param y Pointer to variable where to store the item's <b>column
-    * number</b>.
+    * @param x Pointer to variable to store the item's <b>row number</b>.
+    * @param y Pointer to variable to store the item's <b>column number</b>.
     *
-    * This returns the "logical" position of the item whithin the
+    * This returns the "logical" position of the item within the
     * gengrid. For example, @c (0, 1) would stand for first row,
     * second column.
     *
@@ -8759,7 +9073,7 @@ extern "C" {
     * @param selected Use @c EINA_TRUE, to make it selected, @c
     * EINA_FALSE to make it unselected
     *
-    * This sets the selected state of an item. If multi selection is
+    * This sets the selected state of an item. If multi-selection is
     * not enabled on the containing gengrid and @p selected is @c
     * EINA_TRUE, any other previously selected items will get
     * unselected in favor of this new one.
@@ -8768,7 +9082,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI void               elm_gengrid_item_selected_set(Elm_Gengrid_Item *item, Eina_Bool selected) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void elm_gengrid_item_selected_set(Elm_Gengrid_Item *item, Eina_Bool selected) EINA_ARG_NONNULL(1);
 
    /**
     * Get whether a given gengrid item is selected or not
@@ -8776,11 +9090,13 @@ extern "C" {
     * @param item The gengrid item
     * @return @c EINA_TRUE, if it's selected, @c EINA_FALSE otherwise
     *
+    * This API returns EINA_TRUE for all the items selected in multi-select mode as well.
+    *
     * @see elm_gengrid_item_selected_set() for more details
     *
     * @ingroup Gengrid
     */
-   EAPI Eina_Bool          elm_gengrid_item_selected_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Eina_Bool elm_gengrid_item_selected_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
 
    /**
     * Get the real Evas object created to implement the view of a
@@ -8821,12 +9137,12 @@ extern "C" {
    EAPI void               elm_gengrid_item_show(Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
 
    /**
-    * Animatedly bring in, to the visible are of a gengrid, a given
+    * Animatedly bring in, to the visible area of a gengrid, a given
     * item on it.
     *
     * @param item The gengrid item to display
     *
-    * This causes gengrig to jump to the given @p item item and show
+    * This causes gengrid to jump to the given @p item and show
     * it (by scrolling), if it is not fully visible. This will use
     * animation to do so and take a period of time to complete.
     *
@@ -8882,7 +9198,7 @@ extern "C" {
    EAPI void               elm_gengrid_item_tooltip_text_set(Elm_Gengrid_Item *item, const char *text) EINA_ARG_NONNULL(1);
 
    /**
-    * Set the content to be shown in a given gengrid item's tooltips
+    * Set the content to be shown in a given gengrid item's tooltip
     *
     * @param item The gengrid item.
     * @param func The function returning the tooltip contents.
@@ -9123,7 +9439,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI void               elm_gengrid_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void elm_gengrid_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Get the selected item in a given gengrid widget
@@ -9502,11 +9818,11 @@ extern "C" {
     *
     * Only one object can be added to the @c SWALLOW part (but you still can
     * have many @c SWALLOW parts and one object on each of them). Use the @c
-    * elm_layout_content_* set of functions to set, retrieve and unset objects
-    * as content of the @c SWALLOW. After being set to this part, the object
-    * size, position, visibility, clipping and other description properties
-    * will be totally controled by the description of the given part (inside
-    * the Edje theme file).
+    * elm_object_content_set/get/unset functions to set, retrieve and unset 
+    * objects as content of the @c SWALLOW. After being set to this part, the 
+    * object size, position, visibility, clipping and other description 
+    * properties will be totally controled by the description of the given part 
+    * (inside the Edje theme file).
     *
     * One can use @c evas_object_size_hint_* functions on the child to have some
     * kind of control over its behavior, but the resulting behavior will still
@@ -9561,7 +9877,7 @@ extern "C" {
     * column or row span if necessary.
     *
     * Again, we could have this design by adding a @ref Table widget to the @c
-    * SWALLOW part using elm_layout_content_set(). The same difference happens
+    * SWALLOW part using elm_object_content_part_set(). The same difference happens
     * here when choosing to use the Layout Table (a @c TABLE part) instead of
     * the @ref Table plus @c SWALLOW part. It's just a matter of convenience.
     *
@@ -9657,7 +9973,7 @@ extern "C" {
     *
     * Once the content object is set, a previously set one will be deleted.
     * If you want to keep that old content object, use the
-    * elm_layout_content_unset() function.
+    * elm_object_content_part_unset() function.
     *
     * @note In an Edje theme, the part used as a content container is called @c
     * SWALLOW. This is why the parameter name is called @p swallow, but it is
@@ -9665,13 +9981,13 @@ extern "C" {
     * elm_layout_box_append().
     *
     * @see elm_layout_box_append()
-    * @see elm_layout_content_get()
-    * @see elm_layout_content_unset()
+    * @see elm_object_content_part_get()
+    * @see elm_object_content_part_unset()
     * @see @ref secBox
     *
     * @ingroup Layout
     */
-   EAPI void               elm_layout_content_set(Evas_Object *obj, const char *swallow, Evas_Object *content) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void               elm_layout_content_set(Evas_Object *obj, const char *swallow, Evas_Object *content) EINA_ARG_NONNULL(1);
    /**
     * Get the child object in the given content part.
     *
@@ -9680,11 +9996,11 @@ extern "C" {
     *
     * @return The swallowed object or NULL if none or an error occurred
     *
-    * @see elm_layout_content_set()
+    * @see elm_object_content_part_set()
     *
     * @ingroup Layout
     */
-   EAPI Evas_Object       *elm_layout_content_get(const Evas_Object *obj, const char *swallow) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object       *elm_layout_content_get(const Evas_Object *obj, const char *swallow) EINA_ARG_NONNULL(1);
    /**
     * Unset the layout content.
     *
@@ -9694,11 +10010,11 @@ extern "C" {
     *
     * Unparent and return the content object which was set for this part.
     *
-    * @see elm_layout_content_set()
+    * @see elm_object_content_part_set()
     *
     * @ingroup Layout
     */
-    EAPI Evas_Object       *elm_layout_content_unset(Evas_Object *obj, const char *swallow) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object       *elm_layout_content_unset(Evas_Object *obj, const char *swallow) EINA_ARG_NONNULL(1);
    /**
     * Set the text of the given part
     *
@@ -9814,7 +10130,7 @@ extern "C" {
     *
     * The object will be removed from the box part and its lifetime will
     * not be handled by the layout anymore. This is equivalent to
-    * elm_layout_content_unset() for box.
+    * elm_object_content_part_unset() for box.
     *
     * @see elm_layout_box_append()
     * @see elm_layout_box_remove_all()
@@ -9885,7 +10201,7 @@ extern "C" {
     *
     * The object will be unpacked from the table part and its lifetime
     * will not be handled by the layout anymore. This is equivalent to
-    * elm_layout_content_unset() for table.
+    * elm_object_content_part_unset() for table.
     *
     * @see elm_layout_table_pack()
     * @see elm_layout_table_clear()
@@ -9922,7 +10238,7 @@ extern "C" {
     *
     * This returns the edje object. It is not expected to be used to then
     * swallow objects via edje_object_part_swallow() for example. Use
-    * elm_layout_content_set() instead so child object handling and sizing is
+    * elm_object_content_part_set() instead so child object handling and sizing is
     * done properly.
     *
     * @note This function should only be used if you really need to call some
@@ -9933,7 +10249,7 @@ extern "C" {
     * @see elm_object_signal_callback_add()
     * @see elm_object_signal_emit()
     * @see elm_object_text_part_set()
-    * @see elm_layout_content_set()
+    * @see elm_object_content_part_set()
     * @see elm_layout_box_append()
     * @see elm_layout_table_pack()
     * @see elm_layout_data_get()
@@ -10098,7 +10414,7 @@ extern "C" {
 #define elm_layout_icon_set(_ly, _obj) \
   do { \
     const char *sig; \
-    elm_layout_content_set((_ly), "elm.swallow.icon", (_obj)); \
+    elm_object_content_part_set((_ly), "elm.swallow.icon", (_obj)); \
     if ((_obj)) sig = "elm,state,icon,visible"; \
     else sig = "elm,state,icon,hidden"; \
     elm_object_signal_emit((_ly), sig, "elm"); \
@@ -10112,7 +10428,7 @@ extern "C" {
  * @ingroup Layout
  */
 #define elm_layout_icon_get(_ly) \
-  elm_layout_content_get((_ly), "elm.swallow.icon")
+  elm_object_content_part_get((_ly), "elm.swallow.icon")
 
 /**
  * @def elm_layout_end_set
@@ -10124,7 +10440,7 @@ extern "C" {
 #define elm_layout_end_set(_ly, _obj) \
   do { \
     const char *sig; \
-    elm_layout_content_set((_ly), "elm.swallow.end", (_obj)); \
+    elm_object_content_part_set((_ly), "elm.swallow.end", (_obj)); \
     if ((_obj)) sig = "elm,state,end,visible"; \
     else sig = "elm,state,end,hidden"; \
     elm_object_signal_emit((_ly), sig, "elm"); \
@@ -10138,7 +10454,7 @@ extern "C" {
  * @ingroup Layout
  */
 #define elm_layout_end_get(_ly) \
-  elm_layout_content_get((_ly), "elm.swallow.end")
+  elm_object_content_part_get((_ly), "elm.swallow.end")
 
 /**
  * @def elm_layout_label_set
@@ -10181,6 +10497,9 @@ extern "C" {
     * @li "timeout" - when timeout happens on notify and it's hidden
     * @li "block,clicked" - when a click outside of the notify happens
     *
+    * Default contents parts of the notify widget that you can use for are:
+    * @li "elm.swallow.content" - A content of the notify
+    *
     * @ref tutorial_notify show usage of the API.
     *
     * @{
@@ -10223,7 +10542,7 @@ extern "C" {
     * you want to keep that old content object, use the
     * elm_notify_content_unset() function.
     */
-   EAPI void              elm_notify_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void              elm_notify_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
    /**
     * @brief Unset the content of the notify widget
     *
@@ -10234,7 +10553,7 @@ extern "C" {
     *
     * @see elm_notify_content_set()
     */
-   EAPI Evas_Object      *elm_notify_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object      *elm_notify_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Return the content of the notify widget
     *
@@ -10243,7 +10562,7 @@ extern "C" {
     *
     * @see elm_notify_content_set()
     */
-   EAPI Evas_Object      *elm_notify_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object      *elm_notify_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Set the notify parent
     *
@@ -10345,6 +10664,10 @@ extern "C" {
     * hover is clicked it is dismissed(hidden), if the contents of the hover are
     * clicked that @b doesn't cause the hover to be dismissed.
     *
+    * A Hover object has two parents. One parent that owns it during creation
+    * and the other parent being the one over which the hover object spans.
+    *
+    *
     * @note The hover object will take up the entire space of @p target
     * object.
     *
@@ -10726,6 +11049,7 @@ extern "C" {
     * @li "anchor,down": Mouse button has been pressed on an anchor. The event_info
     * parameter for the callback will be an #Elm_Entry_Anchor_Info.
     * @li "preedit,changed": The preedit string has changed.
+    * @li "language,changed": Program language changed.
     *
     * @section entry-examples
     *
@@ -10833,6 +11157,7 @@ extern "C" {
     * @param entry The text to be displayed
     *
     * @deprecated Use elm_object_text_set() instead.
+    * @note Using this function bypasses text filters
     */
    EAPI void         elm_entry_entry_set(Evas_Object *obj, const char *entry) EINA_ARG_NONNULL(1);
    /**
@@ -11564,6 +11889,35 @@ extern "C" {
     */
    EAPI Elm_Input_Panel_Layout elm_entry_input_panel_layout_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
+    * Set the autocapitalization type on the immodule.
+    *
+    * @param obj The entry object
+    * @param autocapital_type The type of autocapitalization
+    */
+   EAPI void         elm_entry_autocapital_type_set(Evas_Object *obj, Elm_Autocapital_Type autocapital_type) EINA_ARG_NONNULL(1);
+   /**
+    * Retrieve the autocapitalization type on the immodule.
+    *
+    * @param obj The entry object
+    * @return autocapitalization type
+    */
+   EAPI Elm_Autocapital_Type elm_entry_autocapital_type_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * Sets the attribute to show the input panel automatically.
+    *
+    * @param obj The entry object
+    * @param enabled If true, the input panel is appeared when entry is clicked or has a focus
+    */
+   EAPI void elm_entry_input_panel_enabled_set(Evas_Object *obj, Eina_Bool enabled) EINA_ARG_NONNULL(1);
+   /**
+    * Retrieve the attribute to show the input panel automatically.
+    *
+    * @param obj The entry object
+    * @return EINA_TRUE if input panel will be appeared when the entry is clicked or has a focus, EINA_FALSE otherwise
+    */
+   EAPI Eina_Bool elm_entry_input_panel_enabled_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+   /**
     * @}
     */
 
@@ -11960,7 +12314,7 @@ extern "C" {
    /**
     * Get the style that the hover should use
     *
-    * Get the style the hover created by anchorblock will use.
+    * Get the style, the hover created by anchorblock will use.
     *
     * @param obj The anchorblock object
     * @return The style to use by the hover. NULL means the default is used.
@@ -12038,11 +12392,11 @@ extern "C" {
     * @image html img/widget/bubble/preview-02.png
     * @image latex img/widget/bubble/preview-02.eps
     *
-    * @brief The Bubble is a widget to show text similarly to how speech is
+    * @brief The Bubble is a widget to show text similar to how speech is
     * represented in comics.
     *
     * The bubble widget contains 5 important visual elements:
-    * @li The frame is a rectangle with rounded rectangles and an "arrow".
+    * @li The frame is a rectangle with rounded edjes and an "arrow".
     * @li The @p icon is an image to which the frame's arrow points to.
     * @li The @p label is a text which appears to the right of the icon if the
     * corner is "top_left" or "bottom_left" and is right aligned to the frame
@@ -12129,7 +12483,7 @@ extern "C" {
     *
     * This function sets the content shown on the middle of the bubble.
     */
-   EAPI void         elm_bubble_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void         elm_bubble_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
    /**
     * Get the content shown in the bubble
     *
@@ -12138,7 +12492,7 @@ extern "C" {
     * @param obj The bubble object
     * @return The content that is being used
     */
-   EAPI Evas_Object *elm_bubble_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_bubble_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Unset the content shown in the bubble
     *
@@ -12147,7 +12501,7 @@ extern "C" {
     * @param obj The bubble object
     * @return The content that was being used
     */
-   EAPI Evas_Object *elm_bubble_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_bubble_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Set the icon of the bubble
     *
@@ -12185,7 +12539,7 @@ extern "C" {
     *
     * This function sets the corner of the bubble. The corner will be used to
     * determine where the arrow in the frame points to and where label, icon and
-    * info arre shown.
+    * info are shown.
     *
     * Possible values for corner are:
     * @li "top_left" - Default
@@ -12210,7 +12564,7 @@ extern "C" {
    /**
     * @defgroup Photo Photo
     *
-    * For displaying the photo of a person (contact). Simple yet
+    * For displaying the photo of a person (contact). Simple, yet
     * with a very specific purpose.
     *
     * Signals that you can add callbacks for are:
@@ -12442,6 +12796,8 @@ extern "C" {
 
         Evas_Coord mx; /**< Momentum on X */
         Evas_Coord my; /**< Momentum on Y */
+
+        unsigned int n;  /**< Number of fingers */
      };
 
    /**
@@ -12459,7 +12815,6 @@ extern "C" {
    struct _Elm_Gesture_Line_Info
      {  /* Report line ends, timestamps, and momentum computed      */
         Elm_Gesture_Momentum_Info momentum; /**< Line momentum info */
-        unsigned int n;            /**< Number of fingers (lines)   */
         /* FIXME should be radians, bot degrees */
         double angle;              /**< Angle (direction) of lines  */
      };
@@ -13062,6 +13417,16 @@ extern "C" {
      };
 
    /**
+    * Types of zoom available.
+    */
+   typedef enum _Elm_Web_Zoom_Mode
+     {
+        ELM_WEB_ZOOM_MODE_MANUAL = 0, /**< Zoom controled normally by elm_web_zoom_set */
+        ELM_WEB_ZOOM_MODE_AUTO_FIT, /**< Zoom until content fits in web object */
+        ELM_WEB_ZOOM_MODE_AUTO_FILL, /**< Zoom until content fills web object */
+        ELM_WEB_ZOOM_MODE_LAST
+     } Elm_Web_Zoom_Mode;
+   /**
     * Opaque handler containing the features (such as statusbar, menubar, etc)
     * that are to be set on a newly requested window.
     */
@@ -13171,7 +13536,7 @@ extern "C" {
     *
     * @see elm_web_dialog_file selector_hook_set()
     */
-   typedef Evas_Object *(*Elm_Web_Dialog_File_Selector)(void *data, Evas_Object *obj, Eina_Bool allows_multiple, const char *accept_types, Eina_List **selected, Eina_Bool *ret);
+   typedef Evas_Object *(*Elm_Web_Dialog_File_Selector)(void *data, Evas_Object *obj, Eina_Bool allows_multiple, Eina_List *accept_types, Eina_List **selected, Eina_Bool *ret);
    /**
     * Callback type for the JS console message hook.
     *
@@ -13606,27 +13971,81 @@ extern "C" {
     */
    EAPI void                         elm_web_history_enable_set(Evas_Object *obj, Eina_Bool enable);
    /**
-    * Gets whether text-only zoom is set
+    * Sets the zoom level of the web object
+    *
+    * Zoom level matches the Webkit API, so 1.0 means normal zoom, with higher
+    * values meaning zoom in and lower meaning zoom out. This function will
+    * only affect the zoom level if the mode set with elm_web_zoom_mode_set()
+    * is ::ELM_WEB_ZOOM_MODE_MANUAL.
     *
     * @param obj The web object
+    * @param zoom The zoom level to set
+    */
+   EAPI void                         elm_web_zoom_set(Evas_Object *obj, double zoom);
+   /**
+    * Gets the current zoom level set on the web object
     *
-    * @return EINA_TRUE if zoom is set to affect only text, EINA_FALSE
-    * otherwise
+    * Note that this is the zoom level set on the web object and not that
+    * of the underlying Webkit one. In the ::ELM_WEB_ZOOM_MODE_MANUAL mode,
+    * the two zoom levels should match, but for the other two modes the
+    * Webkit zoom is calculated internally to match the chosen mode without
+    * changing the zoom level set for the web object.
+    *
+    * @param obj The web object
     *
-    * @see elm_web_zoom_text_only_set()
+    * @return The zoom level set on the object
     */
-   EAPI Eina_Bool                    elm_web_zoom_text_only_get(const Evas_Object *obj);
+   EAPI double                       elm_web_zoom_get(const Evas_Object *obj);
    /**
-    * Enables or disables zoom to affect only text
+    * Sets the zoom mode to use
     *
-    * If set, then the zoom level set to the page will only be applied on text,
-    * leaving other objects, such as images, at their original size.
+    * The modes can be any of those defined in ::Elm_Web_Zoom_Mode, except
+    * ::ELM_WEB_ZOOM_MODE_LAST. The default is ::ELM_WEB_ZOOM_MODE_MANUAL.
+    *
+    * ::ELM_WEB_ZOOM_MODE_MANUAL means the zoom level will be controlled
+    * with the elm_web_zoom_set() function.
+    * ::ELM_WEB_ZOOM_MODE_AUTO_FIT will calculate the needed zoom level to
+    * make sure the entirety of the web object's contents are shown.
+    * ::ELM_WEB_ZOOM_MODE_AUTO_FILL will calculate the needed zoom level to
+    * fit the contents in the web object's size, without leaving any space
+    * unused.
+    *
+    * @param obj The web object
+    * @param mode The mode to set
+    */
+   EAPI void                         elm_web_zoom_mode_set(Evas_Object *obj, Elm_Web_Zoom_Mode mode);
+   /**
+    * Gets the currently set zoom mode
     *
     * @param obj The web object
-    * @param setting EINA_TRUE to use text-only zoom, EINA_FALSE to have zoom
-    * affect the entire page
+    *
+    * @return The current zoom mode set for the object, or
+    * ::ELM_WEB_ZOOM_MODE_LAST on error
     */
-   EAPI void                         elm_web_zoom_text_only_set(Evas_Object *obj, Eina_Bool setting);
+   EAPI Elm_Web_Zoom_Mode            elm_web_zoom_mode_get(const Evas_Object *obj);
+   /**
+    * Shows the given region in the web object
+    *
+    * @param obj The web object
+    * @param x The x coordinate of the region to show
+    * @param y The y coordinate of the region to show
+    * @param w The width of the region to show
+    * @param h The height of the region to show
+    */
+   EAPI void                         elm_web_region_show(Evas_Object *obj, int x, int y, int w, int h);
+   /**
+    * Brings in the region to the visible area
+    *
+    * Like elm_web_region_show(), but it animates the scrolling of the object
+    * to show the area
+    *
+    * @param obj The web object
+    * @param x The x coordinate of the region to show
+    * @param y The y coordinate of the region to show
+    * @param w The width of the region to show
+    * @param h The height of the region to show
+    */
+   EAPI void                         elm_web_region_bring_in(Evas_Object *obj, int x, int y, int w, int h);
    /**
     * Sets the default dialogs to use an Inwin instead of a normal window
     *
@@ -13759,7 +14178,7 @@ extern "C" {
     * deleted, if you want to keep that old content object, use the
     * elm_hoversel_icon_unset() function.
     *
-    * @see elm_button_icon_set()
+    * @see elm_object_content_set() for the button widget
     */
    EAPI void               elm_hoversel_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
    /**
@@ -13769,7 +14188,7 @@ extern "C" {
     * @return The icon object
     *
     * Get the icon of the button that is always visible (before it is clicked
-    * and expanded). Also see elm_button_icon_get().
+    * and expanded). Also see elm_object_content_get() for the button widget.
     *
     * @see elm_hoversel_icon_set()
     */
@@ -13784,7 +14203,7 @@ extern "C" {
     * (before it is clicked and expanded).
     *
     * @see elm_hoversel_icon_set()
-    * @see elm_button_icon_unset()
+    * @see elm_object_content_unset() for the button widget
     */
    EAPI Evas_Object       *elm_hoversel_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
@@ -13951,6 +14370,7 @@ extern "C" {
     *
     * Smart callbacks one can listen to:
     * - "clicked" - when the user clicks on a toolbar item and becomes selected.
+    * - "language,changed" - when the program language changes
     *
     * Available styles for it:
     * - @c "default"
@@ -13989,7 +14409,8 @@ extern "C" {
         ELM_TOOLBAR_SHRINK_NONE,   /**< Set toolbar minimun size to fit all the items. */
         ELM_TOOLBAR_SHRINK_HIDE,   /**< Hide exceeding items. */
         ELM_TOOLBAR_SHRINK_SCROLL, /**< Allow accessing exceeding items through a scroller. */
-        ELM_TOOLBAR_SHRINK_MENU    /**< Inserts a button to pop up a menu with exceeding items. */
+        ELM_TOOLBAR_SHRINK_MENU,   /**< Inserts a button to pop up a menu with exceeding items. */
+        ELM_TOOLBAR_SHRINK_LAST    /**< Indicates error if returned by elm_toolbar_shrink_mode_get() */
      } Elm_Toolbar_Shrink_Mode;
 
    typedef struct _Elm_Toolbar_Item Elm_Toolbar_Item; /**< Item of Elm_Toolbar. Sub-type of Elm_Widget_Item. Can be created with elm_toolbar_item_append(), elm_toolbar_item_prepend() and functions to add items in relative positions, like elm_toolbar_item_insert_before(), and deleted with elm_toolbar_item_del(). */
@@ -15195,7 +15616,16 @@ extern "C" {
     * By default, a toolbar will be horizontal. Use this function to create a vertical toolbar.
     * @ingroup Toolbar
     */
-   EAPI void             elm_toolbar_orientation_set(Evas_Object *obj, Eina_Bool vertical) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void             elm_toolbar_orientation_set(Evas_Object *obj, Eina_Bool vertical) EINA_ARG_NONNULL(1);
+
+   /**
+    * Change a toolbar's orientation
+    * @param obj The toolbar object
+    * @param horizontal If @c EINA_TRUE, the toolbar is horizontal
+    * By default, a toolbar will be horizontal. Use this function to create a vertical toolbar.
+    * @ingroup Toolbar
+    */
+   EAPI void             elm_toolbar_horizontal_set(Evas_Object *obj, Eina_Bool horizontal) EINA_ARG_NONNULL(1);
 
    /**
     * Get a toolbar's orientation
@@ -15204,9 +15634,17 @@ extern "C" {
     * By default, a toolbar will be horizontal. Use this function to determine whether a toolbar is vertical.
     * @ingroup Toolbar
     */
-   EAPI Eina_Bool        elm_toolbar_orientation_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Eina_Bool        elm_toolbar_orientation_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
+    * Get a toolbar's orientation
+    * @param obj The toolbar object
+    * @return If @c EINA_TRUE, the toolbar is horizontal
+    * By default, a toolbar will be horizontal. Use this function to determine whether a toolbar is vertical.
+    * @ingroup Toolbar
+    */
+   EAPI Eina_Bool elm_toolbar_horizontal_get(const Evas_Object *obj);
+   /**
     * @}
     */
 
@@ -15225,6 +15663,8 @@ extern "C" {
    EAPI void         elm_object_tooltip_show(Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_object_tooltip_hide(Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_object_tooltip_text_set(Evas_Object *obj, const char *text) EINA_ARG_NONNULL(1, 2);
+   EAPI void         elm_object_tooltip_domain_translatable_text_set(Evas_Object *obj, const char *domain, const char *text) EINA_ARG_NONNULL(1, 3);
+#define elm_object_tooltip_translatable_text_set(obj, text) elm_object_tooltip_domain_translatable_text_set((obj), NULL, (text))
    EAPI void         elm_object_tooltip_content_cb_set(Evas_Object *obj, Elm_Tooltip_Content_Cb func, const void *data, Evas_Smart_Cb del_cb) EINA_ARG_NONNULL(1);
    EAPI void         elm_object_tooltip_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_object_tooltip_style_set(Evas_Object *obj, const char *style) EINA_ARG_NONNULL(1);
@@ -15251,7 +15691,10 @@ extern "C" {
     * cursors, also use ones coming from Edje theming files. Both
     * globally and per widget, Elementary makes it possible for one to
     * make the cursors lookup to be held on engines only or on
-    * Elementary's theme file, too.
+    * Elementary's theme file, too. To set cursor's hot spot,
+    * two data items should be added to cursor's theme: "hot_x" and
+    * "hot_y", that are the offset from upper-left corner of the cursor
+    * (coordinates 0,0).
     *
     * @{
     */
@@ -15724,10 +16167,11 @@ extern "C" {
     * - "selected" - when the user selected an item
     * - "unselected" - when the user unselected an item
     * - "longpressed" - an item in the list is long-pressed
-    * - "scroll,edge,top" - the list is scrolled until the top edge
-    * - "scroll,edge,bottom" - the list is scrolled until the bottom edge
-    * - "scroll,edge,left" - the list is scrolled until the left edge
-    * - "scroll,edge,right" - the list is scrolled until the right edge
+    * - "edge,top" - the list is scrolled until the top edge
+    * - "edge,bottom" - the list is scrolled until the bottom edge
+    * - "edge,left" - the list is scrolled until the left edge
+    * - "edge,right" - the list is scrolled until the right edge
+    * - "language,changed" - the program's language changed
     *
     * Available styles for it:
     * - @c "default"
@@ -16933,10 +17377,17 @@ extern "C" {
     * Available styles for it:
     * - @c "default"
     *
+    * Default contents parts of the slider widget that you can use for are:
+    * @li "elm.swallow.icon" - A icon of the slider
+    * @li "elm.swallow.end" - A end part content of the slider
+    * 
     * Here is an example on its usage:
     * @li @ref slider_example
     */
 
+#define ELM_SLIDER_CONTENT_ICON "elm.swallow.icon"
+#define ELM_SLIDER_CONTENT_END "elm.swallow.end"
+
    /**
     * @addtogroup Slider
     * @{
@@ -16995,7 +17446,7 @@ extern "C" {
     *
     * @ingroup Slider
     */
-   EAPI void               elm_slider_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void               elm_slider_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
 
    /**
     * Unset an icon set on a given slider widget.
@@ -17015,7 +17466,7 @@ extern "C" {
     *
     * @ingroup Slider
     */
-   EAPI Evas_Object       *elm_slider_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object       *elm_slider_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Retrieve the icon object set for a given slider widget.
@@ -17032,7 +17483,7 @@ extern "C" {
     *
     * @ingroup Slider
     */
-   EAPI Evas_Object       *elm_slider_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object       *elm_slider_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Set the end object of the slider object.
@@ -17052,7 +17503,7 @@ extern "C" {
     *
     * @ingroup Slider
     */
-   EAPI void               elm_slider_end_set(Evas_Object *obj, Evas_Object *end) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void               elm_slider_end_set(Evas_Object *obj, Evas_Object *end) EINA_ARG_NONNULL(1);
 
    /**
     * Unset an end object set on a given slider widget.
@@ -17072,7 +17523,7 @@ extern "C" {
     *
     * @ingroup Slider
     */
-   EAPI Evas_Object       *elm_slider_end_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object       *elm_slider_end_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Retrieve the end object set for a given slider widget.
@@ -17089,7 +17540,7 @@ extern "C" {
     *
     * @ingroup Slider
     */
-   EAPI Evas_Object       *elm_slider_end_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object       *elm_slider_end_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Set the (exact) length of the bar region of a given slider widget.
@@ -17419,10 +17870,19 @@ extern "C" {
     * @image html img/widget/actionslider/preview-00.png
     * @image latex img/widget/actionslider/preview-00.eps
     *
-    * A actionslider is a switcher for 2 or 3 labels with customizable magnet
-    * properties. The indicator is the element the user drags to choose a label.
-    * When the position is set with magnet, when released the indicator will be
-    * moved to it if it's nearest the magnetized position.
+    * An actionslider is a switcher for 2 or 3 labels with customizable magnet
+    * properties. The user drags and releases the indicator, to choose a label.
+    *
+    * Labels occupy the following positions.
+    * a. Left
+    * b. Right
+    * c. Center
+    *
+    * Positions can be enabled or disabled.
+    *
+    * Magnets can be set on the above positions.
+    *
+    * When the indicator is released, it will move to its nearest "enabled and magnetized" position.
     *
     * @note By default all positions are set as enabled.
     *
@@ -17579,10 +18039,6 @@ extern "C" {
     * - @c item_style - This is a constant string and simply defines the name
     *   of the item style. It @b must be specified and the default should be @c
     *   "default".
-    * - @c mode_item_style - This is a constant string and simply defines the
-    *   name of the style that will be used for mode animations. It can be left
-    *   as @c NULL if you don't plan to use Genlist mode. See
-    *   elm_genlist_item_mode_set() for more info.
     *
     * - @c func - A struct with pointers to functions that will be called when
     *   an item is going to be actually created. All of them receive a @c data
@@ -17598,9 +18054,9 @@ extern "C" {
     *   existing text parts in the Edje group implementing the item's theme.
     *   This function @b must return a strdup'()ed string, as the caller will
     *   free() it when done. See #Elm_Genlist_Item_Label_Get_Cb.
-    * - @c icon_get - The @c part parameter is the name string of one of the
-    *   existing (icon) swallow parts in the Edje group implementing the item's
-    *   theme. It must return @c NULL, when no icon is desired, or a valid
+    * - @c content_get - The @c part parameter is the name string of one of the
+    *   existing (content) swallow parts in the Edje group implementing the item's
+    *   theme. It must return @c NULL, when no content is desired, or a valid
     *   object handle, otherwise.  The object will be deleted by the genlist on
     *   its deletion or when the item is "unrealized".  See
     *   #Elm_Genlist_Item_Icon_Get_Cb.
@@ -17641,15 +18097,15 @@ extern "C" {
     *
     * An item in a genlist can have 0 or more text labels (they can be regular
     * text or textblock Evas objects - that's up to the style to determine), 0
-    * or more icons (which are simply objects swallowed into the genlist item's
+    * or more contents (which are simply objects swallowed into the genlist item's
     * theming Edje object) and 0 or more <b>boolean states</b>, which have the
     * behavior left to the user to define. The Edje part names for each of
     * these properties will be looked up, in the theme file for the genlist,
-    * under the Edje (string) data items named @c "labels", @c "icons" and @c
+    * under the Edje (string) data items named @c "labels", @c "contents" and @c
     * "states", respectively. For each of those properties, if more than one
     * part is provided, they must have names listed separated by spaces in the
     * data fields. For the default genlist item theme, we have @b one label
-    * part (@c "elm.text"), @b two icon parts (@c "elm.swalllow.icon" and @c
+    * part (@c "elm.text"), @b two content parts (@c "elm.swalllow.icon" and @c
     * "elm.swallow.end") and @b no state parts.
     *
     * A genlist item may be at one of several styles. Elementary provides one
@@ -17715,7 +18171,7 @@ extern "C" {
     * elm_genlist_item_data_get() returns the data pointer set by the item
     * creation functions.
     *
-    * If an item changes (state of boolean changes, label or icons change),
+    * If an item changes (state of boolean changes, label or contents change),
     * then use elm_genlist_item_update() to have genlist update the item with
     * the new state. Genlist will re-realize the item thus call the functions
     * in the _Elm_Genlist_Item_Class for that item.
@@ -17818,7 +18274,7 @@ extern "C" {
     *   caller to not use the object pointer from elm_genlist_item_object_get()
     *   in a way where it may point to freed objects.
     * - @c "unrealized" - This is called just before an item is unrealized.
-    *   After this call icon objects provided will be deleted and the item
+    *   After this call content objects provided will be deleted and the item
     *   object itself delete or be put into a floating cache.
     * - @c "drag,start,up" - This is called when the item in the list has been
     *   dragged (not scrolled) up.
@@ -17841,13 +18297,13 @@ extern "C" {
     *   started.
     * - @c "scroll,drag,stop" - This is called when dragging the content has
     *   stopped.
-    * - @c "scroll,edge,top" - This is called when the genlist is scrolled until
+    * - @c "edge,top" - This is called when the genlist is scrolled until
     *   the top edge.
-    * - @c "scroll,edge,bottom" - This is called when the genlist is scrolled
+    * - @c "edge,bottom" - This is called when the genlist is scrolled
     *   until the bottom edge.
-    * - @c "scroll,edge,left" - This is called when the genlist is scrolled
+    * - @c "edge,left" - This is called when the genlist is scrolled
     *   until the left edge.
-    * - @c "scroll,edge,right" - This is called when the genlist is scrolled
+    * - @c "edge,right" - This is called when the genlist is scrolled
     *   until the right edge.
     * - @c "multi,swipe,left" - This is called when the genlist is multi-touch
     *   swiped left.
@@ -17861,6 +18317,9 @@ extern "C" {
     *   pinched out.  "- @c multi,pinch,in" - This is called when the genlist is
     *   multi-touch pinched in.
     * - @c "swipe" - This is called when the genlist is swiped.
+    * - @c "moved" - This is called when a genlist item is moved.
+    * - @c "language,changed" - This is called when the program's language is
+    *   changed.
     *
     * @section Genlist_Examples Examples
     *
@@ -17894,18 +18353,14 @@ extern "C" {
         ELM_GENLIST_ITEM_GROUP = (1 << 1) /**< index of a group of items */
      } Elm_Genlist_Item_Flags;
    typedef struct _Elm_Genlist_Item_Class Elm_Genlist_Item_Class;  /**< Genlist item class definition structs */
+   #define Elm_Genlist_Item_Class Elm_Gen_Item_Class
    typedef struct _Elm_Genlist_Item       Elm_Genlist_Item; /**< Item of Elm_Genlist. Sub-type of Elm_Widget_Item */
+   #define Elm_Genlist_Item Elm_Gen_Item /**< Item of Elm_Genlist. Sub-type of Elm_Widget_Item */
    typedef struct _Elm_Genlist_Item_Class_Func Elm_Genlist_Item_Class_Func; /**< Class functions for genlist item class */
    typedef char        *(*Elm_Genlist_Item_Label_Get_Cb) (void *data, Evas_Object *obj, const char *part); /**< Label fetching class function for genlist item classes. */
-   typedef Evas_Object *(*Elm_Genlist_Item_Icon_Get_Cb)  (void *data, Evas_Object *obj, const char *part); /**< Icon fetching class function for genlist item classes. */
+   typedef Evas_Object *(*Elm_Genlist_Item_Content_Get_Cb)  (void *data, Evas_Object *obj, const char *part); /**< Content (swallowed object) fetching class function for genlist item classes. */
    typedef Eina_Bool    (*Elm_Genlist_Item_State_Get_Cb) (void *data, Evas_Object *obj, const char *part); /**< State fetching class function for genlist item classes. */
    typedef void         (*Elm_Genlist_Item_Del_Cb)      (void *data, Evas_Object *obj); /**< Deletion class function for genlist item classes. */
-   typedef void         (*GenlistItemMovedFunc)    (Evas_Object *obj, Elm_Genlist_Item *item, Elm_Genlist_Item *rel_item, Eina_Bool move_after); /** TODO: remove this by SeoZ **/
-
-   typedef char        *(*GenlistItemLabelGetFunc) (void *data, Evas_Object *obj, const char *part) EINA_DEPRECATED; /** DEPRECATED. Use Elm_Genlist_Item_Label_Get_Cb instead. */
-   typedef Evas_Object *(*GenlistItemIconGetFunc)  (void *data, Evas_Object *obj, const char *part) EINA_DEPRECATED; /** DEPRECATED. Use Elm_Genlist_Item_Icon_Get_Cb instead. */
-   typedef Eina_Bool    (*GenlistItemStateGetFunc) (void *data, Evas_Object *obj, const char *part) EINA_DEPRECATED; /** DEPRECATED. Use Elm_Genlist_Item_State_Get_Cb instead. */
-   typedef void         (*GenlistItemDelFunc)      (void *data, Evas_Object *obj) EINA_DEPRECATED; /** DEPRECATED. Use Elm_Genlist_Item_Del_Cb instead. */
 
    /**
     * @struct _Elm_Genlist_Item_Class
@@ -17920,17 +18375,15 @@ extern "C" {
    struct _Elm_Genlist_Item_Class
      {
         const char                *item_style; /**< style of this class. */
-        struct
+        struct Elm_Genlist_Item_Class_Func
           {
              Elm_Genlist_Item_Label_Get_Cb  label_get; /**< Label fetching class function for genlist item classes.*/
-             Elm_Genlist_Item_Icon_Get_Cb   icon_get; /**< Icon fetching class function for genlist item classes. */
+             Elm_Genlist_Item_Content_Get_Cb   content_get; /**< Content fetching class function for genlist item classes. */
              Elm_Genlist_Item_State_Get_Cb  state_get; /**< State fetching class function for genlist item classes. */
              Elm_Genlist_Item_Del_Cb        del; /**< Deletion class function for genlist item classes. */
-             GenlistItemMovedFunc     moved; // TODO: do not use this. change this to smart callback.
           } func;
-        const char                *mode_item_style;
      };
-
+   #define Elm_Genlist_Item_Class_Func Elm_Gen_Item_Class_Func
    /**
     * Add a new genlist widget to the given parent Elementary
     * (container) object
@@ -17958,7 +18411,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI void              elm_genlist_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void elm_genlist_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Enable or disable multi-selection in the genlist
     *
@@ -18037,7 +18490,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI void              elm_genlist_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void              elm_genlist_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select) EINA_ARG_NONNULL(1);
    /**
     * Get the always select mode.
     *
@@ -18049,7 +18502,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI Eina_Bool         elm_genlist_always_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Eina_Bool         elm_genlist_always_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Enable/disable the no select mode.
     *
@@ -18064,7 +18517,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI void              elm_genlist_no_select_mode_set(Evas_Object *obj, Eina_Bool no_select) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void              elm_genlist_no_select_mode_set(Evas_Object *obj, Eina_Bool no_select) EINA_ARG_NONNULL(1);
    /**
     * Gets whether the no select mode is enabled.
     *
@@ -18076,7 +18529,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI Eina_Bool         elm_genlist_no_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Eina_Bool         elm_genlist_no_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Enable/disable compress mode.
     *
@@ -18158,7 +18611,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI void              elm_genlist_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void              elm_genlist_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce) EINA_ARG_NONNULL(1);
    /**
     * Get whether the horizontal and vertical bouncing effect is enabled.
     *
@@ -18172,7 +18625,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI void              elm_genlist_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void              elm_genlist_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce) EINA_ARG_NONNULL(1);
    /**
     * Enable/disable homogenous mode.
     *
@@ -18416,6 +18869,32 @@ extern "C" {
     */
    EAPI const Eina_List  *elm_genlist_selected_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
+    * Get the mode item style of items in the genlist
+    * @param obj The genlist object
+    * @return The mode item style string, or NULL if none is specified
+    * 
+    * This is a constant string and simply defines the name of the
+    * style that will be used for mode animations. It can be
+    * @c NULL if you don't plan to use Genlist mode. See
+    * elm_genlist_item_mode_set() for more info.
+    * 
+    * @ingroup Genlist
+    */
+   EAPI const char       *elm_genlist_mode_item_style_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * Set the mode item style of items in the genlist
+    * @param obj The genlist object
+    * @param style The mode item style string, or NULL if none is desired
+    * 
+    * This is a constant string and simply defines the name of the
+    * style that will be used for mode animations. It can be
+    * @c NULL if you don't plan to use Genlist mode. See
+    * elm_genlist_item_mode_set() for more info.
+    * 
+    * @ingroup Genlist
+    */
+   EAPI void              elm_genlist_mode_item_style_set(Evas_Object *obj, const char *style) EINA_ARG_NONNULL(1);
+   /**
     * Get a list of realized items in genlist
     *
     * @param obj The genlist object
@@ -18464,7 +18943,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI Elm_Genlist_Item *elm_genlist_first_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Elm_Genlist_Item *elm_genlist_first_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Get the last item in the genlist
     *
@@ -18474,7 +18953,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI Elm_Genlist_Item *elm_genlist_last_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Elm_Genlist_Item *elm_genlist_last_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Set the scrollbar policy
     *
@@ -18522,7 +19001,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI Elm_Genlist_Item  *elm_genlist_item_next_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Elm_Genlist_Item  *elm_genlist_item_next_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
    /**
     * Get the @b previous item in a genlist widget's internal list of items,
     * given a handle to one of those items.
@@ -18538,7 +19017,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI Elm_Genlist_Item  *elm_genlist_item_prev_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Elm_Genlist_Item  *elm_genlist_item_prev_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
    /**
     * Get the genlist object's handle which contains a given genlist
     * item
@@ -18550,7 +19029,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI Evas_Object       *elm_genlist_item_genlist_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object       *elm_genlist_item_genlist_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
    /**
     * Get the parent item of the given item
     *
@@ -18593,7 +19072,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI void               elm_genlist_item_selected_set(Elm_Genlist_Item *item, Eina_Bool selected) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void elm_genlist_item_selected_set(Elm_Genlist_Item *item, Eina_Bool selected) EINA_ARG_NONNULL(1);
    /**
     * Get whether a given genlist item is selected or not
     *
@@ -18604,7 +19083,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI Eina_Bool          elm_genlist_item_selected_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Eina_Bool elm_genlist_item_selected_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
    /**
     * Sets the expanded state of an item.
     *
@@ -18866,7 +19345,8 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI void               elm_genlist_item_icons_orphan(Elm_Genlist_Item *it) EINA_ARG_NONNULL(1);
+   EAPI void               elm_genlist_item_contents_orphan(Elm_Genlist_Item *it) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void               elm_genlist_item_icons_orphan(Elm_Genlist_Item *it) EINA_ARG_NONNULL(1);
    /**
     * Get the real Evas object created to implement the view of a
     * given genlist item
@@ -19300,7 +19780,14 @@ extern "C" {
     * "changed" - This is called whenever the user changes the state of one of
     *             the check object(event_info is NULL).
     *
-    * @ref tutorial_check should give you a firm grasp of how to use this widget.
+    * Default contents parts of the check widget that you can use for are:
+    * @li "elm.swallow.content" - A icon of the check
+    *
+    * Default text parts of the check widget that you can use for are:
+    * @li "elm.text" - Label of the check
+    *
+    * @ref tutorial_check should give you a firm grasp of how to use this widget
+    * .
     * @{
     */
    /**
@@ -19336,16 +19823,16 @@ extern "C" {
     *
     * Once the icon object is set, a previously set one will be deleted.
     * If you want to keep that old content object, use the
-    * elm_check_icon_unset() function.
+    * elm_object_content_unset() function.
     */
-   EAPI void         elm_check_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void         elm_check_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
    /**
     * @brief Get the icon object of the check object
     *
     * @param obj The check object
     * @return The icon object
     */
-   EAPI Evas_Object *elm_check_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_check_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Unset the icon used for the check object
     *
@@ -19354,7 +19841,7 @@ extern "C" {
     *
     * Unparent and return the icon object which was set for this widget.
     */
-   EAPI Evas_Object *elm_check_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_check_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Set the on/off state of the check object
     *
@@ -19387,6 +19874,9 @@ extern "C" {
     * elm_check_state_set().
     */
    EAPI void         elm_check_state_pointer_set(Evas_Object *obj, Eina_Bool *statep) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void         elm_check_states_labels_set(Evas_Object *obj, const char *ontext, const char *offtext) EINA_ARG_NONNULL(1,2,3);
+   EINA_DEPRECATED EAPI void         elm_check_states_labels_get(const Evas_Object *obj, const char **ontext, const char **offtext) EINA_ARG_NONNULL(1,2,3);
+
    /**
     * @}
     */
@@ -19419,6 +19909,9 @@ extern "C" {
     * @li changed - This is called whenever the user changes the state of one of
     * the radio objects within the group of radio objects that work together.
     *
+    * Default contents parts of the radio widget that you can use for are:
+    * @li "elm.swallow.content" - A icon of the radio
+    *
     * @ref tutorial_radio show most of this API in action.
     * @{
     */
@@ -19457,7 +19950,7 @@ extern "C" {
     * want to keep that old content object, use the elm_radio_icon_unset()
     * function.
     */
-   EAPI void         elm_radio_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void         elm_radio_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
    /**
     * @brief Get the icon object of the radio object
     *
@@ -19466,7 +19959,7 @@ extern "C" {
     *
     * @see elm_radio_icon_set()
     */
-   EAPI Evas_Object *elm_radio_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_radio_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Unset the icon used for the radio object
     *
@@ -19477,7 +19970,7 @@ extern "C" {
     *
     * @see elm_radio_icon_set()
     */
-   EAPI Evas_Object *elm_radio_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_radio_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Add this radio to a group of other radio objects
     *
@@ -19645,6 +20138,7 @@ extern "C" {
     * @return The top object or NULL if none
     */
    EAPI Evas_Object *elm_pager_content_top_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
    /**
     * @}
     */
@@ -20557,6 +21051,9 @@ extern "C" {
     * - @c "wheel" (simple style, no text, no progression, only
     *      "pulse" effect is available)
     *
+    * Default contents parts of the progressbar widget that you can use for are:
+    * @li "elm.swallow.content" - A icon of the progressbar
+    * 
     * Here is an example on its usage:
     * @li @ref progressbar_example
     */
@@ -20696,7 +21193,7 @@ extern "C" {
     *
     * @ingroup Progressbar
     */
-   EAPI void         elm_progressbar_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void         elm_progressbar_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
 
    /**
     * Retrieve the icon object set for a given progress bar widget
@@ -20709,7 +21206,7 @@ extern "C" {
     *
     * @ingroup Progressbar
     */
-   EAPI Evas_Object *elm_progressbar_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_progressbar_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Unset an icon set on a given progress bar widget
@@ -20725,7 +21222,7 @@ extern "C" {
     *
     * @ingroup Progressbar
     */
-   EAPI Evas_Object *elm_progressbar_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_progressbar_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Set the (exact) length of the bar region of a given progress bar
@@ -23295,6 +23792,12 @@ extern "C" {
     * @li ELM_PANEL_ORIENT_LEFT
     * @li ELM_PANEL_ORIENT_RIGHT
     *
+    * To set/get/unset the content of the panel, you can use
+    * elm_object_content_set/get/unset APIs.
+    * Once the content object is set, a previously set one will be deleted.
+    * If you want to keep that old content object, use the
+    * elm_object_content_unset() function
+    *
     * @ref tutorial_panel shows one way to use this widget.
     * @{
     */
@@ -23342,7 +23845,7 @@ extern "C" {
     * If you want to keep that old content object, use the
     * elm_panel_content_unset() function.
     */
-   EAPI void                  elm_panel_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void                  elm_panel_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
    /**
     * @brief Get the content of the panel.
     *
@@ -23353,7 +23856,7 @@ extern "C" {
     *
     * @see elm_panel_content_set()
     */
-   EAPI Evas_Object          *elm_panel_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object          *elm_panel_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Unset the content of the panel.
     *
@@ -23364,7 +23867,7 @@ extern "C" {
     *
     * @see elm_panel_content_set()
     */
-   EAPI Evas_Object          *elm_panel_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object          *elm_panel_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Set the state of the panel.
     *
@@ -23414,10 +23917,20 @@ extern "C" {
     * Available styles for it:
     * - @c "default"
     *
+    * Default contents parts of the panes widget that you can use for are:
+    * @li "elm.swallow.left" - A leftside content of the panes
+    * @li "elm.swallow.right" - A rightside content of the panes
+    *
+    * If panes is displayed vertically, left content will be displayed at
+    * top.
+    * 
     * Here is an example on its usage:
     * @li @ref panes_example
     */
 
+#define ELM_PANES_CONTENT_LEFT "elm.swallow.left"
+#define ELM_PANES_CONTENT_RIGHT "elm.swallow.right"
+
    /**
     * @addtogroup Panes
     * @{
@@ -23454,7 +23967,7 @@ extern "C" {
     *
     * @ingroup Panes
     */
-   EAPI void                  elm_panes_content_left_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void                  elm_panes_content_left_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
 
    /**
     * Set the right content of the panes widget.
@@ -23474,7 +23987,7 @@ extern "C" {
     *
     * @ingroup Panes
     */
-   EAPI void                  elm_panes_content_right_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void                  elm_panes_content_right_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
 
    /**
     * Get the left content of the panes.
@@ -23488,7 +24001,7 @@ extern "C" {
     *
     * @ingroup Panes
     */
-   EAPI Evas_Object          *elm_panes_content_left_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object          *elm_panes_content_left_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Get the right content of the panes.
@@ -23502,7 +24015,7 @@ extern "C" {
     *
     * @ingroup Panes
     */
-   EAPI Evas_Object          *elm_panes_content_right_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object          *elm_panes_content_right_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Unset the left content used for the panes.
@@ -23517,7 +24030,7 @@ extern "C" {
     *
     * @ingroup Panes
     */
-   EAPI Evas_Object          *elm_panes_content_left_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object          *elm_panes_content_left_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Unset the right content used for the panes.
@@ -23603,6 +24116,8 @@ extern "C" {
     * @ingroup Panes
     */
    EAPI Eina_Bool             elm_panes_horizontal_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void                  elm_panes_fixed_set(Evas_Object *obj, Eina_Bool fixed) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool             elm_panes_fixed_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * @}
@@ -23966,6 +24481,9 @@ extern "C" {
     * Available styles for it:
     * - @c "default"
     *
+    * Default contents parts of the conformant widget that you can use for are:
+    * @li "elm.swallow.content" - A content of the conformant
+    *
     * See how to use this widget in this example:
     * @ref conformant_example
     */
@@ -24001,14 +24519,14 @@ extern "C" {
     *
     * Once the content object is set, a previously set one will be deleted.
     * If you want to keep that old content object, use the
-    * elm_conformat_content_unset() function.
+    * elm_object_content_unset() function.
     *
-    * @see elm_conformant_content_unset()
-    * @see elm_conformant_content_get()
+    * @see elm_object_content_unset()
+    * @see elm_object_content_get()
     *
     * @ingroup Conformant
     */
-   EAPI void         elm_conformant_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void         elm_conformant_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
 
    /**
     * Get the content of the conformant widget.
@@ -24018,14 +24536,14 @@ extern "C" {
     *
     * Return the content object which is set for this widget.
     * It won't be unparent from conformant. For that, use
-    * elm_conformant_content_unset().
+    * elm_object_content_unset().
     *
-    * @see elm_conformant_content_set() for more details.
-    * @see elm_conformant_content_unset()
+    * @see elm_object_content_set().
+    * @see elm_object_content_unset()
     *
     * @ingroup Conformant
     */
-   EAPI Evas_Object *elm_conformant_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_conformant_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Unset the content of the conformant widget.
@@ -24035,11 +24553,11 @@ extern "C" {
     *
     * Unparent and return the content object which was set for this widget.
     *
-    * @see elm_conformant_content_set() for more details.
+    * @see elm_object_content_set().
     *
     * @ingroup Conformant
     */
-   EAPI Evas_Object *elm_conformant_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_conformant_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Returns the Evas_Object that represents the content area.
@@ -24069,6 +24587,14 @@ extern "C" {
     * need to resize or move it frequently (the content object and its
     * children).
     *
+    * To set/get/unset the content of the mapbuf, you can use 
+    * elm_object_content_set/get/unset APIs. 
+    * Once the content object is set, a previously set one will be deleted.
+    * If you want to keep that old content object, use the
+    * elm_object_content_unset() function.
+    *
+    * To enable map, elm_mapbuf_enabled_set() should be used.
+    * 
     * See how to use this widget in this example:
     * @ref mapbuf_example
     */
@@ -24105,7 +24631,7 @@ extern "C" {
     *
     * @ingroup Mapbuf
     */
-   EAPI void         elm_mapbuf_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void         elm_mapbuf_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
 
    /**
     * Get the content of the mapbuf.
@@ -24119,7 +24645,7 @@ extern "C" {
     *
     * @ingroup Mapbuf
     */
-   EAPI Evas_Object *elm_mapbuf_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_mapbuf_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Unset the content of the mapbuf.
@@ -24133,7 +24659,7 @@ extern "C" {
     *
     * @ingroup Mapbuf
     */
-   EAPI Evas_Object *elm_mapbuf_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_mapbuf_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Enable or disable the map.
@@ -25910,6 +26436,9 @@ extern "C" {
     * Signals that you can add callbacks for are:
     * "dismissed" - the ctxpopup was dismissed
     *
+    * Default contents parts of the ctxpopup widget that you can use for are:
+    * @li "elm.swallow.content" - A content of the ctxpopup
+    *
     * @ref tutorial_ctxpopup shows the usage of a good deal of the API.
     * @{
     */
@@ -26959,117 +27488,117 @@ extern "C" {
     * @}
     */
 
-  typedef struct _Elm_Store                      Elm_Store;
-  typedef struct _Elm_Store_Filesystem           Elm_Store_Filesystem;
-  typedef struct _Elm_Store_Item                 Elm_Store_Item;
-  typedef struct _Elm_Store_Item_Filesystem      Elm_Store_Item_Filesystem;
-  typedef struct _Elm_Store_Item_Info            Elm_Store_Item_Info;
-  typedef struct _Elm_Store_Item_Info_Filesystem Elm_Store_Item_Info_Filesystem;
-  typedef struct _Elm_Store_Item_Mapping         Elm_Store_Item_Mapping;
-  typedef struct _Elm_Store_Item_Mapping_Empty   Elm_Store_Item_Mapping_Empty;
-  typedef struct _Elm_Store_Item_Mapping_Icon    Elm_Store_Item_Mapping_Icon;
-  typedef struct _Elm_Store_Item_Mapping_Photo   Elm_Store_Item_Mapping_Photo;
-  typedef struct _Elm_Store_Item_Mapping_Custom  Elm_Store_Item_Mapping_Custom;
-
-  typedef Eina_Bool (*Elm_Store_Item_List_Cb) (void *data, Elm_Store_Item_Info *info);
-  typedef void      (*Elm_Store_Item_Fetch_Cb) (void *data, Elm_Store_Item *sti);
-  typedef void      (*Elm_Store_Item_Unfetch_Cb) (void *data, Elm_Store_Item *sti);
-  typedef void     *(*Elm_Store_Item_Mapping_Cb) (void *data, Elm_Store_Item *sti, const char *part);
-
-  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_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;
-    };
+   typedef struct _Elm_Store                      Elm_Store;
+   typedef struct _Elm_Store_Filesystem           Elm_Store_Filesystem;
+   typedef struct _Elm_Store_Item                 Elm_Store_Item;
+   typedef struct _Elm_Store_Item_Filesystem      Elm_Store_Item_Filesystem;
+   typedef struct _Elm_Store_Item_Info            Elm_Store_Item_Info;
+   typedef struct _Elm_Store_Item_Info_Filesystem Elm_Store_Item_Info_Filesystem;
+   typedef struct _Elm_Store_Item_Mapping         Elm_Store_Item_Mapping;
+   typedef struct _Elm_Store_Item_Mapping_Empty   Elm_Store_Item_Mapping_Empty;
+   typedef struct _Elm_Store_Item_Mapping_Icon    Elm_Store_Item_Mapping_Icon;
+   typedef struct _Elm_Store_Item_Mapping_Photo   Elm_Store_Item_Mapping_Photo;
+   typedef struct _Elm_Store_Item_Mapping_Custom  Elm_Store_Item_Mapping_Custom;
 
-  struct _Elm_Store_Item_Mapping_Empty
-    {
-       Eina_Bool             dummy;
-    };
+   typedef Eina_Bool (*Elm_Store_Item_List_Cb) (void *data, Elm_Store_Item_Info *info);
+   typedef void      (*Elm_Store_Item_Fetch_Cb) (void *data, Elm_Store_Item *sti);
+   typedef void      (*Elm_Store_Item_Unfetch_Cb) (void *data, Elm_Store_Item *sti);
+   typedef void     *(*Elm_Store_Item_Mapping_Cb) (void *data, Elm_Store_Item *sti, const char *part);
 
-  struct _Elm_Store_Item_Mapping_Photo
-    {
-       int                   size;
-    };
+   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_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;
+     };
 
-  struct _Elm_Store_Item_Mapping_Custom
-    {
-       Elm_Store_Item_Mapping_Cb func;
-    };
+   struct _Elm_Store_Item_Mapping_Empty
+     {
+        Eina_Bool             dummy;
+     };
 
-  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;
-    };
+   struct _Elm_Store_Item_Mapping_Photo
+     {
+        int                   size;
+     };
 
-  struct _Elm_Store_Item_Info
-    {
-      Elm_Genlist_Item_Class       *item_class;
-      const Elm_Store_Item_Mapping *mapping;
-      void                         *data;
-      char                         *sort_id;
-    };
+   struct _Elm_Store_Item_Mapping_Custom
+     {
+        Elm_Store_Item_Mapping_Cb func;
+     };
 
-  struct _Elm_Store_Item_Info_Filesystem
-    {
-      Elm_Store_Item_Info  base;
-      char                *path;
-    };
+   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;
+     };
+
+   struct _Elm_Store_Item_Info
+     {
+        Elm_Genlist_Item_Class       *item_class;
+        const Elm_Store_Item_Mapping *mapping;
+        void                         *data;
+        char                         *sort_id;
+     };
+
+   struct _Elm_Store_Item_Info_Filesystem
+     {
+        Elm_Store_Item_Info  base;
+        char                *path;
+     };
 
 #define ELM_STORE_ITEM_MAPPING_END { ELM_STORE_ITEM_MAPPING_NONE, NULL, 0, { .empty = { EINA_TRUE } } }
 #define ELM_STORE_ITEM_MAPPING_OFFSET(st, it) offsetof(st, it)
 
-  EAPI void                    elm_store_free(Elm_Store *st);
+   EAPI void                    elm_store_free(Elm_Store *st);
 
-  EAPI Elm_Store              *elm_store_filesystem_new(void);
-  EAPI void                    elm_store_filesystem_directory_set(Elm_Store *st, const char *dir) EINA_ARG_NONNULL(1);
-  EAPI const char             *elm_store_filesystem_directory_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
-  EAPI const char             *elm_store_item_filesystem_path_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
+   EAPI Elm_Store              *elm_store_filesystem_new(void);
+   EAPI void                    elm_store_filesystem_directory_set(Elm_Store *st, const char *dir) EINA_ARG_NONNULL(1);
+   EAPI const char             *elm_store_filesystem_directory_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
+   EAPI const char             *elm_store_item_filesystem_path_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
 
-  EAPI void                    elm_store_target_genlist_set(Elm_Store *st, Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void                    elm_store_target_genlist_set(Elm_Store *st, Evas_Object *obj) EINA_ARG_NONNULL(1);
 
-  EAPI void                    elm_store_cache_set(Elm_Store *st, int max) EINA_ARG_NONNULL(1);
-  EAPI int                     elm_store_cache_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
-  EAPI void                    elm_store_list_func_set(Elm_Store *st, Elm_Store_Item_List_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
-  EAPI void                    elm_store_fetch_func_set(Elm_Store *st, Elm_Store_Item_Fetch_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
-  EAPI void                    elm_store_fetch_thread_set(Elm_Store *st, Eina_Bool use_thread) EINA_ARG_NONNULL(1);
-  EAPI Eina_Bool               elm_store_fetch_thread_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
+   EAPI void                    elm_store_cache_set(Elm_Store *st, int max) EINA_ARG_NONNULL(1);
+   EAPI int                     elm_store_cache_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
+   EAPI void                    elm_store_list_func_set(Elm_Store *st, Elm_Store_Item_List_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
+   EAPI void                    elm_store_fetch_func_set(Elm_Store *st, Elm_Store_Item_Fetch_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
+   EAPI void                    elm_store_fetch_thread_set(Elm_Store *st, Eina_Bool use_thread) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool               elm_store_fetch_thread_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
 
-  EAPI void                    elm_store_unfetch_func_set(Elm_Store *st, Elm_Store_Item_Unfetch_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
-  EAPI void                    elm_store_sorted_set(Elm_Store *st, Eina_Bool sorted) EINA_ARG_NONNULL(1);
-  EAPI Eina_Bool               elm_store_sorted_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
-  EAPI void                    elm_store_item_data_set(Elm_Store_Item *sti, void *data) EINA_ARG_NONNULL(1);
-  EAPI void                   *elm_store_item_data_get(Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
-  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);
+   EAPI void                    elm_store_unfetch_func_set(Elm_Store *st, Elm_Store_Item_Unfetch_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
+   EAPI void                    elm_store_sorted_set(Elm_Store *st, Eina_Bool sorted) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool               elm_store_sorted_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
+   EAPI void                    elm_store_item_data_set(Elm_Store_Item *sti, void *data) EINA_ARG_NONNULL(1);
+   EAPI void                   *elm_store_item_data_get(Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
+   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);
 
    /**
     * @defgroup SegmentControl SegmentControl
@@ -27094,7 +27623,7 @@ extern "C" {
     * Smart callbacks one can listen to:
     * - "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.
+    *   segment item pointer.
     *
     * Available styles for it:
     * - @c "default"
@@ -27516,8 +28045,8 @@ extern "C" {
     */
 
    EAPI Evas_Object *elm_factory_add(Evas_Object *parent);
-   EAPI void         elm_factory_content_set(Evas_Object *obj, Evas_Object *content);
-   EAPI Evas_Object *elm_factory_content_get(const Evas_Object *obj);
+   EINA_DEPRECATED EAPI void         elm_factory_content_set(Evas_Object *obj, Evas_Object *content);
+   EINA_DEPRECATED EAPI Evas_Object *elm_factory_content_get(const Evas_Object *obj);
    EAPI void         elm_factory_maxmin_mode_set(Evas_Object *obj, Eina_Bool enabled);
    EAPI Eina_Bool    elm_factory_maxmin_mode_get(const Evas_Object *obj);
    EAPI void         elm_factory_maxmin_reset_set(Evas_Object *obj);
@@ -27550,6 +28079,9 @@ extern "C" {
     * "prev,clicked" - the user clicked the prev button.
     * "rewind,clicked" - the user clicked the rewind button.
     * "stop,clicked" - the user clicked the stop button.
+    * 
+    * To set the video of the player, you can use elm_object_content_set() API.
+    * 
     */
 
    /**
@@ -27560,7 +28092,7 @@ extern "C" {
     *
     * This function inserts a new player widget on the canvas.
     *
-    * @see elm_player_video_set()
+    * @see elm_object_content_set()
     *
     * @ingroup Video
     */
@@ -27581,7 +28113,7 @@ extern "C" {
     *
     * @ingroup Video
     */
-   EAPI void elm_player_video_set(Evas_Object *player, Evas_Object *video);
+   EINA_DEPRECATED EAPI void elm_player_video_set(Evas_Object *player, Evas_Object *video);
 
    /**
     * @brief Add a new Elm_Video object to the given parent Elementary (container) object.
@@ -27642,7 +28174,7 @@ extern "C" {
     *
     * @ingroup Video
     */
-   EAPI Evas_Object *elm_video_emotion_get(Evas_Object *video);
+   EAPI Evas_Object *elm_video_emotion_get(const Evas_Object *video);
 
    /**
     * @brief Start to play the video
@@ -27688,7 +28220,7 @@ extern "C" {
     *
     * @ingroup Video
     */
-   EAPI Eina_Bool elm_video_is_playing(Evas_Object *video);
+   EAPI Eina_Bool elm_video_is_playing(const Evas_Object *video);
 
    /**
     * @brief Is it possible to seek inside the video.
@@ -27698,7 +28230,7 @@ extern "C" {
     *
     * @ingroup Video
     */
-   EAPI Eina_Bool elm_video_is_seekable(Evas_Object *video);
+   EAPI Eina_Bool elm_video_is_seekable(const Evas_Object *video);
 
    /**
     * @brief Is the audio muted.
@@ -27708,7 +28240,7 @@ extern "C" {
     *
     * @ingroup Video
     */
-   EAPI Eina_Bool elm_video_audio_mute_get(Evas_Object *video);
+   EAPI Eina_Bool elm_video_audio_mute_get(const Evas_Object *video);
 
    /**
     * @brief Change the mute state of the Elm_Video object.
@@ -27728,7 +28260,7 @@ extern "C" {
     *
     * @ingroup Video
     */
-   EAPI double elm_video_audio_level_get(Evas_Object *video);
+   EAPI double elm_video_audio_level_get(const Evas_Object *video);
 
    /**
     * @brief Set the audio level of anElm_Video object.
@@ -27740,18 +28272,19 @@ extern "C" {
     */
    EAPI void elm_video_audio_level_set(Evas_Object *video, double volume);
 
-   EAPI double elm_video_play_position_get(Evas_Object *video);
+   EAPI double elm_video_play_position_get(const Evas_Object *video);
    EAPI void elm_video_play_position_set(Evas_Object *video, double position);
-   EAPI double elm_video_play_length_get(Evas_Object *video);
+   EAPI double elm_video_play_length_get(const Evas_Object *video);
    EAPI void elm_video_remember_position_set(Evas_Object *video, Eina_Bool remember);
-   EAPI Eina_Bool elm_video_remember_position_get(Evas_Object *video);
-   EAPI const char *elm_video_title_get(Evas_Object *video);
+   EAPI Eina_Bool elm_video_remember_position_get(const Evas_Object *video);
+   EAPI const char *elm_video_title_get(const Evas_Object *video);
    /**
     * @}
     */
 
    /**
     * @defgroup Naviframe Naviframe
+    * @ingroup Elementary
     *
     * @brief Naviframe is a kind of view manager for the applications.
     *
@@ -27767,29 +28300,40 @@ extern "C" {
     * application.
     *
     * Signals that you can add callback for are:
-    *
     * @li "transition,finished" - When the transition is finished in changing
     *     the item
     * @li "title,clicked" - User clicked title area
     *
-    * Default contents parts for the naviframe items that you can use for are:
-    *
-    * @li "elm.swallow.content" - The main content of the page
-    * @li "elm.swallow.prev_btn" - The button to go to the previous page
-    * @li "elm.swallow.next_btn" - The button to go to the next page
+    * Default contents parts of the naviframe items that you can use for are:
+    * @li "elm.swallow.content" - A main content of the page
+    * @li "elm.swallow.icon" - A icon in the title area
+    * @li "elm.swallow.prev_btn" - A button to go to the previous page
+    * @li "elm.swallow.next_btn" - A button to go to the next page
     *
-    * Default text parts of naviframe items that you can be used are:
-    *
-    * @li "elm.text.title" - The title label in the title area
+    * Default text parts of the naviframe items that you can use for are:
+    * @li "elm.text.title" - Title label in the title area
+    * @li "elm.text.subtitle" - Sub-title label in the title area
     *
     * @ref tutorial_naviframe gives a good overview of the usage of the API.
+    */
+
+#define ELM_NAVIFRAME_ITEM_CONTENT_ICON "elm.swallow.icon"
+#define ELM_NAVIFRAME_ITEM_CONTENT_PREV_BTN "elm.swallow.prev_btn"
+#define ELM_NAVIFRAME_ITEM_CONTNET_NEXT_BTN "elm.swallow.next_btn"
+#define ELM_NAVIFRAME_ITEM_TEXT_SUBTITLE "elm.text.subtitle"
+
+   /**
+    * @addtogroup Naviframe
     * @{
     */
+
    /**
     * @brief Add a new Naviframe object to the parent.
     *
     * @param parent Parent object
     * @return New object or @c NULL, if it cannot be created
+    *
+    * @ingroup Naviframe
     */
    EAPI Evas_Object        *elm_naviframe_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
    /**
@@ -27816,6 +28360,8 @@ extern "C" {
     *
     * The following styles are available for this item:
     * @li @c "default"
+    *
+    * @ingroup Naviframe
     */
    EAPI Elm_Object_Item    *elm_naviframe_item_push(Evas_Object *obj, const char *title_label, Evas_Object *prev_btn, Evas_Object *next_btn, Evas_Object *content, const char *item_style) EINA_ARG_NONNULL(1, 5);
    /**
@@ -27830,21 +28376,50 @@ extern "C" {
     * stack will become visible.
     *
     * @see also elm_naviframe_content_preserve_on_pop_get()
+    *
+    * @ingroup Naviframe
     */
    EAPI Evas_Object        *elm_naviframe_item_pop(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Pop the items between the top and the above one on the given item.
     *
     * @param it The naviframe item
+    *
+    * @ingroup Naviframe
     */
    EAPI void                elm_naviframe_item_pop_to(Elm_Object_Item *it) EINA_ARG_NONNULL(1);
    /**
+   * Promote an item already in the naviframe stack to the top of the stack
+   *
+   * @param it The naviframe item
+   *
+   * This will take the indicated item and promote it to the top of the stack
+   * as if it had been pushed there. The item must already be inside the
+   * naviframe stack to work.
+   *
+   */
+   EAPI void                elm_naviframe_item_promote(Elm_Object_Item *it) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Delete the given item instantly.
+    *
+    * @param it The naviframe item
+    *
+    * This just deletes the given item from the naviframe item list instantly.
+    * So this would not emit any signals for view transitions but just change
+    * the current view if the given item is a top one.
+    *
+    * @ingroup Naviframe
+    */
+   EAPI void                elm_naviframe_item_del(Elm_Object_Item *it) EINA_ARG_NONNULL(1);
+   /**
     * @brief preserve the content objects when items are popped.
     *
     * @param obj The naviframe object
     * @param preserve Enable the preserve mode if EINA_TRUE, disable otherwise
     *
     * @see also elm_naviframe_content_preserve_on_pop_get()
+    *
+    * @ingroup Naviframe
     */
    EAPI void                elm_naviframe_content_preserve_on_pop_set(Evas_Object *obj, Eina_Bool preserve) EINA_ARG_NONNULL(1);
    /**
@@ -27854,6 +28429,8 @@ extern "C" {
     * @return If @c EINA_TRUE, preserve mode is enabled
     *
     * @see also elm_naviframe_content_preserve_on_pop_set()
+    *
+    * @ingroup Naviframe
     */
    EAPI Eina_Bool           elm_naviframe_content_preserve_on_pop_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
@@ -27862,6 +28439,8 @@ extern "C" {
     * @param obj The naviframe object
     * @return The top item on the naviframe stack or @c NULL, if the stack is
     *         empty
+    *
+    * @ingroup Naviframe
     */
    EAPI Elm_Object_Item    *elm_naviframe_top_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
@@ -27870,6 +28449,8 @@ extern "C" {
     * @param obj The naviframe object
     * @return The bottom item on the naviframe stack or @c NULL, if the stack is
     *         empty
+    *
+    * @ingroup Naviframe
     */
    EAPI Elm_Object_Item    *elm_naviframe_bottom_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
@@ -27882,6 +28463,8 @@ extern "C" {
     * @li @c "default"
     *
     * @see also elm_naviframe_item_style_get()
+    *
+    * @ingroup Naviframe
     */
    EAPI void                elm_naviframe_item_style_set(Elm_Object_Item *it, const char *item_style) EINA_ARG_NONNULL(1);
    /**
@@ -27891,6 +28474,8 @@ extern "C" {
     * @return The current item style name
     *
     * @see also elm_naviframe_item_style_set()
+    *
+    * @ingroup Naviframe
     */
    EAPI const char         *elm_naviframe_item_style_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
    /**
@@ -27903,6 +28488,8 @@ extern "C" {
     * When the title area is invisible, then the controls would be hidden so as     * to expand the content area to full-size.
     *
     * @see also elm_naviframe_item_title_visible_get()
+    *
+    * @ingroup Naviframe
     */
    EAPI void                elm_naviframe_item_title_visible_set(Elm_Object_Item *it, Eina_Bool visible) EINA_ARG_NONNULL(1);
    /**
@@ -27912,10 +28499,35 @@ extern "C" {
     * @return If @c EINA_TRUE, title area is visible
     *
     * @see also elm_naviframe_item_title_visible_set()
+    *
+    * @ingroup Naviframe
     */
    EAPI Eina_Bool           elm_naviframe_item_title_visible_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
 
    /**
+    * @brief Set creating prev button automatically or not
+    *
+    * @param obj The naviframe object
+    * @param auto_pushed If @c EINA_TRUE, the previous button(back button) will
+    *        be created internally when you pass the @c NULL to the prev_btn
+    *        parameter in elm_naviframe_item_push
+    *
+    * @see also elm_naviframe_item_push()
+    */
+   EAPI void                elm_naviframe_prev_btn_auto_pushed_set(Evas_Object *obj, Eina_Bool auto_pushed) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Get a value whether prev button(back button) will be auto pushed or
+    *        not.
+    *
+    * @param obj The naviframe object
+    * @return If @c EINA_TRUE, prev button will be auto pushed.
+    *
+    * @see also elm_naviframe_item_push()
+    *           elm_naviframe_prev_btn_auto_pushed_set()
+    */
+   EAPI Eina_Bool           elm_naviframe_prev_btn_auto_pushed_get(const Evas_Object *obj); EINA_ARG_NONNULL(1);
+
+   /**
     * @}
     */