The visible signal should be called when it is reloaded in _theme_hook_item.
[framework/uifw/elementary.git] / src / lib / elm_toolbar.h
index 762a5f5..87fda24 100644 (file)
@@ -18,7 +18,8 @@
  *
  * Smart callbacks one can listen to:
  * - "clicked" - when the user clicks on a toolbar item and becomes selected.
- * - "language,changed" - when the program language changes
+ * - "longpressed" - when the toolbar is pressed for a certain amount of time.
+ * - "language,changed" - when the program language changes.
  *
  * Available styles for it:
  * - @c "default"
  * @li "default" - label of the toolbar item
  *
  * Supported elm_object_item common APIs.
- * @li elm_object_item_disabled_set
- * @li elm_object_item_disabled_get
- * @li elm_object_item_part_text_set
- * @li elm_object_item_part_text_get
+ * @li @ref elm_object_item_disabled_set
+ * @li @ref elm_object_item_disabled_get
+ * @li @ref elm_object_item_part_text_set
+ * @li @ref elm_object_item_part_text_get
  *
  * List of examples:
  * @li @ref toolbar_example_01
  * @enum _Elm_Toolbar_Shrink_Mode
  * @typedef Elm_Toolbar_Shrink_Mode
  *
- * Set toolbar's items display behavior, it can be scrollabel,
+ * Set toolbar's items display behavior, it can be scrollable,
  * show a menu with exceeding items, or simply hide them.
  *
  * @note Default value is #ELM_TOOLBAR_SHRINK_MENU. It reads value
  * from elm config.
  *
- * Values <b> don't </b> work as bitmask, only one can be choosen.
+ * Values <b> don't </b> work as bitmask, only one can be chosen.
  *
  * @see elm_toolbar_shrink_mode_set()
  * @see elm_toolbar_shrink_mode_get()
