elementary/naviframe - removed unused APIs
[framework/uifw/elementary.git] / src / lib / Elementary.h.in
index e049e28..84b6746 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 /**
-@file elementary.dox
+@file Elementary.h.in
 @brief Elementary Widget Library
 */
 
@@ -329,6 +329,14 @@ extern "C" {
 
 
    /**
+    * @typedef Elm_Object_Item
+    * An Elementary Object item handle.
+    * @ingroup General
+    */
+   typedef struct _Elm_Object_Item Elm_Object_Item;
+
+
+   /**
     * 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.
@@ -680,14 +688,14 @@ extern "C" {
     * Set a label of an object
     *
     * @param obj The Elementary object
-    * @param item The label id to set (NULL for the default label)
+    * @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 *item, const char *label);
+   EAPI void         elm_object_text_part_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))
 
@@ -695,19 +703,175 @@ extern "C" {
     * Get a label of an object
     *
     * @param obj The Elementary object
-    * @param item The label id to get (NULL for the default label)
-    * @return text of the label or
-    *         NULL for any error
+    * @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)
     *
     * @ingroup General
     */
-   EAPI const char  *elm_object_text_part_get(const Evas_Object *obj, const char *item);
+   EAPI const char  *elm_object_text_part_get(const Evas_Object *obj, const char *part);
 
 #define elm_object_text_get(obj) elm_object_text_part_get((obj), NULL)
 
    /**
+    * 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);
+
+#define elm_object_content_set(obj, content) elm_object_content_part_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
+    *
+    * @ingroup General
+    */
+   EAPI Evas_Object *elm_object_content_part_get(const Evas_Object *obj, const char *part);
+
+#define elm_object_content_get(obj) elm_object_content_part_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
+    *
+    * @ingroup General
+    */
+   EAPI Evas_Object *elm_object_content_part_unset(Evas_Object *obj, const char *part);
+
+#define elm_object_content_unset(obj) elm_object_content_part_unset((obj), NULL)
+
+   /**
+    * 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);
+
+#define elm_object_item_content_set(it, content) elm_object_item_content_part_set((it), NULL, (content))
+
+   /**
+    * 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_content_part_get(const Elm_Object_Item *it, const char *item);
+
+#define elm_object_item_content_get(it) elm_object_item_content_part_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
+    *
+    * @ingroup General
+    */
+   EAPI Evas_Object *elm_object_item_content_part_unset(Elm_Object_Item *it, const char *part);
+
+#define elm_object_item_content_unset(it, content) elm_object_item_content_part_unset((it), (content))
+
+   /**
+    * Set a label of an objec itemt
+    *
+    * @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
+    *
+    * @ingroup General
+    */
+   EAPI void elm_object_item_text_part_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))
+
+   /**
+    * Get a label of an object
+    *
+    * @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);
+
+   /**
+    * 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);
+
+   /**
+    * 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);
+
+
+#define elm_object_item_text_get(it) elm_object_item_text_part_get((it), NULL)
+
+   /**
+    * Get the data associated with an object item
+    * @param it The object item
+    * @return The data associated with @p it
+    *
+    * @ingroup General
+    */
+   EAPI void *elm_object_item_data_get(const Elm_Object_Item *it);
+
+   /**
+    * Set the data associated with an object item
+    * @param it The object item
+    * @param data The data to be associated with @p it
+    *
+    * @ingroup General
+    */
+   EAPI void elm_object_item_data_set(Elm_Object_Item *it, void *data);
+
+   /**
     * @}
     */
 
