Merge branch 'master' of 165.213.180.234:/slp/pkgs/e/elementary
[framework/uifw/elementary.git] / src / lib / Elementary.h.in
index 67c7e48..4c2fc63 100644 (file)
@@ -312,6 +312,7 @@ contact with the developers and maintainers.
 @ELM_EDBUS_DEF@ ELM_EDBUS
 @ELM_EFREET_DEF@ ELM_EFREET
 @ELM_ETHUMB_DEF@ ELM_ETHUMB
+@ELM_WEB_DEF@ ELM_WEB
 @ELM_EMAP_DEF@ ELM_EMAP
 @ELM_DEBUG_DEF@ ELM_DEBUG
 @ELM_ALLOCA_H_DEF@ ELM_ALLOCA_H
@@ -367,7 +368,7 @@ contact with the developers and maintainers.
 #include <Ecore_Evas.h>
 #include <Ecore_File.h>
 #include <Ecore_IMF.h>
-#include <Ecore_Con.h>
+@ELEMENTARY_ECORE_CON_INC@
 #include <Edje.h>
 
 #ifdef ELM_EDBUS
@@ -420,6 +421,8 @@ contact with the developers and maintainers.
 # define EAPI_MAIN EAPI
 #endif
 
+#define WILL_DEPRECATE /* API is deprecated in upstream EFL, will be deprecated in SLP soon */
+
 /* allow usage from c++ */
 #ifdef __cplusplus
 extern "C" {
@@ -584,19 +587,21 @@ extern "C" {
     * Called back when a widget's tooltip is activated and needs content.
     * @param data user-data given to elm_object_tooltip_content_cb_set()
     * @param obj owner widget.
+    * @param tooltip The tooltip object (affix content to this!)
     */
-   typedef Evas_Object *(*Elm_Tooltip_Content_Cb) (void *data, Evas_Object *obj);
+   typedef Evas_Object *(*Elm_Tooltip_Content_Cb) (void *data, Evas_Object *obj, Evas_Object *tooltip);
 
    /**
     * Called back when a widget's item tooltip is activated and needs content.
     * @param data user-data given to elm_object_tooltip_content_cb_set()
     * @param obj owner widget.
+    * @param tooltip The tooltip object (affix content to this!)
     * @param item context dependent item. As an example, if tooltip was
     *        set on Elm_List_Item, then it is of this type.
     */
-   typedef Evas_Object *(*Elm_Tooltip_Item_Content_Cb) (void *data, Evas_Object *obj, void *item);
+   typedef Evas_Object *(*Elm_Tooltip_Item_Content_Cb) (void *data, Evas_Object *obj, Evas_Object *tooltip, void *item);
 
-   typedef Eina_Bool (*Elm_Event_Cb) (void *data, Evas_Object *obj, Evas_Object *src, Evas_Callback_Type type, void *event_info);
+   typedef Eina_Bool (*Elm_Event_Cb) (void *data, Evas_Object *obj, Evas_Object *src, Evas_Callback_Type type, void *event_info); /**< Function prototype definition for callbacks on input events happening on Elementary widgets. @a data will receive the user data pointer passed to elm_object_event_callback_add(). @a src will be a pointer to the widget on which the input event took place. @a type will get the type of this event and @a event_info, the struct with details on this event. */
 
 #ifndef ELM_LIB_QUICKLAUNCH
 #define ELM_MAIN() int main(int argc, char **argv) {elm_init(argc, argv); return elm_main(argc, argv);} /**< macro to be used after the elm_main() function */
@@ -893,9 +898,24 @@ extern "C" {
 
    EAPI Eina_Bool    elm_need_efreet(void);
    EAPI Eina_Bool    elm_need_e_dbus(void);
+
+   /**
+    * This must be called before any other function that deals with
+    * elm_thumb objects or ethumb_client instances.
+    *
+    * @ingroup Thumb
+    */
    EAPI Eina_Bool    elm_need_ethumb(void);
 
    /**
+    * This must be called before any other function that deals with
+    * elm_web objects or ewk_view instances.
+    *
+    * @ingroup Web
+    */
+   EAPI Eina_Bool    elm_need_web(void);
+
+   /**
     * Set a new policy's value (for a given policy group/identifier).
     *
     * @param policy policy identifier, as in @ref Elm_Policy.
@@ -957,12 +977,38 @@ extern "C" {
     * @param label The new text of the label
     *
     * @note Elementary objects may have many labels (e.g. Action Slider)
+    * @deprecated Use elm_object_part_text_set() instead.
+    * @ingroup General
+    */
+   EINA_DEPRECATED EAPI void elm_object_text_part_set(Evas_Object *obj, const char *part, const char *label);
+
+   /**
+    * Set a label of an object
+    *
+    * @param obj The Elementary object
+    * @param part The text part name to set (NULL for the default label)
+    * @param label The new text of the label
+    *
+    * @note Elementary objects may have many labels (e.g. Action Slider)
     *
     * @ingroup General
     */
-   EAPI void         elm_object_text_part_set(Evas_Object *obj, const char *part, const char *label);
+   EAPI void elm_object_part_text_set(Evas_Object *obj, const char *part, const char *label);
 
-#define elm_object_text_set(obj, label) elm_object_text_part_set((obj), NULL, (label))
+#define elm_object_text_set(obj, label) elm_object_part_text_set((obj), NULL, (label))
+
+   /**
+    * Get a label of an object
+    *
+    * @param obj The Elementary object
+    * @param part The text part name to get (NULL for the default label)
+    * @return text of the label or NULL for any error
+    *
+    * @note Elementary objects may have many labels (e.g. Action Slider)
+    * @deprecated Use elm_object_part_text_get() instead.
+    * @ingroup General
+    */
+   EINA_DEPRECATED EAPI const char  *elm_object_text_part_get(const Evas_Object *obj, const char *part);
 
    /**
     * Get a label of an object
@@ -975,16 +1021,16 @@ extern "C" {
     *
     * @ingroup General
     */
-   EAPI const char  *elm_object_text_part_get(const Evas_Object *obj, const char *part);
+   EAPI const char  *elm_object_part_text_get(const Evas_Object *obj, const char *part);
 
-#define elm_object_text_get(obj) elm_object_text_part_get((obj), NULL)
+#define elm_object_text_get(obj) elm_object_part_text_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(),
+    * internally and set it on the object using elm_object_part_text_set(),
     * also storing the original string so that it can be automatically
     * translated when the language is changed with elm_language_set().
     *
@@ -1011,7 +1057,7 @@ extern "C" {
    /**
     * Gets the original string set as translatable for an object
     *
-    * When setting translated strings, the function elm_object_text_part_get()
+    * When setting translated strings, the function elm_object_part_text_get()
     * will return the translation returned by @c gettext(). To get the
     * original string use this function.
     *
@@ -1034,12 +1080,38 @@ extern "C" {
     * @param content The new content of the object
     *
     * @note Elementary objects may have many contents
+    * @deprecated Use elm_object_part_content_set instead.
+    * @ingroup General
+    */
+   EINA_DEPRECATED EAPI void elm_object_content_part_set(Evas_Object *obj, const char *part, Evas_Object *content);
+
+   /**
+    * Set a content of an object
+    *
+    * @param obj The Elementary object
+    * @param part The content part name to set (NULL for the default content)
+    * @param content The new content of the object
+    *
+    * @note Elementary objects may have many contents
     *
     * @ingroup General
     */
-   EAPI void elm_object_content_part_set(Evas_Object *obj, const char *part, Evas_Object *content);
+   EAPI void elm_object_part_content_set(Evas_Object *obj, const char *part, Evas_Object *content);
 
-#define elm_object_content_set(obj, content) elm_object_content_part_set((obj), NULL, (content))
+#define elm_object_content_set(obj, content) elm_object_part_content_set((obj), NULL, (content))
+
+   /**
+    * Get a content of an object
+    *
+    * @param obj The Elementary object
+    * @param item The content part name to get (NULL for the default content)
+    * @return content of the object or NULL for any error
+    *
+    * @note Elementary objects may have many contents
+    * @deprecated Use elm_object_part_content_get instead.
+    * @ingroup General
+    */
+   EINA_DEPRECATED EAPI Evas_Object *elm_object_content_part_get(const Evas_Object *obj, const char *part);
 
    /**
     * Get a content of an object
@@ -1052,9 +1124,21 @@ extern "C" {
     *
     * @ingroup General
     */
-   EAPI Evas_Object *elm_object_content_part_get(const Evas_Object *obj, const char *part);
+   EAPI Evas_Object *elm_object_part_content_get(const Evas_Object *obj, const char *part);
 
-#define elm_object_content_get(obj) elm_object_content_part_get((obj), NULL)
+#define elm_object_content_get(obj) elm_object_part_content_get((obj), NULL)
+
+   /**
+    * Unset a content of an object
+    *
+    * @param obj The Elementary object
+    * @param item The content part name to unset (NULL for the default content)
+    *
+    * @note Elementary objects may have many contents
+    * @deprecated Use elm_object_part_content_unset instead.
+    * @ingroup General
+    */
+   EINA_DEPRECATED EAPI Evas_Object *elm_object_content_part_unset(Evas_Object *obj, const char *part);
 
    /**
     * Unset a content of an object
@@ -1066,9 +1150,19 @@ extern "C" {
     *
     * @ingroup General
     */
-   EAPI Evas_Object *elm_object_content_part_unset(Evas_Object *obj, const char *part);
+   EAPI Evas_Object *elm_object_part_content_unset(Evas_Object *obj, const char *part);
+
+#define elm_object_content_unset(obj) elm_object_part_content_unset((obj), NULL)
 
-#define elm_object_content_unset(obj) elm_object_content_part_unset((obj), NULL)
+   /**
+    * Set the text to read out when in accessibility mode
+    *
+    * @param obj The object which is to be described
+    * @param txt The text that describes the widget to people with poor or no vision
+    *
+    * @ingroup General
+    */
+   EAPI void elm_object_access_info_set(Evas_Object *obj, const char *txt);
 
    /**
     * Get the widget object's handle which contains a given item
@@ -1090,12 +1184,25 @@ extern "C" {
     * @param content The new content of the object item
     *
     * @note Elementary object items may have many contents
+    * @deprecated Use elm_object_item_part_content_set instead.
+    * @ingroup General
+    */
+   EINA_DEPRECATED EAPI void elm_object_item_content_part_set(Elm_Object_Item *it, const char *part, Evas_Object *content);
+
+   /**
+    * Set a content of an object item
+    *
+    * @param it The Elementary object item
+    * @param part The content part name to set (NULL for the default content)
+    * @param content The new content of the object item
+    *
+    * @note Elementary object items may have many contents
     *
     * @ingroup General
     */
-   EAPI void elm_object_item_content_part_set(Elm_Object_Item *it, const char *part, Evas_Object *content);
+   EAPI void elm_object_item_part_content_set(Elm_Object_Item *it, const char *part, Evas_Object *content);
 
-#define elm_object_item_content_set(it, content) elm_object_item_content_part_set((it), NULL, (content))
+#define elm_object_item_content_set(it, content) elm_object_item_part_content_set((it), NULL, (content))
 
    /**
     * Get a content of an object item
@@ -1105,12 +1212,37 @@ extern "C" {
     * @return content of the object item or NULL for any error
     *
     * @note Elementary object items may have many contents
-    *
+    * @deprecated Use elm_object_item_part_content_get instead.
     * @ingroup General
     */
    EAPI Evas_Object *elm_object_item_content_part_get(const Elm_Object_Item *it, const char *part);
 
-#define elm_object_item_content_get(it) elm_object_item_content_part_get((it), NULL)
+   /**
+    * Get a content of an object item
+    *
+    * @param it The Elementary object item
+    * @param part The content part name to unset (NULL for the default content)
+    * @return content of the object item or NULL for any error
+    *
+    * @note Elementary object items may have many contents
+    *
+    * @ingroup General
+    */
+   EAPI Evas_Object *elm_object_item_part_content_get(const Elm_Object_Item *it, const char *part);
+
+#define elm_object_item_content_get(it) elm_object_item_part_content_get((it), NULL)
+
+   /**
+    * Unset a content of an object item
+    *
+    * @param it The Elementary object item
+    * @param part The content part name to unset (NULL for the default content)
+    *
+    * @note Elementary object items may have many contents
+    * @deprecated Use elm_object_item_part_content_unset instead.
+    * @ingroup General
+    */
+   EINA_DEPRECATED EAPI Evas_Object *elm_object_item_content_part_unset(Elm_Object_Item *it, const char *part);
 
    /**
     * Unset a content of an object item
@@ -1122,9 +1254,22 @@ extern "C" {
     *
     * @ingroup General
     */
-   EAPI Evas_Object *elm_object_item_content_part_unset(Elm_Object_Item *it, const char *part);
+   EAPI Evas_Object *elm_object_item_part_content_unset(Elm_Object_Item *it, const char *part);
+
+#define elm_object_item_content_unset(it) elm_object_item_part_content_unset((it), NULL)
 
-#define elm_object_item_content_unset(it, content) elm_object_item_content_part_unset((it), (content))
+   /**
+    * 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)
+    * @param label The new text of the label
+    *
+    * @note Elementary object items may have many labels
+    * @deprecated Use elm_object_item_part_text_set instead.
+    * @ingroup General
+    */
+   WILL_DEPRECATE  EAPI void elm_object_item_text_part_set(Elm_Object_Item *it, const char *part, const char *label);
 
    /**
     * Set a label of an object item
@@ -1137,9 +1282,9 @@ extern "C" {
     *
     * @ingroup General
     */
-   EAPI void elm_object_item_text_part_set(Elm_Object_Item *it, const char *part, const char *label);
+   EAPI void elm_object_item_part_text_set(Elm_Object_Item *it, const char *part, const char *label);
 
-#define elm_object_item_text_set(it, label) elm_object_item_text_part_set((it), NULL, (label))
+#define elm_object_item_text_set(it, label) elm_object_item_part_text_set((it), NULL, (label))
 
    /**
     * Get a label of an object item
@@ -1149,12 +1294,22 @@ extern "C" {
     * @return text of the label or NULL for any error
     *
     * @note Elementary object items may have many labels
+    * @deprecated Use elm_object_item_part_text_get instead.
+    * @ingroup General
+    */
+   WILL_DEPRECATE  EAPI const char *elm_object_item_text_part_get(const Elm_Object_Item *it, const char *part);
+   /**
+    * 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)
+    * @return text of the label or NULL for any error
+    *
+    * @note Elementary object items may have many labels
     *
     * @ingroup General
     */
-   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)
+   EAPI const char *elm_object_item_part_text_get(const Elm_Object_Item *it, const char *part);
 
    /**
     * Set the text to read out when in accessibility mode
@@ -1176,9 +1331,21 @@ 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_part_text_get((it), NULL)
+
+   /**
+    * Set the text to read out when in accessibility mode
+    *
+    * @param it The object item which is to be described
+    * @param txt The text that describes the widget to people with poor or no vision
+    *
+    * @ingroup General
+    */
+   EAPI void elm_object_item_access_info_set(Elm_Object_Item *it, const char *txt);
+
    /**
     * Get the data associated with an object item
-    * @param it The object item
+    * @param it The Elementary object item
     * @return The data associated with @p it
     *
     * @ingroup General
@@ -1187,7 +1354,7 @@ extern "C" {
 
    /**
     * Set the data associated with an object item
-    * @param it The object item
+    * @param it The Elementary object item
     * @param data The data to be associated with @p it
     *
     * @ingroup General
@@ -1206,7 +1373,40 @@ extern "C" {
     * @param source The signal's source.
     * @ingroup General
     */
-   EAPI void             elm_object_item_signal_emit(Elm_Object_Item *it, const char *emission, const char *source) EINA_ARG_NONNULL(1);
+   EAPI void elm_object_item_signal_emit(Elm_Object_Item *it, const char *emission, const char *source) EINA_ARG_NONNULL(1);
+
+   /**
+    * Set the disabled state of an widget item.
+    *
+    * @param obj The Elementary object item
+    * @param disabled The state to put in in: @c EINA_TRUE for
+    *        disabled, @c EINA_FALSE for enabled
+    *
+    * Elementary object item can be @b disabled, in which state they won't
+    * receive input and, in general, will be themed differently from
+    * their normal state, usually greyed out. Useful for contexts
+    * where you don't want your users to interact with some of the
+    * parts of you interface.
+    *
+    * This sets the state for the widget item, either disabling it or
+    * enabling it back.
+    *
+    * @ingroup Styles
+    */
+   EAPI void elm_object_item_disabled_set(Elm_Object_Item *it, Eina_Bool disabled) EINA_ARG_NONNULL(1);
+
+   /**
+    * Get the disabled state of an widget item.
+    *
+    * @param obj The Elementary object
+    * @return @c EINA_TRUE, if the widget item is disabled, @c EINA_FALSE
+    *            if it's enabled (or on errors)
+    *
+    * This gets the state of the widget, which might be enabled or disabled.
+    *
+    * @ingroup Styles
+    */
+   EAPI Eina_Bool    elm_object_item_disabled_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
 
    /**
     * @}
@@ -1821,7 +2021,7 @@ extern "C" {
     *
     * Useful when you want to force reloading of configuration values for
     * a profile. If one removes user custom configuration directories,
-    * for example, it will force a reload with system values insted.
+    * for example, it will force a reload with system values instead.
     *
     */
    EAPI void         elm_config_reload(void);
@@ -2318,6 +2518,25 @@ extern "C" {
    EAPI Eina_Bool        elm_object_focus_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
+    * Set/unset focus to a given Elementary object.
+    *
+    * @param obj The Elementary object to operate on.
+    * @param enable @c EINA_TRUE Set focus to a given object,
+    *               @c EINA_FALSE Unset focus to a given object.
+    *
+    * @note When you set focus to this object, if it can handle focus, will
+    * take the focus away from the one who had it previously and will, for
+    * now on, be the one receiving input events. Unsetting focus will remove
+    * the focus from @p obj, passing it back to the previous element in the
+    * focus chain list.
+    *
+    * @see elm_object_focus_get(), elm_object_focus_custom_chain_get()
+    *
+    * @ingroup Focus
+    */
+   EAPI void             elm_object_focus_set(Evas_Object *obj, Eina_Bool focus) EINA_ARG_NONNULL(1);
+
+   /**
     * Make a given Elementary object the focused one.
     *
     * @param obj The Elementary object to make focused.
@@ -2327,10 +2546,11 @@ extern "C" {
     * the one receiving input events.
     *
     * @see elm_object_focus_get()
+    * @deprecated use elm_object_focus_set() instead.
     *
     * @ingroup Focus
     */
-   EAPI void             elm_object_focus(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void             elm_object_focus(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Remove the focus from an Elementary object
@@ -2341,10 +2561,11 @@ extern "C" {
     * previous element in the focus chain list.
     *
     * @see elm_object_focus() and elm_object_focus_custom_chain_get()
+    * @deprecated use elm_object_focus_set() instead.
     *
     * @ingroup Focus
     */
-   EAPI void             elm_object_unfocus(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void             elm_object_unfocus(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Set the ability for an Element object to be focused
@@ -2492,7 +2713,7 @@ extern "C" {
     *
     * @ingroup Focus
     */
-   EAPI void             elm_object_tree_unfocusable_set(Evas_Object *obj, Eina_Bool tree_unfocusable); EINA_ARG_NONNULL(1);
+   EAPI void             elm_object_tree_unfocusable_set(Evas_Object *obj, Eina_Bool tree_unfocusable) EINA_ARG_NONNULL(1);
 
    /**
     * Get whether an Elementary object and its children are unfocusable or not.
@@ -2505,7 +2726,7 @@ extern "C" {
     *
     * @ingroup Focus
     */
-   EAPI Eina_Bool        elm_object_tree_unfocusable_get(const Evas_Object *obj); EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool        elm_object_tree_unfocusable_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * @defgroup Scrolling Scrolling
@@ -3031,8 +3252,6 @@ extern "C" {
     * @ingroup General
     */
    EAPI void             elm_object_signal_emit(Evas_Object *obj, const char *emission, const char *source) EINA_ARG_NONNULL(1);
-   EAPI void             elm_object_signal_callback_add(Evas_Object *obj, const char *emission, const char *source, void (*func) (void *data, Evas_Object *o, const char *emission, const char *source), void *data) EINA_ARG_NONNULL(1, 4);
-   EAPI void            *elm_object_signal_callback_del(Evas_Object *obj, const char *emission, const char *source, void (*func) (void *data, Evas_Object *o, const char *emission, const char *source)) EINA_ARG_NONNULL(1, 4);
 
    /**
     * Add a callback for a signal emitted by widget edje object.
@@ -4249,6 +4468,21 @@ extern "C" {
     */
    EAPI Evas_Object *elm_win_inlined_image_object_get(Evas_Object *obj);
    /**
+    * Determine whether a window has focus
+    * @param obj The window to query
+    * @return EINA_TRUE if the window exists and has focus, else EINA_FALSE
+    */
+   EAPI Eina_Bool    elm_win_focus_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * Get screen geometry details for the screen that a window is on
+    * @param obj The window to query
+    * @param x where to return the horizontal offset value. May be NULL.
+    * @param y where to return the vertical offset value. May be NULL.
+    * @param w where to return the width value. May be NULL.
+    * @param h where to return the height value. May be NULL.
+    */
+   EAPI void         elm_win_screen_size_get(const Evas_Object *obj, int *x, int *y, int *w, int *h) EINA_ARG_NONNULL(1);
+   /**
     * Set the enabled status for the focus highlight in a window
     *
     * This function will enable or disable the focus highlight only for the
@@ -4482,7 +4716,7 @@ extern "C" {
     * 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
+    * @li "overlay" - overlay of the bg
     *
     * Here is some sample code using it:
     * @li @ref bg_01_example_page
@@ -4597,12 +4831,12 @@ extern "C" {
     * deleted, even if you set the new one to NULL. If you want to keep that
     * old content object, use the elm_bg_overlay_unset() function.
     *
-    * @deprecated use elm_object_content_set() instead
+    * @deprecated use elm_object_part_content_set() instead
     *
     * @ingroup Bg
     */
 
-   EAPI void          elm_bg_overlay_set(Evas_Object *obj, Evas_Object *overlay) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  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.
@@ -4612,7 +4846,7 @@ extern "C" {
     *
     * Return the content object which is set for this widget
     *
-    * @deprecated use elm_object_content_get() instead
+    * @deprecated use elm_object_part_content_get() instead
     *
     * @ingroup Bg
     */
@@ -4626,11 +4860,11 @@ extern "C" {
     *
     * Unparent and return the overlay object which was set for this widget
     *
-    * @deprecated use elm_object_content_unset() instead
+    * @deprecated use elm_object_part_content_unset() instead
     *
     * @ingroup Bg
     */
-   EAPI Evas_Object  *elm_bg_overlay_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object  *elm_bg_overlay_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Set the size of the pixmap representation of the image.
@@ -4796,7 +5030,7 @@ extern "C" {
     *
     * @ingroup Icon
     */
-   EAPI Eina_Bool             elm_icon_memfile_set(Evas_Object *obj, const void *img, size_t size, const char *format, const char *key) EINA_ARG_NONNULL(1, 2);
+   EAPI Eina_Bool             elm_icon_memfile_set(Evas_Object *obj, const void *img, size_t size, const char *format, const char *key) EINA_ARG_NONNULL(1, 2);
    /**
     * Get the file that will be used as icon.
     *
@@ -6177,10 +6411,10 @@ extern "C" {
     * @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
+    * @li "icon" - 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
+    * @li "default" - Label of the button
     *
     * Follow through a complete example @ref button_example_01 "here".
     * @{
@@ -6265,9 +6499,9 @@ extern "C" {
     *
     * @param obj The button object
     * @param icon The icon object for the button
-    * @deprecated use elm_object_content_set() instead.
+    * @deprecated use elm_object_part_content_set() instead.
     */
-   EAPI void         elm_button_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void         elm_button_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
    /**
     * Get the icon used for the button
     *
@@ -6278,9 +6512,9 @@ extern "C" {
     * @param obj The button object
     * @return The icon object that is being used
     *
-    * @deprecated use elm_button_icon_unset() instead
+    * @deprecated use elm_object_part_content_get() instead
     */
-   EAPI Evas_Object *elm_button_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  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
     *
@@ -6291,9 +6525,9 @@ extern "C" {
     *
     * @param obj The button object
     * @return The icon object that was being used
-    * @deprecated use elm_object_content_unset() instead.
+    * @deprecated use elm_object_part_content_unset() instead.
     */
-   EAPI Evas_Object *elm_button_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  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
     *
@@ -7071,11 +7305,8 @@ 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
+    * Default contents parts of the scroller widget that you can use for are:
+    * @li "default" - A content of the scroller
     *
     * In @ref tutorial_scroller you'll find an example of how to use most of
     * this API.
@@ -7111,7 +7342,7 @@ extern "C" {
     * elm_scroller_content_unset() function.
     * @deprecated use elm_object_content_set() instead
     */
-   EAPI void         elm_scroller_content_set(Evas_Object *obj, Evas_Object *child) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void elm_scroller_content_set(Evas_Object *obj, Evas_Object *child) EINA_ARG_NONNULL(1);
    /**
     * @brief Get the content of the scroller widget
     *
@@ -7123,7 +7354,7 @@ extern "C" {
     * @see elm_scroller_content_set()
     * @deprecated use elm_object_content_get() instead.
     */
-   EAPI Evas_Object *elm_scroller_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object *elm_scroller_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Unset the content of the scroller widget
     *
@@ -7135,7 +7366,7 @@ extern "C" {
     * @see elm_scroller_content_set()
     * @deprecated use elm_object_content_unset() instead.
     */
-   EAPI Evas_Object *elm_scroller_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object *elm_scroller_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Set custom theme elements for the scroller
     *
@@ -7444,7 +7675,7 @@ extern "C" {
     *
     * The Label widget @b doesn't allow text to overflow its boundaries, if the
     * text doesn't fit the geometry of the label it will be ellipsized or be
-    * cut. Elementary provides several themes for this widget:
+    * cut. Elementary provides several styles for this widget:
     * @li default - No animation
     * @li marker - Centers the text in the label and make it bold by default
     * @li slide_long - The entire text appears from the right of the screen and
@@ -7556,8 +7787,7 @@ extern "C" {
     * @param size font size
     *
     * @warning NEVER use this. It is for hyper-special cases only. use styles
-    * instead. e.g. "big", "medium", "small" - or better name them by use:
-    * "title", "footnote", "quote" etc.
+    * instead. e.g. "default", "marker", "slide_long" etc.
     */
    EAPI void         elm_label_fontsize_set(Evas_Object *obj, int fontsize) EINA_ARG_NONNULL(1);
    /**
@@ -7570,8 +7800,7 @@ extern "C" {
     * @param a Alpha property background color of The label object
     *
     * @warning NEVER use this. It is for hyper-special cases only. use styles
-    * instead. e.g. "big", "medium", "small" - or better name them by use:
-    * "title", "footnote", "quote" etc.
+    * instead. e.g. "default", "marker", "slide_long" etc.
     */
    EAPI void         elm_label_text_color_set(Evas_Object *obj, unsigned int r, unsigned int g, unsigned int b, unsigned int a) EINA_ARG_NONNULL(1);
    /**
@@ -7581,8 +7810,7 @@ extern "C" {
     * @param align align mode ("left", "center", "right")
     *
     * @warning NEVER use this. It is for hyper-special cases only. use styles
-    * instead. e.g. "big", "medium", "small" - or better name them by use:
-    * "title", "footnote", "quote" etc.
+    * instead. e.g. "default", "marker", "slide_long" etc.
     */
    EAPI void         elm_label_text_align_set(Evas_Object *obj, const char *alignmode) EINA_ARG_NONNULL(1);
    /**
@@ -7595,8 +7823,7 @@ extern "C" {
     * @param a Alpha property background alpha of The label object
     *
     * @warning NEVER use this. It is for hyper-special cases only. use styles
-    * instead. e.g. "big", "medium", "small" - or better name them by use:
-    * "title", "footnote", "quote" etc.
+    * instead. e.g. "default", "marker", "slide_long" etc.
     */
    EAPI void         elm_label_background_color_set(Evas_Object *obj, unsigned int r, unsigned int g, unsigned int b, unsigned int a) EINA_ARG_NONNULL(1);
    /**
@@ -7657,152 +7884,6 @@ extern "C" {
     */
 
    /**
-    * @defgroup Toggle Toggle
-    *
-    * @image html img/widget/toggle/preview-00.png
-    * @image latex img/widget/toggle/preview-00.eps
-    *
-    * @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
-    *                 has been triggered by the cursor in the first place).
-    *
-    * @ref tutorial_toggle show how to use a toggle.
-    * @{
-    */
-   /**
-    * @brief Add a toggle to @p parent.
-    *
-    * @param parent The parent object
-    *
-    * @return The toggle object
-    */
-   EAPI Evas_Object *elm_toggle_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
-   /**
-    * @brief Sets the label to be displayed with the toggle.
-    *
-    * @param obj The toggle object
-    * @param label The label to be displayed
-    *
-    * @deprecated use elm_object_text_set() instead.
-    */
-   EINA_DEPRECATED EAPI void         elm_toggle_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
-   /**
-    * @brief Gets the label of the toggle
-    *
-    * @param obj  toggle object
-    * @return The label of the toggle
-    *
-    * @deprecated use elm_object_text_get() instead.
-    */
-   EINA_DEPRECATED EAPI const char  *elm_toggle_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   /**
-    * @brief Set the icon used for the toggle
-    *
-    * @param obj The toggle object
-    * @param icon The icon object for the button
-    *
-    * 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);
-   /**
-    * @brief Get the icon used for the toggle
-    *
-    * @param obj The toggle object
-    * @return The icon object that is being used
-    *
-    * 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);
-   /**
-    * @brief Unset the icon used for the toggle
-    *
-    * @param obj The toggle object
-    * @return The icon object that was being used
-    *
-    * 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);
-   /**
-    * @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);
-   /**
-    * @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);
-   /**
-    * @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);
-   /**
-    * @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);
-   /**
-    * @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);
-   /**
-    * @}
-    */
-
-   /**
     * @defgroup Frame Frame
     *
     * @image html img/widget/frame/preview-00.png
@@ -7823,7 +7904,7 @@ 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
+    * @li "default" - 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
@@ -7870,7 +7951,7 @@ extern "C" {
     *
     * @deprecated use elm_object_content_set() instead.
     */
-   EAPI void         elm_frame_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void         elm_frame_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
    /**
     * @brief Get the content of the frame widget
     *
@@ -7881,7 +7962,7 @@ extern "C" {
     *
     * @deprecated use elm_object_content_get() instead.
     */
-   EAPI Evas_Object *elm_frame_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object *elm_frame_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Unset the content of the frame widget
     *
@@ -7892,7 +7973,7 @@ extern "C" {
     *
     * @deprecated use elm_object_content_unset() instead.
     */
-   EAPI Evas_Object *elm_frame_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object *elm_frame_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @}
     */
@@ -8236,10 +8317,36 @@ extern "C" {
    typedef struct _Elm_Gengrid_Item_Class Elm_Gengrid_Item_Class; /**< Gengrid item class definition structs */
    typedef struct _Elm_Gengrid_Item Elm_Gengrid_Item; /**< Gengrid item handles */
    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_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. */
+   /**
+    * Label fetching class function for Elm_Gen_Item_Class.
+    * @param data The data passed in the item creation function
+    * @param obj The base widget object
+    * @param part The part name of the swallow
+    * @return The allocated (NOT stringshared) string to set as the label
+    */
+   typedef char        *(*Elm_Gengrid_Item_Label_Get_Cb) (void *data, Evas_Object *obj, const char *part);
+   /**
+    * Content (swallowed object) fetching class function for Elm_Gen_Item_Class.
+    * @param data The data passed in the item creation function
+    * @param obj The base widget object
+    * @param part The part name of the swallow
+    * @return The content object to swallow
+    */
+   typedef Evas_Object *(*Elm_Gengrid_Item_Content_Get_Cb)  (void *data, Evas_Object *obj, const char *part);
+   /**
+    * State fetching class function for Elm_Gen_Item_Class.
+    * @param data The data passed in the item creation function
+    * @param obj The base widget object
+    * @param part The part name of the swallow
+    * @return The hell if I know
+    */
+   typedef Eina_Bool    (*Elm_Gengrid_Item_State_Get_Cb) (void *data, Evas_Object *obj, const char *part);
+   /**
+    * Deletion class function for Elm_Gen_Item_Class.
+    * @param data The data passed in the item creation function
+    * @param obj The base widget object
+    */
+   typedef void         (*Elm_Gengrid_Item_Del_Cb)      (void *data, Evas_Object *obj);
 
    /* temporary compatibility code */
    typedef Elm_Gengrid_Item_Label_Get_Cb GridItemLabelGetFunc EINA_DEPRECATED;
@@ -8559,7 +8666,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI void               elm_gengrid_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  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
@@ -8574,7 +8681,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI Eina_Bool          elm_gengrid_always_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  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.
@@ -8592,7 +8699,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI void               elm_gengrid_no_select_mode_set(Evas_Object *obj, Eina_Bool no_select) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  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
@@ -8606,7 +8713,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI Eina_Bool          elm_gengrid_no_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  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
@@ -8664,7 +8771,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);
+   WILL_DEPRECATE  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
@@ -8680,7 +8787,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);
+   WILL_DEPRECATE  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
@@ -8714,7 +8821,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);
+   WILL_DEPRECATE  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
@@ -8730,7 +8837,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);
+   WILL_DEPRECATE  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
@@ -8810,7 +8917,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI Elm_Gengrid_Item  *elm_gengrid_first_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE 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
@@ -8826,7 +8933,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI Elm_Gengrid_Item  *elm_gengrid_last_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE 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,
@@ -8843,7 +8950,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI Elm_Gengrid_Item  *elm_gengrid_item_next_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE 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,
@@ -8860,7 +8967,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI Elm_Gengrid_Item  *elm_gengrid_item_prev_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE 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
@@ -8873,7 +8980,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI Evas_Object       *elm_gengrid_item_gengrid_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE EAPI Evas_Object       *elm_gengrid_item_gengrid_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
 
    /**
     * Remove a gengrid item from its parent, deleting it.
@@ -8994,7 +9101,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI void               elm_gengrid_item_selected_set(Elm_Gengrid_Item *item, Eina_Bool selected) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE 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
@@ -9008,7 +9115,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI Eina_Bool          elm_gengrid_item_selected_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE 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
@@ -9188,6 +9295,26 @@ extern "C" {
     */
    EAPI const char        *elm_gengrid_item_tooltip_style_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
    /**
+    * @brief Disable size restrictions on an object's tooltip
+    * @param item The tooltip's anchor object
+    * @param disable If EINA_TRUE, size restrictions are disabled
+    * @return EINA_FALSE on failure, EINA_TRUE on success
+    *
+    * This function allows a tooltip to expand beyond its parant window's canvas.
+    * It will instead be limited only by the size of the display.
+    */
+   EAPI Eina_Bool          elm_gengrid_item_tooltip_size_restrict_disable(Elm_Gengrid_Item *item, Eina_Bool disable);
+   /**
+    * @brief Retrieve size restriction state of an object's tooltip
+    * @param item The tooltip's anchor object
+    * @return If EINA_TRUE, size restrictions are disabled
+    *
+    * This function returns whether a tooltip is allowed to expand beyond
+    * its parant window's canvas.
+    * It will instead be limited only by the size of the display.
+    */
+   EAPI Eina_Bool          elm_gengrid_item_tooltip_size_restrict_disabled_get(const Elm_Gengrid_Item *item);
+   /**
     * Set the type of mouse pointer/cursor decoration to be shown,
     * when the mouse pointer is over the given gengrid widget item
     *
@@ -9331,7 +9458,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI void               elm_gengrid_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE EAPI void elm_gengrid_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Get the selected item in a given gengrid widget
@@ -9769,7 +9896,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_object_content_part_set(). The same difference happens
+    * SWALLOW part using elm_object_part_content_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.
     *
@@ -9865,7 +9992,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_object_content_part_unset() function.
+    * elm_object_part_content_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
@@ -9873,13 +10000,14 @@ extern "C" {
     * elm_layout_box_append().
     *
     * @see elm_layout_box_append()
-    * @see elm_object_content_part_get()
-    * @see elm_object_content_part_unset()
+    * @see elm_object_part_content_get()
+    * @see elm_object_part_content_unset()
     * @see @ref secBox
+    * @deprecated use elm_object_part_content_set() instead
     *
     * @ingroup Layout
     */
-   EAPI void               elm_layout_content_set(Evas_Object *obj, const char *swallow, Evas_Object *content) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE 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.
     *
@@ -9888,11 +10016,11 @@ extern "C" {
     *
     * @return The swallowed object or NULL if none or an error occurred
     *
-    * @see elm_object_content_part_set()
+    * @deprecated use elm_object_part_content_get() instead
     *
     * @ingroup Layout
     */
-   EAPI Evas_Object       *elm_layout_content_get(const Evas_Object *obj, const char *swallow) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE EAPI Evas_Object       *elm_layout_content_get(const Evas_Object *obj, const char *swallow) EINA_ARG_NONNULL(1);
    /**
     * Unset the layout content.
     *
@@ -9902,11 +10030,11 @@ extern "C" {
     *
     * Unparent and return the content object which was set for this part.
     *
-    * @see elm_object_content_part_set()
+    * @deprecated use elm_object_part_content_unset() instead
     *
     * @ingroup Layout
     */
-   EAPI Evas_Object       *elm_layout_content_unset(Evas_Object *obj, const char *swallow) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE EAPI Evas_Object       *elm_layout_content_unset(Evas_Object *obj, const char *swallow) EINA_ARG_NONNULL(1);
    /**
     * Set the text of the given part
     *
@@ -9915,7 +10043,7 @@ extern "C" {
     * @param text The text to set
     *
     * @ingroup Layout
-    * @deprecated use elm_object_text_* instead.
+    * @deprecated use elm_object_part_text_set() instead.
     */
    EINA_DEPRECATED EAPI void               elm_layout_text_set(Evas_Object *obj, const char *part, const char *text) EINA_ARG_NONNULL(1);
    /**
@@ -9927,7 +10055,7 @@ extern "C" {
     * @return The text set in @p part
     *
     * @ingroup Layout
-    * @deprecated use elm_object_text_* instead.
+    * @deprecated use elm_object_part_text_get() instead.
     */
    EINA_DEPRECATED EAPI const char        *elm_layout_text_get(const Evas_Object *obj, const char *part) EINA_ARG_NONNULL(1);
    /**
@@ -10022,7 +10150,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_object_content_part_unset() for box.
+    * elm_object_part_content_unset() for box.
     *
     * @see elm_layout_box_append()
     * @see elm_layout_box_remove_all()
@@ -10093,7 +10221,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_object_content_part_unset() for table.
+    * elm_object_part_content_unset() for table.
     *
     * @see elm_layout_table_pack()
     * @see elm_layout_table_clear()
@@ -10130,7 +10258,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_object_content_part_set() instead so child object handling and sizing is
+    * elm_object_part_content_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
@@ -10140,8 +10268,8 @@ extern "C" {
     *
     * @see elm_object_signal_callback_add()
     * @see elm_object_signal_emit()
-    * @see elm_object_text_part_set()
-    * @see elm_object_content_part_set()
+    * @see elm_object_part_text_set()
+    * @see elm_object_part_content_set()
     * @see elm_layout_box_append()
     * @see elm_layout_table_pack()
     * @see elm_layout_data_get()
@@ -10306,7 +10434,7 @@ extern "C" {
 #define elm_layout_icon_set(_ly, _obj) \
   do { \
     const char *sig; \
-    elm_object_content_part_set((_ly), "elm.swallow.icon", (_obj)); \
+    elm_object_part_content_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"); \
@@ -10320,7 +10448,7 @@ extern "C" {
  * @ingroup Layout
  */
 #define elm_layout_icon_get(_ly) \
-  elm_object_content_part_get((_ly), "elm.swallow.icon")
+  elm_object_part_content_get((_ly), "elm.swallow.icon")
 
 /**
  * @def elm_layout_end_set
@@ -10332,7 +10460,7 @@ extern "C" {
 #define elm_layout_end_set(_ly, _obj) \
   do { \
     const char *sig; \
-    elm_object_content_part_set((_ly), "elm.swallow.end", (_obj)); \
+    elm_object_part_content_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"); \
@@ -10346,7 +10474,7 @@ extern "C" {
  * @ingroup Layout
  */
 #define elm_layout_end_get(_ly) \
-  elm_object_content_part_get((_ly), "elm.swallow.end")
+  elm_object_part_content_get((_ly), "elm.swallow.end")
 
 /**
  * @def elm_layout_label_set
@@ -10354,7 +10482,7 @@ extern "C" {
  * Elementary naming convention for its parts.
  *
  * @ingroup Layout
- * @deprecated use elm_object_text_* instead.
+ * @deprecated use elm_object_text_set() instead.
  */
 #define elm_layout_label_set(_ly, _txt) \
   elm_layout_text_set((_ly), "elm.text", (_txt))
@@ -10365,7 +10493,7 @@ extern "C" {
  * Elementary naming convention for its parts.
  *
  * @ingroup Layout
- * @deprecated use elm_object_text_* instead.
+ * @deprecated use elm_object_text_set() instead.
  */
 #define elm_layout_label_get(_ly) \
   elm_layout_text_get((_ly), "elm.text")
@@ -10390,7 +10518,7 @@ extern "C" {
     * @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
+    * @li "default" - A content of the notify
     *
     * @ref tutorial_notify show usage of the API.
     *
@@ -10433,8 +10561,11 @@ 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_notify_content_unset() function.
+    *
+    * @deprecated use elm_object_content_set() instead
+    *
     */
-   EAPI void              elm_notify_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE EAPI void              elm_notify_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
    /**
     * @brief Unset the content of the notify widget
     *
@@ -10444,8 +10575,10 @@ extern "C" {
     * Unparent and return the content object which was set for this widget
     *
     * @see elm_notify_content_set()
+    * @deprecated use elm_object_content_unset() instead
+    *
     */
-   EAPI Evas_Object      *elm_notify_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE EAPI Evas_Object      *elm_notify_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Return the content of the notify widget
     *
@@ -10453,8 +10586,10 @@ extern "C" {
     * @return The content that is being used
     *
     * @see elm_notify_content_set()
+    * @deprecated use elm_object_content_get() instead
+    *
     */
-   EAPI Evas_Object      *elm_notify_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE EAPI Evas_Object      *elm_notify_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Set the notify parent
     *
@@ -11103,6 +11238,45 @@ extern "C" {
     */
    EAPI const char  *elm_entry_selection_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
+    * Returns the actual textblock object of the entry.
+    *
+    * This function exposes the internal textblock object that actually
+    * contains and draws the text. This should be used for low-level
+    * manipulations that are otherwise not possible.
+    *
+    * Changing the textblock directly from here will not notify edje/elm to
+    * recalculate the textblock size automatically, so any modifications
+    * done to the textblock returned by this function should be followed by
+    * a call to elm_entry_calc_force().
+    *
+    * The return value is marked as const as an additional warning.
+    * One should not use the returned object with any of the generic evas
+    * functions (geometry_get/resize/move and etc), but only with the textblock
+    * functions; The former will either not work at all, or break the correct
+    * functionality.
+    *
+    * IMPORTANT: Many functions may change (i.e delete and create a new one)
+    * the internal textblock object. Do NOT cache the returned object, and try
+    * not to mix calls on this object with regular elm_entry calls (which may
+    * change the internal textblock object). This applies to all cursors
+    * returned from textblock calls, and all the other derivative values.
+    *
+    * @param obj The entry object
+    * @return The textblock object.
+    */
+   EAPI const Evas_Object *elm_entry_textblock_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * Forces calculation of the entry size and text layouting.
+    *
+    * This should be used after modifying the textblock object directly. See
+    * elm_entry_textblock_get() for more information.
+    *
+    * @param obj The entry object
+    *
+    * @see elm_entry_textblock_get()
+    */
+   EAPI void elm_entry_calc_force(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
     * Inserts the given text into the entry at the current cursor position.
     *
     * This inserts text at the cursor position as if it was typed
@@ -12322,13 +12496,18 @@ extern "C" {
     * Signals that you can add callbacks for are:
     * @li "clicked" - This is called when a user has clicked the bubble.
     *
-    * For an example of using a buble see @ref bubble_01_example_page "this".
+    * Default contents parts of the bubble that you can use for are:
+    * @li "default" - A content of the bubble
+    * @li "icon" - An icon of the bubble
+    *
+    * Default text parts of the button widget that you can use for are:
+    * @li NULL - Label of the bubble
+    * 
+        * For an example of using a buble see @ref bubble_01_example_page "this".
     *
     * @{
     */
 
-#define ELM_BUBBLE_CONTENT_ICON "elm.swallow.icon"
-
    /**
     * Add a new bubble to the parent
     *
@@ -12367,7 +12546,7 @@ extern "C" {
     *
     * This function sets the info of the bubble. Where this appears depends on
     * the selected corner.
-    * @deprecated use elm_object_text_part_set() instead. (with "info" as the parameter).
+    * @deprecated use elm_object_part_text_set() instead. (with "info" as the parameter).
     */
    EINA_DEPRECATED EAPI void         elm_bubble_info_set(Evas_Object *obj, const char *info) EINA_ARG_NONNULL(1);
    /**
@@ -12378,7 +12557,7 @@ extern "C" {
     * @return The "info" string of the bubble
     *
     * This function gets the info text.
-    * @deprecated use elm_object_text_part_get() instead. (with "info" as the parameter).
+    * @deprecated use elm_object_part_text_get() instead. (with "info" as the parameter).
     */
    EINA_DEPRECATED EAPI const char  *elm_bubble_info_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
@@ -12392,8 +12571,11 @@ extern "C" {
     * @param content The given content of the bubble
     *
     * This function sets the content shown on the middle of the bubble.
+    * 
+    * @deprecated use elm_object_content_set() instead
+    *
     */
-   EAPI void         elm_bubble_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void         elm_bubble_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
    /**
     * Get the content shown in the bubble
     *
@@ -12401,8 +12583,11 @@ extern "C" {
     *
     * @param obj The bubble object
     * @return The content that is being used
+    *
+    * @deprecated use elm_object_content_get() instead
+    *
     */
-   EAPI Evas_Object *elm_bubble_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object *elm_bubble_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Unset the content shown in the bubble
     *
@@ -12410,8 +12595,11 @@ extern "C" {
     *
     * @param obj The bubble object
     * @return The content that was being used
+    *
+    * @deprecated use elm_object_content_unset() instead
+    *
     */
-   EAPI Evas_Object *elm_bubble_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object *elm_bubble_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Set the icon of the bubble
     *
@@ -12422,10 +12610,10 @@ extern "C" {
     * @param obj The bubble object
     * @param icon The given icon for the bubble
     *
-    * @deprecated use elm_object_content_part_set() instead
+    * @deprecated use elm_object_part_content_set() instead
     *
     */
-   EAPI void         elm_bubble_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void         elm_bubble_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
    /**
     * Get the icon of the bubble
     *
@@ -12434,10 +12622,10 @@ extern "C" {
     *
     * This function gets the icon shown on the top left of bubble.
     *
-    * @deprecated use elm_object_content_part_get() instead
+    * @deprecated use elm_object_part_content_get() instead
     *
     */
-   EAPI Evas_Object *elm_bubble_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_bubble_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Unset the icon of the bubble
     *
@@ -12446,10 +12634,10 @@ extern "C" {
     * @param obj The bubble object
     * @return The icon that was being used
     *
-    * @deprecated use elm_object_content_part_unset() instead
+    * @deprecated use elm_object_part_content_unset() instead
     *
     */
-   EAPI Evas_Object *elm_bubble_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_bubble_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Set the corner of the bubble
     *
@@ -12521,6 +12709,17 @@ extern "C" {
     */
    EAPI Eina_Bool    elm_photo_file_set(Evas_Object *obj, const char *file) EINA_ARG_NONNULL(1);
 
+    /**
+    * Set the file that will be used as thumbnail in the photo.
+    *
+    * @param obj The photo object.
+    * @param file The path to file that will be used as thumb.
+    * @param group The key used in case of an EET file.
+    *
+    * @ingroup Photo
+    */
+   EAPI void         elm_photo_thumb_set(const Evas_Object *obj, const char *file, const char *group) EINA_ARG_NONNULL(1, 2);
+
    /**
     * Set the size that will be used on the photo
     *
@@ -12727,7 +12926,6 @@ extern "C" {
    struct _Elm_Gesture_Line_Info
      {  /* Report line ends, timestamps, and momentum computed      */
         Elm_Gesture_Momentum_Info momentum; /**< Line momentum info */
-        /* FIXME should be radians, bot degrees */
         double angle;              /**< Angle (direction) of lines  */
      };
 
@@ -13137,7 +13335,6 @@ extern "C" {
     * @}
     */
 
-#if 0
    /**
     * @defgroup Web Web
     *
@@ -13988,7 +14185,6 @@ extern "C" {
    /**
     * @}
     */
-#endif
 
    /**
     * @defgroup Hoversel Hoversel
@@ -14325,6 +14521,7 @@ extern "C" {
         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_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(). */
@@ -14398,6 +14595,38 @@ extern "C" {
    EAPI Elm_Icon_Lookup_Order   elm_toolbar_icon_order_lookup_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
+    * Set whether the toolbar should always have an item selected.
+    *
+    * @param obj The toolbar object.
+    * @param wrap @c EINA_TRUE to enable always-select mode or @c EINA_FALSE to
+    * disable it.
+    *
+    * This will cause the toolbar to always have an item selected, and clicking
+    * the selected item will not cause a selected event to be emitted. Enabling this mode
+    * will immediately select the first toolbar item.
+    *
+    * Always-selected is disabled by default.
+    *
+    * @see elm_toolbar_always_select_mode_get().
+    *
+    * @ingroup Toolbar
+    */
+   EAPI void                    elm_toolbar_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select) EINA_ARG_NONNULL(1);
+
+   /**
+    * Get whether the toolbar should always have an item selected.
+    *
+    * @param obj The toolbar object.
+    * @return @c EINA_TRUE means an item will always be selected, @c EINA_FALSE indicates
+    * that it is possible to have no items selected. If @p obj is @c NULL, @c EINA_FALSE is returned.
+    *
+    * @see elm_toolbar_always_select_mode_set() for details.
+    *
+    * @ingroup Toolbar
+    */
+   EAPI Eina_Bool               elm_toolbar_always_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+   /**
     * Set whether the toolbar items' should be selected by the user or not.
     *
     * @param obj The toolbar object.
@@ -15160,7 +15389,7 @@ extern "C" {
     *
     * @ingroup Toolbar
     */
-   EAPI Evas_Object            *elm_toolbar_item_menu_get(Elm_Toolbar_Item *item) EINA_ARG_NONNULL(1);
+   EAPI Evas_Object            *elm_toolbar_item_menu_get(const Elm_Toolbar_Item *item) EINA_ARG_NONNULL(1);
 
    /**
     * Add a new state to @p item.
@@ -15553,6 +15782,12 @@ extern "C" {
    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);
    EAPI const char  *elm_object_tooltip_style_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool    elm_tooltip_size_restrict_disable(Evas_Object *obj, Eina_Bool disable) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool    elm_tooltip_size_restrict_disabled_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+   /**
+    * @}
+    */
 
    /**
     * @defgroup Cursors Cursors
@@ -15790,6 +16025,20 @@ extern "C" {
     */
    EAPI Elm_Menu_Item     *elm_menu_item_add(Evas_Object *obj, Elm_Menu_Item *parent, const char *icon, const char *label, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
    /**
+    * @brief Add an object swallowed in an item at the end of the given menu
+    * widget
+    *
+    * @param obj The menu object.
+    * @param parent The parent menu item (optional)
+    * @param subobj The object to swallow
+    * @param func Function called when the user select the item.
+    * @param data Data sent by the callback.
+    * @return Returns the new item.
+    *
+    * Add an evas object as an item to the menu.
+    */
+   EAPI Elm_Menu_Item     *elm_menu_item_add_object(Evas_Object *obj, Elm_Menu_Item *parent, Evas_Object *subobj, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
+   /**
     * @brief Set the label of a menu item
     *
     * @param item The menu item object.
@@ -15806,9 +16055,62 @@ extern "C" {
     * @return The label of @p item
     */
    EAPI const char        *elm_menu_item_label_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
-   EAPI void               elm_menu_item_icon_set(Elm_Menu_Item *item, const char *icon) EINA_ARG_NONNULL(1, 2);
-   EAPI const char        *elm_menu_item_icon_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
-   EAPI const Evas_Object *elm_menu_item_object_icon_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Set the icon of a menu item to the standard icon with name @p icon
+    *
+    * @param item The menu item object.
+    * @param icon The icon object to set for the content of @p item
+    *
+    * Once this icon is set, any previously set icon will be deleted.
+    */
+   EAPI void               elm_menu_item_object_icon_name_set(Elm_Menu_Item *item, const char *icon) EINA_ARG_NONNULL(1, 2);
+   /**
+    * @brief Get the string representation from the icon of a menu item
+    *
+    * @param item The menu item object.
+    * @return The string representation of @p item's icon or NULL
+    *
+    * @see elm_menu_item_object_icon_name_set()
+    */
+   EAPI const char        *elm_menu_item_object_icon_name_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Set the content object of a menu item
+    *
+    * @param item The menu item object
+    * @param The content object or NULL
+    * @return EINA_TRUE on success, else EINA_FALSE
+    *
+    * Use this function to change the object swallowed by a menu item, deleting
+    * any previously swallowed object.
+    */
+   EAPI Eina_Bool          elm_menu_item_object_content_set(Elm_Menu_Item *item, Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Get the content object of a menu item
+    *
+    * @param item The menu item object
+    * @return The content object or NULL
+    * @note If @p item was added with elm_menu_item_add_object, this
+    * function will return the object passed, else it will return the
+    * icon object.
+    *
+    * @see elm_menu_item_object_content_set()
+    */
+   EAPI Evas_Object *elm_menu_item_object_content_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
+
+   EINA_DEPRECATED extern inline void elm_menu_item_icon_set(Elm_Menu_Item *item, const char *icon) EINA_ARG_NONNULL(1, 2)
+     {
+        elm_menu_item_object_icon_name_set(item, icon);
+     }
+
+   EINA_DEPRECATED extern inline Evas_Object *elm_menu_item_object_icon_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1)
+     {
+        return elm_menu_item_object_content_get(item);
+     }
+
+   EINA_DEPRECATED extern inline const char *elm_menu_item_icon_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1)
+     {
+        return elm_menu_item_object_icon_name_get(item);
+     }
 
    /**
     * @brief Set the selected state of @p item.
@@ -15904,12 +16206,65 @@ extern "C" {
     * @see elm_menu_add()
     */
    EAPI const Eina_List   *elm_menu_item_subitems_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Get the position of a menu item
+    *
+    * @param item The menu item
+    * @return The item's index
+    *
+    * This function returns the index position of a menu item in a menu.
+    * For a sub-menu, this number is relative to the first item in the sub-menu.
+    *
+    * @note Index values begin with 0
+    */
+   EAPI unsigned int       elm_menu_item_index_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1) EINA_PURE;
+   /**
+    * @brief @brief Return a menu item's owner menu
+    *
+    * @param item The menu item
+    * @return The menu object owning @p item, or NULL on failure
+    *
+    * Use this function to get the menu object owning an item.
+    */
+   EAPI Evas_Object       *elm_menu_item_menu_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1) EINA_PURE;
+   /**
+    * @brief Get the selected item in the menu
+    *
+    * @param obj The menu object
+    * @return The selected item, or NULL if none
+    *
+    * @see elm_menu_item_selected_get()
+    * @see elm_menu_item_selected_set()
+    */
    EAPI Elm_Menu_Item *elm_menu_selected_item_get(const Evas_Object * obj) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Get the last item in the menu
+    *
+    * @param obj The menu object
+    * @return The last item, or NULL if none
+    */
    EAPI Elm_Menu_Item *elm_menu_last_item_get(const Evas_Object * obj) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Get the first item in the menu
+    *
+    * @param obj The menu object
+    * @return The first item, or NULL if none
+    */
    EAPI Elm_Menu_Item *elm_menu_first_item_get(const Evas_Object * obj) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Get the next item in the menu.
+    *
+    * @param item The menu item object.
+    * @return The item after it, or NULL if none
+    */
    EAPI Elm_Menu_Item *elm_menu_item_next_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Get the previous item in the menu.
+    *
+    * @param item The menu item object.
+    * @return The item before it, or NULL if none
+    */
    EAPI Elm_Menu_Item *elm_menu_item_prev_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1);
-
    /**
     * @}
     */
@@ -16756,7 +17111,6 @@ extern "C" {
     * @ingroup List
     */
    EAPI void             elm_list_item_end_set(Elm_List_Item *item, Evas_Object *end) EINA_ARG_NONNULL(1);
-   EAPI Evas_Object     *elm_list_item_base_get(const Elm_List_Item *item) EINA_ARG_NONNULL(1);
 
    /**
     * Gets the base object of the item.
@@ -16769,6 +17123,7 @@ extern "C" {
     * @ingroup List
     */
    EAPI Evas_Object     *elm_list_item_object_get(const Elm_List_Item *item) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object     *elm_list_item_base_get(const Elm_List_Item *item) EINA_ARG_NONNULL(1);
 
    /**
     * Get the label of item.
@@ -17152,16 +17507,15 @@ extern "C" {
     * - @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
+    * @li "icon" - A icon of the slider
+    * @li "end" - A end part content of the slider
     * 
+    * Default text parts of the silder widget that you can use for are:
+    * @li "default" - Label of the silder
     * 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
     * @{
@@ -17200,7 +17554,7 @@ extern "C" {
     * @ingroup Slider
     * @deprecated use elm_object_text_get() instead.
     */
-   EAPI const char        *elm_slider_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI const char        *elm_slider_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Set the icon object of the slider object.
@@ -17219,9 +17573,9 @@ extern "C" {
     * it won't get properly displayed.
     *
     * @ingroup Slider
-    * @deprecated use elm_object_content_set() instead.
+    * @deprecated use elm_object_part_content_set() instead.
     */
-   EAPI void               elm_slider_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  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.
@@ -17238,11 +17592,11 @@ extern "C" {
     *
     * @see elm_slider_icon_set() for more details
     * @see elm_slider_icon_get()
-    * @deprecated use elm_object_content_unset() instead.
+    * @deprecated use elm_object_part_content_unset() instead.
     *
     * @ingroup Slider
     */
-   EAPI Evas_Object       *elm_slider_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object       *elm_slider_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Retrieve the icon object set for a given slider widget.
@@ -17257,9 +17611,11 @@ extern "C" {
     * @see elm_slider_icon_set() for more details
     * @see elm_slider_icon_unset()
     *
+    * @deprecated use elm_object_part_content_get() instead.
+    *
     * @ingroup Slider
     */
-   EAPI Evas_Object       *elm_slider_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object       *elm_slider_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Set the end object of the slider object.
@@ -17277,9 +17633,11 @@ extern "C" {
     * @warning If the object being set does not have minimum size hints set,
     * it won't get properly displayed.
     *
+    * @deprecated use elm_object_part_content_set() instead.
+    *
     * @ingroup Slider
     */
-   EAPI void               elm_slider_end_set(Evas_Object *obj, Evas_Object *end) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  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.
@@ -17297,9 +17655,12 @@ extern "C" {
     * @see elm_slider_end_set() for more details.
     * @see elm_slider_end_get()
     *
+    * @deprecated use elm_object_part_content_unset() instead
+    * instead.
+    *
     * @ingroup Slider
     */
-   EAPI Evas_Object       *elm_slider_end_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object       *elm_slider_end_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Retrieve the end object set for a given slider widget.
@@ -17314,9 +17675,13 @@ extern "C" {
     * @see elm_slider_end_set() for more details.
     * @see elm_slider_end_unset()
     *
+    *
+    * @deprecated use elm_object_part_content_get() instead 
+    * instead.
+    *
     * @ingroup Slider
     */
-   EAPI Evas_Object       *elm_slider_end_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  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.
@@ -17813,7 +18178,7 @@ extern "C" {
 
 
    /**
-    *
+    * @}
     */
 
    /**
@@ -17869,7 +18234,7 @@ extern "C" {
     *   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.
+    *   #Elm_Genlist_Item_Content_Get_Cb.
     * - @c func.state_get - The @c part parameter is the name string of one of
     *   the state parts in the Edje group implementing the item's theme. Return
     *   @c EINA_FALSE for false/off or @c EINA_TRUE for true/on. Genlists will
@@ -17948,7 +18313,7 @@ extern "C" {
     * item before another item and elm_genlist_item_insert_after() inserts after
     * the indicated item.
     *
-    * The application can clear the list with elm_genlist_clear() which deletes
+    * The application can clear the list with elm_gen_clear() which deletes
     * all the items in the list and elm_genlist_item_del() will delete a specific
     * item. elm_genlist_item_subitems_clear() will clear all items that are
     * children of the indicated parent item.
@@ -17968,14 +18333,14 @@ extern "C" {
     * If the application wants multiple items to be able to be selected,
     * elm_genlist_multi_select_set() can enable this. If the list is
     * single-selection only (the default), then elm_genlist_selected_item_get()
-    * will return the selected item, if any, or NULL I none is selected. If the
+    * will return the selected item, if any, or NULL if none is selected. If the
     * list is multi-select then elm_genlist_selected_items_get() will return a
     * list (that is only valid as long as no items are modified (added, deleted,
     * selected or unselected)).
     *
     * @section Genlist_Usage_Hints Usage hints
     *
-    * There are also convenience functions. elm_genlist_item_genlist_get() will
+    * There are also convenience functions. elm_gen_item_genlist_get() will
     * return the genlist object the item belongs to. elm_genlist_item_show()
     * will make the scroller scroll to show that specific item so its visible.
     * elm_genlist_item_data_get() returns the data pointer set by the item
@@ -18006,7 +18371,7 @@ extern "C" {
     *
     * Items will only call their selection func and callback when first becoming
     * selected. Any further clicks will do nothing, unless you enable always
-    * select with elm_genlist_always_select_mode_set(). This means even if
+    * select with elm_gen_always_select_mode_set(). This means even if
     * selected, every click will make the selected callbacks be called.
     * elm_genlist_no_select_mode_set() will turn off the ability to select
     * items entirely and they will neither appear selected nor call selected
@@ -18213,7 +18578,7 @@ extern "C" {
     *
     * @see elm_genlist_item_append()
     * @see elm_genlist_item_del()
-    * @see elm_genlist_clear()
+    * @see elm_gen_clear()
     *
     * @ingroup Genlist
     */
@@ -18225,11 +18590,13 @@ extern "C" {
     *
     * This removes (and deletes) all items in @p obj, leaving it empty.
     *
+    * This is deprecated. Please use elm_gen_clear() instead.
+    * 
     * @see elm_genlist_item_del(), to remove just one item.
     *
     * @ingroup Genlist
     */
-   EAPI void elm_genlist_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void elm_genlist_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Enable or disable multi-selection in the genlist
     *
@@ -18298,15 +18665,17 @@ extern "C" {
     *
     * Items will only call their selection func and callback when first
     * becoming selected. Any further clicks will do nothing, unless you
-    * enable always select with elm_genlist_always_select_mode_set().
+    * enable always select with elm_gen_always_select_mode_set().
     * This means that, even if selected, every click will make the selected
     * callbacks be called.
+    * 
+    * This function is deprecated. please see elm_gen_always_select_mode_set()
     *
     * @see elm_genlist_always_select_mode_get()
     *
     * @ingroup Genlist
     */
-   EAPI void              elm_genlist_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void              elm_genlist_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select) EINA_ARG_NONNULL(1);
    /**
     * Get the always select mode.
     *
@@ -18318,7 +18687,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI Eina_Bool         elm_genlist_always_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Eina_Bool         elm_genlist_always_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Enable/disable the no select mode.
     *
@@ -18333,7 +18702,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI void              elm_genlist_no_select_mode_set(Evas_Object *obj, Eina_Bool no_select) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  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.
     *
@@ -18345,7 +18714,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI Eina_Bool         elm_genlist_no_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Eina_Bool         elm_genlist_no_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Enable/disable compress mode.
     *
@@ -18427,7 +18796,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);
+   WILL_DEPRECATE  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.
     *
@@ -18441,7 +18810,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);
+   WILL_DEPRECATE  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.
     *
@@ -18759,7 +19128,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI Elm_Genlist_Item *elm_genlist_first_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Elm_Genlist_Item *elm_genlist_first_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Get the last item in the genlist
     *
@@ -18769,7 +19138,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI Elm_Genlist_Item *elm_genlist_last_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Elm_Genlist_Item *elm_genlist_last_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Set the scrollbar policy
     *
@@ -18817,7 +19186,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI Elm_Genlist_Item  *elm_genlist_item_next_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  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.
@@ -18833,7 +19202,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI Elm_Genlist_Item  *elm_genlist_item_prev_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  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
@@ -18843,9 +19212,11 @@ extern "C" {
     *
     * This returns the genlist object itself that an item belongs to.
     *
+    * This function is deprecated. Please use elm_gen_item_widget_get()
+    * 
     * @ingroup Genlist
     */
-   EAPI Evas_Object       *elm_genlist_item_genlist_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  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
     *
@@ -18888,7 +19259,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI void elm_genlist_item_selected_set(Elm_Genlist_Item *item, Eina_Bool selected) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  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
     *
@@ -18899,7 +19270,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI Eina_Bool elm_genlist_item_selected_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Eina_Bool elm_genlist_item_selected_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
    /**
     * Sets the expanded state of an item.
     *
@@ -19162,7 +19533,7 @@ extern "C" {
     * @ingroup Genlist
     */
    EAPI void               elm_genlist_item_contents_orphan(Elm_Genlist_Item *it) EINA_ARG_NONNULL(1);
-   EAPI void               elm_genlist_item_icons_orphan(Elm_Genlist_Item *it) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  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
@@ -19313,6 +19684,26 @@ extern "C" {
     */
    EAPI const char        *elm_genlist_item_tooltip_style_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
    /**
+    * @brief Disable size restrictions on an object's tooltip
+    * @param item The tooltip's anchor object
+    * @param disable If EINA_TRUE, size restrictions are disabled
+    * @return EINA_FALSE on failure, EINA_TRUE on success
+    *
+    * This function allows a tooltip to expand beyond its parant window's canvas.
+    * It will instead be limited only by the size of the display.
+    */
+   EAPI Eina_Bool          elm_genlist_item_tooltip_size_restrict_disable(Elm_Genlist_Item *item, Eina_Bool disable);
+   /**
+    * @brief Retrieve size restriction state of an object's tooltip
+    * @param item The tooltip's anchor object
+    * @return If EINA_TRUE, size restrictions are disabled
+    *
+    * This function returns whether a tooltip is allowed to expand beyond
+    * its parant window's canvas.
+    * It will instead be limited only by the size of the display.
+    */
+   EAPI Eina_Bool          elm_genlist_item_tooltip_size_restrict_disabled_get(const Elm_Genlist_Item *item);
+   /**
     * Set the type of mouse pointer/cursor decoration to be shown,
     * when the mouse pointer is over the given genlist widget item
     *
@@ -19589,7 +19980,7 @@ extern "C" {
     *             the check object(event_info is NULL).
     *
     * Default contents parts of the check widget that you can use for are:
-    * @li "elm.swallow.content" - A icon of the check
+    * @li "icon" - 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
@@ -19632,15 +20023,21 @@ 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_object_content_unset() function.
+    *
+    * @deprecated use elm_object_part_content_set() instead.
+    *
     */
-   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
+    *
+    * @deprecated use elm_object_part_content_get() instead.
+    *  
     */
-   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
     *
@@ -19648,8 +20045,11 @@ extern "C" {
     * @return The icon object that was being used
     *
     * Unparent and return the icon object which was set for this widget.
+    *
+    * @deprecated use elm_object_part_content_unset() instead.
+    *
     */
-   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
     *
@@ -19686,6 +20086,71 @@ extern "C" {
     * @}
     */
 
+   /* compatibility code for toggle controls */
+
+   EINA_DEPRECATED EAPI extern inline Evas_Object *elm_toggle_add(Evas_Object *parent) EINA_ARG_NONNULL(1)
+     {
+        Evas_Object *obj;
+
+        obj = elm_check_add(parent);
+        elm_object_style_set(obj, "toggle");
+        elm_object_part_text_set(obj, "on", "ON");
+        elm_object_part_text_set(obj, "off", "OFF");
+        return obj;
+     }
+
+   EINA_DEPRECATED EAPI extern inline void elm_toggle_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1)
+     {
+        elm_object_text_set(obj, label);
+     }
+
+   EINA_DEPRECATED EAPI extern inline const char  *elm_toggle_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1)
+     {
+        return elm_object_text_get(obj);
+     }
+
+   EINA_DEPRECATED EAPI extern inline void elm_toggle_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1)
+     {
+        elm_object_content_set(obj, icon);
+     }
+
+   EINA_DEPRECATED EAPI extern inline Evas_Object *elm_toggle_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1)
+     {
+        return elm_object_content_get(obj);
+     }
+
+   EINA_DEPRECATED EAPI extern inline Evas_Object *elm_toggle_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1)
+     {
+        return elm_object_content_unset(obj);
+     }
+
+   EINA_DEPRECATED EAPI extern inline void elm_toggle_states_labels_set(Evas_Object *obj, const char *onlabel, const char *offlabel) EINA_ARG_NONNULL(1)
+     {
+        elm_object_part_text_set(obj, "on", onlabel);
+        elm_object_part_text_set(obj, "off", offlabel);
+     }
+
+   EINA_DEPRECATED EAPI extern inline void elm_toggle_states_labels_get(const Evas_Object *obj, const char **onlabel, const char **offlabel) EINA_ARG_NONNULL(1)
+     {
+        if (onlabel) *onlabel = elm_object_part_text_get(obj, "on");
+        if (offlabel) *offlabel = elm_object_part_text_get(obj, "off");
+     }
+
+   EINA_DEPRECATED EAPI extern inline void elm_toggle_state_set(Evas_Object *obj, Eina_Bool state) EINA_ARG_NONNULL(1)
+     {
+        elm_check_state_set(obj, state);
+     }
+
+   EINA_DEPRECATED EAPI extern inline Eina_Bool elm_toggle_state_get(const Evas_Object *obj) EINA_ARG_NONNULL(1)
+     {
+        return elm_check_state_get(obj);
+     }
+
+   EINA_DEPRECATED EAPI extern inline void elm_toggle_state_pointer_set(Evas_Object *obj, Eina_Bool *statep) EINA_ARG_NONNULL(1)
+     {
+        elm_check_state_pointer_set(obj, statep);
+     }
+
    /**
     * @defgroup Radio Radio
     *
@@ -19715,7 +20180,7 @@ extern "C" {
     * 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
+    * @li "icon" - A icon of the radio
     *
     * @ref tutorial_radio show most of this API in action.
     * @{
@@ -19754,10 +20219,11 @@ 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_radio_icon_unset()
     * function.
-    &
-    * @deprecated use elm_object_content_set() instead.
+    *
+    * @deprecated use elm_object_part_content_set() instead.
+    *
     */
-   EAPI void         elm_radio_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  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
     *
@@ -19765,8 +20231,11 @@ extern "C" {
     * @return The icon object
     *
     * @see elm_radio_icon_set()
+    *
+    * @deprecated use elm_object_part_content_get() instead.
+    *
     */
-   EAPI Evas_Object *elm_radio_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object *elm_radio_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Unset the icon used for the radio object
     *
@@ -19776,9 +20245,10 @@ extern "C" {
     * Unparent and return the icon object which was set for this widget.
     *
     * @see elm_radio_icon_set()
-    * @deprecated use elm_object_content_unset() instead.
+    * @deprecated use elm_object_part_content_unset() instead.
+    *
     */
-   EAPI Evas_Object *elm_radio_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  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
     *
@@ -19852,37 +20322,47 @@ extern "C" {
     * @image html img/widget/pager/preview-00.png
     * @image latex img/widget/pager/preview-00.eps
     *
-    * @brief Widget that allows flipping between 1 or more “pages” of objects.
-    *
-    * The flipping between “pages” of objects is animated. All content in pager
-    * is kept in a stack, the last content to be added will be on the top of the
-    * stack(be visible).
-    *
-    * Objects can be pushed or popped from the stack or deleted as normal.
-    * Pushes and pops will animate (and a pop will delete the object once the
-    * animation is finished). Any object already in the pager can be promoted to
-    * the top(from its current stacking position) through the use of
-    * elm_pager_content_promote(). Objects are pushed to the top with
-    * elm_pager_content_push() and when the top item is no longer wanted, simply
-    * pop it with elm_pager_content_pop() and it will also be deleted. If an
-    * object is no longer needed and is not the top item, just delete it as
-    * normal. You can query which objects are the top and bottom with
+    * @brief Widget that allows flipping between one or more “pages”
+    * of objects.
+    *
+    * The flipping between pages of objects is animated. All content
+    * in the pager is kept in a stack, being the last content added
+    * (visible one) on the top of that stack.
+    *
+    * Objects can be pushed or popped from the stack or deleted as
+    * well. Pushes and pops will animate the widget accordingly to its
+    * style (a pop will also delete the child object once the
+    * animation is finished). Any object already in the pager can be
+    * promoted to the top (from its current stacking position) through
+    * the use of elm_pager_content_promote(). New objects are pushed
+    * to the top with elm_pager_content_push(). When the top item is
+    * no longer wanted, simply pop it with elm_pager_content_pop() and
+    * it will also be deleted. If an object is no longer needed and is
+    * not the top item, just delete it as normal. You can query which
+    * objects are the top and bottom with
     * elm_pager_content_bottom_get() and elm_pager_content_top_get().
     *
     * Signals that you can add callbacks for are:
-    * "hide,finished" - when the previous page is hided
+    * - @c "show,finished" - when a new page is actually shown on the top
+    * - @c "hide,finished" - when a previous page is hidden
+    *
+    * Only after the first of that signals the child object is
+    * guaranteed to be visible, as in @c evas_object_visible_get().
     *
     * This widget has the following styles available:
-    * @li default
-    * @li fade
-    * @li fade_translucide
-    * @li fade_invisible
-    * @note This styles affect only the flipping animations, the appearance when
-    * not animating is unaffected by styles.
+    * - @c "default"
+    * - @c "fade"
+    * - @c "fade_translucide"
+    * - @c "fade_invisible"
+    *
+    * @note These styles affect only the flipping animations on the
+    * default theme; the appearance when not animating is unaffected
+    * by them.
     *
     * @ref tutorial_pager gives a good overview of the usage of the API.
     * @{
     */
+
    /**
     * Add a new pager to the parent
     *
@@ -19892,6 +20372,7 @@ extern "C" {
     * @ingroup Pager
     */
    EAPI Evas_Object *elm_pager_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+
    /**
     * @brief Push an object to the top of the pager stack (and show it).
     *
@@ -19907,6 +20388,7 @@ extern "C" {
     * undefined behavior.
     */
    EAPI void         elm_pager_content_push(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+
    /**
     * @brief Pop the object that is on top of the stack
     *
@@ -19917,6 +20399,7 @@ extern "C" {
     * the stack will become visible.
     */
    EAPI void         elm_pager_content_pop(Evas_Object *obj) EINA_ARG_NONNULL(1);
+
    /**
     * @brief Moves an object already in the pager stack to the top of the stack.
     *
@@ -19932,6 +20415,7 @@ extern "C" {
     * results in undefined behavior.
     */
    EAPI void         elm_pager_content_promote(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+
    /**
     * @brief Return the object at the bottom of the pager stack
     *
@@ -19939,6 +20423,7 @@ extern "C" {
     * @return The bottom object or NULL if none
     */
    EAPI Evas_Object *elm_pager_content_bottom_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
    /**
     * @brief  Return the object at the top of the pager stack
     *
@@ -20863,7 +21348,7 @@ extern "C" {
     *      "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
+    * @li "icon" - A icon of the progressbar
     * 
     * Here is an example on its usage:
     * @li @ref progressbar_example
@@ -21001,11 +21486,11 @@ extern "C" {
     * elm_progressbar_icon_unset() function.
     *
     * @see elm_progressbar_icon_get()
-    * @deprecated use elm_object_content_set() instead.
+    * @deprecated use elm_object_part_content_set() instead.
     *
     * @ingroup Progressbar
     */
-   EAPI void         elm_progressbar_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  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
@@ -21015,11 +21500,11 @@ extern "C" {
     * otherwise (and on errors)
     *
     * @see elm_progressbar_icon_set() for more details
-    * @deprecated use elm_object_content_set() instead.
+    * @deprecated use elm_object_part_content_get() instead.
     *
     * @ingroup Progressbar
     */
-   EAPI Evas_Object *elm_progressbar_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  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
@@ -21032,11 +21517,11 @@ extern "C" {
     * for this widget, previously, on success.
     *
     * @see elm_progressbar_icon_set() for more details
-    * @deprecated use elm_object_content_unset() instead.
+    * @deprecated use elm_object_part_content_unset() instead.
     *
     * @ingroup Progressbar
     */
-   EAPI Evas_Object *elm_progressbar_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  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
@@ -23610,11 +24095,8 @@ 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
+    * Default contents parts of the panel widget that you can use for are:
+    * @li "default" - A content of the panel
     *
     * @ref tutorial_panel shows one way to use this widget.
     * @{
@@ -23662,8 +24144,11 @@ 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_panel_content_unset() function.
+    *
+    * @deprecated use elm_object_content_set() instead
+    *
     */
-   EAPI void                  elm_panel_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void                  elm_panel_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
    /**
     * @brief Get the content of the panel.
     *
@@ -23673,8 +24158,11 @@ extern "C" {
     * Return the content object which is set for this widget.
     *
     * @see elm_panel_content_set()
+    * 
+    * @deprecated use elm_object_content_get() instead
+    *
     */
-   EAPI Evas_Object          *elm_panel_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object          *elm_panel_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Unset the content of the panel.
     *
@@ -23684,8 +24172,11 @@ extern "C" {
     * Unparent and return the content object which was set for this widget.
     *
     * @see elm_panel_content_set()
+    *
+    * @deprecated use elm_object_content_unset() instead
+    *
     */
-   EAPI Evas_Object          *elm_panel_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object          *elm_panel_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Set the state of the panel.
     *
@@ -23736,8 +24227,8 @@ extern "C" {
     * - @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
+    * @li "left" - A leftside content of the panes
+    * @li "right" - A rightside content of the panes
     *
     * If panes is displayed vertically, left content will be displayed at
     * top.
@@ -23746,9 +24237,6 @@ extern "C" {
     * @li @ref panes_example
     */
 
-#define ELM_PANES_CONTENT_LEFT "elm.swallow.left"
-#define ELM_PANES_CONTENT_RIGHT "elm.swallow.right"
-
    /**
     * @addtogroup Panes
     * @{
@@ -23783,9 +24271,11 @@ extern "C" {
     * @see elm_panes_content_left_get()
     * @see elm_panes_content_right_set() to set content on the other side.
     *
+    * @deprecated use elm_object_part_content_set() instead
+    *
     * @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.
@@ -23803,9 +24293,11 @@ extern "C" {
     * @see elm_panes_content_right_get()
     * @see elm_panes_content_left_set() to set content on the other side.
     *
+    * @deprecated use elm_object_part_content_set() instead
+    *
     * @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.
@@ -23817,9 +24309,11 @@ extern "C" {
     *
     * @see elm_panes_content_left_set() for details.
     *
+    * @deprecated use elm_object_part_content_get() instead
+    *
     * @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.
@@ -23831,9 +24325,11 @@ extern "C" {
     *
     * @see elm_panes_content_right_set() for details.
     *
+    * @deprecated use elm_object_part_content_get() instead
+    *
     * @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.
@@ -23846,9 +24342,11 @@ extern "C" {
     * @see elm_panes_content_left_set() for details.
     * @see elm_panes_content_left_get().
     *
+    * @deprecated use elm_object_part_content_unset() instead
+    *
     * @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.
@@ -23862,9 +24360,11 @@ extern "C" {
     * @see elm_panes_content_right_set() for details.
     * @see elm_panes_content_right_get().
     *
+    * @deprecated use elm_object_part_content_unset() instead
+    *
     * @ingroup Panes
     */
-   EAPI Evas_Object          *elm_panes_content_right_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object          *elm_panes_content_right_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Get the size proportion of panes widget's left side.
@@ -24306,8 +24806,7 @@ extern "C" {
     * - @c "default"
     *
     * Default contents parts of the conformant widget that you can use for are:
-    *
-    * @li "elm.swallow.content" - A content of the conformant
+    * @li "default" - A content of the conformant
     *
     * See how to use this widget in this example:
     * @ref conformant_example
@@ -24349,9 +24848,11 @@ extern "C" {
     * @see elm_object_content_unset()
     * @see elm_object_content_get()
     *
+    * @deprecated use elm_object_content_set() instead
+    *
     * @ingroup Conformant
     */
-   EAPI void         elm_conformant_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void         elm_conformant_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
 
    /**
     * Get the content of the conformant widget.
@@ -24366,9 +24867,11 @@ extern "C" {
     * @see elm_object_content_set().
     * @see elm_object_content_unset()
     *
+    * @deprecated use elm_object_content_get() instead
+    *
     * @ingroup Conformant
     */
-   EAPI Evas_Object *elm_conformant_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object *elm_conformant_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Unset the content of the conformant widget.
@@ -24380,9 +24883,11 @@ extern "C" {
     *
     * @see elm_object_content_set().
     *
+    * @deprecated use elm_object_content_unset() instead
+    *
     * @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.
@@ -24412,11 +24917,8 @@ 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.
+    * Default contents parts of the mapbuf widget that you can use for are:
+    * @li "default" - A content of the mapbuf
     *
     * To enable map, elm_mapbuf_enabled_set() should be used.
     * 
@@ -24454,9 +24956,11 @@ extern "C" {
     *
     * To enable map, elm_mapbuf_enabled_set() should be used.
     *
+    * @deprecated use elm_object_content_set() instead
+    *
     * @ingroup Mapbuf
     */
-   EAPI void         elm_mapbuf_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void         elm_mapbuf_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
 
    /**
     * Get the content of the mapbuf.
@@ -24468,9 +24972,11 @@ extern "C" {
     *
     * @see elm_mapbuf_content_set() for details.
     *
+    * @deprecated use elm_object_content_get() instead
+    *
     * @ingroup Mapbuf
     */
-   EAPI Evas_Object *elm_mapbuf_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object *elm_mapbuf_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Unset the content of the mapbuf.
@@ -24482,9 +24988,11 @@ extern "C" {
     *
     * @see elm_mapbuf_content_set() for details.
     *
+    * @deprecated use elm_object_content_unset() instead
+    *
     * @ingroup Mapbuf
     */
-   EAPI Evas_Object *elm_mapbuf_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object *elm_mapbuf_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Enable or disable the map.
@@ -24593,6 +25101,9 @@ extern "C" {
    /**
     * @defgroup Flipselector Flip Selector
     *
+    * @image html img/widget/flipselector/preview-00.png
+    * @image latex img/widget/flipselector/preview-00.eps
+    *
     * A flip selector is a widget to show a set of @b text items, one
     * at a time, with the same sheet switching style as the @ref Clock
     * "clock" widget, when one changes the current displaying sheet
@@ -24614,6 +25125,10 @@ extern "C" {
     * Available styles for it:
     * - @c "default"
     *
+        * To set/get the label of the flipselector item, you can use
+        * elm_object_item_text_set/get APIs.
+        * Once the text is set, a previously set one will be deleted.
+        * 
     * Here is an example on its usage:
     * @li @ref flipselector_example
     */
@@ -24623,8 +25138,6 @@ extern "C" {
     * @{
     */
 
-   typedef struct _Elm_Flipselector_Item Elm_Flipselector_Item; /**< Item handle for a flip selector widget. */
-
    /**
     * Add a new flip selector widget to the given parent Elementary
     * (container) widget
@@ -24689,7 +25202,7 @@ extern "C" {
     *
     * @ingroup Flipselector
     */
-   EAPI Elm_Flipselector_Item     *elm_flipselector_item_append(Evas_Object *obj, const char *label, Evas_Smart_Cb func, void *data) EINA_ARG_NONNULL(1);
+   EAPI Elm_Object_Item     *elm_flipselector_item_append(Evas_Object *obj, const char *label, Evas_Smart_Cb func, void *data) EINA_ARG_NONNULL(1);
 
    /**
     * Prepend a (text) item to a flip selector widget
@@ -24715,19 +25228,19 @@ extern "C" {
     *
     * @ingroup Flipselector
     */
-   EAPI Elm_Flipselector_Item     *elm_flipselector_item_prepend(Evas_Object *obj, const char *label, Evas_Smart_Cb func, void *data) EINA_ARG_NONNULL(1);
+   EAPI Elm_Object_Item     *elm_flipselector_item_prepend(Evas_Object *obj, const char *label, Evas_Smart_Cb func, void *data) EINA_ARG_NONNULL(1);
 
    /**
     * Get the internal list of items in a given flip selector widget.
     *
     * @param obj The flipselector object
-    * @return The list of items (#Elm_Flipselector_Item as data) or @c
-    * NULL on errors.
+    * @return The list of items (#Elm_Object_Item as data) or
+    * @c NULL on errors.
     *
     * This list is @b not to be modified in any way and must not be
     * freed. Use the list members with functions like
-    * elm_flipselector_item_label_set(),
-    * elm_flipselector_item_label_get(), elm_flipselector_item_del(),
+    * elm_object_item_text_set(),
+    * elm_object_item_text_get(),
     * elm_flipselector_item_del(),
     * elm_flipselector_item_selected_get(),
     * elm_flipselector_item_selected_set().
@@ -24753,7 +25266,7 @@ extern "C" {
     *
     * @ingroup Flipselector
     */
-   EAPI Elm_Flipselector_Item     *elm_flipselector_first_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI Elm_Object_Item     *elm_flipselector_first_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Get the last item in the given flip selector widget's list of
@@ -24768,7 +25281,7 @@ extern "C" {
     *
     * @ingroup Flipselector
     */
-   EAPI Elm_Flipselector_Item     *elm_flipselector_last_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI Elm_Object_Item     *elm_flipselector_last_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Get the currently selected item in a flip selector widget.
@@ -24779,13 +25292,13 @@ extern "C" {
     *
     * @ingroup Flipselector
     */
-   EAPI Elm_Flipselector_Item     *elm_flipselector_selected_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI Elm_Object_Item     *elm_flipselector_selected_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Set whether a given flip selector widget's item should be the
     * currently selected one.
     *
-    * @param item The flip selector item
+    * @param it The flip selector item
     * @param selected @c EINA_TRUE to select it, @c EINA_FALSE to unselect.
     *
     * This sets whether @p item is or not the selected (thus, under
@@ -24798,13 +25311,13 @@ extern "C" {
     *
     * @ingroup Flipselector
     */
-   EAPI void                       elm_flipselector_item_selected_set(Elm_Flipselector_Item *item, Eina_Bool selected) EINA_ARG_NONNULL(1);
+   EAPI void                       elm_flipselector_item_selected_set(Elm_Object_Item *it, Eina_Bool selected) EINA_ARG_NONNULL(1);
 
    /**
     * Get whether a given flip selector widget's item is the currently
     * selected one.
     *
-    * @param item The flip selector item
+    * @param it The flip selector item
     * @return @c EINA_TRUE, if it's selected, @c EINA_FALSE otherwise
     * (or on errors).
     *
@@ -24812,46 +25325,48 @@ extern "C" {
     *
     * @ingroup Flipselector
     */
-   EAPI Eina_Bool                  elm_flipselector_item_selected_get(const Elm_Flipselector_Item *item) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool                  elm_flipselector_item_selected_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
 
    /**
     * Delete a given item from a flip selector widget.
     *
-    * @param item The item to delete
+    * @param it The item to delete
     *
     * @ingroup Flipselector
     */
-   EAPI void                       elm_flipselector_item_del(Elm_Flipselector_Item *item) EINA_ARG_NONNULL(1);
+   EAPI void                       elm_flipselector_item_del(Elm_Object_Item *it) EINA_ARG_NONNULL(1);
 
    /**
     * Get the label of a given flip selector widget's item.
     *
-    * @param item The item to get label from
+    * @param it The item to get label from
     * @return The text label of @p item or @c NULL, on errors
     *
-    * @see elm_flipselector_item_label_set()
+    * @see elm_object_item_text_set()
     *
+    * @deprecated see elm_object_item_text_get() instead
     * @ingroup Flipselector
     */
-   EAPI const char                *elm_flipselector_item_label_get(const Elm_Flipselector_Item *item) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI const char                *elm_flipselector_item_label_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
 
    /**
     * Set the label of a given flip selector widget's item.
     *
-    * @param item The item to set label on
+    * @param it The item to set label on
     * @param label The text label string, in UTF-8 encoding
     *
-    * @see elm_flipselector_item_label_get()
+    * @see elm_object_item_text_get()
     *
+        * @deprecated see elm_object_item_text_set() instead
     * @ingroup Flipselector
     */
-   EAPI void                       elm_flipselector_item_label_set(Elm_Flipselector_Item *item, const char *label) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void                       elm_flipselector_item_label_set(Elm_Object_Item *it, const char *label) EINA_ARG_NONNULL(1);
 
    /**
     * Gets the item before @p item in a flip selector widget's
     * internal list of items.
     *
-    * @param item The item to fetch previous from
+    * @param it The item to fetch previous from
     * @return The item before the @p item, in its parent's list. If
     *         there is no previous item for @p item or there's an
     *         error, @c NULL is returned.
@@ -24860,13 +25375,13 @@ extern "C" {
     *
     * @ingroup Flipselector
     */
-   EAPI Elm_Flipselector_Item     *elm_flipselector_item_prev_get(Elm_Flipselector_Item *item) EINA_ARG_NONNULL(1);
+   EAPI Elm_Object_Item     *elm_flipselector_item_prev_get(Elm_Object_Item *it) EINA_ARG_NONNULL(1);
 
    /**
     * Gets the item after @p item in a flip selector widget's
     * internal list of items.
     *
-    * @param item The item to fetch next from
+    * @param it The item to fetch next from
     * @return The item after the @p item, in its parent's list. If
     *         there is no next item for @p item or there's an
     *         error, @c NULL is returned.
@@ -24875,7 +25390,7 @@ extern "C" {
     *
     * @ingroup Flipselector
     */
-   EAPI Elm_Flipselector_Item     *elm_flipselector_item_next_get(Elm_Flipselector_Item *item) EINA_ARG_NONNULL(1);
+   EAPI Elm_Object_Item     *elm_flipselector_item_next_get(Elm_Object_Item *it) EINA_ARG_NONNULL(1);
 
    /**
     * Set the interval on time updates for an user mouse button hold
@@ -24917,236 +25432,6 @@ extern "C" {
     * @ingroup Flipselector
     */
    EAPI double                     elm_flipselector_interval_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
-
-   /**
-    * @}
-    */
-
-   /**
-    * @addtogroup Animator Animator
-    * @ingroup Elementary
-    *
-    * @brief Functions to ease creation of animations.
-    *
-    * elm_animator is designed to provide an easy way to create animations.
-    * Creating an animation with elm_animator is as simple as setting a
-    * duration, an operating callback and telling it to run the animation.
-    * However that is not the full extent of elm_animator's ability, animations
-    * can be paused and resumed, reversed and the animation need not be linear.
-    *
-    * To run an animation you must specify at least a duration and operation
-    * callback, not setting any other properties will create a linear animation
-    * that runs once and is not reversed.
-    *
-    * @ref elm_animator_example_page_01 "This" example should make all of that
-    * very clear.
-    *
-    * @warning elm_animator is @b not a widget.
-    * @{
-    */
-   /**
-    * @brief Type of curve desired for animation.
-    *
-    * The speed in which an animation happens doesn't have to be linear, some
-    * animations will look better if they're accelerating or decelerating, so
-    * elm_animator provides four options in this regard:
-    * @image html elm_animator_curve_style.png
-    * @image latex elm_animator_curve_style.eps width=\textwidth
-    * As can be seen in the image the speed of the animation will be:
-    * @li ELM_ANIMATOR_CURVE_LINEAR constant
-    * @li ELM_ANIMATOR_CURVE_IN_OUT start slow, speed up and then slow down
-    * @li ELM_ANIMATOR_CURVE_IN start slow and then speed up
-    * @li ELM_ANIMATOR_CURVE_OUT start fast and then slow down
-    */
-   typedef enum
-     {
-        ELM_ANIMATOR_CURVE_LINEAR,
-        ELM_ANIMATOR_CURVE_IN_OUT,
-        ELM_ANIMATOR_CURVE_IN,
-        ELM_ANIMATOR_CURVE_OUT
-     } Elm_Animator_Curve_Style;
-   typedef struct _Elm_Animator Elm_Animator;
-  /**
-   * Called back per loop of an elementary animators cycle
-   * @param data user-data given to elm_animator_operation_callback_set()
-   * @param animator the animator being run
-   * @param double the position in the animation
-   */
-   typedef void (*Elm_Animator_Operation_Cb) (void *data, Elm_Animator *animator, double frame);
-  /**
-   * Called back when an elementary animator finishes
-   * @param data user-data given to elm_animator_completion_callback_set()
-   */
-   typedef void (*Elm_Animator_Completion_Cb) (void *data);
-
-   /**
-    * @brief Create a new animator.
-    *
-    * @param[in] parent Parent object
-    *
-    * The @a parent argument can be set to NULL for no parent. If a parent is set
-    * there is no need to call elm_animator_del(), when the parent is deleted it
-    * will delete the animator.
-    * @deprecated Use @ref Transit instead.
-
-    */
-   EINA_DEPRECATED EAPI Elm_Animator*            elm_animator_add(Evas_Object *parent);
-   /**
-    * Deletes the animator freeing any resources it used. If the animator was
-    * created with a NULL parent this must be called, otherwise it will be
-    * automatically called when the parent is deleted.
-    *
-    * @param[in] animator Animator object
-    * @deprecated Use @ref Transit instead.
-    */
-   EINA_DEPRECATED EAPI void                     elm_animator_del(Elm_Animator *animator) EINA_ARG_NONNULL(1);
-   /**
-    * Set the duration of the animation.
-    *
-    * @param[in] animator Animator object
-    * @param[in] duration Duration in second
-    * @deprecated Use @ref Transit instead.
-    */
-   EINA_DEPRECATED EAPI void                     elm_animator_duration_set(Elm_Animator *animator, double duration) EINA_ARG_NONNULL(1);
-   /**
-    * @brief Set the callback function for animator operation.
-    *
-    * @param[in] animator Animator object
-    * @param[in] func @ref Elm_Animator_Operation_Cb "Callback" function pointer
-    * @param[in] data Callback function user argument
-    *
-    * The @p func callback will be called with a frame value in range [0, 1] which
-    * indicates how far along the animation should be. It is the job of @p func to
-    * actually change the state of any object(or objects) that are being animated.
-    * @deprecated Use @ref Transit instead.
-    */
-   EINA_DEPRECATED EAPI void                     elm_animator_operation_callback_set(Elm_Animator *animator, Elm_Animator_Operation_Cb func, void *data) EINA_ARG_NONNULL(1);
-   /**
-    * Set the callback function for the when the animation ends.
-    *
-    * @param[in]  animator Animator object
-    * @param[in]  func   Callback function pointe
-    * @param[in]  data Callback function user argument
-    *
-    * @warning @a func will not be executed if elm_animator_stop() is called.
-    * @deprecated Use @ref Transit instead.
-    */
-   EINA_DEPRECATED EAPI void                     elm_animator_completion_callback_set(Elm_Animator *animator, Elm_Animator_Completion_Cb func, void *data) EINA_ARG_NONNULL(1);
-   /**
-    * @brief Stop animator.
-    *
-    * @param[in] animator Animator object
-    *
-    * If called before elm_animator_animate() it does nothing. If there is an
-    * animation in progress the animation will be stopped(the operation callback
-    * will not be executed again) and it can't be restarted using
-    * elm_animator_resume().
-    * @deprecated Use @ref Transit instead.
-    */
-   EINA_DEPRECATED EAPI void                     elm_animator_stop(Elm_Animator *animator) EINA_ARG_NONNULL(1);
-   /**
-    * Set the animator repeat count.
-    *
-    * @param[in]  animator Animator object
-    * @param[in]  repeat_cnt Repeat count
-    * @deprecated Use @ref Transit instead.
-    */
-   EINA_DEPRECATED EAPI void                     elm_animator_repeat_set(Elm_Animator *animator, unsigned int repeat_cnt) EINA_ARG_NONNULL(1);
-   /**
-    * @brief Start animation.
-    *
-    * @param[in] animator Animator object
-    *
-    * This function starts the animation if the nescessary properties(duration
-    * and operation callback) have been set. Once started the animation will
-    * run until complete or elm_animator_stop() is called.
-    * @deprecated Use @ref Transit instead.
-    */
-   EINA_DEPRECATED EAPI void                     elm_animator_animate(Elm_Animator *animator) EINA_ARG_NONNULL(1);
-   /**
-    * Sets the animation @ref Elm_Animator_Curve_Style "acceleration style".
-    *
-    * @param[in] animator Animator object
-    * @param[in] cs Curve style. Default is ELM_ANIMATOR_CURVE_LINEAR
-    * @deprecated Use @ref Transit instead.
-    */
-   EINA_DEPRECATED EAPI void                     elm_animator_curve_style_set(Elm_Animator *animator, Elm_Animator_Curve_Style cs) EINA_ARG_NONNULL(1);
-   /**
-    * Gets the animation @ref Elm_Animator_Curve_Style "acceleration style".
-    *
-    * @param[in] animator Animator object
-    * @param[in] cs Curve style. Default is ELM_ANIMATOR_CURVE_LINEAR
-    * @deprecated Use @ref Transit instead.
-    */
-   EINA_DEPRECATED EAPI Elm_Animator_Curve_Style elm_animator_curve_style_get(const Elm_Animator *animator) EINA_ARG_NONNULL(1);
-   /**
-    * @brief Sets wether the animation should be automatically reversed.
-    *
-    * @param[in] animator Animator object
-    * @param[in] reverse Reverse or not
-    *
-    * This controls wether the animation will be run on reverse imediately after
-    * running forward. When this is set together with repetition the animation
-    * will run in reverse once for each time it ran forward.@n
-    * Runnin an animation in reverse is accomplished by calling the operation
-    * callback with a frame value starting at 1 and diminshing until 0.
-    * @deprecated Use @ref Transit instead.
-    */
-   EINA_DEPRECATED EAPI void                     elm_animator_auto_reverse_set(Elm_Animator *animator, Eina_Bool reverse) EINA_ARG_NONNULL(1);
-   /**
-    * Gets wether the animation will automatically reversed
-    *
-    * @param[in] animator Animator object
-    * @deprecated Use @ref Transit instead.
-    */
-   EINA_DEPRECATED EAPI Eina_Bool                elm_animator_auto_reverse_get(const Elm_Animator *animator) EINA_ARG_NONNULL(1);
-   /**
-    * Gets the status for the animator operation. The status of the animator @b
-    * doesn't take in to account elm_animator_pause() or elm_animator_resume(), it
-    * only informs if the animation was started and has not ended(either normally
-    * or through elm_animator_stop()).
-    *
-    * @param[in] animator Animator object
-    * @deprecated Use @ref Transit instead.
-    */
-   EINA_DEPRECATED EAPI Eina_Bool                elm_animator_operating_get(const Elm_Animator *animator) EINA_ARG_NONNULL(1);
-   /**
-    * Gets how many times the animation will be repeated
-    *
-    * @param[in] animator Animator object
-    * @deprecated Use @ref Transit instead.
-    */
-   EINA_DEPRECATED EAPI unsigned int             elm_animator_repeat_get(const Elm_Animator *animator) EINA_ARG_NONNULL(1);
-   /**
-    * Pause the animator.
-    *
-    * @param[in]  animator Animator object
-    *
-    * This causes the animation to be temporarily stopped(the operation callback
-    * will not be called). If the animation is not yet running this is a no-op.
-    * Once an animation has been paused with this function it can be resumed
-    * using elm_animator_resume().
-    * @deprecated Use @ref Transit instead.
-    */
-   EINA_DEPRECATED EAPI void                     elm_animator_pause(Elm_Animator *animator) EINA_ARG_NONNULL(1);
-   /**
-    * @brief Resumes the animator.
-    *
-    * @param[in]  animator Animator object
-    *
-    * Resumes an animation that was paused using elm_animator_pause(), after
-    * calling this function calls to the operation callback will happen
-    * normally. If an animation is stopped by means of elm_animator_stop it
-    * @b can't be restarted with this function.@n
-    *
-    * @warning When an animation is resumed it doesn't start from where it was paused, it
-    * will go to where it would have been if it had not been paused. If an
-    * animation with a duration of 3 seconds is paused after 1 second for 1 second
-    * it will resume as if it had ben animating for 2 seconds, the operating
-    * callback will be called with a frame value of aproximately 2/3.
-    * @deprecated Use @ref Transit instead.
-    */
-   EINA_DEPRECATED EAPI void                     elm_animator_resume(Elm_Animator *animator) EINA_ARG_NONNULL(1);
    /**
     * @}
     */
@@ -25512,9 +25797,6 @@ extern "C" {
     * @ingroup Calendar
     */
    EAPI void               elm_calendar_marks_draw(Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EINA_DEPRECATED EAPI void               elm_calendar_text_saturday_color_set(Evas_Object *obj, int pos) EINA_ARG_NONNULL(1);
-   EINA_DEPRECATED EAPI void               elm_calendar_text_sunday_color_set(Evas_Object *obj, int pos) EINA_ARG_NONNULL(1);
-   EINA_DEPRECATED EAPI void               elm_calendar_text_weekday_color_set(Evas_Object *obj, int pos) EINA_ARG_NONNULL(1);
 
    /**
     * Set a day text color to the same that represents Saturdays.
@@ -25534,7 +25816,7 @@ extern "C" {
     *
     * @ingroup Calendar
     */
-   EAPI void               elm_calendar_text_saturday_color_set(Evas_Object *obj, int pos) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void               elm_calendar_text_saturday_color_set(Evas_Object *obj, int pos) EINA_ARG_NONNULL(1);
 
    /**
     * Set a day text color to the same that represents Sundays.
@@ -25554,7 +25836,7 @@ extern "C" {
     *
     * @ingroup Calendar
     */
-   EAPI void               elm_calendar_text_sunday_color_set(Evas_Object *obj, int pos) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void               elm_calendar_text_sunday_color_set(Evas_Object *obj, int pos) EINA_ARG_NONNULL(1);
 
    /**
     * Set a day text color to the same that represents Weekdays.
@@ -25583,7 +25865,7 @@ extern "C" {
     *
     * @ingroup Calendar
     */
-   EAPI void               elm_calendar_text_weekday_color_set(Evas_Object *obj, int pos) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void               elm_calendar_text_weekday_color_set(Evas_Object *obj, int pos) EINA_ARG_NONNULL(1);
 
    /**
     * Set the interval on time updates for an user mouse button hold
@@ -26492,7 +26774,13 @@ extern "C" {
     * "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
+    * @li "default" - A content of the ctxpopup
+    *
+    * Default contents parts of the naviframe items that you can use for are:
+    * @li "icon" - A icon in the title area
+    * 
+    * Default text parts of the naviframe items that you can use for are:
+    * @li "default" - Title label in the title area
     *
     * @ref tutorial_ctxpopup shows the usage of a good deal of the API.
     * @{
@@ -26594,8 +26882,9 @@ extern "C" {
     * @param disabled @c EINA_TRUE to disable it, @c EINA_FALSE to enable it
     *
     * When disabled the item is greyed out to indicate it's state.
+    * @deprecated use elm_object_item_disabled_set() instead
     */
-   EAPI void          elm_ctxpopup_item_disabled_set(Elm_Object_Item *it, Eina_Bool disabled) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void          elm_ctxpopup_item_disabled_set(Elm_Object_Item *it, Eina_Bool disabled) EINA_ARG_NONNULL(1);
    /**
     * @brief Get the ctxpopup item's disabled/enabled state.
     *
@@ -26603,6 +26892,7 @@ extern "C" {
     * @return disabled @c EINA_TRUE, if disabled, @c EINA_FALSE otherwise
     *
     * @see elm_ctxpopup_item_disabled_set()
+    * @deprecated use elm_object_item_disabled_get() instead
     */
    EAPI Eina_Bool     elm_ctxpopup_item_disabled_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
    /**
@@ -26614,8 +26904,10 @@ extern "C" {
     *
     * @see elm_ctxpopup_item_append()
     * @see elm_ctxpopup_item_icon_set()
+    *
+    * @deprecated use elm_object_item_part_content_get() instead
     */
-   EAPI Evas_Object  *elm_ctxpopup_item_icon_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object  *elm_ctxpopup_item_icon_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
    /**
     * @brief Sets the side icon associated with the ctxpopup item
     *
@@ -26627,8 +26919,11 @@ extern "C" {
     * dissapear from the first item.
     *
     * @see elm_ctxpopup_item_append()
+    *  
+    * @deprecated use elm_object_item_part_content_set() instead
+    *
     */
-   EAPI void          elm_ctxpopup_item_icon_set(Elm_Object_Item *it, Evas_Object *icon) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void          elm_ctxpopup_item_icon_set(Elm_Object_Item *it, Evas_Object *icon) EINA_ARG_NONNULL(1);
    /**
     * @brief Get the label for the given ctxpopup item.
     *
@@ -26638,15 +26933,19 @@ extern "C" {
     *
     * @see elm_ctxpopup_item_append()
     * @see elm_ctxpopup_item_label_set()
+    *
+    * @deprecated use elm_object_item_text_get() instead
     */
-   EAPI const char   *elm_ctxpopup_item_label_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI const char   *elm_ctxpopup_item_label_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
    /**
     * @brief (Re)set the label on the given ctxpopup item.
     *
     * @param it Ctxpopup item
     * @param label String to set as label
+    *
+    * @deprecated use elm_object_item_text_set() instead
     */
-   EAPI void          elm_ctxpopup_item_label_set(Elm_Object_Item *it, const char *label) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void          elm_ctxpopup_item_label_set(Elm_Object_Item *it, const char *label) EINA_ARG_NONNULL(1);
    /**
     * @brief Set an elm widget as the content of the ctxpopup.
     *
@@ -26657,12 +26956,13 @@ extern "C" {
     * you want to keep that old content object, use the
     * elm_ctxpopup_content_unset() function.
     *
-    * @deprecated use elm_object_content_set()
-    *
     * @warning Ctxpopup can't hold both a item list and a content at the same
     * time. When a content is set, any previous items will be removed.
+    * 
+    * @deprecated use elm_object_content_set() instead
+    *
     */
-   EAPI void          elm_ctxpopup_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1, 2);
+   WILL_DEPRECATE  EAPI void          elm_ctxpopup_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1, 2);
    /**
     * @brief Unset the ctxpopup content
     *
@@ -26674,8 +26974,11 @@ extern "C" {
     * @deprecated use elm_object_content_unset()
     *
     * @see elm_ctxpopup_content_set()
+    *
+    * @deprecated use elm_object_content_unset() instead
+    *
     */
-   EAPI Evas_Object  *elm_ctxpopup_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object  *elm_ctxpopup_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Set the direction priority of a ctxpopup.
     *
@@ -28131,7 +28434,6 @@ extern "C" {
    EAPI Eina_Bool    elm_factory_maxmin_mode_get(const Evas_Object *obj);
    EAPI void         elm_factory_maxmin_reset_set(Evas_Object *obj);
 
-
    /**
     * @defgroup Video Video
     *
@@ -28161,7 +28463,8 @@ extern "C" {
     * "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.
+    * Default contents parts of the player widget that you can use for are:
+    * @li "video" - A video of the player
     * 
     */
 
@@ -28173,7 +28476,7 @@ extern "C" {
     *
     * This function inserts a new player widget on the canvas.
     *
-    * @see elm_object_content_set()
+    * @see elm_object_part_content_set()
     *
     * @ingroup Video
     */
@@ -28191,10 +28494,11 @@ extern "C" {
     *
     * @see elm_player_add()
     * @see elm_video_add()
+    * @deprecated use elm_object_part_content_set() instead
     *
     * @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.
@@ -28479,41 +28783,6 @@ extern "C" {
    EAPI int          elm_popup_run(Evas_Object *obj);
 
    /* NavigationBar */
-   #define NAVIBAR_TITLEOBJ_INSTANT_HIDE "elm,state,hide,noanimate,title", "elm"
-   #define NAVIBAR_TITLEOBJ_INSTANT_SHOW "elm,state,show,noanimate,title", "elm"
-
-   typedef enum
-     {
-        ELM_NAVIGATIONBAR_FUNCTION_BUTTON1,
-        ELM_NAVIGATIONBAR_FUNCTION_BUTTON2,
-        ELM_NAVIGATIONBAR_FUNCTION_BUTTON3,
-        ELM_NAVIGATIONBAR_BACK_BUTTON
-     } Elm_Navi_Button_Type;
-
-   EINA_DEPRECATED EAPI Evas_Object *elm_navigationbar_add(Evas_Object *parent);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_push(Evas_Object *obj, const char *title, Evas_Object *fn_btn1, Evas_Object *fn_btn2, Evas_Object *fn_btn3, Evas_Object *content);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_pop(Evas_Object *obj);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_to_content_pop(Evas_Object *obj, Evas_Object *content);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_title_label_set(Evas_Object *obj, Evas_Object *content, const char *title);
-   EINA_DEPRECATED    EAPI const char  *elm_navigationbar_title_label_get(Evas_Object *obj, Evas_Object *content);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_title_object_add(Evas_Object *obj, Evas_Object *content, Evas_Object *title_obj);
-   EINA_DEPRECATED    EAPI Evas_Object *elm_navigationbar_title_object_get(Evas_Object *obj, Evas_Object *content);
-   EINA_DEPRECATED    EAPI Eina_List   *elm_navigationbar_title_object_list_get(Evas_Object *obj, Evas_Object *content);
-   EINA_DEPRECATED    EAPI Evas_Object *elm_navigationbar_content_top_get(Evas_Object *obj);
-   EINA_DEPRECATED    EAPI Evas_Object *elm_navigationbar_content_bottom_get(Evas_Object *obj);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_hidden_set(Evas_Object *obj, Eina_Bool hidden);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_title_button_set(Evas_Object *obj, Evas_Object *content, Evas_Object *button, Elm_Navi_Button_Type button_type);
-   EINA_DEPRECATED    EAPI Evas_Object *elm_navigationbar_title_button_get(Evas_Object *obj, Evas_Object *content, Elm_Navi_Button_Type button_type);
-   EINA_DEPRECATED    EAPI const char  *elm_navigationbar_subtitle_label_get(Evas_Object *obj, Evas_Object *content);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_subtitle_label_set(Evas_Object *obj, Evas_Object *content, const char *subtitle);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_title_object_list_unset(Evas_Object *obj, Evas_Object *content, Eina_List **list);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_animation_disabled_set(Evas_Object *obj, Eina_Bool disable);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_title_object_visible_set(Evas_Object *obj, Evas_Object *content, Eina_Bool visible);
-   EINA_DEPRECATED    Eina_Bool         elm_navigationbar_title_object_visible_get(Evas_Object *obj, Evas_Object *content);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_title_icon_set(Evas_Object *obj, Evas_Object *content, Evas_Object *icon);
-   EINA_DEPRECATED    EAPI Evas_Object *elm_navigationbar_title_icon_get(Evas_Object *obj, Evas_Object *content);
-
-   /* NavigationBar */
    #define NAVIBAR_EX_TITLEOBJ_INSTANT_HIDE "elm,state,hide,noanimate,title", "elm"
    #define NAVIBAR_EX_TITLEOBJ_INSTANT_SHOW "elm,state,show,noanimate,title", "elm"
 
@@ -28579,14 +28848,14 @@ extern "C" {
     * @li "title,clicked" - User clicked title area
     *
     * 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 "default" - A main content of the page
+    * @li "icon" - A icon in the title area
+    * @li "prev_btn" - A button to go to the previous page
+    * @li "next_btn" - A button to go to the next page
     *
     * 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
+    * @li "default" - Title label in the title area
+    * @li "subtitle" - Sub-title label in the title area
     *
     * @ref tutorial_naviframe gives a good overview of the usage of the API.
     */
@@ -28605,6 +28874,10 @@ extern "C" {
   #define ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_OPEN "elm,state,optionheader,open", ""
   #define ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_INSTANT_CLOSE "elm,state,optionheader,instant_close", ""
   #define ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_INSTANT_OPEN "elm,state,optionheader,instant_open", ""
+  #define ELM_NAVIFRAME_ITEM_SIGNAL_CONTROLBAR_CLOSE "elm,state,controlbar,close", ""
+  #define ELM_NAVIFRAME_ITEM_SIGNAL_CONTROLBAR_OPEN "elm,state,controlbar,open", ""
+  #define ELM_NAVIFRAME_ITEM_SIGNAL_CONTROLBAR_INSTANT_CLOSE "elm,state,controlbar,instant_close", ""
+  #define ELM_NAVIFRAME_ITEM_SIGNAL_CONTROLBAR_INSTANT_OPEN "elm,state,controlbar,instant_open", ""
 
    //Available only in a style - "2line"
   #define ELM_NAVIFRAME_ITEM_OPTIONHEADER2 "elm.swallow.optionheader2"
@@ -29071,55 +29344,34 @@ extern "C" {
     */
 
 
-   /* Sliding Drawer */
-   typedef enum _Elm_SlidingDrawer_Pos
-     {
-        ELM_SLIDINGDRAWER_BOTTOM,
-        ELM_SLIDINGDRAWER_LEFT,
-        ELM_SLIDINGDRAWER_RIGHT,
-        ELM_SLIDINGDRAWER_TOP
-     } Elm_SlidingDrawer_Pos;
-
-   typedef struct _Elm_SlidingDrawer_Drag_Value
-     {
-        double x, y;
-     } Elm_SlidingDrawer_Drag_Value;
-
-   EINA_DEPRECATED EAPI Evas_Object *elm_slidingdrawer_add(Evas_Object *parent);
-   EINA_DEPRECATED EAPI void         elm_slidingdrawer_content_set (Evas_Object *obj, Evas_Object *content);
-   EINA_DEPRECATED EAPI Evas_Object *elm_slidingdrawer_content_unset(Evas_Object *obj);
-   EINA_DEPRECATED EAPI void         elm_slidingdrawer_pos_set(Evas_Object *obj, Elm_SlidingDrawer_Pos pos);
-   EINA_DEPRECATED EAPI void         elm_slidingdrawer_max_drag_value_set(Evas_Object *obj, double dw,  double dh);
-   EINA_DEPRECATED EAPI void         elm_slidingdrawer_drag_value_set(Evas_Object *obj, double dx, double dy);
-
    /* multibuttonentry */
    typedef struct _Multibuttonentry_Item Elm_Multibuttonentry_Item;
    typedef Eina_Bool (*Elm_Multibuttonentry_Item_Verify_Callback) (Evas_Object *obj, const char *item_label, void *item_data, void *data);
    EAPI Evas_Object               *elm_multibuttonentry_add(Evas_Object *parent);
-   EAPI const char                *elm_multibuttonentry_label_get(Evas_Object *obj);
+   EAPI const char                *elm_multibuttonentry_label_get(const Evas_Object *obj);
    EAPI void                       elm_multibuttonentry_label_set(Evas_Object *obj, const char *label);
-   EAPI Evas_Object               *elm_multibuttonentry_entry_get(Evas_Object *obj);
-   EAPI const char *               elm_multibuttonentry_guide_text_get(Evas_Object *obj);
+   EAPI Evas_Object               *elm_multibuttonentry_entry_get(const Evas_Object *obj);
+   EAPI const char *               elm_multibuttonentry_guide_text_get(const Evas_Object *obj);
    EAPI void                       elm_multibuttonentry_guide_text_set(Evas_Object *obj, const char *guidetext);
-   EAPI int                        elm_multibuttonentry_contracted_state_get(Evas_Object *obj);
+   EAPI int                        elm_multibuttonentry_contracted_state_get(const Evas_Object *obj);
    EAPI void                       elm_multibuttonentry_contracted_state_set(Evas_Object *obj, int contracted);
    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_add_start(Evas_Object *obj, const char *label, void *data);
    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_add_end(Evas_Object *obj, const char *label, void *data);
    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_add_before(Evas_Object *obj, const char *label, Elm_Multibuttonentry_Item *before, void *data);
    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_add_after(Evas_Object *obj, const char *label, Elm_Multibuttonentry_Item *after, void *data);
-   EAPI const Eina_List           *elm_multibuttonentry_items_get(Evas_Object *obj);
-   EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_first_get(Evas_Object *obj);
-   EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_last_get(Evas_Object *obj);
-   EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_selected_get(Evas_Object *obj);
+   EAPI const Eina_List           *elm_multibuttonentry_items_get(const Evas_Object *obj);
+   EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_first_get(const Evas_Object *obj);
+   EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_last_get(const Evas_Object *obj);
+   EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_selected_get(const Evas_Object *obj);
    EAPI void                       elm_multibuttonentry_item_selected_set(Elm_Multibuttonentry_Item *item);
    EAPI void                       elm_multibuttonentry_item_unselect_all(Evas_Object *obj);
    EAPI void                       elm_multibuttonentry_item_del(Elm_Multibuttonentry_Item *item);
    EAPI void                       elm_multibuttonentry_items_del(Evas_Object *obj);
-   EAPI const char                *elm_multibuttonentry_item_label_get(Elm_Multibuttonentry_Item *item);
+   EAPI const char                *elm_multibuttonentry_item_label_get(const Elm_Multibuttonentry_Item *item);
    EAPI void                       elm_multibuttonentry_item_label_set(Elm_Multibuttonentry_Item *item, const char *str);
    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_prev(Elm_Multibuttonentry_Item *item);
    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_next(Elm_Multibuttonentry_Item *item);
-   EAPI void                      *elm_multibuttonentry_item_data_get(Elm_Multibuttonentry_Item *item);
+   EAPI void                      *elm_multibuttonentry_item_data_get(const Elm_Multibuttonentry_Item *item);
    EAPI void                       elm_multibuttonentry_item_data_set(Elm_Multibuttonentry_Item *item, void *data);
    EAPI void                       elm_multibuttonentry_item_verify_callback_set(Evas_Object *obj, Elm_Multibuttonentry_Item_Verify_Callback func, void *data);
    /* smart callback called: