Elementary Cursor: Add documentation about hot spots
[framework/uifw/elementary.git] / src / lib / Elementary.h.in
index 8455080..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?
@@ -195,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);
@@ -579,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.
@@ -3800,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.
     *
     *
@@ -4498,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
@@ -4615,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.
@@ -4627,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.
@@ -4639,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.
@@ -6144,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".
     * @{
     */
@@ -6189,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
     *
@@ -6202,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
     *
@@ -6214,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
     *
@@ -6992,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.
     * @{
@@ -7025,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
     *
@@ -7036,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
     *
@@ -7047,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
     *
@@ -7530,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);
@@ -7582,7 +7613,8 @@ extern "C" {
     * @code
     * obj = elm_check_add(parent);
     * elm_object_style_set(obj, "toggle");
-    * elm_check_states_labels_set(obj, "ON", "OFF");
+    * 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:
@@ -7628,6 +7660,8 @@ 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.
     */
    EINA_DEPRECATED EAPI void         elm_toggle_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
    /**
@@ -7639,6 +7673,8 @@ extern "C" {
     * Return the icon object which is set for this widget.
     *
     * @see elm_toggle_icon_set()
+    *
+    * @deprecated use elm_object_content_get() instead.
     */
    EINA_DEPRECATED EAPI Evas_Object *elm_toggle_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
@@ -7650,6 +7686,8 @@ 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.
     */
    EINA_DEPRECATED EAPI Evas_Object *elm_toggle_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
@@ -7658,14 +7696,21 @@ extern "C" {
     * @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.
     */
    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.
     */
    EINA_DEPRECATED EAPI void         elm_toggle_states_labels_get(const Evas_Object *obj, const char **onlabel, const char **offlabel) EINA_ARG_NONNULL(1);
    /**
@@ -7673,6 +7718,8 @@ extern "C" {
     *
     * @param obj The toggle object
     * @param state The state of @p obj
+    *
+    * @deprecated use elm_check_state_set() instead.
     */
    EINA_DEPRECATED EAPI void         elm_toggle_state_set(Evas_Object *obj, Eina_Bool state) EINA_ARG_NONNULL(1);
    /**
@@ -7680,6 +7727,8 @@ extern "C" {
     *
     * @param obj The toggle object
     * @return The state of @p obj
+    *
+    * @deprecated use elm_check_state_get() instead.
     */
    EINA_DEPRECATED EAPI Eina_Bool    elm_toggle_state_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
@@ -7687,6 +7736,8 @@ extern "C" {
     *
     * @param obj The toggle object
     * @param statep The state pointer of @p obj
+    *
+    * @deprecated use elm_check_state_pointer_set() instead.
     */
    EINA_DEPRECATED EAPI void         elm_toggle_state_pointer_set(Evas_Object *obj, Eina_Bool *statep) EINA_ARG_NONNULL(1);
    /**
@@ -7713,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.
     *
     * @{
@@ -7753,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
     *
@@ -7762,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
     *
@@ -7771,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);
    /**
     * @}
     */
@@ -7783,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
@@ -7956,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.
     *
@@ -8437,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);
 
    /**
@@ -8517,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
@@ -8745,7 +8849,7 @@ extern "C" {
     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.
@@ -8860,7 +8964,7 @@ extern "C" {
    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.
@@ -8879,20 +8983,43 @@ extern "C" {
     *
     * This updates an item by calling all the item class functions
     * again to get the contents, labels and states. Use this when the
-    * original item data has changed and you want thta changes to be
+    * 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.
@@ -8905,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
     */
@@ -8927,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.
     *
@@ -8947,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.
@@ -8964,6 +9090,8 @@ 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
@@ -9009,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.
     *
@@ -9070,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.
@@ -9690,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
@@ -9749,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.
     *
@@ -9845,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
@@ -9853,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.
     *
@@ -9868,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.
     *
@@ -9882,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
     *
@@ -10002,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()
@@ -10073,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()
@@ -10110,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
@@ -10121,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()
@@ -10286,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"); \
@@ -10300,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
@@ -10312,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"); \
@@ -10326,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
@@ -10369,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.
     *
     * @{
@@ -10411,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
     *
@@ -10422,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
     *
@@ -10431,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
     *
@@ -11026,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);
    /**
@@ -11757,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);
+
+   /**
     * @}
     */
 
@@ -12153,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.
@@ -12231,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
@@ -12322,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
     *
@@ -12331,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
     *
@@ -12340,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
     *
@@ -12403,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:
@@ -12635,6 +12796,8 @@ extern "C" {
 
         Evas_Coord mx; /**< Momentum on X */
         Evas_Coord my; /**< Momentum on Y */
+
+        unsigned int n;  /**< Number of fingers */
      };
 
    /**
@@ -12652,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  */
      };
@@ -14016,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);
    /**
@@ -14026,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()
     */
@@ -14041,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);
    /**
@@ -14247,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(). */
@@ -15453,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
@@ -15462,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);
+   /**
     * @}
     */
 
@@ -15511,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).
     *
     * @{
     */
@@ -17194,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
     * @{
@@ -17256,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.
@@ -17276,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.
@@ -17293,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.
@@ -17313,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.
@@ -17333,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.
@@ -17350,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.
@@ -19590,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
+    * .
     * @{
     */
    /**
@@ -19626,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
     *
@@ -19644,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
     *
@@ -19712,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.
     * @{
     */
@@ -19750,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
     *
@@ -19759,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
     *
@@ -19770,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
     *
@@ -20851,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
     */
@@ -20990,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
@@ -21003,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
@@ -21019,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
@@ -23589,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.
     * @{
     */
@@ -23636,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.
     *
@@ -23647,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.
     *
@@ -23658,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.
     *
@@ -23708,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
     * @{
@@ -23748,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.
@@ -23768,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.
@@ -23782,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.
@@ -23796,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.
@@ -23811,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.
@@ -24262,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
     */
@@ -24297,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.
@@ -24314,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.
@@ -24331,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.
@@ -24365,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
     */
@@ -24401,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.
@@ -24415,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.
@@ -24429,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.
@@ -26206,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.
     * @{
     */
@@ -27390,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"
@@ -27812,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);
@@ -27846,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.
+    * 
     */
 
    /**
@@ -27856,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
     */
@@ -27877,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.
@@ -27938,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
@@ -27984,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.
@@ -27994,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.
@@ -28004,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.
@@ -28024,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.
@@ -28036,12 +28272,12 @@ 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);
    /**
     * @}
     */
@@ -28064,24 +28300,28 @@ 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 text parts of naviframe items that you can be used are:
+    * 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
     *
-    * @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
     * @{
@@ -28149,6 +28389,17 @@ extern "C" {
     */
    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