@@ -766,6 +930,69 @@ extern "C" {
     * @ingroup Scaling
     */
    EAPI double       elm_object_scale_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+   /**
+    * @defgroup Password_last_show Password last input show
+    *
+    * Last show feature of password mode enables user to view
+    * the last input entered for few seconds before masking it.
+    * These functions allow to set this feature in password mode
+    * of entry widget and also allow to manipulate the duration 
+    * for which the input has to be visible.
+    *
+    * @{
+    */
+
+   /**
+    * Get show last setting of password mode.
+    *
+    * This gets the show last input setting of password mode which might be 
+    * enabled or disabled.
+    *
+    * @return @c EINA_TRUE, if the last input show setting is enabled, @c EINA_FALSE
+    *            if it's disabled.
+    * @ingroup Password_last_show
+    */
+   EAPI Eina_Bool elm_password_show_last_get(void);
+
+   /**
+    * Set show last setting in password mode.
+    *
+    * This enables or disables show last setting of password mode.
+    *
+    * @param password_show_last If EINA_TRUE enable's last input show in password mode.
+    * @see elm_password_show_last_timeout_set()
+    * @ingroup Password_last_show
+    */
+   EAPI void elm_password_show_last_set(Eina_Bool password_show_last);
+
+   /**
+    * Get's the timeout value in last show password mode.
+    *
+    * This gets the time out value for which the last input entered in password
+    * mode will be visible.
+    *
+    * @return The timeout value of last show password mode.
+    * @ingroup Password_last_show
+    */
+   EAPI double elm_password_show_last_timeout_get(void);
+
+   /**
+    * Set's the timeout value in last show password mode.
+    *
+    * This sets the time out value for which the last input entered in password
+    * mode will be visible.
+    *
+    * @param password_show_last_timeout The timeout value.
+    * @see elm_password_show_last_set()
+    * @ingroup Password_last_show
+    */
+   EAPI void elm_password_show_last_timeout_set(double password_show_last_timeout);
+
+   /**
+    * @}
+    */
+
    EAPI Eina_Bool    elm_object_mirrored_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_object_mirrored_set(Evas_Object *obj, Eina_Bool mirrored) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool    elm_object_mirrored_automatic_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
@@ -1087,6 +1314,40 @@ extern "C" {
    EAPI void             elm_object_focus_cycle(Evas_Object *obj, Elm_Focus_Direction dir) EINA_ARG_NONNULL(1);
    EAPI void             elm_object_focus_direction_go(Evas_Object *obj, int x, int y) EINA_ARG_NONNULL(1);
 
+   /**
+    * Make the elementary object and its children to be unfocusable (or focusable).
+    *
+    * @param obj The Elementary object to operate on
+    * @param tree_unfocusable @c EINA_TRUE for unfocusable,
+    *        @c EINA_FALSE for focusable.
+    *
+    * This sets whether the object @p obj and its children objects
+    * able to take focus or not. If the tree is unfocusable,
+    * newest focused object which is not in this tree will get focus.
+    * This API can be helpful for an object to be deleted.
+    * When an object will be deleted soon, it and its children may not
+    * want to get focus (by focus reverting or by other focus controls).
+    * Then, just use this API before deleting.
+    *
+    * @see elm_object_tree_unfocusable_get()
+    *
+    * @ingroup Focus
+    */
+   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.
+    *
+    * @param obj The Elementary object to get the information from
+    * @return @c EINA_TRUE, if the tree is unfocussable,
+    *         @c EINA_FALSE if not (and on errors).
+    *
+    * @see elm_object_tree_unfocusable_set()
+    *
+    * @ingroup Focus
+    */
+   EAPI Eina_Bool        elm_object_tree_unfocusable_get(const Evas_Object *obj); EINA_ARG_NONNULL(1);
+
    EAPI Eina_Bool        elm_scroll_bounce_enabled_get(void);
    EAPI void             elm_scroll_bounce_enabled_set(Eina_Bool enabled);
    EAPI void             elm_scroll_bounce_enabled_all_set(Eina_Bool enabled);
@@ -1167,6 +1428,9 @@ extern "C" {
    EAPI void             elm_object_tree_dump(const Evas_Object *top);
    EAPI void             elm_object_tree_dot_dump(const Evas_Object *top, const char *file);
 
+   EAPI void             elm_autocapitalization_allow_all_set(Eina_Bool autocap);
+   EAPI void             elm_autoperiod_allow_all_set(Eina_Bool autoperiod);
+
 
    /* theme */
    /**
@@ -1612,6 +1876,8 @@ extern "C" {
    EAPI Eina_Bool    elm_win_focus_highlight_enabled_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_win_focus_highlight_style_set(Evas_Object *obj, const char *style) EINA_ARG_NONNULL(1);
    EAPI const char  *elm_win_focus_highlight_style_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void         elm_win_indicator_state_set(Evas_Object *obj, int show_state);
+   EAPI int          elm_win_indicator_state_get(Evas_Object *obj);
    /*...
     * ecore_x_icccm_hints_set -> accepts_focus (add to ecore_evas)
     * ecore_x_icccm_hints_set -> window_group (add to ecore_evas)
@@ -1854,6 +2120,12 @@ extern "C" {
    EAPI int                   elm_icon_prescale_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void                  elm_icon_order_lookup_set(Evas_Object *obj, Elm_Icon_Lookup_Order order) EINA_ARG_NONNULL(1);
    EAPI Elm_Icon_Lookup_Order elm_icon_order_lookup_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool             elm_icon_anim_available_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void                  elm_icon_anim_set(Evas_Object *obj, Eina_Bool anim) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool             elm_icon_anim_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void                  elm_icon_anim_play_set(Evas_Object *obj, Eina_Bool play) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool             elm_icon_anim_play_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
    /* smart callbacks called:
     * "clicked" - the user clicked the icon
     */
@@ -2385,6 +2657,16 @@ extern "C" {
     * Follow through a complete example @ref button_example_01 "here".
     * @{
     */
+
+   typedef enum
+     {
+        UIControlStateDefault,
+        UIControlStateHighlighted,
+        UIControlStateDisabled,
+        UIControlStateFocused,
+        UIControlStateReserved
+     } UIControlState;
+
    /**
     * Add a new button to the parent's canvas
     *
@@ -2418,6 +2700,35 @@ extern "C" {
     */
    EINA_DEPRECATED EAPI const char  *elm_button_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
+    * Set the label for each state of button
+    *
+    * The passed @p label can be NULL to clean any existing text in it and
+    * leave the button as an icon only object for the state.
+    *
+    * @param obj The button object
+    * @param label The text will be written on the button
+    * @param state The state of button
+    *
+    * @ingroup Button
+    */
+   EINA_DEPRECATED EAPI void         elm_button_label_set_for_state(Evas_Object *obj, const char *label, UIControlState state) EINA_ARG_NONNULL(1);
+   /**
+    * Get the label of button for each state
+    *
+    * The string returned is an internal pointer and should not be freed or
+    * altered. It will also become invalid when the button is destroyed.
+    * The string returned, if not NULL, is a stringshare, so if you need to
+    * keep it around even after the button is destroyed, you can use
+    * eina_stringshare_ref().
+    *
+    * @param obj The button object
+    * @param state The state of button
+    * @return The title of button for state
+    *
+    * @ingroup Button
+    */
+   EINA_DEPRECATED EAPI const char  *elm_button_label_get_for_state(const Evas_Object *obj, UIControlState state) EINA_ARG_NONNULL(1);
+   /**
     * Set the icon used for the button
     *
     * Setting a new icon will delete any other that was previously set, making
@@ -2607,6 +2918,7 @@ extern "C" {
    EAPI void         elm_scroller_region_bring_in(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h) EINA_ARG_NONNULL(1);
    EAPI void         elm_scroller_propagate_events_set(Evas_Object *obj, Eina_Bool propagation);
    EAPI Eina_Bool    elm_scroller_propagate_events_get(const Evas_Object *obj);
+   EINA_DEPRECATED EAPI void         elm_scroller_page_move_set(Evas_Object *obj, Eina_Bool set);
    /* smart callbacks called:
     * "edge,left" - the left edge of the content has been reached
     * "edge,right" - the right edge of the content has been reached
@@ -2634,6 +2946,7 @@ extern "C" {
    EAPI void         elm_label_text_align_set(Evas_Object *obj, const char *alignmode) EINA_ARG_NONNULL(1);
    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);
    EAPI void         elm_label_ellipsis_set(Evas_Object *obj, Eina_Bool ellipsis) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void elm_label_wrap_mode_set(Evas_Object *obj, Eina_Bool wrapmode) EINA_ARG_NONNULL(1);
    EAPI void         elm_label_slide_set(Evas_Object *obj, Eina_Bool slide) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool    elm_label_slide_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_label_slide_duration_set(Evas_Object *obj, double duration) EINA_ARG_NONNULL(1);
@@ -2663,23 +2976,137 @@ extern "C" {
     *             by the cursor in the first place).
     */
 
-   /* frame */
+   /**
+    * @page tutorial_frame Frame example
+    * @dontinclude frame_example_01.c
+    *
+    * In this example we are going to create 4 Frames with different styles and
+    * add a rectangle of different color in each.
+    *
+    * We start we the usual setup code:
+    * @until show(bg)
+    *
+    * And then create one rectangle:
+    * @until show
+    *
+    * To add it in our first frame, which since it doesn't have it's style
+    * specifically set uses the default style:
+    * @until show
+    *
+    * And then create another rectangle:
+    * @until show
+    *
+    * To add it in our second frame, which uses the "pad_small" style, note that
+    * even tough we are setting a text for this frame it won't be show, only the
+    * default style shows the Frame's title:
+    * @until show
+    * @note The "pad_small", "pad_medium", "pad_large" and "pad_huge" styles are
+    * very similar, their only difference is the size of the empty area around
+    * the content of the frame.
+    *
+    * And then create yet another rectangle:
+    * @until show
+    *
+    * To add it in our third frame, which uses the "outdent_top" style, note
+    * that even tough we are setting a text for this frame it won't be show,
+    * only the default style shows the Frame's title:
+    * @until show
+    *
+    * And then create one last rectangle:
+    * @until show
+    *
+    * To add it in our fourth and final frame, which uses the "outdent_bottom"
+    * style, note that even tough we are setting a text for this frame it won't
+    * be show, only the default style shows the Frame's title:
+    * @until show
+    *
+    * And now we are left with just some more setup code:
+    * @until ELM_MAIN()
+    *
+    * Our example will look like this:
+    * @image html screenshots/frame_example_01.png
+    * @image latex screenshots/frame_example_01.eps
+    *
+    * @example frame_example_01.c
+    */
+   /**
+    * @defgroup Frame Frame
+    *
+    * @brief Frame is a widget that holds some content and has a title.
+    *
+    * The default look is a frame with a title, but Frame supports multple
+    * styles:
+    * @li default
+    * @li pad_small
+    * @li pad_medium
+    * @li pad_large
+    * @li pad_huge
+    * @li outdent_top
+    * @li outdent_bottom
+    *
+    * Of all this styles only default shows the title. Frame emits no signals.
+    *
+    * For a detailed example see the @ref tutorial_frame.
+    *
+    * @{
+    */
+   /**
+    * @brief Add a new frame to the parent
+    *
+    * @param parent The parent object
+    * @return The new object or NULL if it cannot be created
+    */
    EAPI Evas_Object *elm_frame_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Set the frame label
+    *
+    * @param obj The frame object
+    * @param label The label of this frame object
+    *
+    * @deprecated use elm_object_text_set() instead.
+    */
    EINA_DEPRECATED EAPI void         elm_frame_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Get the frame label
+    *
+    * @param obj The frame object
+    *
+    * @return The label of this frame objet or NULL if unable to get frame
+    *
+    * @deprecated use elm_object_text_get() instead.
+    */
    EINA_DEPRECATED EAPI const char  *elm_frame_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Set the content of the frame widget
+    *
+    * 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_frame_content_unset() function.
+    *
+    * @param obj The frame object
+    * @param content The content will be filled in this frame object
+    */
    EAPI void         elm_frame_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Get the content of the frame widget
+    *
+    * Return the content object which is set for this widget
+    *
+    * @param obj The frame object
+    * @return The content that is being used
+    */
    EAPI Evas_Object *elm_frame_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI Evas_Object *elm_frame_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
-   /* available styles:
-    * default
-    * pad_small
-    * pad_medium
-    * pad_large
-    * pad_huge
-    * outdent_top
-    * outdent_bottom
+   /**
+    * @brief Unset the content of the frame widget
+    *
+    * Unparent and return the content object which was set for this widget
+    *
+    * @param obj The frame object
+    * @return The content that was being used
     */
-   /* smart callbacks called:
+   EAPI Evas_Object *elm_frame_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * @}
     */
 
    /* table */
@@ -2794,7 +3221,7 @@ extern "C" {
     * or gengrid has been resized or horizontal property has been changed.
     * scroll - the content has been scrolled (moved).
     * "scroll,drag,start" - dragging the contents around has started.
-    * "scroll,drat,stop" - dragging the contents around has stopped.
+    * "scroll,drag,stop" - dragging the contents around has stopped.
     * drag - Gengrid is being dragged.
     * "drag,start,up" - Gengrid has been dragged (not scrolled) up.
     * "drag,start,down" - Gengrid has been dragged (not scrolled) down.
@@ -2803,34 +3230,305 @@ extern "C" {
     * "drag,stop" - Gengrid is not being dragged.
     */
 
-   /* clock */
+   /**
+    * @defgroup Clock Clock
+    *
+    * This is a @b digital clock widget. In its default theme, it has a
+    * vintage "flipping numbers clock" appearance, which will animate
+    * sheets of individual algarisms individually as time goes by.
+    *
+    * A newly created clock will fetch system's time (already
+    * considering local time adjustments) to start with, and will tick
+    * accondingly. It may or may not show seconds.
+    *
+    * Clocks have an @b edition mode. When in it, the sheets will
+    * display extra arrow indications on the top and bottom and the
+    * user may click on them to raise or lower the time values. After
+    * it's told to exit edition mode, it will keep ticking with that
+    * new time set (it keeps the difference from local time).
+    *
+    * Also, when under edition mode, user clicks on the cited arrows
+    * which are @b held for some time will make the clock to flip the
+    * sheet, thus editing the time, continuosly and automatically for
+    * the user. The interval between sheet flips will keep growing in
+    * time, so that it helps the user to reach a time which is distant
+    * from the one set.
+    *
+    * The time display is, by default, in military mode (24h), but an
+    * am/pm indicator may be optionally shown, too, when it will
+    * switch to 12h.
+    *
+    * Smart callbacks one can register to:
+    * - "changed" - the clock's user changed the time
+    *
+    * Here is an example on its usage:
+    * @li @ref clock_example
+    */
+
+   /**
+    * @addtogroup Clock
+    * @{
+    */
+
+   /**
+    * Identifiers for which clock digits should be editable, when a
+    * clock widget is in edition mode. Values may be ORed together to
+    * make a mask, naturally.
+    *
+    * @see elm_clock_edit_set()
+    * @see elm_clock_digit_edit_set()
+    */
    typedef enum _Elm_Clock_Digedit
      {
-        ELM_CLOCK_NONE         = 0,
-        ELM_CLOCK_HOUR_DECIMAL = 1 << 0,
-        ELM_CLOCK_HOUR_UNIT    = 1 << 1,
-        ELM_CLOCK_MIN_DECIMAL  = 1 << 2,
-        ELM_CLOCK_MIN_UNIT     = 1 << 3,
-        ELM_CLOCK_SEC_DECIMAL  = 1 << 4,
-        ELM_CLOCK_SEC_UNIT     = 1 << 5,
-        ELM_CLOCK_ALL          = (1 << 6) - 1
+        ELM_CLOCK_NONE         = 0, /**< Default value. Means that all digits are editable, when in edition mode. */
+        ELM_CLOCK_HOUR_DECIMAL = 1 << 0, /**< Decimal algarism of hours value should be editable */
+        ELM_CLOCK_HOUR_UNIT    = 1 << 1, /**< Unit algarism of hours value should be editable */
+        ELM_CLOCK_MIN_DECIMAL  = 1 << 2, /**< Decimal algarism of minutes value should be editable */
+        ELM_CLOCK_MIN_UNIT     = 1 << 3, /**< Unit algarism of minutes value should be editable */
+        ELM_CLOCK_SEC_DECIMAL  = 1 << 4, /**< Decimal algarism of seconds value should be editable */
+        ELM_CLOCK_SEC_UNIT     = 1 << 5, /**< Unit algarism of seconds value should be editable */
+        ELM_CLOCK_ALL          = (1 << 6) - 1 /**< All digits should be editable */
      } Elm_Clock_Digedit;
 
+   /**
+    * Add a new clock widget to the given parent Elementary
+    * (container) object
+    *
+    * @param parent The parent object
+    * @return a new clock widget handle or @c NULL, on errors
+    *
+    * This function inserts a new clock widget on the canvas.
+    *
+    * @ingroup Clock
+    */
    EAPI Evas_Object      *elm_clock_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
-   EAPI void              elm_clock_time_set(Evas_Object *obj, int hrs, int min, int sec) EINA_ARG_NONNULL(1);
-   EAPI void              elm_clock_time_get(const Evas_Object *obj, int *hrs, int *min, int *sec) EINA_ARG_NONNULL(1);
-   EAPI void              elm_clock_edit_set(Evas_Object *obj, Eina_Bool edit) EINA_ARG_NONNULL(1);
+
+   /**
+    * Set a clock widget's time, programmatically
+    *
+    * @param obj The clock widget object
+    * @param hrs The hours to set
+    * @param min The minutes to set
+    * @param sec The secondes to set
+    *
+    * This function updates the time that is showed by the clock
+    * widget.
+    *
+    *  Values @b must be set within the following ranges:
+    * - 0 - 23, for hours
+    * - 0 - 59, for minutes
+    * - 0 - 59, for seconds,
+    *
+    * even if the clock is not in "military" mode.
+    *
+    * @warning The behavior for values set out of those ranges is @b
+    * indefined.
+    *
+    * @ingroup Clock
+    */
+   EAPI void              elm_clock_time_set(Evas_Object *obj, int hrs, int min, int sec) EINA_ARG_NONNULL(1);
+
+   /**
+    * Get a clock widget's time values
+    *
+    * @param obj The clock object
+    * @param[out] hrs Pointer to the variable to get the hours value
+    * @param[out] min Pointer to the variable to get the minutes value
+    * @param[out] sec Pointer to the variable to get the seconds value
+    *
+    * This function gets the time set for @p obj, returning
+    * it on the variables passed as the arguments to function
+    *
+    * @note Use @c NULL pointers on the time values you're not
+    * interested in: they'll be ignored by the function.
+    *
+    * @ingroup Clock
+    */
+   EAPI void              elm_clock_time_get(const Evas_Object *obj, int *hrs, int *min, int *sec) EINA_ARG_NONNULL(1);
+
+   /**
+    * Set whether a given clock widget is under <b>edition mode</b> or
+    * under (default) displaying-only mode.
+    *
+    * @param obj The clock object
+    * @param edit @c EINA_TRUE to put it in edition, @c EINA_FALSE to
+    * put it back to "displaying only" mode
+    *
+    * This function makes a clock's time to be editable or not <b>by
+    * user interaction</b>. When in edition mode, clocks @b stop
+    * ticking, until one brings them back to canonical mode. The
+    * elm_clock_digit_edit_set() function will influence which digits
+    * of the clock will be editable. By default, all of them will be
+    * (#ELM_CLOCK_NONE).
+    *
+    * @note am/pm sheets, if being shown, will @b always be editable
+    * under edition mode.
+    *
+    * @see elm_clock_edit_get()
+    *
+    * @ingroup Clock
+    */
+   EAPI void              elm_clock_edit_set(Evas_Object *obj, Eina_Bool edit) EINA_ARG_NONNULL(1);
+
+   /**
+    * Retrieve whether a given clock widget is under <b>edition
+    * mode</b> or under (default) displaying-only mode.
+    *
+    * @param obj The clock object
+    * @param edit @c EINA_TRUE, if it's in edition mode, @c EINA_FALSE
+    * otherwise
+    *
+    * This function retrieves whether the clock's time can be edited
+    * or not by user interaction.
+    *
+    * @see elm_clock_edit_set() for more details
+    *
+    * @ingroup Clock
+    */
    EAPI Eina_Bool         elm_clock_edit_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+   /**
+    * Set what digits of the given clock widget should be editable
+    * when in edition mode.
+    *
+    * @param obj The clock object
+    * @param digedit Bit mask indicating the digits to be editable
+    * (values in #Elm_Clock_Digedit).
+    *
+    * If the @p digedit param is #ELM_CLOCK_NONE, editing will be
+    * disabled on @p obj (same effect as elm_clock_edit_set(), with @c
+    * EINA_FALSE).
+    *
+    * @see elm_clock_digit_edit_get()
+    *
+    * @ingroup Clock
+    */
    EAPI void              elm_clock_digit_edit_set(Evas_Object *obj, Elm_Clock_Digedit digedit) EINA_ARG_NONNULL(1);
+
+   /**
+    * Retrieve what digits of the given clock widget should be
+    * editable when in edition mode.
+    *
+    * @param obj The clock object
+    * @return Bit mask indicating the digits to be editable
+    * (values in #Elm_Clock_Digedit).
+    *
+    * @see elm_clock_digit_edit_set() for more details
+    *
+    * @ingroup Clock
+    */
    EAPI Elm_Clock_Digedit elm_clock_digit_edit_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+   /**
+    * Set if the given clock widget must show hours in military or
+    * am/pm mode
+    *
+    * @param obj The clock object
+    * @param am_pm @c EINA_TRUE to put it in am/pm mode, @c EINA_FALSE
+    * to military mode
+    *
+    * This function sets if the clock must show hours in military or
+    * am/pm mode. In some countries like Brazil the military mode
+    * (00-24h-format) is used, in opposition to the USA, where the
+    * am/pm mode is more commonly used.
+    *
+    * @see elm_clock_show_am_pm_get()
+    *
+    * @ingroup Clock
+    */
    EAPI void              elm_clock_show_am_pm_set(Evas_Object *obj, Eina_Bool am_pm) EINA_ARG_NONNULL(1);
+
+   /**
+    * Get if the given clock widget shows hours in military or am/pm
+    * mode
+    *
+    * @param obj The clock object
+    * @return @c EINA_TRUE, if in am/pm mode, @c EINA_FALSE if in
+    * military
+    *
+    * This function gets if the clock shows hours in military or am/pm
+    * mode.
+    *
+    * @see elm_clock_show_am_pm_set() for more details
+    *
+    * @ingroup Clock
+    */
    EAPI Eina_Bool         elm_clock_show_am_pm_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+   /**
+    * Set if the given clock widget must show time with seconds or not
+    *
+    * @param obj The clock object
+    * @param seconds @c EINA_TRUE to show seconds, @c EINA_FALSE otherwise
+    *
+    * This function sets if the given clock must show or not elapsed
+    * seconds. By default, they are @b not shown.
+    *
+    * @see elm_clock_show_seconds_get()
+    *
+    * @ingroup Clock
+    */
    EAPI void              elm_clock_show_seconds_set(Evas_Object *obj, Eina_Bool seconds) EINA_ARG_NONNULL(1);
+
+   /**
+    * Get whether the given clock widget is showing time with seconds
+    * or not
+    *
+    * @param obj The clock object
+    * @return @c EINA_TRUE if it's showing seconds, @c EINA_FALSE otherwise
+    *
+    * This function gets whether @p obj is showing or not the elapsed
+    * seconds.
+    *
+    * @see elm_clock_show_seconds_set()
+    *
+    * @ingroup Clock
+    */
    EAPI Eina_Bool         elm_clock_show_seconds_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+   /**
+    * Set the interval on time updates for an user mouse button hold
+    * on clock widgets' time edition.
+    *
+    * @param obj The clock object
+    * @param interval The (first) interval value in seconds
+    *
+    * This interval value is @b decreased while the user holds the
+    * mouse pointer either incrementing or decrementing a given the
+    * clock digit's value.
+    *
+    * This helps the user to get to a given time distant from the
+    * current one easier/faster, as it will start to flip quicker and
+    * quicker on mouse button holds.
+    *
+    * The calculation for the next flip interval value, starting from
+    * the one set with this call, is the previous interval divided by
+    * 1.05, so it decreases a little bit.
+    *
+    * The default starting interval value for automatic flips is
+    * @b 0.85 seconds.
+    *
+    * @see elm_clock_interval_get()
+    *
+    * @ingroup Clock
+    */
    EAPI void              elm_clock_interval_set(Evas_Object *obj, double interval) EINA_ARG_NONNULL(1);
+
+   /**
+    * Get the interval on time updates for an user mouse button hold
+    * on clock widgets' time edition.
+    *
+    * @param obj The clock object
+    * @return The (first) interval value, in seconds, set on it
+    *
+    * @see elm_clock_interval_set() for more details
+    *
+    * @ingroup Clock
+    */
    EAPI double            elm_clock_interval_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   /* smart callbacks called:
-    * "changed" - the user changed the time
+
+   /**
+    * @}
     */
 
    /* layout */
@@ -3012,6 +3710,29 @@ extern "C" {
         ELM_ICON_FILE,
         ELM_ICON_STANDARD
      } Elm_Icon_Type;
+
+   typedef enum _Elm_Input_Panel_Layout
+     {
+        ELM_INPUT_PANEL_LAYOUT_NORMAL,          /**< Default 4x4 layout */
+        ELM_INPUT_PANEL_LAYOUT_NUMBER,          /**< Number layout */
+        ELM_INPUT_PANEL_LAYOUT_EMAIL,           /**< Email layout */
+        ELM_INPUT_PANEL_LAYOUT_URL,             /**< URL layout */
+        ELM_INPUT_PANEL_LAYOUT_PHONENUMBER,     /**< Phone Number layout */
+        ELM_INPUT_PANEL_LAYOUT_IP,              /**< IP layout */
+        ELM_INPUT_PANEL_LAYOUT_MONTH,           /**< Month layout */
+        ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,      /**< Number Only layout */
+        ELM_INPUT_PANEL_LAYOUT_CUSTOM_1 = 100,  /* Reserved for future use */
+        ELM_INPUT_PANEL_LAYOUT_CUSTOM_2,
+        ELM_INPUT_PANEL_LAYOUT_CUSTOM_3,
+        ELM_INPUT_PANEL_LAYOUT_CUSTOM_4,
+        ELM_INPUT_PANEL_LAYOUT_CUSTOM_5,
+        ELM_INPUT_PANEL_LAYOUT_CUSTOM_6,
+        ELM_INPUT_PANEL_LAYOUT_CUSTOM_7,
+        ELM_INPUT_PANEL_LAYOUT_CUSTOM_8,
+        ELM_INPUT_PANEL_LAYOUT_CUSTOM_9,
+        ELM_INPUT_PANEL_LAYOUT_CUSTOM_10
+     } Elm_Input_Panel_Layout;
+
    typedef struct _Elm_Hoversel_Item Elm_Hoversel_Item; /**< Item of Elm_Hoversel. Sub-type of Elm_Widget_Item */
 
    EAPI Evas_Object *elm_entry_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
@@ -3026,6 +3747,7 @@ extern "C" {
    EAPI const char  *elm_entry_selection_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_entry_entry_insert(Evas_Object *obj, const char *entry) EINA_ARG_NONNULL(1);
    EAPI void         elm_entry_line_wrap_set(Evas_Object *obj, Elm_Wrap_Type wrap) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void         elm_entry_line_char_wrap_set(Evas_Object *obj, Eina_Bool wrap) EINA_ARG_NONNULL(1);
    EAPI Elm_Wrap_Type elm_entry_line_wrap_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_entry_editable_set(Evas_Object *obj, Eina_Bool editable) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool    elm_entry_editable_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
@@ -3098,6 +3820,22 @@ extern "C" {
         const char *rejected;
      };
    EAPI void         elm_entry_filter_accept_set(void *data, Evas_Object *entry, char **text) EINA_ARG_NONNULL(1, 3);
+   EAPI void         elm_entry_background_color_set(Evas_Object *obj, unsigned int r, unsigned int g, unsigned int b, unsigned int a);
+   EAPI void         elm_entry_autocapitalization_set(Evas_Object *obj, Eina_Bool autocap);
+   EAPI void         elm_entry_autoperiod_set(Evas_Object *obj, Eina_Bool autoperiod);
+   EAPI void         elm_entry_autoenable_returnkey_set(Evas_Object *obj, Eina_Bool on);
+   EAPI void         elm_entry_input_panel_enabled_set(Evas_Object *obj, Eina_Bool enabled);
+   EAPI void         elm_entry_input_panel_layout_set(Evas_Object *obj, Elm_Input_Panel_Layout layout);
+   EAPI Ecore_IMF_Context *elm_entry_imf_context_get(Evas_Object *obj);
+   EAPI void         elm_entry_matchlist_set(Evas_Object *obj, Eina_List *match_list, Eina_Bool case_sensitive);
+   EAPI void         elm_entry_magnifier_type_set(Evas_Object *obj, int type) EINA_ARG_NONNULL(1);
+
+   EINA_DEPRECATED EAPI void         elm_entry_wrap_width_set(Evas_Object *obj, Evas_Coord w);
+   EINA_DEPRECATED EAPI Evas_Coord   elm_entry_wrap_width_get(const Evas_Object *obj);
+   EINA_DEPRECATED EAPI void         elm_entry_fontsize_set(Evas_Object *obj, int fontsize);
+   EINA_DEPRECATED EAPI void         elm_entry_text_color_set(Evas_Object *obj, unsigned int r, unsigned int g, unsigned int b, unsigned int a);
+   EINA_DEPRECATED EAPI void         elm_entry_text_align_set(Evas_Object *obj, const char *alignmode);
+
    /* smart callbacks called:
     * "changed" - the text content changed
     * "selection,start" - the user started selecting text
@@ -3846,6 +4584,10 @@ extern "C" {
     * This function gets the selected corner of the bubble.
     */
    EAPI const char  *elm_bubble_corner_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+   EINA_DEPRECATED EAPI void         elm_bubble_sweep_layout_set(Evas_Object *obj, Evas_Object *sweep) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_bubble_sweep_layout_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+
    /**
     * @}
     */
@@ -3862,6 +4604,273 @@ extern "C" {
     * "drag,end" - Dragged item was dropped (somewhere)
     */
 
+   /* gesture layer */
+   /** @defgroup Elm_Gesture_Layer Gesture Layer */
+   /**
+    * @enum _Elm_Gesture_Types
+    * Emum of supported gesture types.
+    * @ingroup Elm_Gesture_Layer
+    */
+   enum _Elm_Gesture_Types
+     {
+        ELM_GESTURE_FIRST = 0,
+
+        ELM_GESTURE_N_TAPS, /**< N fingers single taps */
+        ELM_GESTURE_N_DOUBLE_TAPS, /**< N fingers double-single taps */
+        ELM_GESTURE_N_TRIPLE_TAPS, /**< N fingers triple-single taps */
+
+        ELM_GESTURE_MOMENTUM, /**< Reports momentum in the dircetion of move */
+
+        ELM_GESTURE_N_LINES, /**< N fingers line gesture */
+        ELM_GESTURE_N_FLICKS, /**< N fingers flick gesture */
+
+        ELM_GESTURE_ZOOM, /**< Zoom */
+        ELM_GESTURE_ROTATE, /**< Rotate */
+
+        ELM_GESTURE_LAST
+     };
+
+   /**
+    * @typedef Elm_Gesture_Types
+    * Type for Emum of supported gesture types.
+    * @ingroup Elm_Gesture_Layer
+    */
+   typedef enum _Elm_Gesture_Types Elm_Gesture_Types;
+
+   /**
+    * @enum _Elm_Gesture_State
+    * Emum of gesture states.
+    * @ingroup Elm_Gesture_Layer
+    */
+   enum _Elm_Gesture_State
+     {
+        ELM_GESTURE_STATE_UNDEFINED = -1, /**< Gesture not STARTed */
+        ELM_GESTURE_STATE_START,          /**< Gesture STARTed     */
+        ELM_GESTURE_STATE_MOVE,           /**< Gesture is ongoing  */
+        ELM_GESTURE_STATE_END,            /**< Gesture completed   */
+        ELM_GESTURE_STATE_ABORT    /**< Onging gesture was ABORTed */
+     };
+   /**
+    * @typedef Elm_Gesture_State
+    * gesture states.
+    * @ingroup Elm_Gesture_Layer
+    */
+   typedef enum _Elm_Gesture_State Elm_Gesture_State;
+
+   /**
+    * @struct _Elm_Gesture_Taps_Info
+    * Struct holds taps info for user
+    * @ingroup Elm_Gesture_Layer
+    */
+   struct _Elm_Gesture_Taps_Info
+     {
+        Evas_Coord x, y;         /**< Holds center point between fingers */
+        unsigned int n;          /**< Number of fingers tapped           */
+        unsigned int timestamp;  /**< event timestamp       */
+     };
+
+   /**
+    * @typedef Elm_Gesture_Taps_Info
+    * holds taps info for user
+    * @ingroup Elm_Gesture_Layer
+    */
+   typedef struct _Elm_Gesture_Taps_Info Elm_Gesture_Taps_Info;
+
+   /**
+    * @struct _Elm_Gesture_Momentum_Info
+    * Struct holds momentum info for user
+    * x1 and y1 are not necessarily in sync
+    * x1 holds x value of x direction starting point
+    * and same holds for y1.
+    * This is noticeable when doing V-shape movement
+    * @ingroup Elm_Gesture_Layer
+    */
+   struct _Elm_Gesture_Momentum_Info
+     {  /* Report line ends, timestamps, and momentum computed        */
+        Evas_Coord x1; /**< Final-swipe direction starting point on X */
+        Evas_Coord y1; /**< Final-swipe direction starting point on Y */
+        Evas_Coord x2; /**< Final-swipe direction ending point on X   */
+        Evas_Coord y2; /**< Final-swipe direction ending point on Y   */
+
+        unsigned int tx; /**< Timestamp of start of final x-swipe */
+        unsigned int ty; /**< Timestamp of start of final y-swipe */
+
+        Evas_Coord mx; /**< Momentum on X */
+        Evas_Coord my; /**< Momentum on Y */
+     };
+
+   /**
+    * @typedef Elm_Gesture_Momentum_Info
+    * holds momentum info for user
+    * @ingroup Elm_Gesture_Layer
+    */
+    typedef struct _Elm_Gesture_Momentum_Info Elm_Gesture_Momentum_Info;
+
+   /**
+    * @struct _Elm_Gesture_Line_Info
+    * Struct holds line info for user
+    * @ingroup Elm_Gesture_Layer
+    */
+   struct _Elm_Gesture_Line_Info
+     {  /* Report line ends, timestamps, and momentum computed      */
+        Elm_Gesture_Momentum_Info momentum; /**< Line momentum info */
+        unsigned int n;            /**< Number of fingers (lines)   */
+        /* FIXME should be radians, bot degrees */
+        double angle;              /**< Angle (direction) of lines  */
+     };
+
+   /**
+    * @typedef _Elm_Gesture_Line_Info
+    * Holds line info for user
+    * @ingroup Elm_Gesture_Layer
+    */
+    typedef struct  _Elm_Gesture_Line_Info Elm_Gesture_Line_Info;
+
+   /**
+    * @struct _Elm_Gesture_Zoom_Info
+    * Struct holds zoom info for user
+    * @ingroup Elm_Gesture_Layer
+    */
+   struct _Elm_Gesture_Zoom_Info
+     {
+        Evas_Coord x, y;       /**< Holds zoom center point reported to user  */
+        Evas_Coord radius; /**< Holds radius between fingers reported to user */
+        float zoom;            /**< Zoom value: 1.0 means no zoom             */
+        float momentum;        /**< Zoom momentum: zoom growth per second (NOT YET SUPPORTED) */
+     };
+
+   /**
+    * @typedef Elm_Gesture_Zoom_Info
+    * Holds zoom info for user
+    * @ingroup Elm_Gesture_Layer
+    */
+   typedef struct _Elm_Gesture_Zoom_Info Elm_Gesture_Zoom_Info;
+
+   /**
+    * @struct _Elm_Gesture_Rotate_Info
+    * Struct holds rotation info for user
+    * @ingroup Elm_Gesture_Layer
+    */
+   struct _Elm_Gesture_Rotate_Info
+     {
+        Evas_Coord x, y;   /**< Holds zoom center point reported to user      */
+        Evas_Coord radius; /**< Holds radius between fingers reported to user */
+        double base_angle; /**< Holds start-angle */
+        double angle;      /**< Rotation value: 0.0 means no rotation         */
+        double momentum;   /**< Rotation momentum: rotation done per second (NOT YET SUPPORTED) */
+     };
+
+   /**
+    * @typedef Elm_Gesture_Rotate_Info
+    * Holds rotation info for user
+    * @ingroup Elm_Gesture_Layer
+    */
+   typedef struct _Elm_Gesture_Rotate_Info Elm_Gesture_Rotate_Info;
+
+   /**
+    * @typedef Elm_Gesture_Event_Cb
+    * User callback used to stream gesture info from gesture layer
+    * @param data user data
+    * @param event_info gesture report info
+    * Returns a flag field to be applied on the causing event.
+    * You should probably return EVAS_EVENT_FLAG_ON_HOLD if your widget acted
+    * upon the event, in an irreversible way.
+    *
+    * @ingroup Elm_Gesture_Layer
+    */
+   typedef Evas_Event_Flags (*Elm_Gesture_Event_Cb) (void *data, void *event_info);
+
+   /**
+    * Use function to set callbacks to be notified about
+    * change of state of gesture.
+    * When a user registers a callback with this function
+    * this means this gesture has to be tested.
+    *
+    * When ALL callbacks for a gesture are set to NULL
+    * it means user isn't interested in gesture-state
+    * and it will not be tested.
+    *
+    * @param obj Pointer to gesture-layer.
+    * @param idx The gesture you would like to track its state.
+    * @param cb callback function pointer.
+    * @param cb_type what event this callback tracks: START, MOVE, END, ABORT.
+    * @param data user info to be sent to callback (usually, Smart Data)
+    *
+    * @ingroup Elm_Gesture_Layer
+    */
+   EAPI void elm_gesture_layer_cb_set(Evas_Object *obj, Elm_Gesture_Types idx, Elm_Gesture_State cb_type, Elm_Gesture_Event_Cb cb, void *data) EINA_ARG_NONNULL(1);
+
+   /**
+    * Call this function to get repeat-events settings.
+    *
+    * @param obj Pointer to gesture-layer.
+    *
+    * @return repeat events settings.
+    * @see elm_gesture_layer_hold_events_set()
+    * @ingroup Elm_Gesture_Layer
+    */
+   EAPI Eina_Bool elm_gesture_layer_hold_events_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+   /**
+    * This function called in order to make gesture-layer repeat events.
+    * Set this of you like to get the raw events only if gestures were not detected.
+    * Clear this if you like gesture layer to fwd events as testing gestures.
+    *
+    * @param obj Pointer to gesture-layer.
+    * @param r Repeat: TRUE/FALSE
+    *
+    * @ingroup Elm_Gesture_Layer
+    */
+   EAPI void elm_gesture_layer_hold_events_set(Evas_Object *obj, Eina_Bool r) EINA_ARG_NONNULL(1);
+
+   /**
+    * This function sets step-value for zoom action.
+    * Set step to any positive value.
+    * Cancel step setting by setting to 0.0
+    *
+    * @param obj Pointer to gesture-layer.
+    * @param s new zoom step value.
+    *
+    * @ingroup Elm_Gesture_Layer
+    */
+   EAPI void elm_gesture_layer_zoom_step_set(Evas_Object *obj, double s) EINA_ARG_NONNULL(1);
+
+   /**
+    * This function sets step-value for rotate action.
+    * Set step to any positive value.
+    * Cancel step setting by setting to 0.0
+    *
+    * @param obj Pointer to gesture-layer.
+    * @param s new roatate step value.
+    *
+    * @ingroup Elm_Gesture_Layer
+    */
+   EAPI void elm_gesture_layer_rotate_step_set(Evas_Object *obj, double s) EINA_ARG_NONNULL(1);
+
+   /**
+    * This function called to attach gesture-layer to an Evas_Object.
+    * @param obj Pointer to gesture-layer.
+    * @param t Pointer to underlying object (AKA Target)
+    *
+    * @return TRUE, FALSE on success, failure.
+    *
+    * @ingroup Elm_Gesture_Layer
+    */
+   EAPI Eina_Bool elm_gesture_layer_attach(Evas_Object *obj, Evas_Object *t) EINA_ARG_NONNULL(1, 2);
+
+   /**
+    * Call this function to construct a new gesture-layer object.
+    * This does not activate the gesture layer. You have to
+    * call elm_gesture_layer_attach in order to 'activate' gesture-layer.
+    *
+    * @param parent the parent object.
+    *
+    * @return Pointer to new gesture-layer object.
+    *
+    * @ingroup Elm_Gesture_Layer
+    */
+   EAPI Evas_Object *elm_gesture_layer_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+
    /* thumb */
    typedef enum _Elm_Thumb_Animation_Setting
      {
@@ -4182,6 +5191,9 @@ extern "C" {
     *                   expensive reactions to the value change.
     */
 
+
+   /* actionslider */
+
    /**
     * @addtogroup Actionslider Actionslider
     *
@@ -4203,14 +5215,36 @@ extern "C" {
     * See an example of actionslider usage @ref actionslider_example_page "here"
     * @{
     */
-   typedef enum _Elm_Actionslider_Pos
+
+   typedef enum _Elm_Actionslider_Indicator_Pos
+     {
+        ELM_ACTIONSLIDER_INDICATOR_NONE,
+        ELM_ACTIONSLIDER_INDICATOR_LEFT,
+        ELM_ACTIONSLIDER_INDICATOR_RIGHT,
+        ELM_ACTIONSLIDER_INDICATOR_CENTER
+     } Elm_Actionslider_Indicator_Pos;
+
+   typedef enum _Elm_Actionslider_Magnet_Pos
      {
-        ELM_ACTIONSLIDER_NONE = 0,
-        ELM_ACTIONSLIDER_LEFT = 1 << 0,
-        ELM_ACTIONSLIDER_CENTER = 1 << 1,
-        ELM_ACTIONSLIDER_RIGHT = 1 << 2,
-        ELM_ACTIONSLIDER_ALL = (1 << 3) -1
-     } Elm_Actionslider_Pos;
+        ELM_ACTIONSLIDER_MAGNET_NONE = 0,
+        ELM_ACTIONSLIDER_MAGNET_LEFT = 1 << 0,
+        ELM_ACTIONSLIDER_MAGNET_CENTER = 1 << 1,
+        ELM_ACTIONSLIDER_MAGNET_RIGHT= 1 << 2,
+        ELM_ACTIONSLIDER_MAGNET_ALL = (1 << 3) -1,
+        ELM_ACTIONSLIDER_MAGNET_BOTH = (1 << 3)
+     } Elm_Actionslider_Magnet_Pos;
+
+   typedef enum _Elm_Actionslider_Label_Pos
+     {
+        ELM_ACTIONSLIDER_LABEL_LEFT,
+        ELM_ACTIONSLIDER_LABEL_RIGHT,
+        ELM_ACTIONSLIDER_LABEL_CENTER,
+        ELM_ACTIONSLIDER_LABEL_BUTTON
+     } Elm_Actionslider_Label_Pos;
+
+   /* smart callbacks called:
+    * "indicator,position" - when a button reaches to the special position like "left", "right" and "center".
+    */
 
    /**
     * Add a new actionslider to the parent.
@@ -4219,16 +5253,16 @@ extern "C" {
     * @return The new actionslider object or NULL if it cannot be created
     */
    EAPI Evas_Object          *elm_actionslider_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+
    /**
-    * Set actionslider labels.
-    *
-    * @param obj The actionslider object
-    * @param left_label The label to be set on the left.
-    * @param center_label The label to be set on the center.
-    * @param right_label The label to be set on the right.
-    * @deprecated use elm_object_text_set() instead.
-    */
-   EINA_DEPRECATED EAPI void                  elm_actionslider_labels_set(Evas_Object *obj, const char *left_label, const char *center_label, const char *right_label) EINA_ARG_NONNULL(1);
+   * Set actionslider label.
+   *
+   * @param[in] obj The actionslider object
+   * @param[in] pos The position of the label.
+   * (ELM_ACTIONSLIDER_LABEL_LEFT, ELM_ACTIONSLIDER_LABEL_RIGHT)
+   * @param label The label which is going to be set.
+   */
+   EAPI void               elm_actionslider_label_set(Evas_Object *obj, Elm_Actionslider_Label_Pos pos, const char *label) EINA_ARG_NONNULL(1);
    /**
     * Get actionslider labels.
     *
@@ -4236,9 +5270,8 @@ extern "C" {
     * @param left_label A char** to place the left_label of @p obj into.
     * @param center_label A char** to place the center_label of @p obj into.
     * @param right_label A char** to place the right_label of @p obj into.
-    * @deprecated use elm_object_text_set() instead.
     */
-   EINA_DEPRECATED EAPI void                  elm_actionslider_labels_get(const Evas_Object *obj, const char **left_label, const char **center_label, const char **right_label) EINA_ARG_NONNULL(1);
+   EAPI void                elm_actionslider_labels_get(const Evas_Object *obj, const char **left_label, const char **center_label, const char **right_label) EINA_ARG_NONNULL(1);
    /**
     * Get actionslider selected label.
     *
@@ -4252,46 +5285,46 @@ extern "C" {
     * @param obj The actionslider object.
     * @param pos The position of the indicator.
     */
-   EAPI void                  elm_actionslider_indicator_pos_set(Evas_Object *obj, Elm_Actionslider_Pos pos) EINA_ARG_NONNULL(1);
+   EAPI void                elm_actionslider_indicator_pos_set(Evas_Object *obj, Elm_Actionslider_Indicator_Pos pos) EINA_ARG_NONNULL(1);
    /**
     * Get actionslider indicator position.
     *
     * @param obj The actionslider object.
     * @return The position of the indicator.
     */
-   EAPI Elm_Actionslider_Pos  elm_actionslider_indicator_pos_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI Elm_Actionslider_Indicator_Pos  elm_actionslider_indicator_pos_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Set actionslider magnet position. To make multiple positions magnets @c or
-    * them together(e.g.: ELM_ACTIONSLIDER_LEFT | ELM_ACTIONSLIDER_RIGHT)
+    * them together(e.g.: ELM_ACTIONSLIDER_MAGNET_LEFT | ELM_ACTIONSLIDER_MAGNET_RIGHT)
     *
     * @param obj The actionslider object.
     * @param pos Bit mask indicating the magnet positions.
     */
-   EAPI void                  elm_actionslider_magnet_pos_set(Evas_Object *obj, Elm_Actionslider_Pos pos) EINA_ARG_NONNULL(1);
+   EAPI void                elm_actionslider_magnet_pos_set(Evas_Object *obj, Elm_Actionslider_Magnet_Pos pos) EINA_ARG_NONNULL(1);
    /**
     * Get actionslider magnet position.
     *
     * @param obj The actionslider object.
     * @return The positions with magnet property.
     */
-   EAPI Elm_Actionslider_Pos  elm_actionslider_magnet_pos_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI Elm_Actionslider_Magnet_Pos  elm_actionslider_magnet_pos_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Set actionslider enabled position. To set multiple positions as enabled @c or
-    * them together(e.g.: ELM_ACTIONSLIDER_LEFT | ELM_ACTIONSLIDER_RIGHT).
+    * them together(e.g.: ELM_ACTIONSLIDER_MAGNET_LEFT | ELM_ACTIONSLIDER_MAGNET_RIGHT).
     *
     * @note All the positions are enabled by default.
     *
     * @param obj The actionslider object.
     * @param pos Bit mask indicating the enabled positions.
     */
-   EAPI void                  elm_actionslider_enabled_pos_set(Evas_Object *obj, Elm_Actionslider_Pos pos) EINA_ARG_NONNULL(1);
+   EAPI void                  elm_actionslider_enabled_pos_set(Evas_Object *obj, Elm_Actionslider_Magnet_Pos pos) EINA_ARG_NONNULL(1);
    /**
     * Get actionslider enabled position.
     *
     * @param obj The actionslider object.
     * @return The enabled positions.
     */
-   EAPI Elm_Actionslider_Pos  elm_actionslider_enabled_pos_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI Elm_Actionslider_Magnet_Pos  elm_actionslider_enabled_pos_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Set the label used on the indicator.
     *
@@ -4305,11 +5338,24 @@ extern "C" {
     *
     * @param obj The actionslider object
     * @return The indicator label
-    * @deprecated use elm_object_text_set() instead.
+    * @deprecated use elm_object_text_get() instead.
     */
    EINA_DEPRECATED EAPI const char           *elm_actionslider_indicator_label_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
+
    /**
-    * @}
+   * Hold actionslider object movement.
+   *
+   * @param[in] obj The actionslider object
+   * @param[in] flag Actionslider hold/release
+   * (EINA_TURE = hold/EIN_FALSE = release)
+   *
+   * @ingroup Actionslider
+   */
+   EAPI void                             elm_actionslider_hold(Evas_Object *obj, Eina_Bool flag) EINA_ARG_NONNULL(1);
+
+
+   /**
+    *
     */
 
    /* genlist */
@@ -4326,22 +5372,21 @@ extern "C" {
    typedef Evas_Object *(*GenlistItemIconGetFunc)  (void *data, Evas_Object *obj, const char *part);
    typedef Eina_Bool    (*GenlistItemStateGetFunc) (void *data, Evas_Object *obj, const char *part);
    typedef void         (*GenlistItemDelFunc)      (void *data, Evas_Object *obj);
-   typedef void         (*GenlistItemMovedFunc)    (Evas_Object *obj, Elm_Genlist_Item *item, Elm_Genlist_Item *rel_item, Eina_Bool move_after);
+   typedef void         (*GenlistItemMovedFunc)    ( Evas_Object *genlist, Elm_Genlist_Item *item, Elm_Genlist_Item *rel_item, Eina_Bool move_after);
 
    struct _Elm_Genlist_Item_Class
      {
-        const char                *item_style;
-        struct
-          {
-             GenlistItemLabelGetFunc  label_get;
-             GenlistItemIconGetFunc   icon_get;
-             GenlistItemStateGetFunc  state_get;
-             GenlistItemDelFunc       del;
-             GenlistItemMovedFunc     moved; // TODO: do not use this. change this to smart callback.
-          } func;
+       const char                *item_style;
+       struct {
+          GenlistItemLabelGetFunc  label_get;
+          GenlistItemIconGetFunc   icon_get;
+          GenlistItemStateGetFunc  state_get;
+          GenlistItemDelFunc       del;
+          GenlistItemMovedFunc     moved;
+        } func;
+        const char *edit_item_style;
         const char                *mode_item_style;
      };
-
    EAPI Evas_Object      *elm_genlist_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
    EAPI void              elm_genlist_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void              elm_genlist_multi_select_set(Evas_Object *obj, Eina_Bool multi) EINA_ARG_NONNULL(1);
@@ -4369,8 +5414,6 @@ extern "C" {
    EAPI Elm_Genlist_Item *elm_genlist_item_prepend(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Genlist_Item *parent, Elm_Genlist_Item_Flags flags, Evas_Smart_Cb func, const void *func_data) EINA_ARG_NONNULL(1);
    EAPI Elm_Genlist_Item *elm_genlist_item_insert_before(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Genlist_Item *parent, Elm_Genlist_Item *before, Elm_Genlist_Item_Flags flags, Evas_Smart_Cb func, const void *func_data) EINA_ARG_NONNULL(1, 5);
    EAPI Elm_Genlist_Item *elm_genlist_item_insert_after(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Genlist_Item *parent, Elm_Genlist_Item *after, Elm_Genlist_Item_Flags flags, Evas_Smart_Cb func, const void *func_data) EINA_ARG_NONNULL(1, 5);
-   EAPI Elm_Genlist_Item *elm_genlist_item_sorted_insert(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Genlist_Item *parent, Elm_Genlist_Item_Flags flags, Eina_Compare_Cb comp, Evas_Smart_Cb func,const void *func_data);
-   EAPI Elm_Genlist_Item *elm_genlist_item_direct_sorted_insert(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Genlist_Item *parent, Elm_Genlist_Item_Flags flags, Eina_Compare_Cb comp, Evas_Smart_Cb func, const void *func_data);
    /* operations to retrieve existing items */
    EAPI Elm_Genlist_Item *elm_genlist_selected_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI const Eina_List  *elm_genlist_selected_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
@@ -4414,7 +5457,6 @@ extern "C" {
    EAPI const Evas_Object *elm_genlist_item_object_get(const Elm_Genlist_Item *it) EINA_ARG_NONNULL(1);
    EAPI void               elm_genlist_item_update(Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
    EAPI void               elm_genlist_item_item_class_update(Elm_Genlist_Item *it, const Elm_Genlist_Item_Class *itc) EINA_ARG_NONNULL(1, 2);
-   EAPI const Elm_Genlist_Item_Class *elm_genlist_item_item_class_get(const Elm_Genlist_Item *it) EINA_ARG_NONNULL(1);
    EAPI void               elm_genlist_item_tooltip_text_set(Elm_Genlist_Item *item, const char *text) EINA_ARG_NONNULL(1);
    EAPI void               elm_genlist_item_tooltip_content_cb_set(Elm_Genlist_Item *item, Elm_Tooltip_Item_Content_Cb func, const void *data, Evas_Smart_Cb del_cb) EINA_ARG_NONNULL(1);
    EAPI void               elm_genlist_item_tooltip_unset(Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
@@ -4433,109 +5475,247 @@ extern "C" {
    EAPI const Elm_Genlist_Item *elm_genlist_mode_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void               elm_genlist_reorder_mode_set(Evas_Object *obj, Eina_Bool reorder_mode) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool          elm_genlist_reorder_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   /** Signals that you can add callbacks for are:
+   /* Signals that you can add callbacks for are:
     * "clicked,double" - This is called when a user has double-clicked an item.
     *                    The event_info parameter is the genlist item that was
     *                    double-clicked.
     * "selected" - This is called when a user has made an item selected. The
     *              event_info parameter is the genlist item that was selected.
     * "unselected" - This is called when a user has made an item unselected. The
-    *                 event_info parameter is the genlist item that was
-    *                 unselected.
+    *                 event_info parameter is the genlist item that was unselected.
     * "expanded" - This is called when elm_genlist_item_expanded_set() is called
-    *              and the item is now meant to be expanded. The event_info
-    *              parameter is the genlist item that was indicated to expand.
-    *              It is the job of this callback to then fill in the child
-    *              items.
-    * "contracted" - This is called when elm_genlist_item_expanded_set() is
-    *                called and the item is now meant to be contracted. The
-    *                event_info parameter is the genlist item that was indicated
-    *                to contract. It is the job of this callback to then delete
-    *                the child items.
+    *              and the item is now meant to be expanded. The event_info parameter is the
+    *              genlist item that was indicated to expand. It is the job of this callback
+    *              to then fill in the child items.
+    * "contracted" - This is called when elm_genlist_item_expanded_set() is called
+    *                and the item is now meant to be contracted. The event_info parameter is
+    *                the genlist item that was indicated to contract. It is the job of this
+    *                callback to then delete the child items.
     * "expand,request" - This is called when a user has indicated they want to
-    *                    expand a tree branch item. The callback should decide
-    *                    if the item can expand (has any children) and then call
-    *                    elm_genlist_item_expanded_set() appropriately to set
-    *                    the state. The event_info parameter is the genlist item
-    *                    that was indicated to expand.
+    *                    expand a tree branch item. The callback should decide if the item can
+    *                    expand (has any children) and then call elm_genlist_item_expanded_set()
+    *                    appropriately to set the state. The event_info parameter is the genlist
+    *                    item that was indicated to expand.
     * "contract,request" - This is called when a user has indicated they want to
-    *                      contract a tree branch item. The callback should
-    *                      decide if the item can contract (has any children)
-    *                      and then call elm_genlist_item_expanded_set()
-    *                      appropriately to set the state. The event_info
-    *                      parameter is the genlist item that was indicated to
-    *                      contract.
+    *                      contract a tree branch item. The callback should decide if the item can
+    *                      contract (has any children) and then call elm_genlist_item_expanded_set()
+    *                      appropriately to set the state. The event_info parameter is the genlist
+    *                      item that was indicated to contract.
     * "realized" - This is called when the item in the list is created as a real
-    *              evas object. event_info parameter is the genlist item that
-    *              was created. The object may be deleted at any time, so it is
-    *              up to the caller to not use the object pointer from
-    *              elm_genlist_item_object_get() in a way where it may point to
-    *              freed objects.
+    *              evas object. event_info parameter is the genlist item that was created.
+    *              The object may be deleted at any time, so it is up to the caller to
+    *              not use the object pointer from elm_genlist_item_object_get() in a way
+    *              where it may point to freed objects.
     * "unrealized" - This is called just before an item is unrealized. After
-    *                this call icon objects provided will be deleted and the
-    *                item object itself delete or be put into a floating cache.
-    * "drag,start,up" - This is called when the item in the list has been
-    *                   dragged (not scrolled) up.
-    * "drag,start,down" - This is called when the item in the list has been
-    *                     dragged (not scrolled) down.
-    * "drag,start,left" - This is called when the item in the list has been
-    *                     dragged (not scrolled) left.
-    * "drag,start,right" - This is called when the item in the list has been
-    *                      dragged (not scrolled) right.
+    *                this call icon objects provided will be deleted and the item object
+    *                itself delete or be put into a floating cache.
+    * "drag,start,up" - This is called when the item in the list has been dragged
+    *                   (not scrolled) up.
+    * "drag,start,down" - This is called when the item in the list has been dragged
+    *                     (not scrolled) down.
+    * "drag,start,left" - This is called when the item in the list has been dragged i
+    *                     (not scrolled) left.
+    * "drag,start,right" - This is called when the item in the list has been dragged
+    *                      (not scrolled) right.
     * "drag,stop" - This is called when the item in the list has stopped being
     *               dragged.
     * "drag" - This is called when the item in the list is being dragged.
-    * "longpressed" - This is called when the item is pressed for a certain
-    *                 amount of time. By default it's 1 second.
+    * "longpressed" - This is called when the item is pressed for a certain amount
+    *                 of time. By default it's 1 second.
     * "scroll,edge,top" - This is called when the genlist is scrolled until the
     *                     top edge.
-    * "scroll,edge,bottom" - This is called when the genlist is scrolled until
-    *                        the bottom edge.
+    * "scroll,edge,bottom" - This is called when the genlist is scrolled until the
+    *                         bottom edge.
     * "scroll,edge,left" - This is called when the genlist is scrolled until the
     *                      left edge.
-    * "scroll,edge,right" - This is called when the genlist is scrolled until
-    *                       the right edge.
+    * "scroll,edge,right" - This is called when the genlist is scrolled until the
+    *                       right edge.
     * "multi,swipe,left" - This is called when the genlist is multi-touch swiped
     *                       left.
-    * "multi,swipe,right" - This is called when the genlist is multi-touch
-    *                       swiped right.
-    * "multi,swipe,up" - This is called when the genlist is multi-touch swiped
-    *                    up.
+    * "multi,swipe,right" - This is called when the genlist is multi-touch swiped
+    *                       right.
+    * "multi,swipe,up" - This is called when the genlist is multi-touch swiped up.
     * "multi,swipe,down" - This is called when the genlist is multi-touch swiped
     *                      down.
     * "multi,pinch,out" - This is called when the genlist is multi-touch pinched
     *                     out.
-    * "multi,pinch,in" - This is called when the genlist is multi-touch pinched
-    *                    in.
-    * "swipe" - This is called when the genlist is swiped.
+    * "multi,pinch,in" - This is called when the genlist is multi-touch pinched in.
     */
 
-   /* check */
-   EAPI Evas_Object *elm_check_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
-   EINA_DEPRECATED EAPI void         elm_check_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
-   EINA_DEPRECATED EAPI const char  *elm_check_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI void         elm_check_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
-   EAPI Evas_Object *elm_check_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI Evas_Object *elm_check_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI void         elm_check_state_set(Evas_Object *obj, Eina_Bool state) EINA_ARG_NONNULL(1);
-   EAPI Eina_Bool    elm_check_state_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI void         elm_check_state_pointer_set(Evas_Object *obj, Eina_Bool *statep) EINA_ARG_NONNULL(1);
-   /* smart callbacks called:
-    * "changed" - This is called whenever the user changes the state of one of the check object.
-    */
+   EAPI void               elm_genlist_edit_mode_set(Evas_Object *obj, Eina_Bool edit_mode) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool          elm_genlist_edit_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void               elm_genlist_item_rename_mode_set(Elm_Genlist_Item *it, Eina_Bool renamed) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool          elm_genlist_item_rename_mode_get(Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
+   EAPI void               elm_genlist_item_move_after(Elm_Genlist_Item *it, Elm_Genlist_Item *after ) EINA_ARG_NONNULL(1, 2);
+   EAPI void               elm_genlist_item_move_before(Elm_Genlist_Item *it, Elm_Genlist_Item *before) EINA_ARG_NONNULL(1, 2);
+   EAPI void               elm_genlist_effect_set(const Evas_Object *obj, Eina_Bool emode) EINA_ARG_NONNULL(1);
+   EAPI void               elm_genlist_pinch_zoom_set(Evas_Object *obj, Eina_Bool emode) EINA_ARG_NONNULL(1);
+   EAPI void               elm_genlist_pinch_zoom_mode_set(Evas_Object *obj, Eina_Bool emode) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool          elm_genlist_pinch_zoom_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
-   /* radio */
-   EAPI Evas_Object *elm_radio_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
-   EINA_DEPRECATED EAPI void         elm_radio_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
-   EINA_DEPRECATED EAPI const char  *elm_radio_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI void         elm_radio_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
-   EAPI Evas_Object *elm_radio_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI Evas_Object *elm_radio_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI void         elm_radio_group_add(Evas_Object *obj, Evas_Object *group) EINA_ARG_NONNULL(1);
-   EAPI void         elm_radio_state_value_set(Evas_Object *obj, int value) EINA_ARG_NONNULL(1);
-   EAPI int          elm_radio_state_value_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI void         elm_radio_value_set(Evas_Object *obj, int value) EINA_ARG_NONNULL(1);
-   EAPI int          elm_radio_value_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * @page tutorial_check Check example
+    * @dontinclude check_example_01.c
+    *
+    * This example will show 2 checkboxes, one with just a label and the second
+    * one with both a label and an icon. This example also ilustrates how to
+    * have the checkbox change the value of a variable and how to react to those
+    * changes.
+    *
+    * We will start with the usual setup code:
+    * @until show(bg)
+    *
+    * And now we create our first checkbox, set its label, tell it to change
+    * the value of @p value when the checkbox stats is changed and ask to be
+    * notified of state changes:
+    * @until show
+    *
+    * For our second checkbox we are going to set an icon so we need to create
+    * and icon:
+    * @until show
+    * @note For simplicity we are using a rectangle as icon, but any evas object
+    * can be used.
+    *
+    * And for our second checkbox we set the label, icon and state to true:
+    * @until show
+    *
+    * We now do some more setup:
+    * @until ELM_MAIN
+    *
+    * And finally implement the callback that will be called when the first
+    * checkbox's state changes. This callback will use @p data to print a
+    * message:
+    * @until }
+    * @note This work because @p data is @p value(from the main function) and @p
+    * value is changed when the checkbox is changed.
+    *
+    * Our example will look like this:
+    * @image html screenshots/check_example_01.png
+    * @image latex screenshots/check_example_01.eps
+    *
+    * @example check_example_01.c
+    */
+   /**
+    * @defgroup Check Check
+    *
+    * @brief The check widget allows for toggling a value between true and
+    * false.
+    *
+    * Check objects are a lot like radio objects in layout and functionality
+    * except they do not work as a group, but independently and only toggle the
+    * value of a boolean from false to true (0 or 1). elm_check_state_set() sets
+    * the boolean state (1 for true, 0 for false), and elm_check_state_get()
+    * returns the current state. For convenience, like the radio objects, you
+    * can set a pointer to a boolean directly with elm_check_state_pointer_set()
+    * for it to modify.
+    *
+    * Signals that you can add callbacks for are:
+    * "changed" - This is called whenever the user changes the state of one of
+    *             the check object(event_info is NULL).
+    *
+    * @ref tutorial_check should give you a firm grasp of how to use this widget.
+    * @{
+    */
+   /**
+    * @brief Add a new Check object
+    *
+    * @param parent The parent object
+    * @return The new object or NULL if it cannot be created
+    */
+   EAPI Evas_Object *elm_check_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Set the text label of the check object
+    *
+    * @param obj The check object
+    * @param label The text label string in UTF-8
+    *
+    * @deprecated use elm_object_text_set() instead.
+    */
+   EINA_DEPRECATED EAPI void         elm_check_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Get the text label of the check object
+    *
+    * @param obj The check object
+    * @return The text label string in UTF-8
+    *
+    * @deprecated use elm_object_text_get() instead.
+    */
+   EINA_DEPRECATED EAPI const char  *elm_check_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Set the icon object of the check object
+    *
+    * @param obj The check object
+    * @param icon The icon object
+    *
+    * Once the icon object is set, a previously set one will be deleted.
+    * If you want to keep that old content object, use the
+    * elm_check_icon_unset() function.
+    */
+   EAPI void         elm_check_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Get the icon object of the check object
+    *
+    * @param obj The check object
+    * @return The icon object
+    */
+   EAPI Evas_Object *elm_check_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Unset the icon used for the check object
+    *
+    * @param obj The check object
+    * @return The icon object that was being used
+    *
+    * Unparent and return the icon object which was set for this widget.
+    */
+   EAPI Evas_Object *elm_check_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Set the on/off state of the check object
+    *
+    * @param obj The check object
+    * @param state The state to use (1 == on, 0 == off)
+    *
+    * This sets the state of the check. If set
+    * with elm_check_state_pointer_set() the state of that variable is also
+    * changed. Calling this @b doesn't cause the "changed" signal to be emited.
+    */
+   EAPI void         elm_check_state_set(Evas_Object *obj, Eina_Bool state) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Get the state of the check object
+    *
+    * @param obj The check object
+    * @return The boolean state
+    */
+   EAPI Eina_Bool    elm_check_state_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Set a convenience pointer to a boolean to change
+    *
+    * @param obj The check object
+    * @param statep Pointer to the boolean to modify
+    *
+    * This sets a pointer to a boolean, that, in addition to the check objects
+    * state will also be modified directly. To stop setting the object pointed
+    * to simply use NULL as the @p statep parameter. If @p statep is not NULL,
+    * then when this is called, the check objects state will also be modified to
+    * reflect the value of the boolean @p statep points to, just like calling
+    * elm_check_state_set().
+    */
+   EAPI void         elm_check_state_pointer_set(Evas_Object *obj, Eina_Bool *statep) EINA_ARG_NONNULL(1);
+   /**
+    * @}
+    */
+
+   /* radio */
+   EAPI Evas_Object *elm_radio_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void         elm_radio_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI const char  *elm_radio_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void         elm_radio_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+   EAPI Evas_Object *elm_radio_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI Evas_Object *elm_radio_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void         elm_radio_group_add(Evas_Object *obj, Evas_Object *group) EINA_ARG_NONNULL(1);
+   EAPI void         elm_radio_state_value_set(Evas_Object *obj, int value) EINA_ARG_NONNULL(1);
+   EAPI int          elm_radio_state_value_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void         elm_radio_value_set(Evas_Object *obj, int value) EINA_ARG_NONNULL(1);
+   EAPI int          elm_radio_value_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void         elm_radio_value_pointer_set(Evas_Object *obj, int *valuep) EINA_ARG_NONNULL(1);
    /* smart callbacks called:
     * "changed" - when the radio status is changed
@@ -4548,6 +5728,9 @@ extern "C" {
    EAPI void         elm_pager_content_promote(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
    EAPI Evas_Object *elm_pager_content_bottom_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI Evas_Object *elm_pager_content_top_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void         elm_pager_to_content_pop(Evas_Object *obj, Evas_Object *content); EINA_ARG_NONNULL(1);
+   EAPI void         elm_pager_animation_disabled_set(Evas_Object *obj, Eina_Bool disable); EINA_ARG_NONNULL(1);
+
    /* available item styles:
     * default
     * fade
@@ -4716,6 +5899,7 @@ extern "C" {
    EAPI void            elm_index_item_data_set(Elm_Index_Item *it, const void *data) EINA_ARG_NONNULL(1);
    EAPI void            elm_index_item_del_cb_set(Elm_Index_Item *it, Evas_Smart_Cb func) EINA_ARG_NONNULL(1);
    EAPI const char     *elm_index_item_letter_get(const Elm_Index_Item *item) EINA_ARG_NONNULL(1);
+   EAPI void            elm_index_button_image_invisible_set(Evas_Object *obj, Eina_Bool invisible) EINA_ARG_NONNULL(1);
    /* smart callbacks called:
     * "changed" - when the selected index item changes
     * "delay,changed" - when the selected index item changes, but after some small idle period
@@ -4970,6 +6154,8 @@ extern "C" {
    EAPI void                  elm_panes_content_left_size_set(Evas_Object *obj, double size) EINA_ARG_NONNULL(1);
    EAPI void                  elm_panes_horizontal_set(Evas_Object *obj, Eina_Bool horizontal) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool             elm_panes_horizontal_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void                  elm_panes_fixed_set(Evas_Object *obj, Eina_Bool fixed) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool             elm_panes_fixed_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /* flip */
    typedef enum _Elm_Flip_Mode
@@ -5086,6 +6272,12 @@ extern "C" {
    EINA_DEPRECATED EAPI Eina_Bool    elm_scrolled_entry_autosave_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    EINA_DEPRECATED EAPI void         elm_scrolled_entry_cnp_textonly_set(Evas_Object *obj, Eina_Bool textonly) EINA_ARG_NONNULL(1);
    EINA_DEPRECATED EAPI Eina_Bool    elm_scrolled_entry_cnp_textonly_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void         elm_scrolled_entry_line_char_wrap_set(Evas_Object *obj, Eina_Bool wrap) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void         elm_scrolled_entry_input_panel_enabled_set(Evas_Object *obj, Eina_Bool enabled);
+   EINA_DEPRECATED EAPI void         elm_scrolled_entry_input_panel_layout_set(Evas_Object *obj, Elm_Input_Panel_Layout layout);
+   EINA_DEPRECATED EAPI Ecore_IMF_Context *elm_scrolled_entry_imf_context_get(Evas_Object *obj);
+   EINA_DEPRECATED EAPI void         elm_scrolled_entry_autocapitalization_set(Evas_Object *obj, Eina_Bool autocap);
+   EINA_DEPRECATED EAPI void         elm_scrolled_entry_autoperiod_set(Evas_Object *obj, Eina_Bool autoperiod);
 
    /* conformant */
    EAPI Evas_Object *elm_conformant_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
@@ -5106,36 +6298,336 @@ extern "C" {
    EAPI void         elm_mapbuf_alpha_set(Evas_Object *obj, Eina_Bool alpha) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool    elm_mapbuf_alpha_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
-   /* flipselector */
-   typedef struct _Elm_Flipselector_Item Elm_Flipselector_Item;
+   /**
+    * @defgroup Flipselector Flip Selector
+    *
+    * 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
+    * (thus, the "flip" in the name).
+    *
+    * User clicks to flip sheets which are @b held for some time will
+    * make the flip selector to flip continuosly and automatically for
+    * the user. The interval between flips will keep growing in time,
+    * so that it helps the user to reach an item which is distant from
+    * the current selection.
+    *
+    * Smart callbacks one can register to:
+    * - @c "selected" - when the widget's selected text item is changed
+    * - @c "overflowed" - when the widget's current selection is changed
+    *   from the first item in its list to the last
+    * - @c "underflowed" - when the widget's current selection is changed
+    *   from the last item in its list to the first
+    *
+    * Available styles for it:
+    * - @c "default"
+    *
+    * Here is an example on its usage:
+    * @li @ref flipselector_example
+    */
+
+   /**
+    * @addtogroup Flipselector
+    * @{
+    */
+
+   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
+    *
+    * @param parent The parent object
+    * @return a new flip selector widget handle or @c NULL, on errors
+    *
+    * This function inserts a new flip selector widget on the canvas.
+    *
+    * @ingroup Flipselector
+    */
    EAPI Evas_Object               *elm_flipselector_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+
+   /**
+    * Programmatically select the next item of a flip selector widget
+    *
+    * @param obj The flipselector object
+    *
+    * @note The selection will be animated. Also, if it reaches the
+    * end of its list of member items, it will continue with the first
+    * one onwards.
+    *
+    * @ingroup Flipselector
+    */
    EAPI void                       elm_flipselector_flip_next(Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+   /**
+    * Programmatically select the previous item of a flip selector
+    * widget
+    *
+    * @param obj The flipselector object
+    *
+    * @note The selection will be animated.  Also, if it reaches the
+    * beginning of its list of member items, it will continue with the
+    * last one backwards.
+    *
+    * @ingroup Flipselector
+    */
    EAPI void                       elm_flipselector_flip_prev(Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI Elm_Flipselector_Item     *elm_flipselector_item_append(Evas_Object *obj, const char *label, void (*func)(void *data, Evas_Object *obj, void *event_info), void *data) EINA_ARG_NONNULL(1);
-   EAPI Elm_Flipselector_Item     *elm_flipselector_item_prepend(Evas_Object *obj, const char *label, void (*func)(void *data, Evas_Object *obj, void *event_info), void *data) EINA_ARG_NONNULL(1);
+
+   /**
+    * Append a (text) item to a flip selector widget
+    *
+    * @param obj The flipselector object
+    * @param label The (text) label of the new item
+    * @param func Convenience callback function to take place when
+    * item is selected
+    * @param data Data passed to @p func, above
+    * @return A handle to the item added or @c NULL, on errors
+    *
+    * The widget's list of labels to show will be appended with the
+    * given value. If the user wishes so, a callback function pointer
+    * can be passed, which will get called when this same item is
+    * selected.
+    *
+    * @note The current selection @b won't be modified by appending an
+    * element to the list.
+    *
+    * @note The maximum length of the text label is going to be
+    * determined <b>by the widget's theme</b>. Strings larger than
+    * that value are going to be @b truncated.
+    *
+    * @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);
+
+   /**
+    * Prepend a (text) item to a flip selector widget
+    *
+    * @param obj The flipselector object
+    * @param label The (text) label of the new item
+    * @param func Convenience callback function to take place when
+    * item is selected
+    * @param data Data passed to @p func, above
+    * @return A handle to the item added or @c NULL, on errors
+    *
+    * The widget's list of labels to show will be prepended with the
+    * given value. If the user wishes so, a callback function pointer
+    * can be passed, which will get called when this same item is
+    * selected.
+    *
+    * @note The current selection @b won't be modified by prepending
+    * an element to the list.
+    *
+    * @note The maximum length of the text label is going to be
+    * determined <b>by the widget's theme</b>. Strings larger than
+    * that value are going to be @b truncated.
+    *
+    * @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);
+
+   /**
+    * 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.
+    *
+    * 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_flipselector_item_del(),
+    * elm_flipselector_item_selected_get(),
+    * elm_flipselector_item_selected_set().
+    *
+    * @warning This list is only valid until @p obj object's internal
+    * items list is changed. It should be fetched again with another
+    * call to this function when changes happen.
+    *
+    * @ingroup Flipselector
+    */
    EAPI const Eina_List           *elm_flipselector_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+   /**
+    * Get the first item in the given flip selector widget's list of
+    * items.
+    *
+    * @param obj The flipselector object
+    * @return The first item or @c NULL, if it has no items (and on
+    * errors)
+    *
+    * @see elm_flipselector_item_append()
+    * @see elm_flipselector_last_item_get()
+    *
+    * @ingroup Flipselector
+    */
    EAPI Elm_Flipselector_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
+    * items.
+    *
+    * @param obj The flipselector object
+    * @return The last item or @c NULL, if it has no items (and on
+    * errors)
+    *
+    * @see elm_flipselector_item_prepend()
+    * @see elm_flipselector_first_item_get()
+    *
+    * @ingroup Flipselector
+    */
    EAPI Elm_Flipselector_Item     *elm_flipselector_last_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+   /**
+    * Get the currently selected item in a flip selector widget.
+    *
+    * @param obj The flipselector object
+    * @return The selected item or @c NULL, if the widget has no items
+    * (and on erros)
+    *
+    * @ingroup Flipselector
+    */
    EAPI Elm_Flipselector_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 selected @c EINA_TRUE to select it, @c EINA_FALSE to unselect.
+    *
+    * This sets whether @p item is or not the selected (thus, under
+    * display) one. If @p item is different than one under display,
+    * the latter will be unselected. If the @p item is set to be
+    * unselected, on the other hand, the @b first item in the widget's
+    * internal members list will be the new selected one.
+    *
+    * @see elm_flipselector_item_selected_get()
+    *
+    * @ingroup Flipselector
+    */
    EAPI void                       elm_flipselector_item_selected_set(Elm_Flipselector_Item *item, 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
+    * @return @c EINA_TRUE, if it's selected, @c EINA_FALSE otherwise
+    * (or on errors).
+    *
+    * @see elm_flipselector_item_selected_set()
+    *
+    * @ingroup Flipselector
+    */
    EAPI Eina_Bool                  elm_flipselector_item_selected_get(const Elm_Flipselector_Item *item) EINA_ARG_NONNULL(1);
+
+   /**
+    * Delete a given item from a flip selector widget.
+    *
+    * @param item The item to delete
+    *
+    * @ingroup Flipselector
+    */
    EAPI void                       elm_flipselector_item_del(Elm_Flipselector_Item *item) EINA_ARG_NONNULL(1);
+
+   /**
+    * Get the label of a given flip selector widget's item.
+    *
+    * @param item The item to get label from
+    * @return The text label of @p item or @c NULL, on errors
+    *
+    * @see elm_flipselector_item_label_set()
+    *
+    * @ingroup Flipselector
+    */
    EAPI const char                *elm_flipselector_item_label_get(const Elm_Flipselector_Item *item) EINA_ARG_NONNULL(1);
+
+   /**
+    * Set the label of a given flip selector widget's item.
+    *
+    * @param item The item to set label on
+    * @param label The text label string, in UTF-8 encoding
+    *
+    * @see elm_flipselector_item_label_get()
+    *
+    * @ingroup Flipselector
+    */
    EAPI void                       elm_flipselector_item_label_set(Elm_Flipselector_Item *item, 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
+    * @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.
+    *
+    * @see elm_flipselector_item_next_get()
+    *
+    * @ingroup Flipselector
+    */
    EAPI Elm_Flipselector_Item     *elm_flipselector_item_prev_get(Elm_Flipselector_Item *item) 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
+    * @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.
+    *
+    * @see elm_flipselector_item_next_get()
+    *
+    * @ingroup Flipselector
+    */
    EAPI Elm_Flipselector_Item     *elm_flipselector_item_next_get(Elm_Flipselector_Item *item) EINA_ARG_NONNULL(1);
+
+   /**
+    * Set the interval on time updates for an user mouse button hold
+    * on a flip selector widget.
+    *
+    * @param obj The flip selector object
+    * @param interval The (first) interval value in seconds
+    *
+    * This interval value is @b decreased while the user holds the
+    * mouse pointer either flipping up or flipping doww a given flip
+    * selector.
+    *
+    * This helps the user to get to a given item distant from the
+    * current one easier/faster, as it will start to flip quicker and
+    * quicker on mouse button holds.
+    *
+    * The calculation for the next flip interval value, starting from
+    * the one set with this call, is the previous interval divided by
+    * 1.05, so it decreases a little bit.
+    *
+    * The default starting interval value for automatic flips is
+    * @b 0.85 seconds.
+    *
+    * @see elm_flipselector_interval_get()
+    *
+    * @ingroup Flipselector
+    */
    EAPI void                       elm_flipselector_interval_set(Evas_Object *obj, double interval) EINA_ARG_NONNULL(1);
-   EAPI double                     elm_flipselector_interval_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   /* smart callbacks called:
-    * "selected" - when flipselector selected item is changed
-    * "overflowed" - when flipselector item is changed to first item
-    *                from last item
-    * "underflowed" - when flipselector item is changed to last item
-    *                 from first item.
+
+   /**
+    * Get the interval on time updates for an user mouse button hold
+    * on a flip selector widget.
+    *
+    * @param obj The flip selector object
+    * @return The (first) interval value, in seconds, set on it
+    *
+    * @see elm_flipselector_interval_set() for more details
+    *
+    * @ingroup Flipselector
     */
-   /* available styles:
-    * default
+   EAPI double                     elm_flipselector_interval_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+   /**
+    * @}
     */
 
    /**
@@ -5204,6 +6696,7 @@ extern "C" {
     * 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);
    /**
@@ -5450,12 +6943,81 @@ extern "C" {
     * "selected" - when item is selected (scroller stops)
     */
 
-   /* colorselector */
+   /**
+    * @page tutorial_colorselector Color selector example
+    * @dontinclude colorselector_example_01.c
+    *
+    * This example shows how to change the color of a rectangle using a color
+    * selector. We aren't going to explain a lot of the code since it's the
+    * usual setup code:
+    * @until show(rect)
+    *
+    * Now that we have a window with background and a rectangle we can create
+    * our color_selector and set it's initial color to fully opaque blue:
+    * @until show
+    *
+    * Next we tell ask to be notified whenever the color changes:
+    * @until changed
+    *
+    * We follow that we some more run of the mill setup code:
+    * @until ELM_MAIN()
+    *
+    * And now get to the callback that sets the color of the rectangle:
+    * @until }
+    *
+    * This example will look like this:
+    * @image html screenshots/colorselector_example_01.png
+    * @image latex screenshots/colorselector_example_01.eps
+    *
+    * @example colorselector_example_01.c
+    */
+   /**
+    * @defgroup Colorselector Colorselector
+    *
+    * @{
+    *
+    * @brief Widget for user to select a color.
+    *
+    * Signals that you can add callbacks for are:
+    * "changed" - When the color value changes(event_info is NULL).
+    *
+    * See @ref tutorial_colorselector.
+    */
+   /**
+    * @brief Add a new colorselector to the parent
+    *
+    * @param parent The parent object
+    * @return The new object or NULL if it cannot be created
+    *
+    * @ingroup Colorselector
+    */
    EAPI Evas_Object *elm_colorselector_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+   /**
+    * Set a color for the colorselector
+    *
+    * @param obj   Colorselector object
+    * @param r     r-value of color
+    * @param g     g-value of color
+    * @param b     b-value of color
+    * @param a     a-value of color
+    *
+    * @ingroup Colorselector
+    */
    EAPI void         elm_colorselector_color_set(Evas_Object *obj, int r, int g , int b, int a) EINA_ARG_NONNULL(1);
+   /**
+    * Get a color from the colorselector
+    *
+    * @param obj   Colorselector object
+    * @param r     integer pointer for r-value of color
+    * @param g     integer pointer for g-value of color
+    * @param b     integer pointer for b-value of color
+    * @param a     integer pointer for a-value of color
+    *
+    * @ingroup Colorselector
+    */
    EAPI void         elm_colorselector_color_get(const Evas_Object *obj, int *r, int *g , int *b, int *a) EINA_ARG_NONNULL(1);
-   /* smart callbacks called:
-    * "changed" - when the color value changes
+   /**
+    * @}
     */
 
    /* Contextual Popup */
@@ -5624,6 +7186,13 @@ extern "C" {
    typedef void (*Elm_Transit_Effect_End_Cb) (Elm_Transit_Effect *effect, Elm_Transit *transit);
 
    /**
+    * Elm_Transit_Del_Cb
+    *
+    * A callback called when the transit is deleted.
+    */
+   typedef void (*Elm_Transit_Del_Cb) (void *data, Elm_Transit *transit);
+
+   /**
     * Add new transit.
     *
     * @note Is not necessary to delete the transit object, it will be deleted at
@@ -5831,7 +7400,7 @@ extern "C" {
     *
     * @ingroup Transit
     */
-   EAPI void                        elm_transit_del_cb_set(Elm_Transit *transit, void (*cb)(void *data, Elm_Transit* transit), void *data) EINA_ARG_NONNULL(1);
+   EAPI void                        elm_transit_del_cb_set(Elm_Transit *transit, Elm_Transit_Del_Cb cb, void *data) EINA_ARG_NONNULL(1);
 
    /**
     * Set reverse effect automatically.
@@ -6024,6 +7593,21 @@ extern "C" {
    EAPI void                        elm_transit_chain_transit_add(Elm_Transit *transit, Elm_Transit *chain_transit) EINA_ARG_NONNULL(1, 2);
 
    /**
+    * Cut off the chain relationship between two transits.
+    *
+    * @note @p transit can not be NULL. Transit would have the chain relationship with @p chain transit.
+    * @note @p chain_transit can not be NULL. Chain transits should be chained to the @p transit.
+    *
+    * @param transit The transit object.
+    * @param chain_transit The chain transit object.
+    *
+    * This function remove the @p chain_transit transition from the @p transit.
+    *
+    * @ingroup Transit
+    */
+   EAPI void                        elm_transit_chain_transit_del(Elm_Transit *transit, Elm_Transit *chain_transit) EINA_ARG_NONNULL(1,2);
+
+   /**
     * Get the current chain transit list.
     *
     * @note @p transit can not be NULL.
@@ -6294,117 +7878,137 @@ extern "C" {
     * @}
     */
 
-  typedef struct _Elm_Store                      Elm_Store;
-  typedef struct _Elm_Store_Filesystem           Elm_Store_Filesystem;
-  typedef struct _Elm_Store_Item                 Elm_Store_Item;
-  typedef struct _Elm_Store_Item_Filesystem      Elm_Store_Item_Filesystem;
-  typedef struct _Elm_Store_Item_Info            Elm_Store_Item_Info;
-  typedef struct _Elm_Store_Item_Info_Filesystem Elm_Store_Item_Info_Filesystem;
-  typedef struct _Elm_Store_Item_Mapping         Elm_Store_Item_Mapping;
-  typedef struct _Elm_Store_Item_Mapping_Empty   Elm_Store_Item_Mapping_Empty;
-  typedef struct _Elm_Store_Item_Mapping_Icon    Elm_Store_Item_Mapping_Icon;
-  typedef struct _Elm_Store_Item_Mapping_Photo   Elm_Store_Item_Mapping_Photo;
-  typedef struct _Elm_Store_Item_Mapping_Custom  Elm_Store_Item_Mapping_Custom;
-
-  typedef Eina_Bool (*Elm_Store_Item_List_Cb) (void *data, Elm_Store_Item_Info *info);
-  typedef void      (*Elm_Store_Item_Fetch_Cb) (void *data, Elm_Store_Item *sti);
-  typedef void      (*Elm_Store_Item_Unfetch_Cb) (void *data, Elm_Store_Item *sti);
-  typedef void     *(*Elm_Store_Item_Mapping_Cb) (void *data, Elm_Store_Item *sti, const char *part);
-
-  typedef enum
-    {
-       ELM_STORE_ITEM_MAPPING_NONE = 0,
-       ELM_STORE_ITEM_MAPPING_LABEL, // const char * -> label
-       ELM_STORE_ITEM_MAPPING_STATE, // Eina_Bool -> state
-       ELM_STORE_ITEM_MAPPING_ICON, // char * -> icon path
-       ELM_STORE_ITEM_MAPPING_PHOTO, // char * -> photo path
-       ELM_STORE_ITEM_MAPPING_CUSTOM, // item->custom(it->data, it, part) -> void * (-> any)
-       // can add more here as needed by common apps
-       ELM_STORE_ITEM_MAPPING_LAST
-    } Elm_Store_Item_Mapping_Type;
-
-  struct _Elm_Store_Item_Mapping_Icon
-    {
-       // FIXME: allow edje file icons
-       int                   w, h;
-       Elm_Icon_Lookup_Order lookup_order;
-       Eina_Bool             standard_name : 1;
-       Eina_Bool             no_scale : 1;
-       Eina_Bool             smooth : 1;
-       Eina_Bool             scale_up : 1;
-       Eina_Bool             scale_down : 1;
-    };
+   /* Store */
+   typedef struct _Elm_Store                      Elm_Store;
+   typedef struct _Elm_Store_DBsystem             Elm_Store_DBsystem;
+   typedef struct _Elm_Store_Filesystem           Elm_Store_Filesystem;
+   typedef struct _Elm_Store_Item                 Elm_Store_Item;
+   typedef struct _Elm_Store_Item_DBsystem        Elm_Store_Item_DBsystem;
+   typedef struct _Elm_Store_Item_Filesystem      Elm_Store_Item_Filesystem;
+   typedef struct _Elm_Store_Item_Info            Elm_Store_Item_Info;
+   typedef struct _Elm_Store_Item_Info_Filesystem Elm_Store_Item_Info_Filesystem;
+   typedef struct _Elm_Store_Item_Mapping         Elm_Store_Item_Mapping;
+   typedef struct _Elm_Store_Item_Mapping_Empty   Elm_Store_Item_Mapping_Empty;
+   typedef struct _Elm_Store_Item_Mapping_Icon    Elm_Store_Item_Mapping_Icon;
+   typedef struct _Elm_Store_Item_Mapping_Photo   Elm_Store_Item_Mapping_Photo;
+   typedef struct _Elm_Store_Item_Mapping_Custom  Elm_Store_Item_Mapping_Custom;
+
+   typedef Eina_Bool (*Elm_Store_Item_List_Cb) (void *data, Elm_Store_Item_Info *info);
+   typedef void      (*Elm_Store_Item_Fetch_Cb) (void *data, Elm_Store_Item *sti, Elm_Store_Item_Info *info);
+   typedef void      (*Elm_Store_Item_Unfetch_Cb) (void *data, Elm_Store_Item *sti, Elm_Store_Item_Info *info);
+   typedef void      (*Elm_Store_Item_Select_Cb) (void *data, Elm_Store_Item *sti);
+   typedef int       (*Elm_Store_Item_Sort_Cb) (void *data, Elm_Store_Item_Info *info1, Elm_Store_Item_Info *info2);
+   typedef void      (*Elm_Store_Item_Free_Cb) (void *data, Elm_Store_Item_Info *info);
+   typedef void     *(*Elm_Store_Item_Mapping_Cb) (void *data, Elm_Store_Item *sti, const char *part);
 
-  struct _Elm_Store_Item_Mapping_Empty
-    {
-       Eina_Bool             dummy;
-    };
+   typedef enum
+     {
+        ELM_STORE_ITEM_MAPPING_NONE = 0,
+        ELM_STORE_ITEM_MAPPING_LABEL, // const char * -> label
+        ELM_STORE_ITEM_MAPPING_STATE, // Eina_Bool -> state
+        ELM_STORE_ITEM_MAPPING_ICON, // char * -> icon path
+        ELM_STORE_ITEM_MAPPING_PHOTO, // char * -> photo path
+        ELM_STORE_ITEM_MAPPING_CUSTOM, // item->custom(it->data, it, part) -> void * (-> any)
+        // can add more here as needed by common apps
+        ELM_STORE_ITEM_MAPPING_LAST
+     } Elm_Store_Item_Mapping_Type;
+
+   struct _Elm_Store_Item_Mapping_Icon
+     {
+        // FIXME: allow edje file icons
+        int                   w, h;
+        Elm_Icon_Lookup_Order lookup_order;
+        Eina_Bool             standard_name : 1;
+        Eina_Bool             no_scale : 1;
+        Eina_Bool             smooth : 1;
+        Eina_Bool             scale_up : 1;
+        Eina_Bool             scale_down : 1;
+     };
 
-  struct _Elm_Store_Item_Mapping_Photo
-    {
-       int                   size;
-    };
+   struct _Elm_Store_Item_Mapping_Empty
+     {
+        Eina_Bool             dummy;
+     };
 
-  struct _Elm_Store_Item_Mapping_Custom
-    {
-       Elm_Store_Item_Mapping_Cb func;
-    };
+   struct _Elm_Store_Item_Mapping_Photo
+     {
+        int                   size;
+     };
 
-  struct _Elm_Store_Item_Mapping
-    {
-       Elm_Store_Item_Mapping_Type     type;
-       const char                     *part;
-       int                             offset;
-       union
-         {
-            Elm_Store_Item_Mapping_Empty  empty;
-            Elm_Store_Item_Mapping_Icon   icon;
-            Elm_Store_Item_Mapping_Photo  photo;
-            Elm_Store_Item_Mapping_Custom custom;
-            // add more types here
-         } details;
-    };
+   struct _Elm_Store_Item_Mapping_Custom
+     {
+        Elm_Store_Item_Mapping_Cb func;
+     };
 
-  struct _Elm_Store_Item_Info
-    {
-      Elm_Genlist_Item_Class       *item_class;
-      const Elm_Store_Item_Mapping *mapping;
-      void                         *data;
-      char                         *sort_id;
-    };
+   struct _Elm_Store_Item_Mapping
+     {
+        Elm_Store_Item_Mapping_Type     type;
+        const char                     *part;
+        int                             offset;
+        union {
+             Elm_Store_Item_Mapping_Empty  empty;
+             Elm_Store_Item_Mapping_Icon   icon;
+             Elm_Store_Item_Mapping_Photo  photo;
+             Elm_Store_Item_Mapping_Custom custom;
+             // add more types here
+        } details;
+     };
 
-  struct _Elm_Store_Item_Info_Filesystem
-    {
-      Elm_Store_Item_Info  base;
-      char                *path;
-    };
+   struct _Elm_Store_Item_Info
+     {
+        int                           index;
+        int                           item_type;
+        int                           group_index;
+        Eina_Bool                     rec_item;
+        int                           pre_group_index;
+
+        Elm_Genlist_Item_Class       *item_class;
+        const Elm_Store_Item_Mapping *mapping;
+        void                         *data;
+        char                         *sort_id;
+     };
+
+   struct _Elm_Store_Item_Info_Filesystem
+     {
+        Elm_Store_Item_Info  base;
+        char                *path;
+     };
 
 #define ELM_STORE_ITEM_MAPPING_END { ELM_STORE_ITEM_MAPPING_NONE, NULL, 0, { .empty = { EINA_TRUE } } }
 #define ELM_STORE_ITEM_MAPPING_OFFSET(st, it) offsetof(st, it)
 
-  EAPI void                    elm_store_free(Elm_Store *st);
-
-  EAPI Elm_Store              *elm_store_filesystem_new(void);
-  EAPI void                    elm_store_filesystem_directory_set(Elm_Store *st, const char *dir) EINA_ARG_NONNULL(1);
-  EAPI const char             *elm_store_filesystem_directory_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
-  EAPI const char             *elm_store_item_filesystem_path_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
-
-  EAPI void                    elm_store_target_genlist_set(Elm_Store *st, Evas_Object *obj) EINA_ARG_NONNULL(1);
-
-  EAPI void                    elm_store_cache_set(Elm_Store *st, int max) EINA_ARG_NONNULL(1);
-  EAPI int                     elm_store_cache_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
-  EAPI void                    elm_store_list_func_set(Elm_Store *st, Elm_Store_Item_List_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
-  EAPI void                    elm_store_fetch_func_set(Elm_Store *st, Elm_Store_Item_Fetch_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
-  EAPI void                    elm_store_fetch_thread_set(Elm_Store *st, Eina_Bool use_thread) EINA_ARG_NONNULL(1);
-  EAPI Eina_Bool               elm_store_fetch_thread_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
-
-  EAPI void                    elm_store_unfetch_func_set(Elm_Store *st, Elm_Store_Item_Unfetch_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
-  EAPI void                    elm_store_sorted_set(Elm_Store *st, Eina_Bool sorted) EINA_ARG_NONNULL(1);
-  EAPI Eina_Bool               elm_store_sorted_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
-  EAPI void                    elm_store_item_data_set(Elm_Store_Item *sti, void *data) EINA_ARG_NONNULL(1);
-  EAPI void                   *elm_store_item_data_get(Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
-  EAPI const Elm_Store        *elm_store_item_store_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
-  EAPI const Elm_Genlist_Item *elm_store_item_genlist_item_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
+   EAPI Elm_Store              *elm_store_dbsystem_new(void);
+   EAPI void                    elm_store_item_count_set(Elm_Store *st, int count) EINA_ARG_NONNULL(1);
+   EAPI void                    elm_store_item_select_func_set(Elm_Store *st, Elm_Store_Item_Select_Cb func, const void *data) EINA_ARG_NONNULL(1);
+   EAPI void                    elm_store_item_sort_func_set(Elm_Store *st, Elm_Store_Item_Sort_Cb func, const void *data) EINA_ARG_NONNULL(1);
+   EAPI void                    elm_store_item_free_func_set(Elm_Store *st, Elm_Store_Item_Free_Cb func, const void *data) EINA_ARG_NONNULL(1);
+   EAPI int                     elm_store_item_data_index_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
+   EAPI void                   *elm_store_dbsystem_db_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
+   EAPI void                    elm_store_dbsystem_db_set(Elm_Store *store, void *pDB) EINA_ARG_NONNULL(1);
+   EAPI int                     elm_store_item_index_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
+   EAPI Elm_Store_Item         *elm_store_item_add(Elm_Store *st, Elm_Store_Item_Info *info) EINA_ARG_NONNULL(1);
+   EAPI void                    elm_store_item_update(Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
+   EAPI void                    elm_store_visible_items_update(Elm_Store *st) EINA_ARG_NONNULL(1);
+   EAPI void                    elm_store_item_del(Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
+   EAPI void                    elm_store_free(Elm_Store *st);
+   EAPI Elm_Store              *elm_store_filesystem_new(void);
+   EAPI void                    elm_store_filesystem_directory_set(Elm_Store *st, const char *dir) EINA_ARG_NONNULL(1);
+   EAPI const char             *elm_store_filesystem_directory_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
+   EAPI const char             *elm_store_item_filesystem_path_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
+   EAPI void                    elm_store_target_genlist_set(Elm_Store *st, Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void                    elm_store_cache_set(Elm_Store *st, int max) EINA_ARG_NONNULL(1);
+   EAPI int                     elm_store_cache_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
+   EAPI void                    elm_store_list_func_set(Elm_Store *st, Elm_Store_Item_List_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
+   EAPI void                    elm_store_fetch_func_set(Elm_Store *st, Elm_Store_Item_Fetch_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
+   EAPI void                    elm_store_fetch_thread_set(Elm_Store *st, Eina_Bool use_thread) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool               elm_store_fetch_thread_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
+   EAPI void                    elm_store_unfetch_func_set(Elm_Store *st, Elm_Store_Item_Unfetch_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
+   EAPI void                    elm_store_sorted_set(Elm_Store *st, Eina_Bool sorted) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool               elm_store_sorted_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
+   EAPI void                    elm_store_item_data_set(Elm_Store_Item *sti, void *data) EINA_ARG_NONNULL(1);
+   EAPI void                   *elm_store_item_data_get(Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
+   EAPI const Elm_Store        *elm_store_item_store_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
+   EAPI const Elm_Genlist_Item *elm_store_item_genlist_item_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
 
    /* SegmentControl */
    typedef struct _Elm_Segment_Item Elm_Segment_Item;
@@ -6464,6 +8068,507 @@ extern "C" {
    EAPI Evas_Object *elm_player_add(Evas_Object *parent);
    EAPI void elm_player_video_set(Evas_Object *player, Evas_Object *video);
 
+   // FIXME: incomplete - carousel. don't use this until this comment is removed
+   typedef struct _Elm_Carousel_Item Elm_Carousel_Item;
+   EAPI Evas_Object       *elm_carousel_add(Evas_Object *parent);
+   EAPI Elm_Carousel_Item *elm_carousel_item_add(Evas_Object *obj, Evas_Object *icon, const char *label, Evas_Smart_Cb func, const void *data);
+   EAPI void               elm_carousel_item_del(Elm_Carousel_Item *item);
+   EAPI void               elm_carousel_item_select(Elm_Carousel_Item *item);
+   /* smart callbacks called:
+    * "clicked" - when the user clicks on a carousel item and becomes selected
+    */
+
+   /* datefield */
+   typedef enum _Elm_Datefield_Layout
+     {
+        ELM_DATEFIELD_LAYOUT_TIME,
+        ELM_DATEFIELD_LAYOUT_DATE,
+        ELM_DATEFIELD_LAYOUT_DATEANDTIME
+     } Elm_Datefield_Layout;
+
+   EAPI Evas_Object *elm_datefield_add(Evas_Object *parent);
+   EAPI void         elm_datefield_layout_set(Evas_Object *obj, Elm_Datefield_Layout layout);
+   EAPI Elm_Datefield_Layout elm_datefield_layout_get(const Evas_Object *obj);
+   EAPI void         elm_datefield_date_set(Evas_Object *obj, int year, int month, int day, int hour, int min);
+   EAPI void         elm_datefield_date_get(const Evas_Object *obj, int *year, int *month, int *day, int *hour, int *min);
+   EAPI Eina_Bool elm_datefield_date_max_set(Evas_Object *obj, int year, int month, int day);
+   EAPI void         elm_datefield_date_max_get(const Evas_Object *obj, int *year, int *month, int *day);
+   EAPI Eina_Bool elm_datefield_date_min_set(Evas_Object *obj, int year, int month, int day);
+   EAPI void         elm_datefield_date_min_get(const Evas_Object *obj, int *year, int *month, int *day);
+   EAPI void         elm_datefield_time_mode_set(Evas_Object *obj, Eina_Bool mode);
+   EAPI Eina_Bool    elm_datefield_time_mode_get(const Evas_Object *obj);
+   EAPI void         elm_datefield_date_format_set(Evas_Object *obj, const char *fmt);
+   EAPI const char  *elm_datefield_date_format_get(const Evas_Object *obj);
+   EAPI void         elm_datefield_input_panel_state_callback_add(Evas_Object *obj, void (*pEventCallbackFunc) (void *data, Evas_Object *obj, int value), void *data);
+   EAPI void         elm_datefield_input_panel_state_callback_del(Evas_Object *obj, void (*pEventCallbackFunc) (void *data, Evas_Object *obj, int value));
+   /* smart callbacks called:
+   * "changed" - when datefield entry is changed, this signal is sent.
+   */
+
+   /* popup */
+   typedef enum _Elm_Popup_Response
+     {
+        ELM_POPUP_RESPONSE_NONE = -1,
+        ELM_POPUP_RESPONSE_TIMEOUT = -2,
+        ELM_POPUP_RESPONSE_OK = -3,
+        ELM_POPUP_RESPONSE_CANCEL = -4,
+        ELM_POPUP_RESPONSE_CLOSE = -5
+     } Elm_Popup_Response;
+
+   typedef enum _Elm_Popup_Mode
+     {
+        ELM_POPUP_TYPE_NONE = 0,
+        ELM_POPUP_TYPE_ALERT = (1 << 0)
+     } Elm_Popup_Mode;
+
+   typedef enum _Elm_Popup_Orient
+     {
+        ELM_POPUP_ORIENT_TOP,
+        ELM_POPUP_ORIENT_CENTER,
+        ELM_POPUP_ORIENT_BOTTOM,
+        ELM_POPUP_ORIENT_LEFT,
+        ELM_POPUP_ORIENT_RIGHT,
+        ELM_POPUP_ORIENT_TOP_LEFT,
+        ELM_POPUP_ORIENT_TOP_RIGHT,
+        ELM_POPUP_ORIENT_BOTTOM_LEFT,
+        ELM_POPUP_ORIENT_BOTTOM_RIGHT
+     } Elm_Popup_Orient;
+
+   /* smart callbacks called:
+    * "response" - when ever popup is closed, this signal is sent with appropriate response id.".
+    */
+
+   EAPI Evas_Object *elm_popup_add(Evas_Object *parent);
+   EAPI void         elm_popup_desc_set(Evas_Object *obj, const char *text);
+   EAPI const char  *elm_popup_desc_get(Evas_Object *obj);
+   EAPI void         elm_popup_title_label_set(Evas_Object *obj, const char *text);
+   EAPI const char  *elm_popup_title_label_get(Evas_Object *obj);
+   EAPI void         elm_popup_title_icon_set(Evas_Object *obj, Evas_Object *icon);
+   EAPI Evas_Object *elm_popup_title_icon_get(Evas_Object *obj);
+   EAPI void         elm_popup_content_set(Evas_Object *obj, Evas_Object *content);
+   EAPI Evas_Object *elm_popup_content_get(Evas_Object *obj);
+   EAPI void         elm_popup_buttons_add(Evas_Object *obj,int no_of_buttons, const char *first_button_text,  ...);
+   EAPI Evas_Object *elm_popup_with_buttons_add(Evas_Object *parent, const char *title, const char *desc_text,int no_of_buttons, const char *first_button_text, ... );
+   EAPI void         elm_popup_timeout_set(Evas_Object *obj, double timeout);
+   EAPI void         elm_popup_mode_set(Evas_Object *obj, Elm_Popup_Mode mode);
+   EAPI void         elm_popup_response(Evas_Object *obj, int  response_id);
+   EAPI void         elm_popup_orient_set(Evas_Object *obj, Elm_Popup_Orient orient);
+   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;
+
+   EAPI Evas_Object *elm_navigationbar_add(Evas_Object *parent);
+   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);
+   EAPI void         elm_navigationbar_pop(Evas_Object *obj);
+   EAPI void         elm_navigationbar_to_content_pop(Evas_Object *obj, Evas_Object *content);
+   EAPI void         elm_navigationbar_title_label_set(Evas_Object *obj, Evas_Object *content, const char *title);
+   EAPI const char  *elm_navigationbar_title_label_get(Evas_Object *obj, Evas_Object *content);
+   EAPI void         elm_navigationbar_title_object_add(Evas_Object *obj, Evas_Object *content, Evas_Object *title_obj);
+   EAPI Evas_Object *elm_navigationbar_title_object_get(Evas_Object *obj, Evas_Object *content);
+   EAPI Eina_List   *elm_navigationbar_title_object_list_get(Evas_Object *obj, Evas_Object *content);
+   EAPI Evas_Object *elm_navigationbar_content_top_get(Evas_Object *obj);
+   EAPI Evas_Object *elm_navigationbar_content_bottom_get(Evas_Object *obj);
+   EAPI void         elm_navigationbar_hidden_set(Evas_Object *obj, Eina_Bool hidden);
+   EAPI void         elm_navigationbar_title_button_set(Evas_Object *obj, Evas_Object *content, Evas_Object *button, Elm_Navi_Button_Type button_type);
+   EAPI Evas_Object *elm_navigationbar_title_button_get(Evas_Object *obj, Evas_Object *content, Elm_Navi_Button_Type button_type);
+   EAPI const char  *elm_navigationbar_subtitle_label_get(Evas_Object *obj, Evas_Object *content);
+   EAPI void         elm_navigationbar_subtitle_label_set(Evas_Object *obj, Evas_Object *content, const char *subtitle);
+   EAPI void         elm_navigationbar_title_object_list_unset(Evas_Object *obj, Evas_Object *content, Eina_List **list);
+   EAPI void         elm_navigationbar_animation_disabled_set(Evas_Object *obj, Eina_Bool disable);
+   EAPI void         elm_navigationbar_title_object_visible_set(Evas_Object *obj, Evas_Object *content, Eina_Bool visible);
+   Eina_Bool         elm_navigationbar_title_object_visible_get(Evas_Object *obj, Evas_Object *content);
+   EAPI void         elm_navigationbar_title_icon_set(Evas_Object *obj, Evas_Object *content, Evas_Object *icon);
+   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"
+
+   typedef enum
+     {
+        ELM_NAVIGATIONBAR_EX_BACK_BUTTON,
+        ELM_NAVIGATIONBAR_EX_FUNCTION_BUTTON1,
+        ELM_NAVIGATIONBAR_EX_FUNCTION_BUTTON2,
+        ELM_NAVIGATIONBAR_EX_FUNCTION_BUTTON3,
+        ELM_NAVIGATIONBAR_EX_MAX
+     } Elm_Navi_ex_Button_Type;
+   typedef struct _Elm_Navigationbar_ex_Item Elm_Navigationbar_ex_Item;
+
+   EAPI Evas_Object *elm_navigationbar_ex_add(Evas_Object *parent);
+   EAPI Elm_Navigationbar_ex_Item *elm_navigationbar_ex_item_push(Evas_Object *obj, Evas_Object *content, const char *item_style);
+   EAPI void         elm_navigationbar_ex_item_pop(Evas_Object *obj);
+   EAPI void         elm_navigationbar_ex_item_promote(Elm_Navigationbar_ex_Item* item);
+   EAPI void         elm_navigationbar_ex_to_item_pop(Elm_Navigationbar_ex_Item* item);
+   EAPI void         elm_navigationbar_ex_item_title_label_set(Elm_Navigationbar_ex_Item *item, const char *title);
+   EAPI const char  *elm_navigationbar_ex_item_title_label_get(Elm_Navigationbar_ex_Item* item);
+   EAPI Elm_Navigationbar_ex_Item *elm_navigationbar_ex_item_top_get(const Evas_Object *obj);
+   EAPI Elm_Navigationbar_ex_Item *elm_navigationbar_ex_item_bottom_get(const Evas_Object *obj);
+   EAPI void         elm_navigationbar_ex_item_title_button_set(Elm_Navigationbar_ex_Item* item, char *btn_label, Evas_Object *icon, int button_type, Evas_Smart_Cb func, const void *data);
+   EAPI Evas_Object *elm_navigationbar_ex_item_title_button_get(Elm_Navigationbar_ex_Item* item, int button_type);
+   EAPI void         elm_navigationbar_ex_item_title_object_set(Elm_Navigationbar_ex_Item* item, Evas_Object *title_obj);
+   EAPI Evas_Object *elm_navigationbar_ex_item_title_object_unset(Elm_Navigationbar_ex_Item* item);
+   EAPI void         elm_navigationbar_ex_item_title_hidden_set(Elm_Navigationbar_ex_Item* item, Eina_Bool hidden);
+   EAPI Evas_Object *elm_navigationbar_ex_item_title_object_get(Elm_Navigationbar_ex_Item* item);
+   EAPI const char  *elm_navigationbar_ex_item_subtitle_label_get(Elm_Navigationbar_ex_Item* item);
+   EAPI void         elm_navigationbar_ex_item_subtitle_label_set( Elm_Navigationbar_ex_Item* item, const char *subtitle);
+   EAPI void         elm_navigationbar_ex_item_style_set(Elm_Navigationbar_ex_Item* item, const char* item_style);
+   EAPI const char  *elm_navigationbar_ex_item_style_get(Elm_Navigationbar_ex_Item* item);
+   EAPI Evas_Object *elm_navigationbar_ex_item_content_unset(Elm_Navigationbar_ex_Item* item);
+   EAPI Evas_Object *elm_navigationbar_ex_item_content_get(Elm_Navigationbar_ex_Item* item);
+   EAPI void         elm_navigationbar_ex_delete_on_pop_set(Evas_Object *obj, Eina_Bool del_on_pop);
+   EAPI Evas_Object *elm_navigationbar_ex_item_icon_get(Elm_Navigationbar_ex_Item* item);
+   EAPI void         elm_navigationbar_ex_item_icon_set(Elm_Navigationbar_ex_Item* item, Evas_Object *icon);
+   EAPI Evas_Object *elm_navigationbar_ex_item_title_button_unset(Elm_Navigationbar_ex_Item* item, int button_type);
+   EAPI void         elm_navigationbar_ex_animation_disable_set(Evas_Object *obj, Eina_Bool disable);
+   EAPI void         elm_navigationbar_ex_title_object_visible_set(Elm_Navigationbar_ex_Item* item, Eina_Bool visible);
+   Eina_Bool         elm_navigationbar_ex_title_object_visible_get(Elm_Navigationbar_ex_Item* item);
+
+  /* naviframe */
+  #define ELM_NAVIFRAME_ITEM_ICON "elm.swallow.icon"
+  #define ELM_NAVIFRAME_ITEM_OPTIONHEADER "elm.swallow.optionheader"
+  #define ELM_NAVIFRAME_ITEM_TITLE_LABEL "elm.text.title"
+  #define ELM_NAVIFRAME_ITEM_PREV_BTN "elm.swallow.prev_btn"
+
+   EAPI Evas_Object        *elm_naviframe_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+   EAPI Elm_Object_Item    *elm_naviframe_item_push(Evas_Object *obj, const char *title_label, Evas_Object *prev_btn, Evas_Object *next_btn, Evas_Object *content, const char *item_style) EINA_ARG_NONNULL(1, 5);
+   EAPI Evas_Object        *elm_naviframe_item_pop(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void                elm_naviframe_content_preserve_on_pop_set(Evas_Object *obj, Eina_Bool preserve) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool           elm_naviframe_content_preserve_on_pop_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI Elm_Object_Item    *elm_naviframe_top_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI Elm_Object_Item    *elm_naviframe_bottom_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void                elm_naviframe_item_style_set(Elm_Object_Item *it, const char *item_style) EINA_ARG_NONNULL(1);
+   EAPI const char         *elm_naviframe_item_style_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
+   EAPI void                elm_naviframe_item_title_visible_set(Elm_Object_Item *it, Eina_Bool visible) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool           elm_naviframe_item_title_visible_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
+
+   /* Control Bar */
+   #define CONTROLBAR_SYSTEM_ICON_ALBUMS "controlbar_albums"
+   #define CONTROLBAR_SYSTEM_ICON_ARTISTS "controlbar_artists"
+   #define CONTROLBAR_SYSTEM_ICON_SONGS "controlbar_songs"
+   #define CONTROLBAR_SYSTEM_ICON_PLAYLIST "controlbar_playlist"
+   #define CONTROLBAR_SYSTEM_ICON_MORE "controlbar_more"
+   #define CONTROLBAR_SYSTEM_ICON_CONTACTS "controlbar_contacts"
+   #define CONTROLBAR_SYSTEM_ICON_DIALER "controlbar_dialer"
+   #define CONTROLBAR_SYSTEM_ICON_FAVORITES "controlbar_favorites"
+   #define CONTROLBAR_SYSTEM_ICON_LOGS "controlbar_logs"
+
+   typedef enum _Elm_Controlbar_Mode_Type
+     {
+        ELM_CONTROLBAR_MODE_DEFAULT = 0,
+        ELM_CONTROLBAR_MODE_TRANSLUCENCE,
+        ELM_CONTROLBAR_MODE_TRANSPARENCY,
+        ELM_CONTROLBAR_MODE_LARGE,
+        ELM_CONTROLBAR_MODE_SMALL,
+        ELM_CONTROLBAR_MODE_LEFT,
+        ELM_CONTROLBAR_MODE_RIGHT
+     } Elm_Controlbar_Mode_Type;
+
+   typedef struct _Elm_Controlbar_Item Elm_Controlbar_Item;
+   EAPI Evas_Object *elm_controlbar_add(Evas_Object *parent);
+   EAPI Elm_Controlbar_Item *elm_controlbar_tab_item_append(Evas_Object *obj, const char *icon_path, const char *label, Evas_Object *view);
+   EAPI Elm_Controlbar_Item *elm_controlbar_tab_item_prepend(Evas_Object *obj, const char *icon_path, const char *label, Evas_Object *view);
+   EAPI Elm_Controlbar_Item *elm_controlbar_tab_item_insert_before(Evas_Object *obj, Elm_Controlbar_Item *before, const char *icon_path, const char *label, Evas_Object *view);
+   EAPI Elm_Controlbar_Item *elm_controlbar_tab_item_insert_after(Evas_Object *obj, Elm_Controlbar_Item *after, const char *icon_path, const char *label, Evas_Object *view);
+   EAPI Elm_Controlbar_Item *elm_controlbar_tool_item_append(Evas_Object *obj, const char *icon_path, const char *label, void (*func) (void *data, Evas_Object *obj, void *event_info), void *data);
+   EAPI Elm_Controlbar_Item *elm_controlbar_tool_item_prepend(Evas_Object *obj, const char *icon_path, const char *label, void (*func) (void *data, Evas_Object *obj, void *event_info), void *data);
+   EAPI Elm_Controlbar_Item *elm_controlbar_tool_item_insert_before(Evas_Object *obj, Elm_Controlbar_Item *before, const char *icon_path, const char *label, void (*func) (void *data, Evas_Object *obj, void *event_info), void *data);
+   EAPI Elm_Controlbar_Item *elm_controlbar_tool_item_insert_after(Evas_Object *obj, Elm_Controlbar_Item *after, const char *icon_path, const char *label, void (*func) (void *data, Evas_Object *obj, void *event_info), void *data);
+   EAPI Elm_Controlbar_Item *elm_controlbar_object_item_append(Evas_Object *obj, Evas_Object *obj_item, const int sel);
+   EAPI Elm_Controlbar_Item *elm_controlbar_object_item_prepend(Evas_Object *obj, Evas_Object *obj_item, const int sel);
+   EAPI Elm_Controlbar_Item *elm_controlbar_object_item_insert_before(Evas_Object *obj, Elm_Controlbar_Item *before, Evas_Object *obj_item, const int sel);
+   EAPI Elm_Controlbar_Item *elm_controlbar_object_item_insert_after(Evas_Object *obj, Elm_Controlbar_Item *after, Evas_Object *obj_item, const int sel);
+   EAPI Evas_Object *elm_controlbar_object_item_object_get(const Elm_Controlbar_Item *it);
+   EAPI void         elm_controlbar_item_del(Elm_Controlbar_Item *it);
+   EAPI void         elm_controlbar_item_select(Elm_Controlbar_Item *it);
+   EAPI void         elm_controlbar_item_visible_set(Elm_Controlbar_Item *it, Eina_Bool bar);
+   EAPI Eina_Bool    elm_controlbar_item_visible_get(const Elm_Controlbar_Item * it);
+   EAPI void         elm_controlbar_item_disabled_set(Elm_Controlbar_Item * it, Eina_Bool disabled);
+   EAPI Eina_Bool    elm_controlbar_item_disabled_get(const Elm_Controlbar_Item * it);
+   EAPI void         elm_controlbar_item_icon_set(Elm_Controlbar_Item *it, const char *icon_path);
+   EAPI Evas_Object *elm_controlbar_item_icon_get(const Elm_Controlbar_Item *it);
+   EAPI void         elm_controlbar_item_label_set(Elm_Controlbar_Item *it, const char *label);
+   EAPI const char  *elm_controlbar_item_label_get(const Elm_Controlbar_Item *it);
+   EAPI Elm_Controlbar_Item *elm_controlbar_selected_item_get(const Evas_Object *obj);
+   EAPI Elm_Controlbar_Item *elm_controlbar_first_item_get(const Evas_Object *obj);
+   EAPI Elm_Controlbar_Item *elm_controlbar_last_item_get(const Evas_Object *obj);
+   EAPI const Eina_List   *elm_controlbar_items_get(const Evas_Object *obj);
+   EAPI Elm_Controlbar_Item *elm_controlbar_item_prev(Elm_Controlbar_Item *it);
+   EAPI Elm_Controlbar_Item *elm_controlbar_item_next(Elm_Controlbar_Item *it);
+   EAPI void         elm_controlbar_item_view_set(Elm_Controlbar_Item *it, Evas_Object * view);
+   EAPI Evas_Object *elm_controlbar_item_view_get(const Elm_Controlbar_Item *it);
+   EAPI Evas_Object *elm_controlbar_item_view_unset(Elm_Controlbar_Item *it);
+   EAPI Evas_Object *elm_controlbar_item_button_get(const Elm_Controlbar_Item *it);
+   EAPI void         elm_controlbar_mode_set(Evas_Object *obj, int mode);
+   EAPI void         elm_controlbar_alpha_set(Evas_Object *obj, int alpha);
+   EAPI void         elm_controlbar_item_auto_align_set(Evas_Object *obj, Eina_Bool auto_align);
+   EAPI void         elm_controlbar_vertical_set(Evas_Object *obj, Eina_Bool vertical);
+
+   /* SearchBar */
+   EAPI Evas_Object *elm_searchbar_add(Evas_Object *parent);
+   EAPI void         elm_searchbar_text_set(Evas_Object *obj, const char *entry);
+   EAPI const char  *elm_searchbar_text_get(Evas_Object *obj);
+   EAPI Evas_Object *elm_searchbar_entry_get(Evas_Object *obj);
+   EAPI Evas_Object *elm_searchbar_editfield_get(Evas_Object *obj);
+   EAPI void         elm_searchbar_cancel_button_animation_set(Evas_Object *obj, Eina_Bool cancel_btn_ani_flag);
+   EAPI void         elm_searchbar_cancel_button_set(Evas_Object *obj, Eina_Bool visible);
+   EAPI void         elm_searchbar_clear(Evas_Object *obj);
+   EAPI void         elm_searchbar_boundary_rect_set(Evas_Object *obj, Eina_Bool boundary);
+
+   EAPI Evas_Object *elm_page_control_add(Evas_Object *parent);
+   EAPI void         elm_page_control_page_count_set(Evas_Object *obj, unsigned int page_count);
+   EAPI        void         elm_page_control_page_id_set(Evas_Object *obj, unsigned int page_id);
+   EAPI unsigned int elm_page_control_page_id_get(Evas_Object *obj);
+
+   /* NoContents */
+   EAPI Evas_Object *elm_nocontents_add(Evas_Object *parent);
+   EAPI void         elm_nocontents_label_set(Evas_Object *obj, const char *label);
+   EAPI const char  *elm_nocontents_label_get(const Evas_Object *obj);
+   EAPI void         elm_nocontents_custom_set(const Evas_Object *obj, Evas_Object *custom);
+   EAPI Evas_Object *elm_nocontents_custom_get(const Evas_Object *obj);
+
+/* TickerNoti */
+typedef enum
+  {
+     ELM_TICKERNOTI_DEFAULT,
+     ELM_TICKERNOTI_DETAILVIEW
+  } Elm_Tickernoti_Mode;
+
+typedef enum
+  {
+     ELM_TICKERNOTI_ORIENT_TOP,
+     ELM_TICKERNOTI_ORIENT_BOTTOM
+  } Elm_Tickernoti_Orient;
+
+   EAPI Evas_Object              *elm_tickernoti_add (Evas_Object *parent);
+   EAPI void                      elm_tickernoti_icon_set (Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+   EAPI Evas_Object              *elm_tickernoti_icon_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void                      elm_tickernoti_label_set (Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
+   EAPI const char               *elm_tickernoti_label_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void                      elm_tickernoti_button_set (Evas_Object *obj, Evas_Object *button) EINA_ARG_NONNULL(1);
+   EAPI Evas_Object              *elm_tickernoti_button_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void                      elm_tickernoti_orientation_set (Evas_Object *obj, Elm_Tickernoti_Orient orient) EINA_ARG_NONNULL(1);
+   EAPI Elm_Tickernoti_Orient     elm_tickernoti_orientation_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI int                       elm_tickernoti_rotation_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void                      elm_tickernoti_rotation_set (Evas_Object *obj, int angle) EINA_ARG_NONNULL(1);
+   /* #### Below APIs are going to be deprecated, announcment will be made soon ####*/
+   EAPI Evas_Object              *elm_tickernoti_win_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void                      elm_tickernoti_detailview_label_set (Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
+   EAPI const char               *elm_tickernoti_detailview_label_get (const Evas_Object *obj)EINA_ARG_NONNULL(1);
+   EAPI void                      elm_tickernoti_detailview_button_set (Evas_Object *obj, Evas_Object *button) EINA_ARG_NONNULL(2);
+   EAPI Evas_Object              *elm_tickernoti_detailview_button_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void                      elm_tickernoti_detailview_icon_set (Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+   EAPI Evas_Object              *elm_tickernoti_detailview_icon_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI Evas_Object              *elm_tickernoti_detailview_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void                      elm_tickernoti_mode_set (Evas_Object *obj, Elm_Tickernoti_Mode mode) EINA_ARG_NONNULL(1);
+   EAPI Elm_Tickernoti_Mode       elm_tickernoti_mode_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /* ############################################################################### */
+   /* smart callbacks called:
+    * @li "clicked" - emitted when tickernoti is clicked, except at the
+    * swallow/button region, if any.
+    * @li "hide" - emitted when the tickernoti is completelyhidden. In case of
+    * any hide animation, this signal is raised after the animation.
+    */
+
+   /* colorpalette */
+   typedef struct _Colorpalette_Color Elm_Colorpalette_Color;
+
+   struct _Colorpalette_Color
+     {
+        unsigned int r, g, b;
+     };
+
+   EAPI Evas_Object *elm_colorpalette_add(Evas_Object *parent);
+   EAPI void         elm_colorpalette_color_set(Evas_Object *obj, int color_num, Elm_Colorpalette_Color *color);
+   EAPI void         elm_colorpalette_row_column_set(Evas_Object *obj, int row, int col);
+   /* smart callbacks called:
+    * "clicked" - when image clicked
+    */
+
+   /* editfield */
+   EAPI Evas_Object *elm_editfield_add(Evas_Object *parent);
+   EAPI void         elm_editfield_label_set(Evas_Object *obj, const char *label);
+   EAPI const char  *elm_editfield_label_get(Evas_Object *obj);
+   EAPI void         elm_editfield_guide_text_set(Evas_Object *obj, const char *text);
+   EAPI const char  *elm_editfield_guide_text_get(Evas_Object *obj);
+   EAPI Evas_Object *elm_editfield_entry_get(Evas_Object *obj);
+//   EAPI Evas_Object *elm_editfield_clear_button_show(Evas_Object *obj, Eina_Bool show);
+   EAPI void         elm_editfield_right_icon_set(Evas_Object *obj, Evas_Object *icon);
+   EAPI Evas_Object *elm_editfield_right_icon_get(Evas_Object *obj);
+   EAPI void         elm_editfield_left_icon_set(Evas_Object *obj, Evas_Object *icon);
+   EAPI Evas_Object *elm_editfield_left_icon_get(Evas_Object *obj);
+   EAPI void         elm_editfield_entry_single_line_set(Evas_Object *obj, Eina_Bool single_line);
+   EAPI Eina_Bool    elm_editfield_entry_single_line_get(Evas_Object *obj);
+   EAPI void         elm_editfield_eraser_set(Evas_Object *obj, Eina_Bool visible);
+   EAPI Eina_Bool    elm_editfield_eraser_get(Evas_Object *obj);
+   /* smart callbacks called:
+    * "clicked" - when an editfield is clicked
+    * "unfocused" - when an editfield is unfocused
+    */
+
+
+   /* 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 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 void                       elm_multibuttonentry_guide_text_set(Evas_Object *obj, const char *guidetext);
+   EAPI int                        elm_multibuttonentry_contracted_state_get(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 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 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_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:
+    * "selected" - This signal is emitted when the selected item of multibuttonentry is changed.
+    * "added" - This signal is emitted when a new multibuttonentry item is added.
+    * "deleted" - This signal is emitted when a multibuttonentry item is deleted.
+    * "expanded" - This signal is emitted when a multibuttonentry is expanded.
+    * "contracted" - This signal is emitted when a multibuttonentry is contracted.
+    * "contracted,state,changed" - This signal is emitted when the contracted state of multibuttonentry is changed.
+    * "item,selected" - This signal is emitted when the selected item of multibuttonentry is changed.
+    * "item,added" - This signal is emitted when a new multibuttonentry item is added.
+    * "item,deleted" - This signal is emitted when a multibuttonentry item is deleted.
+    * "item,clicked" - This signal is emitted when a multibuttonentry item is clicked.
+    * "clicked" - This signal is emitted when a multibuttonentry is clicked.
+    * "unfocused" - This signal is emitted when a multibuttonentry is unfocused.
+    */
+   /* available styles:
+    * default
+    */
+
+   /* stackedicon */
+   typedef struct _Stackedicon_Item Elm_Stackedicon_Item;
+   EAPI Evas_Object          *elm_stackedicon_add(Evas_Object *parent);
+   EAPI Elm_Stackedicon_Item *elm_stackedicon_item_append(Evas_Object *obj, const char *path);
+   EAPI Elm_Stackedicon_Item *elm_stackedicon_item_prepend(Evas_Object *obj, const char *path);
+   EAPI void                  elm_stackedicon_item_del(Elm_Stackedicon_Item *it);
+   EAPI Eina_List            *elm_stackedicon_item_list_get(Evas_Object *obj);
+   /* smart callback called:
+    * "expanded" - This signal is emitted when a stackedicon is expanded.
+    * "clicked" - This signal is emitted when a stackedicon is clicked.
+    */
+   /* available styles:
+    * default
+    */
+
+   /* dialoguegroup */
+   typedef struct _Dialogue_Item Dialogue_Item;
+
+   typedef enum _Elm_Dialoguegourp_Item_Style
+     {
+        ELM_DIALOGUEGROUP_ITEM_STYLE_DEFAULT = 0,
+        ELM_DIALOGUEGROUP_ITEM_STYLE_EDITFIELD = (1 << 0),
+        ELM_DIALOGUEGROUP_ITEM_STYLE_EDITFIELD_WITH_TITLE = (1 << 1),
+        ELM_DIALOGUEGROUP_ITEM_STYLE_EDIT_TITLE = (1 << 2),
+        ELM_DIALOGUEGROUP_ITEM_STYLE_HIDDEN = (1 << 3),
+        ELM_DIALOGUEGROUP_ITEM_STYLE_DATAVIEW = (1 << 4),
+        ELM_DIALOGUEGROUP_ITEM_STYLE_NO_BG = (1 << 5),
+        ELM_DIALOGUEGROUP_ITEM_STYLE_SUB = (1 << 6),
+        ELM_DIALOGUEGROUP_ITEM_STYLE_EDIT = (1 << 7),
+        ELM_DIALOGUEGROUP_ITEM_STYLE_EDIT_MERGE = (1 << 8),
+        ELM_DIALOGUEGROUP_ITEM_STYLE_LAST = (1 << 9)
+     } Elm_Dialoguegroup_Item_Style;
+
+   EINA_DEPRECATED EAPI Evas_Object   *elm_dialoguegroup_add(Evas_Object *parent);
+   EINA_DEPRECATED EAPI Dialogue_Item *elm_dialoguegroup_append(Evas_Object *obj, Evas_Object *subobj, Elm_Dialoguegroup_Item_Style style);
+   EINA_DEPRECATED EAPI Dialogue_Item *elm_dialoguegroup_prepend(Evas_Object *obj, Evas_Object *subobj, Elm_Dialoguegroup_Item_Style style);
+   EINA_DEPRECATED EAPI Dialogue_Item *elm_dialoguegroup_insert_after(Evas_Object *obj, Evas_Object *subobj, Dialogue_Item *after, Elm_Dialoguegroup_Item_Style style);
+   EINA_DEPRECATED EAPI Dialogue_Item *elm_dialoguegroup_insert_before(Evas_Object *obj, Evas_Object *subobj, Dialogue_Item *before, Elm_Dialoguegroup_Item_Style style);
+   EINA_DEPRECATED EAPI void           elm_dialoguegroup_remove(Dialogue_Item *item);
+   EINA_DEPRECATED EAPI void           elm_dialoguegroup_remove_all(Evas_Object *obj);
+   EINA_DEPRECATED EAPI void           elm_dialoguegroup_title_set(Evas_Object *obj, const char *title);
+   EINA_DEPRECATED EAPI const char    *elm_dialoguegroup_title_get(Evas_Object *obj);
+   EINA_DEPRECATED EAPI void           elm_dialoguegroup_press_effect_set(Dialogue_Item *item, Eina_Bool press);
+   EINA_DEPRECATED EAPI Eina_Bool      elm_dialoguegroup_press_effect_get(Dialogue_Item *item);
+   EINA_DEPRECATED EAPI Evas_Object   *elm_dialoguegroup_item_content_get(Dialogue_Item *item);
+   EINA_DEPRECATED EAPI void          elm_dialoguegroup_item_style_set(Dialogue_Item *item, Elm_Dialoguegroup_Item_Style style);
+   EINA_DEPRECATED EAPI Elm_Dialoguegroup_Item_Style   elm_dialoguegroup_item_style_get(Dialogue_Item *item);
+   EINA_DEPRECATED EAPI void           elm_dialoguegroup_item_disabled_set(Dialogue_Item *item, Eina_Bool disabled);
+   EINA_DEPRECATED EAPI Eina_Bool      elm_dialoguegroup_item_disabled_get(Dialogue_Item *item);
+
+   /* Dayselector */
+   typedef enum
+     {
+        ELM_DAYSELECTOR_SUN,
+        ELM_DAYSELECTOR_MON,
+        ELM_DAYSELECTOR_TUE,
+        ELM_DAYSELECTOR_WED,
+        ELM_DAYSELECTOR_THU,
+        ELM_DAYSELECTOR_FRI,
+        ELM_DAYSELECTOR_SAT
+     } Elm_DaySelector_Day;
+
+   EAPI Evas_Object *elm_dayselector_add(Evas_Object *parent);
+   EAPI Eina_Bool    elm_dayselector_check_state_get(Evas_Object *obj, Elm_DaySelector_Day day);
+   EAPI void         elm_dayselector_check_state_set(Evas_Object *obj, Elm_DaySelector_Day day, Eina_Bool checked);
+
+   /* Image Slider */
+   typedef struct _Imageslider_Item Elm_Imageslider_Item;
+   typedef void (*Elm_Imageslider_Cb)(void *data, Evas_Object *obj, void *event_info);
+   EAPI Evas_Object           *elm_imageslider_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+   EAPI Elm_Imageslider_Item  *elm_imageslider_item_append(Evas_Object *obj, const char *photo_file, Elm_Imageslider_Cb func, void *data) EINA_ARG_NONNULL(1);
+   EAPI Elm_Imageslider_Item  *elm_imageslider_item_append_relative(Evas_Object *obj, const char *photo_file, Elm_Imageslider_Cb func, unsigned int index, void *data) EINA_ARG_NONNULL(1);
+   EAPI Elm_Imageslider_Item  *elm_imageslider_item_prepend(Evas_Object *obj, const char *photo_file, Elm_Imageslider_Cb func, void *data) EINA_ARG_NONNULL(1);
+   EAPI void                   elm_imageslider_item_del(Elm_Imageslider_Item *it) EINA_ARG_NONNULL(1);
+   EAPI Elm_Imageslider_Item  *elm_imageslider_selected_item_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool              elm_imageslider_item_selected_get(Elm_Imageslider_Item *it) EINA_ARG_NONNULL(1);
+   EAPI void                   elm_imageslider_item_selected_set(Elm_Imageslider_Item *it) EINA_ARG_NONNULL(1);
+   EAPI const char            *elm_imageslider_item_photo_file_get(Elm_Imageslider_Item *it) EINA_ARG_NONNULL(1);
+   EAPI Elm_Imageslider_Item  *elm_imageslider_item_prev(Elm_Imageslider_Item *it) EINA_ARG_NONNULL(1);
+   EAPI Elm_Imageslider_Item  *elm_imageslider_item_next(Elm_Imageslider_Item *it) EINA_ARG_NONNULL(1);
+   EAPI void                   elm_imageslider_prev(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void                   elm_imageslider_next(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI void                   elm_imageslider_item_photo_file_set(Elm_Imageslider_Item *it, const char *photo_file) EINA_ARG_NONNULL(1,2);
+   EAPI void                   elm_imageslider_item_update(Elm_Imageslider_Item *it) EINA_ARG_NONNULL(1);
 #ifdef __cplusplus
 }
 #endif