naviframe - filled up the elm_naviframe_item_del API doxygen
[framework/uifw/elementary.git] / src / lib / Elementary.h.in
index 8bb0f2f..21dcff8 100644 (file)
@@ -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,189 @@ 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);
+
+   /**
+    * Send a signal to the edje object of the widget item.
+    *
+    * This function sends a signal to the edje object of the obj item. An
+    * edje program can respond to a signal by specifying matching
+    * 'signal' and 'source' fields.
+    *
+    * @param it The Elementary object item
+    * @param emission The signal's name.
+    * @param source The signal's source.
+    * @ingroup General
+    */
+   EAPI void             elm_object_item_signal_emit(Elm_Object_Item *it, const char *emission, const char *source) EINA_ARG_NONNULL(1);
+
+   /**
     * @}
     */
 
@@ -766,6 +944,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);
@@ -6802,6 +7043,7 @@ extern "C" {
         ELM_CTXPOPUP_DIRECTION_RIGHT,
         ELM_CTXPOPUP_DIRECTION_LEFT,
         ELM_CTXPOPUP_DIRECTION_UP,
+        ELM_CTXPOPUP_DIRECTION_UNKNOWN, /**< ctxpopup does not determine it's direction yet*/
      } Elm_Ctxpopup_Direction;
 
    EAPI Evas_Object  *elm_ctxpopup_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
