X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Flib%2Felm_toolbar.h;h=87fda246b9d80737c5efc3a52e27e59c1786aee4;hb=54f9a90e9926302ace66e6e1dd696c9d4f81a42b;hp=c6eb488ffa6141ab9af6fa4c08d5c8688d084317;hpb=fe0aa41ffe72f3cb0c8bb38c96f256745ece1b4f;p=framework%2Fuifw%2Felementary.git diff --git a/src/lib/elm_toolbar.h b/src/lib/elm_toolbar.h index c6eb488..87fda24 100644 --- a/src/lib/elm_toolbar.h +++ b/src/lib/elm_toolbar.h @@ -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" @@ -28,11 +29,10 @@ * @li "default" - label of the toolbar item * * Supported elm_object_item common APIs. - * @li elm_object_item_disabled_set - * @li elm_object_item_text_set - * @li elm_object_item_part_text_set - * @li elm_object_item_text_get - * @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 @@ -49,13 +49,13 @@ * @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 don't work as bitmask, only one can be choosen. + * Values don't work as bitmask, only one can be chosen. * * @see elm_toolbar_shrink_mode_set() * @see elm_toolbar_shrink_mode_get() @@ -64,10 +64,11 @@ */ 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. */ + ELM_TOOLBAR_SHRINK_EXPAND, /**< Expand all items according the size of the toolbar. */ ELM_TOOLBAR_SHRINK_LAST /**< Indicates error if returned by elm_toolbar_shrink_mode_get() */ } Elm_Toolbar_Shrink_Mode; @@ -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. @@ -217,12 +154,12 @@ EAPI Eina_Bool elm_toolbar_no_select_mode_get(const Evas_Obje * be set as @b last item. * * Items created with this method can be deleted with - * elm_toolbar_item_del(). + * elm_object_item_del(). * * 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. @@ -232,7 +169,7 @@ EAPI Eina_Bool elm_toolbar_no_select_mode_get(const Evas_Obje * If an absolute path is provided it will load it direct from a file. * * @see elm_toolbar_item_icon_set() - * @see elm_toolbar_item_del() + * @see elm_object_item_del() * * @ingroup Toolbar */ @@ -252,12 +189,12 @@ EAPI Elm_Object_Item *elm_toolbar_item_append(Evas_Object *obj, cons * be set as @b first item. * * Items created with this method can be deleted with - * elm_toolbar_item_del(). + * elm_object_item_del(). * * 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. @@ -267,7 +204,7 @@ EAPI Elm_Object_Item *elm_toolbar_item_append(Evas_Object *obj, cons * If an absolute path is provided it will load it direct from a file. * * @see elm_toolbar_item_icon_set() - * @see elm_toolbar_item_del() + * @see elm_object_item_del() * * @ingroup Toolbar */ @@ -288,12 +225,12 @@ EAPI Elm_Object_Item *elm_toolbar_item_prepend(Evas_Object *obj, con * this toolbar will be just before item @p before. * * Items created with this method can be deleted with - * elm_toolbar_item_del(). + * elm_object_item_del(). * * 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. @@ -303,7 +240,7 @@ EAPI Elm_Object_Item *elm_toolbar_item_prepend(Evas_Object *obj, con * If an absolute path is provided it will load it direct from a file. * * @see elm_toolbar_item_icon_set() - * @see elm_toolbar_item_del() + * @see elm_object_item_del() * * @ingroup Toolbar */ @@ -324,12 +261,12 @@ EAPI Elm_Object_Item *elm_toolbar_item_insert_before(Evas_Object *ob * this toolbar will be just after item @p after. * * Items created with this method can be deleted with - * elm_toolbar_item_del(). + * elm_object_item_del(). * * 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. @@ -339,7 +276,7 @@ EAPI Elm_Object_Item *elm_toolbar_item_insert_before(Evas_Object *ob * If an absolute path is provided it will load it direct from a file. * * @see elm_toolbar_item_icon_set() - * @see elm_toolbar_item_del() + * @see elm_object_item_del() * * @ingroup Toolbar */ @@ -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. * @@ -588,22 +537,10 @@ EAPI Eina_Bool elm_toolbar_item_icon_memfile_set(Elm_Object_I EAPI Eina_Bool elm_toolbar_item_icon_file_set(Elm_Object_Item *it, const char *file, const char *key); /** - * Delete them item from the toolbar. - * - * @param it The item of toolbar to be deleted. - * - * @see elm_toolbar_item_append() - * - * @ingroup Toolbar - */ -EAPI void elm_toolbar_item_del(Elm_Object_Item *it); - - -/** * 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. @@ -637,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. @@ -823,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. @@ -842,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() * @@ -908,248 +845,93 @@ 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); /** - * Set the text to be shown in a given toolbar item's tooltips. - * - * @param it toolbar item. - * @param text The text to set in the content. - * - * Setup the text as tooltip to object. The item can have only one tooltip, - * so any previous tooltip data - set with this function or - * elm_toolbar_item_tooltip_content_cb_set() - is removed. - * - * @see elm_object_tooltip_text_set() for more details. - * - * @ingroup Toolbar - */ -EAPI void elm_toolbar_item_tooltip_text_set(Elm_Object_Item *it, const char *text); - -/** - * Set the content to be shown in the tooltip item. - * - * Setup the tooltip to item. The item can have only one tooltip, - * so any previous tooltip data is removed. @p func(with @p data) will - * be called every time that need show the tooltip and it should - * return a valid Evas_Object. This object is then managed fully by - * tooltip system and is deleted when the tooltip is gone. - * - * @param it the toolbar item being attached a tooltip. - * @param func the function used to create the tooltip contents. - * @param data what to provide to @a func as callback data/context. - * @param del_cb called when data is not needed anymore, either when - * another callback replaces @a func, the tooltip is unset with - * elm_toolbar_item_tooltip_unset() or the owner @a item - * dies. This callback receives as the first parameter the - * given @a data, and @c event_info is the item. - * - * @see elm_object_tooltip_content_cb_set() for more details. - * - * @ingroup Toolbar - */ -EAPI void elm_toolbar_item_tooltip_content_cb_set(Elm_Object_Item *it, Elm_Tooltip_Item_Content_Cb func, const void *data, Evas_Smart_Cb del_cb); - -/** - * Unset tooltip from item. - * - * @param it toolbar item to remove previously set tooltip. - * - * Remove tooltip from item. The callback provided as del_cb to - * elm_toolbar_item_tooltip_content_cb_set() will be called to notify - * it is not used anymore. - * - * @see elm_object_tooltip_unset() for more details. - * @see elm_toolbar_item_tooltip_content_cb_set() - * - * @ingroup Toolbar - */ -EAPI void elm_toolbar_item_tooltip_unset(Elm_Object_Item *it); - -/** - * Sets a different style for this item tooltip. - * - * @note before you set a style you should define a tooltip with - * elm_toolbar_item_tooltip_content_cb_set() or - * elm_toolbar_item_tooltip_text_set() - * - * @param it toolbar item with tooltip already set. - * @param style the theme style to use (default, transparent, ...) - * - * @see elm_object_tooltip_style_set() for more details. - * - * @ingroup Toolbar - */ -EAPI void elm_toolbar_item_tooltip_style_set(Elm_Object_Item *it, const char *style); - -/** - * Get the style for this item tooltip. - * - * @param it toolbar item with tooltip already set. - * @return style the theme style in use, defaults to "default". If the - * object does not have a tooltip set, then NULL is returned. - * - * @see elm_object_tooltip_style_get() for more details. - * @see elm_toolbar_item_tooltip_style_set() - * + * Change a toolbar's orientation + * @param obj The toolbar object + * @param horizontal If @c EINA_TRUE, the toolbar is horizontal + * By default, a toolbar will be horizontal. Use this function to create a vertical toolbar. * @ingroup Toolbar */ -EAPI const char *elm_toolbar_item_tooltip_style_get(const Elm_Object_Item *it); +EAPI void elm_toolbar_horizontal_set(Evas_Object *obj, Eina_Bool horizontal); /** - * Set the type of mouse pointer/cursor decoration to be shown, - * when the mouse pointer is over the given toolbar widget item - * - * @param it toolbar item to customize cursor on - * @param cursor the cursor type's name - * - * This function works analogously as elm_object_cursor_set(), but - * here the cursor's changing area is restricted to the item's - * area, and not the whole widget's. Note that that item cursors - * have precedence over widget cursors, so that a mouse over an - * item with custom cursor set will always show @b that cursor. - * - * If this function is called twice for an object, a previously set - * cursor will be unset on the second call. - * - * @see elm_object_cursor_set() - * @see elm_toolbar_item_cursor_get() - * @see elm_toolbar_item_cursor_unset() - * - * @ingroup Toolbar - */ -EAPI void elm_toolbar_item_cursor_set(Elm_Object_Item *it, const char *cursor); - -/* - * Get the type of mouse pointer/cursor decoration set to be shown, - * when the mouse pointer is over the given toolbar widget item - * - * @param it toolbar item with custom cursor set - * @return the cursor type's name or @c NULL, if no custom cursors - * were set to @p item (and on errors) - * - * @see elm_object_cursor_get() - * @see elm_toolbar_item_cursor_set() - * @see elm_toolbar_item_cursor_unset() - * + * Get a toolbar's orientation + * @param obj The toolbar object + * @return If @c EINA_TRUE, the toolbar is horizontal + * By default, a toolbar will be horizontal. Use this function to determine whether a toolbar is vertical. * @ingroup Toolbar */ -EAPI const char *elm_toolbar_item_cursor_get(const Elm_Object_Item *it); +EAPI Eina_Bool elm_toolbar_horizontal_get(const Evas_Object *obj); /** - * Unset any custom mouse pointer/cursor decoration set to be - * shown, when the mouse pointer is over the given toolbar widget - * item, thus making it show the @b default cursor again. - * - * @param it a toolbar item - * - * Use this call to undo any custom settings on this item's cursor - * decoration, bringing it back to defaults (no custom style set). - * - * @see elm_object_cursor_unset() - * @see elm_toolbar_item_cursor_set() - * + * Get the number of items in a toolbar + * @param obj The toolbar object + * @return The number of items in @p obj toolbar * @ingroup Toolbar */ -EAPI void elm_toolbar_item_cursor_unset(Elm_Object_Item *it); +EAPI unsigned int elm_toolbar_items_count(const Evas_Object *obj); /** - * Set a different @b style for a given custom cursor set for a - * toolbar item. - * - * @param it toolbar item with custom cursor set - * @param style the theme style to use (e.g. @c "default", - * @c "transparent", etc) - * - * This function only makes sense when one is using custom mouse - * cursor decorations defined in a theme file, which can have, - * given a cursor name/type, alternate styles on it. It - * works analogously as elm_object_cursor_style_set(), but here - * applyed only to toolbar item objects. + * Set the standard priority of visible items in a toolbar + * @param obj The toolbar object + * @param priority The standard_priority of visible items * - * @warning Before you set a cursor style you should have definen a - * custom cursor previously on the item, with - * elm_toolbar_item_cursor_set() + * 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_item_cursor_engine_only_set() - * @see elm_toolbar_item_cursor_style_get() + * @see elm_toolbar_standard_priority_get() * * @ingroup Toolbar */ -EAPI void elm_toolbar_item_cursor_style_set(Elm_Object_Item *it, const char *style); +EAPI void elm_toolbar_standard_priority_set(Evas_Object *obj, int priority); /** - * Get the current @b style set for a given toolbar item's custom - * cursor - * - * @param it toolbar item with custom cursor set. - * @return style the cursor style in use. If the object does not - * have a cursor set, then @c NULL is returned. + * 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_item_cursor_style_set() for more details + * @see elm_toolbar_standard_priority_set() * * @ingroup Toolbar */ -EAPI const char *elm_toolbar_item_cursor_style_get(const Elm_Object_Item *it); +EAPI int elm_toolbar_standard_priority_get(const Evas_Object *obj); /** - * Set if the (custom)cursor for a given toolbar item should be - * searched in its theme, also, or should only rely on the - * rendering engine. + * Set the toolbar select mode. * - * @param it item with custom (custom) cursor already set on - * @param engine_only Use @c EINA_TRUE to have cursors looked for - * only on those provided by the rendering engine, @c EINA_FALSE to - * have them searched on the widget's theme, as well. + * @param obj The toolbar object + * @param mode The select mode * - * @note This call is of use only if you've set a custom cursor - * for toolbar items, with elm_toolbar_item_cursor_set(). + * 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. * - * @note By default, cursors will only be looked for between those - * provided by the rendering engine. + * @see elm_toolbar_select_mode_get() * * @ingroup Toolbar */ -EAPI void elm_toolbar_item_cursor_engine_only_set(Elm_Object_Item *it, Eina_Bool engine_only); +EAPI void +elm_toolbar_select_mode_set(Evas_Object *obj, Elm_Object_Select_Mode mode); /** - * Get if the (custom) cursor for a given toolbar item is being - * searched in its theme, also, or is only relying on the rendering - * engine. + * Get the toolbar select mode. * - * @param it a toolbar item - * @return @c EINA_TRUE, if cursors are being looked for only on - * those provided by the rendering engine, @c EINA_FALSE if they - * are being searched on the widget's theme, as well. + * @param obj The toolbar object + * @return The select mode + * (If getting mode is failed, it returns ELM_OBJECT_SELECT_MODE_MAX) * - * @see elm_toolbar_item_cursor_engine_only_set(), for more details + * @see elm_toolbar_select_mode_set() * * @ingroup Toolbar */ -EAPI Eina_Bool elm_toolbar_item_cursor_engine_only_get(const Elm_Object_Item *it); +EAPI Elm_Object_Select_Mode +elm_toolbar_select_mode_get(const Evas_Object *obj); /** - * Change a toolbar's orientation - * @param obj The toolbar object - * @param horizontal If @c EINA_TRUE, the toolbar is horizontal - * By default, a toolbar will be horizontal. Use this function to create a vertical toolbar. - * @ingroup Toolbar - */ -EAPI void elm_toolbar_horizontal_set(Evas_Object *obj, Eina_Bool horizontal); - -/** - * Get a toolbar's orientation - * @param obj The toolbar object - * @return If @c EINA_TRUE, the toolbar is horizontal - * By default, a toolbar will be horizontal. Use this function to determine whether a toolbar is vertical. - * @ingroup Toolbar - */ -EAPI Eina_Bool elm_toolbar_horizontal_get(const Evas_Object *obj); - -/** - * Get the number of items in a toolbar - * @param obj The toolbar object - * @return The number of items in @p obj toolbar - * @ingroup Toolbar - */ -EAPI unsigned int elm_toolbar_items_count(const Evas_Object *obj); -/** * @} */