@@ -63,7 +64,7 @@
  */
 typedef enum
 {
-   ELM_TOOLBAR_SHRINK_NONE, /**< Set toolbar minimun size to fit all the items. */
+   ELM_TOOLBAR_SHRINK_NONE, /**< Set toolbar minimum size to fit all the items. */
    ELM_TOOLBAR_SHRINK_HIDE, /**< Hide exceeding items. */
    ELM_TOOLBAR_SHRINK_SCROLL, /**< Allow accessing exceeding items through a scroller. */
    ELM_TOOLBAR_SHRINK_MENU, /**< Inserts a button to pop up a menu with exceeding items. */
@@ -140,70 +141,6 @@ EAPI void                         elm_toolbar_icon_order_lookup_set(Evas_Object
 EAPI Elm_Icon_Lookup_Order        elm_toolbar_icon_order_lookup_get(const Evas_Object *obj);
 
 /**
- * Set whether the toolbar should always have an item selected.
- *
- * @param obj The toolbar object.
- * @param wrap @c EINA_TRUE to enable always-select mode or @c EINA_FALSE to
- * disable it.
- *
- * This will cause the toolbar to always have an item selected, and clicking
- * the selected item will not cause a selected event to be emitted. Enabling this mode
- * will immediately select the first toolbar item.
- *
- * Always-selected is disabled by default.
- *
- * @see elm_toolbar_always_select_mode_get().
- *
- * @ingroup Toolbar
- */
-EAPI void                         elm_toolbar_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select);
-
-/**
- * Get whether the toolbar should always have an item selected.
- *
- * @param obj The toolbar object.
- * @return @c EINA_TRUE means an item will always be selected, @c EINA_FALSE indicates
- * that it is possible to have no items selected. If @p obj is @c NULL, @c EINA_FALSE is returned.
- *
- * @see elm_toolbar_always_select_mode_set() for details.
- *
- * @ingroup Toolbar
- */
-EAPI Eina_Bool                    elm_toolbar_always_select_mode_get(const Evas_Object *obj);
-
-/**
- * Set whether the toolbar items' should be selected by the user or not.
- *
- * @param obj The toolbar object.
- * @param wrap @c EINA_TRUE to disable selection or @c EINA_FALSE to
- * enable it.
- *
- * This will turn off the ability to select items entirely and they will
- * neither appear selected nor emit selected signals. The clicked
- * callback function will still be called.
- *
- * Selection is enabled by default.
- *
- * @see elm_toolbar_no_select_mode_get().
- *
- * @ingroup Toolbar
- */
-EAPI void                         elm_toolbar_no_select_mode_set(Evas_Object *obj, Eina_Bool no_select);
-
-/**
- * Set whether the toolbar items' should be selected by the user or not.
- *
- * @param obj The toolbar object.
- * @return @c EINA_TRUE means items can be selected. @c EINA_FALSE indicates
- * they can't. If @p obj is @c NULL, @c EINA_FALSE is returned.
- *
- * @see elm_toolbar_no_select_mode_set() for details.
- *
- * @ingroup Toolbar
- */
-EAPI Eina_Bool                    elm_toolbar_no_select_mode_get(const Evas_Object *obj);
-
-/**
  * Append item to the toolbar.
  *
  * @param obj The toolbar object.
@@ -222,7 +159,7 @@ EAPI Eina_Bool                    elm_toolbar_no_select_mode_get(const Evas_Obje
  * Associated @p data can be properly freed when item is deleted if a
  * callback function is set with elm_object_item_del_cb_set().
  *
- * If a function is passed as argument, it will be called everytime this item
+ * If a function is passed as argument, it will be called every time this item
  * is selected, i.e., the user clicks over an unselected item.
  * If such function isn't needed, just passing
  * @c NULL as @p func is enough. The same should be done for @p data.
@@ -257,7 +194,7 @@ EAPI Elm_Object_Item             *elm_toolbar_item_append(Evas_Object *obj, cons
  * Associated @p data can be properly freed when item is deleted if a
  * callback function is set with elm_object_item_del_cb_set().
  *
- * If a function is passed as argument, it will be called everytime this item
+ * If a function is passed as argument, it will be called every time this item
  * is selected, i.e., the user clicks over an unselected item.
  * If such function isn't needed, just passing
  * @c NULL as @p func is enough. The same should be done for @p data.
@@ -293,7 +230,7 @@ EAPI Elm_Object_Item             *elm_toolbar_item_prepend(Evas_Object *obj, con
  * Associated @p data can be properly freed when item is deleted if a
  * callback function is set with elm_object_item_del_cb_set().
  *
- * If a function is passed as argument, it will be called everytime this item
+ * If a function is passed as argument, it will be called every time this item
  * is selected, i.e., the user clicks over an unselected item.
  * If such function isn't needed, just passing
  * @c NULL as @p func is enough. The same should be done for @p data.
@@ -329,7 +266,7 @@ EAPI Elm_Object_Item             *elm_toolbar_item_insert_before(Evas_Object *ob
  * Associated @p data can be properly freed when item is deleted if a
  * callback function is set with elm_object_item_del_cb_set().
  *
- * If a function is passed as argument, it will be called everytime this item
+ * If a function is passed as argument, it will be called every time this item
  * is selected, i.e., the user clicks over an unselected item.
  * If such function isn't needed, just passing
  * @c NULL as @p func is enough. The same should be done for @p data.
@@ -392,7 +329,7 @@ EAPI Elm_Object_Item             *elm_toolbar_item_next_get(const Elm_Object_Ite
 /**
  * Get the item before @p item in toolbar.
  *
- * @param item The toolbar item.
+ * @param it The toolbar item.
  * @return The item before @p item, or @c NULL if none or on failure.
  *
  * @note If it is the first item, @c NULL will be returned.
@@ -470,8 +407,8 @@ EAPI Eina_Bool                    elm_toolbar_item_selected_get(const Elm_Object
  * This sets the selected state of the given item @p it.
  * @c EINA_TRUE for selected, @c EINA_FALSE for not selected.
  *
- * If a new item is selected the previosly selected will be unselected.
- * Previoulsy selected item can be get with function
+ * If a new item is selected the previously selected will be unselected.
+ * Previously selected item can be get with function
  * elm_toolbar_selected_item_get().
  *
  * Selected items will be highlighted.
@@ -501,9 +438,21 @@ EAPI void                         elm_toolbar_item_selected_set(Elm_Object_Item
 EAPI Elm_Object_Item             *elm_toolbar_selected_item_get(const Evas_Object *obj);
 
 /**
+ * Get the more item.
+ *
+ * @param obj The toolbar object.
+ * @return The toolbar more item.
+ *
+ * The more item can be changed with function
+ * elm_object_item_text_set() and elm_object_item_content_set.
+ *
+ * @ingroup Toolbar
+ */
+EAPI Elm_Object_Item             *elm_toolbar_more_item_get(const Evas_Object *obj);
+
+/**
  * Set the icon associated with @p item.
  *
- * @param obj The parent of this item.
  * @param it The toolbar item.
  * @param icon A string with icon name or the absolute path of an image file.
  *
@@ -591,7 +540,7 @@ EAPI Eina_Bool                    elm_toolbar_item_icon_file_set(Elm_Object_Item
  * Set or unset item as a separator.
  *
  * @param it The toolbar item.
- * @param setting @c EINA_TRUE to set item @p item as separator or
+ * @param separator @c EINA_TRUE to set item @p item as separator or
  * @c EINA_FALSE to unset, i.e., item will be used as a regular item.
  *
  * Items aren't set as separator by default.
@@ -625,7 +574,7 @@ EAPI Eina_Bool                    elm_toolbar_item_separator_get(const Elm_Objec
  * @param shrink_mode Toolbar's items display behavior.
  *
  * The toolbar won't scroll if #ELM_TOOLBAR_SHRINK_NONE,
- * but will enforce a minimun size so all the items will fit, won't scroll
+ * but will enforce a minimum size so all the items will fit, won't scroll
  * and won't show the items that don't fit if #ELM_TOOLBAR_SHRINK_HIDE,
  * will scroll if #ELM_TOOLBAR_SHRINK_SCROLL, and will create a button to
  * pop up excess elements with #ELM_TOOLBAR_SHRINK_MENU.
@@ -811,7 +760,7 @@ EAPI Evas_Object                 *elm_toolbar_item_menu_get(const Elm_Object_Ite
 EAPI Elm_Toolbar_Item_State      *elm_toolbar_item_state_add(Elm_Object_Item *it, const char *icon, const char *label, Evas_Smart_Cb func, const void *data);
 
 /**
- * Delete a previoulsy added state to @p item.
+ * Delete a previously added state to @p item.
  *
  * @param it The toolbar item.
  * @param state The state to be deleted.
@@ -830,7 +779,7 @@ EAPI Eina_Bool                    elm_toolbar_item_state_del(Elm_Object_Item *it
  *
  * If @p state is @c NULL, it won't select any state and the default item's
  * icon and label will be used. It's the same behaviour than
- * elm_toolbar_item_state_unser().
+ * elm_toolbar_item_state_unset().
  *
  * @see elm_toolbar_item_state_unset()
  *
@@ -895,7 +844,6 @@ EAPI Elm_Toolbar_Item_State      *elm_toolbar_item_state_next(Elm_Object_Item *i
  */
 EAPI Elm_Toolbar_Item_State      *elm_toolbar_item_state_prev(Elm_Object_Item *it);
 
-
 /**
  * Change a toolbar's orientation
  * @param obj The toolbar object
@@ -921,6 +869,69 @@ EAPI Eina_Bool                    elm_toolbar_horizontal_get(const Evas_Object *
  * @ingroup Toolbar
  */
 EAPI unsigned int                 elm_toolbar_items_count(const Evas_Object *obj);
+
+/**
+ * Set the standard priority of visible items in a toolbar
+ * @param obj The toolbar object
+ * @param priority The standard_priority of visible items
+ *
+ * When it is the ELM_TOOLBAR_SHRINK_EXPAND mode, the items are shown only up to standard priority.
+ * The other items are located in more panel. The more panel can be shown when the more item is clicked.
+ *
+ * @see elm_toolbar_standard_priority_get()
+ *
+ * @ingroup Toolbar
+ */
+EAPI void                         elm_toolbar_standard_priority_set(Evas_Object *obj, int priority);
+
+/**
+ * Get the standard_priority of visible items in a toolbar
+ * @param obj The toolbar object
+ * @return The standard priority of items in @p obj toolbar
+ *
+ * @see elm_toolbar_standard_priority_set()
+ *
+ * @ingroup Toolbar
+ */
+EAPI int                          elm_toolbar_standard_priority_get(const Evas_Object *obj);
+
+/**
+ * Set the toolbar select mode.
+ *
+ * @param obj The toolbar object
+ * @param mode The select mode
+ *
+ * elm_toolbar_select_mode_set() changes item select mode in the toolbar widget.
+ * - ELM_OBJECT_SELECT_MODE_DEFAULT : Items will only call their selection func and
+ *      callback when first becoming selected. Any further clicks will
+ *      do nothing, unless you set always select mode.
+ * - ELM_OBJECT_SELECT_MODE_ALWAYS :  This means that, even if selected,
+ *      every click will make the selected callbacks be called.
+ * - ELM_OBJECT_SELECT_MODE_NONE : This will turn off the ability to select items
+ *      entirely and they will neither appear selected nor call selected
+ *      callback functions.
+ *
+ * @see elm_toolbar_select_mode_get()
+ *
+ * @ingroup Toolbar
+ */
+EAPI void
+elm_toolbar_select_mode_set(Evas_Object *obj, Elm_Object_Select_Mode mode);
+
+/**
+ * Get the toolbar select mode.
+ *
+ * @param obj The toolbar object
+ * @return The select mode
+ * (If getting mode is failed, it returns ELM_OBJECT_SELECT_MODE_MAX)
+ *
+ * @see elm_toolbar_select_mode_set()
+ *
+ * @ingroup Toolbar
+ */
+EAPI Elm_Object_Select_Mode
+elm_toolbar_select_mode_get(const Evas_Object *obj);
+
 /**
  * @}
  */