@@ -6822,6 +7064,7 @@ extern "C" {
    EAPI Evas_Object  *elm_ctxpopup_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    EAPI void          elm_ctxpopup_direction_priority_set(Evas_Object *obj, Elm_Ctxpopup_Direction first, Elm_Ctxpopup_Direction second, Elm_Ctxpopup_Direction third, Elm_Ctxpopup_Direction fourth) EINA_ARG_NONNULL(1);
    EAPI void          elm_ctxpopup_direction_priority_get(Evas_Object *obj, Elm_Ctxpopup_Direction *first, Elm_Ctxpopup_Direction *second, Elm_Ctxpopup_Direction *third, Elm_Ctxpopup_Direction *fourth) EINA_ARG_NONNULL(1);
+   EAPI Elm_Ctxpopup_Direction elm_ctxpopup_direction_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /* smart callbacks called:
     * "dismissed" - the ctxpopup was dismissed
     */
@@ -7852,6 +8095,37 @@ extern "C" {
     */
 
    /* datefield */
+
+   typedef enum _Elm_Datefield_ItemType
+     {
+        ELM_DATEFIELD_YEAR = 0,
+        ELM_DATEFIELD_MONTH,
+        ELM_DATEFIELD_DATE,
+        ELM_DATEFIELD_HOUR,
+        ELM_DATEFIELD_MINUTE,
+        ELM_DATEFIELD_AMPM
+     } Elm_Datefield_ItemType;
+
+   EAPI Evas_Object *elm_datefield_add(Evas_Object *parent);
+   EAPI void         elm_datefield_format_set(Evas_Object *obj, const char *fmt);
+   EAPI char        *elm_datefield_format_get(const Evas_Object *obj);
+   EAPI void         elm_datefield_item_enabled_set(Evas_Object *obj, Elm_Datefield_ItemType itemtype, Eina_Bool enable);
+   EAPI Eina_Bool    elm_datefield_item_enabled_get(const Evas_Object *obj, Elm_Datefield_ItemType itemtype);
+   EAPI void         elm_datefield_item_value_set(Evas_Object *obj, Elm_Datefield_ItemType itemtype, int value);
+   EAPI int          elm_datefield_item_value_get(const Evas_Object *obj, Elm_Datefield_ItemType itemtype);
+   EAPI void         elm_datefield_item_min_set(Evas_Object *obj, Elm_Datefield_ItemType itemtype, int value, Eina_Bool abs_limit);
+   EAPI int          elm_datefield_item_min_get(const Evas_Object *obj, Elm_Datefield_ItemType itemtype);
+   EAPI Eina_Bool    elm_datefield_item_min_is_absolute(const Evas_Object *obj, Elm_Datefield_ItemType itemtype);
+   EAPI void         elm_datefield_item_max_set(Evas_Object *obj, Elm_Datefield_ItemType itemtype, int value, Eina_Bool abs_limit);
+   EAPI int          elm_datefield_item_max_get(const Evas_Object *obj, Elm_Datefield_ItemType itemtype);
+   EAPI Eina_Bool    elm_datefield_item_max_is_absolute(const Evas_Object *obj, Elm_Datefield_ItemType itemtype);
+   /* smart callbacks called:
+   * "changed" - when datefield value is changed, this signal is sent.
+   */
+
+////////////////////// DEPRECATED ///////////////////////////////////
+
    typedef enum _Elm_Datefield_Layout
      {
         ELM_DATEFIELD_LAYOUT_TIME,
@@ -7859,24 +8133,21 @@ extern "C" {
         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.
-   */
+   EINA_DEPRECATED EAPI void         elm_datefield_layout_set(Evas_Object *obj, Elm_Datefield_Layout layout);
+   EINA_DEPRECATED EAPI Elm_Datefield_Layout elm_datefield_layout_get(const Evas_Object *obj);
+   EINA_DEPRECATED EAPI void         elm_datefield_date_format_set(Evas_Object *obj, const char *fmt);
+   EINA_DEPRECATED EAPI const char  *elm_datefield_date_format_get(const Evas_Object *obj);
+   EINA_DEPRECATED EAPI void         elm_datefield_time_mode_set(Evas_Object *obj, Eina_Bool mode);
+   EINA_DEPRECATED EAPI Eina_Bool    elm_datefield_time_mode_get(const Evas_Object *obj);
+   EINA_DEPRECATED EAPI void         elm_datefield_date_set(Evas_Object *obj, int year, int month, int day, int hour, int min);
+   EINA_DEPRECATED EAPI void         elm_datefield_date_get(const Evas_Object *obj, int *year, int *month, int *day, int *hour, int *min);
+   EINA_DEPRECATED EAPI Eina_Bool    elm_datefield_date_max_set(Evas_Object *obj, int year, int month, int day);
+   EINA_DEPRECATED EAPI void         elm_datefield_date_max_get(const Evas_Object *obj, int *year, int *month, int *day);
+   EINA_DEPRECATED EAPI Eina_Bool    elm_datefield_date_min_set(Evas_Object *obj, int year, int month, int day);
+   EINA_DEPRECATED EAPI void         elm_datefield_date_min_get(const Evas_Object *obj, int *year, int *month, int *day);
+   EINA_DEPRECATED EAPI void         elm_datefield_input_panel_state_callback_add(Evas_Object *obj, void (*pEventCallbackFunc) (void *data, Evas_Object *obj, int value), void *data);
+   EINA_DEPRECATED EAPI void         elm_datefield_input_panel_state_callback_del(Evas_Object *obj, void (*pEventCallbackFunc) (void *data, Evas_Object *obj, int value));
+/////////////////////////////////////////////////////////////////////
 
    /* popup */
    typedef enum _Elm_Popup_Response
@@ -8006,6 +8277,193 @@ extern "C" {
    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_CONTENT "elm.swallow.content"
+  #define ELM_NAVIFRAME_ITEM_ICON "elm.swallow.icon"
+  #define ELM_NAVIFRAME_ITEM_OPTIONHEADER "elm.swallow.optionheader"
+  #define ELM_NAVIFRAME_ITEM_OPTIONHEADER2 "elm.swallow.optionheader2"
+  #define ELM_NAVIFRAME_ITEM_TITLE_LABEL "elm.text.title"
+  #define ELM_NAVIFRAME_ITEM_PREV_BTN "elm.swallow.prev_btn"
+  #define ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_CLOSE "elm,state,optionheader,close", ""
+  #define ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_OPEN "elm,state,optionheader,open", ""
+  #define ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_INSTANT_CLOSE "elm,state,optionheader,instant_close", ""
+  #define ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_INSTANT_OPEN "elm,state,optionheader,instant_open", ""
+
+  /**
+    * @defgroup Naviframe Naviframe
+    *
+    * @brief Naviframe is a kind of view manager for the applications.
+    *
+    * Naviframe provides functions to switch different pages with stack
+    * mechanism. It means if one page(item) needs to be changed to the new one,
+    * then naviframe would push the new page to it's internal stack. Of course,
+    * it can be back to the previous page by popping the top page. Naviframe
+    * provides some transition effect while the pages are switching (same as
+    * pager).
+    *
+    * Since each item could keep the different styles, users could keep the
+    * same look & feel for the pages or different styles for the items in it's
+    * application.
+    *
+    * Signals that you can add callback for are:
+    *
+    * @li "transition,finished" - When the transition is finished in changing
+    *     the item
+    * @li "title,clicked" - User clicked title area
+    *
+    * Default contents parts for the naviframe items that you can use for are:
+    *
+    * @li "elm.swallow.content" - The main content of the page
+    * @li "elm.swallow.prev_btn" - The button to go to the previous page
+    * @li "elm.swallow.next_btn" - The button to go to the next page
+    *
+    * Default text parts of naviframe items that you can be used are:
+    *
+    * @li "elm.text.title" - The title label in the title area
+    *
+    * @ref tutorial_naviframe gives a good overview of the usage of the API.
+    * @{
+    */
+   /**
+    * @brief Add a new Naviframe object to the parent.
+    *
+    * @param parent Parent object
+    * @return New object or @c NULL, if it cannot be created
+    */
+   EAPI Evas_Object        *elm_naviframe_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Push a new item to the top of the naviframe stack (and show it).
+    *
+    * @param obj The naviframe object
+    * @param title_label The label in the title area. The name of the title
+    *        label part is "elm.text.title"
+    * @param prev_btn The button to go to the previous item. If it is NULL,
+    *        then naviframe will create a back button automatically. The name of
+    *        the prev_btn part is "elm.swallow.prev_btn"
+    * @param next_btn The button to go to the next item. Or It could be just an
+    *        extra function button. The name of the next_btn part is
+    *        "elm.swallow.next_btn"
+    * @param content The main content object. The name of content part is
+    *        "elm.swallow.content"
+    * @param item_style The current item style name. @c NULL would be default.
+    * @return The created item or @c NULL upon failure.
+    *
+    * The item pushed becomes one page of the naviframe, this item will be
+    * deleted when it is popped.
+    *
+    * @see also elm_naviframe_item_style_set()
+    *
+    * The following styles are available for this item:
+    * @li @c "default"
+    */
+   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);
+   /**
+    * @brief Pop an item that is on top of the stack
+    *
+    * @param obj The naviframe object
+    * @return @c NULL or the content object(if the
+    *         elm_naviframe_content_preserve_on_pop_get is true).
+    *
+    * This pops an item that is on the top(visible) of the naviframe, makes it
+    * disappear, then deletes the item. The item that was underneath it on the
+    * stack will become visible.
+    *
+    * @see also elm_naviframe_content_preserve_on_pop_get()
+    */
+   EAPI Evas_Object        *elm_naviframe_item_pop(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Pop the items between the top and the above one on the given item.
+    *
+    * @param it The naviframe item
+    */
+   EAPI void                elm_naviframe_item_pop_to(Elm_Object_Item *it) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Delete the given item instantly.
+    *
+    * @param it The naviframe item
+    *
+    * This just deletes the given item from the naviframe item list instantly.
+    * So this would not emit any signals for view transitions but just change
+    * the current view if the given item is a top one.
+    *
+    */
+   EAPI void                elm_naviframe_item_del(Elm_Object_Item *it) EINA_ARG_NONNULL(1);
+   /**
+    * @brief preserve the content objects when items are popped.
+    *
+    * @param obj The naviframe object
+    * @param preserve Enable the preserve mode if EINA_TRUE, disable otherwise
+    *
+    * @see also elm_naviframe_content_preserve_on_pop_get()
+    */
+   EAPI void                elm_naviframe_content_preserve_on_pop_set(Evas_Object *obj, Eina_Bool preserve) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Get a value whether preserve mode is enabled or not.
+    *
+    * @param obj The naviframe object
+    * @return If @c EINA_TRUE, preserve mode is enabled
+    *
+    * @see also elm_naviframe_content_preserve_on_pop_set()
+    */
+   EAPI Eina_Bool           elm_naviframe_content_preserve_on_pop_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Get a top item on the naviframe stack
+    *
+    * @param obj The naviframe object
+    * @return The top item on the naviframe stack or @c NULL, if the stack is
+    *         empty
+    */
+   EAPI Elm_Object_Item    *elm_naviframe_top_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Get a bottom item on the naviframe stack
+    *
+    * @param obj The naviframe object
+    * @return The bottom item on the naviframe stack or @c NULL, if the stack is
+    *         empty
+    */
+   EAPI Elm_Object_Item    *elm_naviframe_bottom_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Set an item style
+    *
+    * @param obj The naviframe item
+    * @param item_style The current item style name. @c NULL would be default
+    *
+    * The following styles are available for this item:
+    * @li @c "default"
+    *
+    * @see also elm_naviframe_item_style_get()
+    */
+   EAPI void                elm_naviframe_item_style_set(Elm_Object_Item *it, const char *item_style) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Get an item style
+    *
+    * @param obj The naviframe item
+    * @return The current item style name
+    *
+    * @see also elm_naviframe_item_style_set()
+    */
+   EAPI const char         *elm_naviframe_item_style_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Show/Hide the title area
+    *
+    * @param it The naviframe item
+    * @param visible If @c EINA_TRUE, title area will be visible, hidden
+    *        otherwise
+    *
+    * When the title area is invisible, then the controls would be hidden so as     * to expand the content area to full-size.
+    *
+    * @see also elm_naviframe_item_title_visible_get()
+    */
+   EAPI void                elm_naviframe_item_title_visible_set(Elm_Object_Item *it, Eina_Bool visible) EINA_ARG_NONNULL(1);
+   /**
+    * @brief Get a value whether title area is visible or not.
+    *
+    * @param it The naviframe item
+    * @return If @c EINA_TRUE, title area is visible
+    *
+    * @see also elm_naviframe_item_title_visible_set()
+    */
+   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"
@@ -8092,32 +8550,26 @@ extern "C" {
    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;
+   /* TickerNoti */
+   typedef enum
+     {
+        ELM_TICKERNOTI_ORIENT_TOP = 0,
+        ELM_TICKERNOTI_ORIENT_BOTTOM,
+        ELM_TICKERNOTI_ORIENT_LAST
+     }  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 void                      elm_tickernoti_orient_set (Evas_Object *obj, Elm_Tickernoti_Orient orient) EINA_ARG_NONNULL(1);
+   EAPI Elm_Tickernoti_Orient     elm_tickernoti_orient_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);
+   /* #### Below APIs and data structures are going to be deprecated, announcment will be made soon ####*/
+   typedef enum
+    {
+       ELM_TICKERNOTI_DEFAULT,
+       ELM_TICKERNOTI_DETAILVIEW
+    } Elm_Tickernoti_Mode;
    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);
@@ -8127,7 +8579,33 @@ typedef enum
    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);
+   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 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_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_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);
    /* ############################################################################### */
+   /*
+    * Parts which can be used with elm_object_text_part_set() and
+    * elm_object_text_part_get():
+    *
+    * @li NULL/"default" - Operates on tickernoti content-text
+    *
+    * Parts which can be used with elm_object_content_part_set() and
+    * elm_object_content_part_get():
+    *
+    * @li "icon" - Operates on tickernoti's icon
+    * @li "button" - Operates on tickernoti's button
+    *
+    * 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 completely hidden. In case of
+    * any hide animation, this signal is emitted after the animation.
+    */
 
    /* colorpalette */
    typedef struct _Colorpalette_Color Elm_Colorpalette_Color;