Elementary: Split headers for Gengrid, genlist, grid, image and index

This commit is contained in:
Daniel Zaoui 2013-04-28 15:04:57 +03:00
parent 8804b1bed4
commit f03db69f8f
20 changed files with 5987 additions and 5931 deletions

View File

@ -221,7 +221,13 @@ elm_frame_legacy.h \
elm_gen.h \
elm_general.h \
elm_gengrid.h \
elm_gengrid_common.h \
elm_gengrid_eo.h \
elm_gengrid_legacy.h \
elm_genlist.h \
elm_genlist_common.h \
elm_genlist_eo.h \
elm_genlist_legacy.h \
elm_gesture_layer.h \
elm_gesture_layer_common.h \
elm_gesture_layer_eo.h \
@ -232,6 +238,8 @@ elm_glview_common.h \
elm_glview_eo.h \
elm_glview_legacy.h \
elm_grid.h \
elm_grid_eo.h \
elm_grid_legacy.h \
elm_hover.h \
elm_hover_common.h \
elm_hover_eo.h \
@ -241,7 +249,13 @@ elm_icon_common.h \
elm_icon_eo.h \
elm_icon_legacy.h \
elm_image.h \
elm_image_common.h \
elm_image_eo.h \
elm_image_legacy.h \
elm_index.h \
elm_index_common.h \
elm_index_eo.h \
elm_index_legacy.h \
elm_intro.h \
elm_inwin.h \
elm_inwin_eo.h \

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,567 @@
#define ELM_GENGRID_ITEM_CLASS_VERSION ELM_GEN_ITEM_CLASS_VERSION
#define ELM_GENGRID_ITEM_CLASS_HEADER ELM_GEN_ITEM_CLASS_HEADER
/**
* Defines where to position the item in the genlist.
*
* @ingroup Genlist
*/
typedef enum
{
ELM_GENGRID_ITEM_SCROLLTO_NONE = 0, /**< no scrollto */
ELM_GENGRID_ITEM_SCROLLTO_IN = (1 << 0), /**< to the nearest viewport */
ELM_GENGRID_ITEM_SCROLLTO_TOP = (1 << 1), /**< to the top of viewport */
ELM_GENGRID_ITEM_SCROLLTO_MIDDLE = (1 << 2) /**< to the middle of viewport */
} Elm_Gengrid_Item_Scrollto_Type;
/**
* @see Elm_Gen_Item_Class
*/
typedef Elm_Gen_Item_Class Elm_Gengrid_Item_Class;
/**
* @see Elm_Gen_Item_Text_Get_Cb
*/
typedef Elm_Gen_Item_Text_Get_Cb Elm_Gengrid_Item_Text_Get_Cb;
/**
* @see Elm_Gen_Item_Content_Get_Cb
*/
typedef Elm_Gen_Item_Content_Get_Cb Elm_Gengrid_Item_Content_Get_Cb;
/**
* @see Elm_Gen_Item_State_Get_Cb
*/
typedef Elm_Gen_Item_State_Get_Cb Elm_Gengrid_Item_State_Get_Cb;
/**
* @see Elm_Gen_Item_Del_Cb
*/
typedef Elm_Gen_Item_Del_Cb Elm_Gengrid_Item_Del_Cb;
/**
* Get the @b next item in a gengrid widget's internal list of items,
* given a handle to one of those items.
*
* @param it The gengrid item to fetch next from
* @return The item after @p item, or @c NULL if there's none (and
* on errors)
*
* This returns the item placed after the @p item, on the container
* gengrid.
*
* @see elm_gengrid_item_prev_get()
*
* @ingroup Gengrid
*/
EAPI Elm_Object_Item *elm_gengrid_item_next_get(const Elm_Object_Item *it);
/**
* Get the @b previous item in a gengrid widget's internal list of items,
* given a handle to one of those items.
*
* @param it The gengrid item to fetch previous from
* @return The item before @p item, or @c NULL if there's none (and
* on errors)
*
* This returns the item placed before the @p item, on the container
* gengrid.
*
* @see elm_gengrid_item_next_get()
*
* @ingroup Gengrid
*/
EAPI Elm_Object_Item *elm_gengrid_item_prev_get(const Elm_Object_Item *it);
/**
* Set whether a given gengrid item is selected or not
*
* @param it The gengrid item
* @param selected Use @c EINA_TRUE, to make it selected, @c
* EINA_FALSE to make it unselected
*
* This sets the selected state of an item. If multi-selection is
* not enabled on the containing gengrid and @p selected is @c
* EINA_TRUE, any other previously selected items will get
* unselected in favor of this new one.
*
* @see elm_gengrid_item_selected_get()
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_item_selected_set(Elm_Object_Item *it, Eina_Bool selected);
/**
* Get whether a given gengrid item is selected or not
*
* @param it The gengrid item
* @return @c EINA_TRUE, if it's selected, @c EINA_FALSE otherwise
*
* This API returns EINA_TRUE for all the items selected in multi-select mode as well.
*
* @see elm_gengrid_item_selected_set() for more details
*
* @ingroup Gengrid
*/
EAPI Eina_Bool elm_gengrid_item_selected_get(const Elm_Object_Item *it);
/**
* Show the portion of a gengrid's internal grid containing a given
* item, @b immediately.
*
* @param it The item to display
* @param type Where to position the item in the viewport.
*
* This causes gengrid to @b redraw its viewport's contents to the
* region containing the given @p item item, if it is not fully
* visible.
*
* @see elm_gengrid_item_bring_in()
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_item_show(Elm_Object_Item *it, Elm_Gengrid_Item_Scrollto_Type type);
/**
* Animatedly bring in, to the visible area of a gengrid, a given
* item on it.
*
* @param it The gengrid item to display
* @param type Where to position the item in the viewport.
*
* This causes gengrid to jump to the given @p item and show
* it (by scrolling), if it is not fully visible. This will use
* animation to do so and take a period of time to complete.
*
* @see elm_gengrid_item_show()
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_item_bring_in(Elm_Object_Item *it, Elm_Gengrid_Item_Scrollto_Type type);
/**
* Update the contents of a given gengrid item
*
* @param it The gengrid item
*
* This updates an item by calling all the item class functions
* again to get the contents, texts and states. Use this when the
* original item data has changed and you want the changes to be
* reflected.
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_item_update(Elm_Object_Item *it);
/**
* Update the item class of a gengrid item.
*
* This sets another class of the item, changing the way that it is
* displayed. After changing the item class, elm_gengrid_item_update() is
* called on the item @p it.
*
* @param it The gengrid item
* @param gic The gengrid item class describing the function pointers and the item style.
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_item_item_class_update(Elm_Object_Item *it, const Elm_Gengrid_Item_Class *gic);
/**
* Get the Gengrid Item class for the given Gengrid Item.
*
* @param it The gengrid item
*
* This returns the Gengrid_Item_Class for the given item. It can be used to examine
* the function pointers and item_style.
*
* @ingroup Gengrid
*/
EAPI const Elm_Gengrid_Item_Class *elm_gengrid_item_item_class_get(const Elm_Object_Item *it);
/**
* Get the index of the item. It is only valid once displayed.
*
* @param it a gengrid item
* @return the position inside the list of item.
*
* @ingroup Gengrid
*/
EAPI int elm_gengrid_item_index_get(const Elm_Object_Item *it);
/**
* Add a new gengrid item class in a given gengrid widget.
*
* @return New allocated a gengrid item class.
*
* This adds gengrid item class for the gengrid widget. When adding an item,
* gengrid_item_{append, prepend, insert} function needs item class of the item.
* Given callback parameters are used at retrieving {text, content} of
* added item. Set as NULL if it's not used.
* If there's no available memory, return can be NULL.
*
* @see elm_gengrid_item_class_free()
* @see elm_gengrid_item_append()
*
* @ingroup Gengrid
*/
EAPI Elm_Gengrid_Item_Class *elm_gengrid_item_class_new(void);
/**
* Remove an item class in a given gengrid widget.
*
* @param itc The itc to be removed.
*
* This removes item class from the gengrid widget.
* Whenever it has no more references to it, item class is going to be freed.
* Otherwise it just decreases its reference count.
*
* @see elm_gengrid_item_class_new()
* @see elm_gengrid_item_class_ref()
* @see elm_gengrid_item_class_unref()
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_item_class_free(Elm_Gengrid_Item_Class *itc);
/**
* Increments object reference count for the item class.
*
* @param itc The given item class object to reference
*
* This API just increases its reference count for item class management.
*
* @see elm_gengrid_item_class_unref()
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_item_class_ref(Elm_Gengrid_Item_Class *itc);
/**
* Decrements object reference count for the item class.
*
* @param itc The given item class object to reference
*
* This API just decreases its reference count for item class management.
* Reference count can't be less than 0.
*
* @see elm_gengrid_item_class_ref()
* @see elm_gengrid_item_class_free()
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_item_class_unref(Elm_Gengrid_Item_Class *itc);
/**
* Set the text to be shown in a given gengrid item's tooltips.
*
* @param it The gengrid item
* @param text The text to set in the content
*
* This call will setup the text to be used as tooltip to that item
* (analogous to elm_object_tooltip_text_set(), but being item
* tooltips with higher precedence than object tooltips). It can
* have only one tooltip at a time, so any previous tooltip data
* will get removed.
*
* In order to set a content or something else as a tooltip, look at
* elm_gengrid_item_tooltip_content_cb_set().
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_item_tooltip_text_set(Elm_Object_Item *it, const char *text);
/**
* Set the content to be shown in a given gengrid item's tooltip
*
* @param it The gengrid item.
* @param func The function returning 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 @p func, the tooltip is unset with
* elm_gengrid_item_tooltip_unset() or the owner @p item
* dies. This callback receives as its first parameter the
* given @p data, being @c event_info the item handle.
*
* This call will setup the tooltip's contents to @p item
* (analogous to elm_object_tooltip_content_cb_set(), but being
* item tooltips with higher precedence than object tooltips). It
* can have only one tooltip at a time, so any previous tooltip
* content will get removed. @p func (with @p data) will be called
* every time Elementary needs to show the tooltip and it should
* return a valid Evas object, which will be fully managed by the
* tooltip system, getting deleted when the tooltip is gone.
*
* In order to set just a text as a tooltip, look at
* elm_gengrid_item_tooltip_text_set().
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_item_tooltip_content_cb_set(Elm_Object_Item *it, Elm_Tooltip_Item_Content_Cb func, const void *data, Evas_Smart_Cb del_cb);
/**
* Unset a tooltip from a given gengrid item
*
* @param it gengrid item to remove a previously set tooltip from.
*
* This call removes any tooltip set on @p item. The callback
* provided as @c del_cb to
* elm_gengrid_item_tooltip_content_cb_set() will be called to
* notify it is not used anymore (and have resources cleaned, if
* need be).
*
* @see elm_gengrid_item_tooltip_content_cb_set()
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_item_tooltip_unset(Elm_Object_Item *it);
/**
* Set a different @b style for a given gengrid item's tooltip.
*
* @param it gengrid item with tooltip set
* @param style the <b>theme style</b> to use on tooltips (e.g. @c
* "default", @c "transparent", etc)
*
* Tooltips can have <b>alternate styles</b> to be displayed on,
* which are defined by the theme set on Elementary. This function
* works analogously as elm_object_tooltip_style_set(), but here
* applied only to gengrid item objects. The default style for
* tooltips is @c "default".
*
* @note before you set a style you should define a tooltip with
* elm_gengrid_item_tooltip_content_cb_set() or
* elm_gengrid_item_tooltip_text_set()
*
* @see elm_gengrid_item_tooltip_style_get()
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_item_tooltip_style_set(Elm_Object_Item *it, const char *style);
/**
* Get the style set a given gengrid item's tooltip.
*
* @param it gengrid item with tooltip already set on.
* @return style the theme style in use, which defaults to
* "default". If the object does not have a tooltip set,
* then @c NULL is returned.
*
* @see elm_gengrid_item_tooltip_style_set() for more details
*
* @ingroup Gengrid
*/
EAPI const char *elm_gengrid_item_tooltip_style_get(const Elm_Object_Item *it);
/**
* @brief Disable size restrictions on an object's tooltip
* @param it The tooltip's anchor object
* @param disable If EINA_TRUE, size restrictions are disabled
* @return EINA_FALSE on failure, EINA_TRUE on success
*
* This function allows a tooltip to expand beyond its parent window's canvas.
* It will instead be limited only by the size of the display.
*/
EAPI Eina_Bool elm_gengrid_item_tooltip_window_mode_set(Elm_Object_Item *it, Eina_Bool disable);
/**
* @brief Retrieve size restriction state of an object's tooltip
* @param it The tooltip's anchor object
* @return If EINA_TRUE, size restrictions are disabled
*
* This function returns whether a tooltip is allowed to expand beyond
* its parent window's canvas.
* It will instead be limited only by the size of the display.
*/
EAPI Eina_Bool elm_gengrid_item_tooltip_window_mode_get(const Elm_Object_Item *it);
/**
* Set the type of mouse pointer/cursor decoration to be shown,
* when the mouse pointer is over the given gengrid widget item
*
* @param it gengrid 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 @p
* item will always show cursor @p type.
*
* 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_gengrid_item_cursor_get()
* @see elm_gengrid_item_cursor_unset()
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_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 gengrid widget item
*
* @param it gengrid 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_gengrid_item_cursor_set() for more details
* @see elm_gengrid_item_cursor_unset()
*
* @ingroup Gengrid
*/
EAPI const char *elm_gengrid_item_cursor_get(const Elm_Object_Item *it);
/**
* Unset any custom mouse pointer/cursor decoration set to be
* shown, when the mouse pointer is over the given gengrid widget
* item, thus making it show the @b default cursor again.
*
* @param it a gengrid 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_gengrid_item_cursor_set() for more details
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_item_cursor_unset(Elm_Object_Item *it);
/**
* Set a different @b style for a given custom cursor set for a
* gengrid item.
*
* @param it gengrid item with custom cursor set
* @param style the <b>theme style</b> to use (e.g. @c "default",
* @c "transparent", etc)
*
* This function only makes sense when one is using custom mouse
* cursor decorations <b>defined in a theme file</b> , which can
* have, given a cursor name/type, <b>alternate styles</b> on
* it. It works analogously as elm_object_cursor_style_set(), but
* here applied only to gengrid item objects.
*
* @warning Before you set a cursor style you should have defined a
* custom cursor previously on the item, with
* elm_gengrid_item_cursor_set()
*
* @see elm_gengrid_item_cursor_engine_only_set()
* @see elm_gengrid_item_cursor_style_get()
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_item_cursor_style_set(Elm_Object_Item *it, const char *style);
/**
* Get the current @b style set for a given gengrid item's custom
* cursor
*
* @param it gengrid 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.
*
* @see elm_gengrid_item_cursor_style_set() for more details
*
* @ingroup Gengrid
*/
EAPI const char *elm_gengrid_item_cursor_style_get(const Elm_Object_Item *it);
/**
* Set if the (custom) cursor for a given gengrid item should be
* searched in its theme, also, or should only rely on the
* rendering engine.
*
* @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.
*
* @note This call is of use only if you've set a custom cursor
* for gengrid items, with elm_gengrid_item_cursor_set().
*
* @note By default, cursors will only be looked for between those
* provided by the rendering engine.
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_item_cursor_engine_only_set(Elm_Object_Item *it, Eina_Bool engine_only);
/**
* Get if the (custom) cursor for a given gengrid item is being
* searched in its theme, also, or is only relying on the rendering
* engine.
*
* @param it a gengrid 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.
*
* @see elm_gengrid_item_cursor_engine_only_set(), for more details
*
* @ingroup Gengrid
*/
EAPI Eina_Bool elm_gengrid_item_cursor_engine_only_get(const Elm_Object_Item *it);
/**
* Get a given gengrid item's position, relative to the whole
* gengrid's grid area.
*
* @param it The Gengrid item.
* @param x Pointer to variable to store the item's <b>row number</b>.
* @param y Pointer to variable to store the item's <b>column number</b>.
*
* This returns the "logical" position of the item within the
* gengrid. For example, @c (0, 1) would stand for first row,
* second column.
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_item_pos_get(const Elm_Object_Item *it, unsigned int *x, unsigned int *y);
/**
* Set the gengrid item's select mode.
*
* @param it The gengrid item object
* @param mode The select mode
*
* elm_gengrid_select_mode_set() changes item's select mode.
* - ELM_OBJECT_SELECT_MODE_DEFAULT : The item 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 the item
* entirely and they will neither appear selected nor call selected
* callback functions.
* - ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY : This will apply no-finger-size rule
* with ELM_OBJECT_SELECT_MODE_NONE. No-finger-size rule makes an item can be
* smaller than lower limit. Clickable objects should be bigger than
* human touch point device (your finger) for some touch or
* small screen devices. So it is enabled, the item can be shrink than
* predefined finger-size value. And the item will be updated.
*
* @see elm_gengrid_item_select_mode_get()
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_item_select_mode_set(Elm_Object_Item *it, Elm_Object_Select_Mode mode);
/**
* Get the gengrid item's select mode.
*
* @param it The gengrid item object
* @return The select mode
* (If getting mode is failed, it returns ELM_OBJECT_SELECT_MODE_MAX)
*
* @see elm_gengrid_item_select_mode_set()
*
* @ingroup Gengrid
*/
EAPI Elm_Object_Select_Mode elm_gengrid_item_select_mode_get(const Elm_Object_Item *it);

View File

@ -0,0 +1,602 @@
#define ELM_OBJ_GENGRID_PAN_CLASS elm_obj_gengrid_pan_class_get()
const Eo_Class *elm_obj_gengrid_pan_class_get(void) EINA_CONST;
#define ELM_OBJ_GENGRID_CLASS elm_obj_gengrid_class_get()
const Eo_Class *elm_obj_gengrid_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_GENGRID_BASE_ID;
enum
{
ELM_OBJ_GENGRID_SUB_ID_ITEM_SIZE_SET,
ELM_OBJ_GENGRID_SUB_ID_ITEM_SIZE_GET,
ELM_OBJ_GENGRID_SUB_ID_GROUP_ITEM_SIZE_SET,
ELM_OBJ_GENGRID_SUB_ID_GROUP_ITEM_SIZE_GET,
ELM_OBJ_GENGRID_SUB_ID_ALIGN_SET,
ELM_OBJ_GENGRID_SUB_ID_ALIGN_GET,
ELM_OBJ_GENGRID_SUB_ID_ITEM_APPEND,
ELM_OBJ_GENGRID_SUB_ID_ITEM_PREPEND,
ELM_OBJ_GENGRID_SUB_ID_ITEM_INSERT_BEFORE,
ELM_OBJ_GENGRID_SUB_ID_ITEM_INSERT_AFTER,
ELM_OBJ_GENGRID_SUB_ID_ITEM_SORTED_INSERT,
ELM_OBJ_GENGRID_SUB_ID_HORIZONTAL_SET,
ELM_OBJ_GENGRID_SUB_ID_HORIZONTAL_GET,
ELM_OBJ_GENGRID_SUB_ID_CLEAR,
ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_SET,
ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_GET,
ELM_OBJ_GENGRID_SUB_ID_SELECTED_ITEM_GET,
ELM_OBJ_GENGRID_SUB_ID_SELECTED_ITEMS_GET,
ELM_OBJ_GENGRID_SUB_ID_REALIZED_ITEMS_GET,
ELM_OBJ_GENGRID_SUB_ID_REALIZED_ITEMS_UPDATE,
ELM_OBJ_GENGRID_SUB_ID_REORDER_MODE_SET,
ELM_OBJ_GENGRID_SUB_ID_REORDER_MODE_GET,
ELM_OBJ_GENGRID_SUB_ID_PAGE_RELATIVE_SET,
ELM_OBJ_GENGRID_SUB_ID_PAGE_RELATIVE_GET,
ELM_OBJ_GENGRID_SUB_ID_PAGE_SIZE_SET,
ELM_OBJ_GENGRID_SUB_ID_FIRST_ITEM_GET,
ELM_OBJ_GENGRID_SUB_ID_LAST_ITEM_GET,
ELM_OBJ_GENGRID_SUB_ID_FILLED_SET,
ELM_OBJ_GENGRID_SUB_ID_FILLED_GET,
ELM_OBJ_GENGRID_SUB_ID_ITEMS_COUNT,
ELM_OBJ_GENGRID_SUB_ID_SELECT_MODE_SET,
ELM_OBJ_GENGRID_SUB_ID_SELECT_MODE_GET,
ELM_OBJ_GENGRID_SUB_ID_HIGHLIGHT_MODE_SET,
ELM_OBJ_GENGRID_SUB_ID_HIGHLIGHT_MODE_GET,
ELM_OBJ_GENGRID_SUB_ID_LAST
};
#define ELM_OBJ_GENGRID_ID(sub_id) (ELM_OBJ_GENGRID_BASE_ID + sub_id)
/**
* @def elm_obj_gengrid_item_size_set
* @since 1.8
*
* Set the size for the items of a given gengrid widget
*
* @param[in] w
* @param[in] h
*
* @see elm_gengrid_item_size_set
*/
#define elm_obj_gengrid_item_size_set(w, h) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_ITEM_SIZE_SET), EO_TYPECHECK(Evas_Coord, w), EO_TYPECHECK(Evas_Coord, h)
/**
* @def elm_obj_gengrid_item_size_get
* @since 1.8
*
* Get the size set for the items of a given gengrid widget
*
* @param[out] w
* @param[out] h
*
* @see elm_gengrid_item_size_get
*/
#define elm_obj_gengrid_item_size_get(w, h) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_ITEM_SIZE_GET), EO_TYPECHECK(Evas_Coord *, w), EO_TYPECHECK(Evas_Coord *, h)
/**
* @def elm_obj_gengrid_group_item_size_set
* @since 1.8
*
* Set the size for the group items of a given gengrid widget
*
* @param[in] w
* @param[in] h
*
* @see elm_gengrid_group_item_size_set
*/
#define elm_obj_gengrid_group_item_size_set(w, h) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_GROUP_ITEM_SIZE_SET), EO_TYPECHECK(Evas_Coord, w), EO_TYPECHECK(Evas_Coord, h)
/**
* @def elm_obj_gengrid_group_item_size_get
* @since 1.8
*
* Get the size set for the group items of a given gengrid widget
*
* @param[out] w
* @param[out] h
*
* @see elm_gengrid_group_item_size_get
*/
#define elm_obj_gengrid_group_item_size_get(w, h) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_GROUP_ITEM_SIZE_GET), EO_TYPECHECK(Evas_Coord *, w), EO_TYPECHECK(Evas_Coord *, h)
/**
* @def elm_obj_gengrid_align_set
* @since 1.8
*
* Set the items grid's alignment within a given gengrid widget
*
* @param[in] align_x
* @param[in] align_y
*
* @see elm_gengrid_align_set
*/
#define elm_obj_gengrid_align_set(align_x, align_y) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_ALIGN_SET), EO_TYPECHECK(double, align_x), EO_TYPECHECK(double, align_y)
/**
* @def elm_obj_gengrid_align_get
* @since 1.8
*
* Get the items grid's alignment values within a given gengrid
*
* @param[out] align_x
* @param[out] align_y
*
* @see elm_gengrid_align_get
*/
#define elm_obj_gengrid_align_get(align_x, align_y) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_ALIGN_GET), EO_TYPECHECK(double *, align_x), EO_TYPECHECK(double *, align_y)
/**
* @def elm_obj_gengrid_item_append
* @since 1.8
*
* Append a new item in a given gengrid widget.
*
* @param[in] itc
* @param[in] data
* @param[in] func
* @param[in] func_data
* @param[out] ret
*
* @see elm_gengrid_item_append
*/
#define elm_obj_gengrid_item_append(itc, data, func, func_data, ret) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_ITEM_APPEND), EO_TYPECHECK(const Elm_Gengrid_Item_Class *, itc), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(const void *, func_data), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_gengrid_item_prepend
* @since 1.8
*
* Prepend a new item in a given gengrid widget.
*
* @param[in] itc
* @param[in] data
* @param[in] func
* @param[in] func_data
* @param[out] ret
*
* @see elm_gengrid_item_prepend
*/
#define elm_obj_gengrid_item_prepend(itc, data, func, func_data, ret) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_ITEM_PREPEND), EO_TYPECHECK(const Elm_Gengrid_Item_Class *, itc), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(const void *, func_data), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_gengrid_item_insert_before
* @since 1.8
*
* Insert an item before another in a gengrid widget
*
* @param[in] itc
* @param[in] data
* @param[in] relative
* @param[in] func
* @param[in] func_data
* @param[out] ret
*
* @see elm_gengrid_item_insert_before
*/
#define elm_obj_gengrid_item_insert_before(itc, data, relative, func, func_data, ret) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_ITEM_INSERT_BEFORE), EO_TYPECHECK(const Elm_Gengrid_Item_Class *, itc), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Elm_Object_Item *, relative), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(const void *, func_data), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_gengrid_item_insert_after
* @since 1.8
*
* Insert an item after another in a gengrid widget
*
* @param[in] itc
* @param[in] data
* @param[in] relative
* @param[in] func
* @param[in] func_data
* @param[out] ret
*
* @see elm_gengrid_item_insert_after
*/
#define elm_obj_gengrid_item_insert_after(itc, data, relative, func, func_data, ret) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_ITEM_INSERT_AFTER), EO_TYPECHECK(const Elm_Gengrid_Item_Class *, itc), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Elm_Object_Item *, relative), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(const void *, func_data), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_gengrid_item_sorted_insert
* @since 1.8
*
* Insert an item in a gengrid widget using a user-defined sort function.
*
* @param[in] itc
* @param[in] data
* @param[in] comp
* @param[in] func
* @param[in] func_data
* @param[out] ret
*
* @see elm_gengrid_item_sorted_insert
*/
#define elm_obj_gengrid_item_sorted_insert(itc, data, comp, func, func_data, ret) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_ITEM_SORTED_INSERT), EO_TYPECHECK(const Elm_Gengrid_Item_Class *, itc), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Eina_Compare_Cb, comp), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(const void *, func_data), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_gengrid_horizontal_set
* @since 1.8
*
* Set the direction in which a given gengrid widget will expand while
* placing its items.
*
* @param[in] horizontal
*
* @see elm_gengrid_horizontal_set
*/
#define elm_obj_gengrid_horizontal_set(horizontal) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_HORIZONTAL_SET), EO_TYPECHECK(Eina_Bool, horizontal)
/**
* @def elm_obj_gengrid_horizontal_get
* @since 1.8
*
* Get for what direction a given gengrid widget will expand while
* placing its items.
*
* @param[out] ret
*
* @see elm_gengrid_horizontal_get
*/
#define elm_obj_gengrid_horizontal_get(ret) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_HORIZONTAL_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_gengrid_clear
* @since 1.8
*
* Remove all items from a given gengrid widget
*
*
* @see elm_gengrid_clear
*/
#define elm_obj_gengrid_clear() ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_CLEAR)
/**
* @def elm_obj_gengrid_multi_select_set
* @since 1.8
*
* Enable or disable multi-selection in a given gengrid widget
*
* @param[in] multi
*
* @see elm_gengrid_multi_select_set
*/
#define elm_obj_gengrid_multi_select_set(multi) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_SET), EO_TYPECHECK(Eina_Bool, multi)
/**
* @def elm_obj_gengrid_multi_select_get
* @since 1.8
*
* Get whether multi-selection is enabled or disabled for a given
* gengrid widget
*
* @param[out] ret
*
* @see elm_gengrid_multi_select_get
*/
#define elm_obj_gengrid_multi_select_get(ret) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_gengrid_selected_item_get
* @since 1.8
*
* Get the selected item in a given gengrid widget
*
* @param[out] ret
*
* @see elm_gengrid_selected_item_get
*/
#define elm_obj_gengrid_selected_item_get(ret) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_SELECTED_ITEM_GET), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_gengrid_selected_items_get
* @since 1.8
*
* Get <b>a list</b> of selected items in a given gengrid
*
* @param[out] ret
*
* @see elm_gengrid_selected_items_get
*/
#define elm_obj_gengrid_selected_items_get(ret) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_SELECTED_ITEMS_GET), EO_TYPECHECK(const Eina_List **, ret)
/**
* @def elm_obj_gengrid_realized_items_get
* @since 1.8
*
* Get a list of realized items in gengrid
*
* @param[out] ret
*
* @see elm_gengrid_realized_items_get
*/
#define elm_obj_gengrid_realized_items_get(ret) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_REALIZED_ITEMS_GET), EO_TYPECHECK(Eina_List **, ret)
/**
* @def elm_obj_gengrid_realized_items_update
* @since 1.8
*
* Update the contents of all realized items.
*
*
* @see elm_gengrid_realized_items_update
*/
#define elm_obj_gengrid_realized_items_update() ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_REALIZED_ITEMS_UPDATE)
/**
* @def elm_obj_gengrid_reorder_mode_set
* @since 1.8
*
* Set whether a given gengrid widget is or not able have items
*
* @param[in] reorder_mode
*
* @see elm_gengrid_reorder_mode_set
*/
#define elm_obj_gengrid_reorder_mode_set(reorder_mode) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_REORDER_MODE_SET), EO_TYPECHECK(Eina_Bool, reorder_mode)
/**
* @def elm_obj_gengrid_reorder_mode_get
* @since 1.8
*
* Get whether a given gengrid widget is or not able have items
*
* @param[out] ret
*
* @see elm_gengrid_reorder_mode_get
*/
#define elm_obj_gengrid_reorder_mode_get(ret) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_REORDER_MODE_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_gengrid_bounce_set
* @since 1.8
*
* Enable or disable bouncing effect for a given gengrid widget
*
* @param[in] h_bounce
* @param[in] v_bounce
*
* @see elm_gengrid_bounce_set
*/
#define elm_obj_gengrid_bounce_set(h_bounce, v_bounce) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_BOUNCE_SET), EO_TYPECHECK(Eina_Bool, h_bounce), EO_TYPECHECK(Eina_Bool, v_bounce)
/**
* @def elm_obj_gengrid_bounce_get
* @since 1.8
*
* Get whether bouncing effects are enabled or disabled, for a
* given gengrid widget, on each axis
*
* @param[out] h_bounce
* @param[out] v_bounce
*
* @see elm_gengrid_bounce_get
*/
#define elm_obj_gengrid_bounce_get(h_bounce, v_bounce) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_BOUNCE_GET), EO_TYPECHECK(Eina_Bool *, h_bounce), EO_TYPECHECK(Eina_Bool *, v_bounce)
/**
* @def elm_obj_gengrid_page_relative_set
* @since 1.8
*
* Set a given gengrid widget's scrolling page size, relative to
* its viewport size.
*
* @param[in] h_pagerel
* @param[in] v_pagerel
*
* @see elm_gengrid_page_relative_set
*/
#define elm_obj_gengrid_page_relative_set(h_pagerel, v_pagerel) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_PAGE_RELATIVE_SET), EO_TYPECHECK(double, h_pagerel), EO_TYPECHECK(double, v_pagerel)
/**
* @def elm_obj_gengrid_page_relative_get
* @since 1.8
*
* Get a given gengrid widget's scrolling page size, relative to
* its viewport size.
*
* @param[out] h_pagerel
* @param[out] v_pagerel
*
* @see elm_gengrid_page_relative_get
*/
#define elm_obj_gengrid_page_relative_get(h_pagerel, v_pagerel) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_PAGE_RELATIVE_GET), EO_TYPECHECK(double *, h_pagerel), EO_TYPECHECK(double *, v_pagerel)
/**
* @def elm_obj_gengrid_page_size_set
* @since 1.8
*
* Set a given gengrid widget's scrolling page size
*
* @param[in] h_pagesize
* @param[in] v_pagesize
*
* @see elm_gengrid_page_size_set
*/
#define elm_obj_gengrid_page_size_set(h_pagesize, v_pagesize) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_PAGE_SIZE_SET), EO_TYPECHECK(Evas_Coord, h_pagesize), EO_TYPECHECK(Evas_Coord, v_pagesize)
/**
* @def elm_obj_gengrid_current_page_get
* @since 1.8
*
* @brief Get gengrid current page number.
*
* @param[out] h_pagenumber
* @param[out] v_pagenumber
*
* @see elm_gengrid_current_page_get
*/
#define elm_obj_gengrid_current_page_get(h_pagenumber, v_pagenumber) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_CURRENT_PAGE_GET), EO_TYPECHECK(int *, h_pagenumber), EO_TYPECHECK(int *, v_pagenumber)
/**
* @def elm_obj_gengrid_last_page_get
* @since 1.8
*
* @brief Get gengrid last page number.
*
* @param[out] h_pagenumber
* @param[out] v_pagenumber
*
* @see elm_gengrid_last_page_get
*/
#define elm_obj_gengrid_last_page_get(h_pagenumber, v_pagenumber) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_LAST_PAGE_GET), EO_TYPECHECK(int *, h_pagenumber), EO_TYPECHECK(int *, v_pagenumber)
/**
* @def elm_obj_gengrid_page_show
* @since 1.8
*
* Show a specific virtual region within the gengrid content object by page number.
*
* @param[in] h_pagenumber
* @param[in] v_pagenumber
*
* @see elm_gengrid_page_show
*/
#define elm_obj_gengrid_page_show(h_pagenumber, v_pagenumber) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_PAGE_SHOW), EO_TYPECHECK(int, h_pagenumber), EO_TYPECHECK(int, v_pagenumber)
/**
* @def elm_obj_gengrid_page_bring_in
* @since 1.8
*
* Show a specific virtual region within the gengrid content object by page number.
*
* @param[in] h_pagenumber
* @param[in] v_pagenumber
*
* @see elm_gengrid_page_bring_in
*/
#define elm_obj_gengrid_page_bring_in(h_pagenumber, v_pagenumber) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_PAGE_BRING_IN), EO_TYPECHECK(int, h_pagenumber), EO_TYPECHECK(int, v_pagenumber)
/**
* @def elm_obj_gengrid_scroller_policy_set
* @since 1.8
*
* Set the scrollbar policy
*
* @param[in] policy_h
* @param[in] policy_v
*
* @see elm_gengrid_scroller_policy_set
*/
#define elm_obj_gengrid_scroller_policy_set(policy_h, policy_v) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_SCROLLER_POLICY_SET), EO_TYPECHECK(Elm_Scroller_Policy, policy_h), EO_TYPECHECK(Elm_Scroller_Policy, policy_v)
/**
* @def elm_obj_gengrid_scroller_policy_get
* @since 1.8
*
* Get the scrollbar policy
*
* @param[out] policy_h
* @param[out] policy_v
*
* @see elm_gengrid_scroller_policy_get
*/
#define elm_obj_gengrid_scroller_policy_get(policy_h, policy_v) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_SCROLLER_POLICY_GET), EO_TYPECHECK(Elm_Scroller_Policy *, policy_h), EO_TYPECHECK(Elm_Scroller_Policy *, policy_v)
/**
* @def elm_obj_gengrid_first_item_get
* @since 1.8
*
* Get the first item in a given gengrid widget
*
* @param[out] ret
*
* @see elm_gengrid_first_item_get
*/
#define elm_obj_gengrid_first_item_get(ret) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_FIRST_ITEM_GET), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_gengrid_last_item_get
* @since 1.8
*
* Get the last item in a given gengrid widget
*
* @param[out] ret
*
* @see elm_gengrid_last_item_get
*/
#define elm_obj_gengrid_last_item_get(ret) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_LAST_ITEM_GET), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_gengrid_filled_set
* @since 1.8
*
* Set how the items grid's filled within a given gengrid widget
*
* @param[in] fill
*
* @see elm_gengrid_filled_set
*/
#define elm_obj_gengrid_filled_set(fill) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_FILLED_SET), EO_TYPECHECK(Eina_Bool, fill)
/**
* @def elm_obj_gengrid_filled_get
* @since 1.8
*
* Get how the items grid's filled within a given gengrid widget
*
* @param[out] ret
*
* @see elm_gengrid_filled_get
*/
#define elm_obj_gengrid_filled_get(ret) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_FILLED_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_gengrid_items_count
* @since 1.8
*
* Return how many items are currently in a list
*
* @param[out] ret
*
* @see elm_gengrid_items_count
*/
#define elm_obj_gengrid_items_count(ret) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_ITEMS_COUNT), EO_TYPECHECK(unsigned int *, ret)
/**
* @def elm_obj_gengrid_select_mode_set
* @since 1.8
*
* Set the gengrid select mode.
*
* @param[in] mode
*
* @see elm_gengrid_select_mode_set
*/
#define elm_obj_gengrid_select_mode_set(mode) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_SELECT_MODE_SET), EO_TYPECHECK(Elm_Object_Select_Mode, mode)
/**
* @def elm_obj_gengrid_select_mode_get
* @since 1.8
*
* Get the gengrid select mode.
*
* @param[out] ret
*
* @see elm_gengrid_select_mode_get
*/
#define elm_obj_gengrid_select_mode_get(ret) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_SELECT_MODE_GET), EO_TYPECHECK(Elm_Object_Select_Mode *, ret)
/**
* @def elm_obj_gengrid_highlight_mode_set
* @since 1.8
*
* Set whether the gengrid items' should be highlighted when item selected.
*
* @param[in] highlight
*
* @see elm_gengrid_highlight_mode_set
*/
#define elm_obj_gengrid_highlight_mode_set(highlight) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_HIGHLIGHT_MODE_SET), EO_TYPECHECK(Eina_Bool, highlight)
/**
* @def elm_obj_gengrid_highlight_mode_get
* @since 1.8
*
* Get whether the gengrid items' should be highlighted when item selected.
*
* @param[out] ret
*
* @see elm_gengrid_highlight_mode_get
*/
#define elm_obj_gengrid_highlight_mode_get(ret) ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_HIGHLIGHT_MODE_GET), EO_TYPECHECK(Eina_Bool *, ret)

View File

@ -0,0 +1,868 @@
/**
* Add a new gengrid widget to the given parent Elementary
* (container) object
*
* @param parent The parent object
* @return a new gengrid widget handle or @c NULL, on errors
*
* This function inserts a new gengrid widget on the canvas.
*
* @see elm_gengrid_item_size_set()
* @see elm_gengrid_group_item_size_set()
* @see elm_gengrid_horizontal_set()
* @see elm_gengrid_item_append()
* @see elm_object_item_del()
* @see elm_gengrid_clear()
*
* @ingroup Gengrid
*/
EAPI Evas_Object *elm_gengrid_add(Evas_Object *parent);
/**
* Remove all items from a given gengrid widget
*
* @param obj The gengrid object.
*
* This removes (and deletes) all items in @p obj, leaving it
* empty.
*
* @see elm_object_item_del(), to remove just one item.
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_clear(Evas_Object *obj);
/**
* Enable or disable multi-selection in a given gengrid widget
*
* @param obj The gengrid object.
* @param multi @c EINA_TRUE, to enable multi-selection,
* @c EINA_FALSE to disable it.
*
* Multi-selection is the ability to have @b more than one
* item selected, on a given gengrid, simultaneously. When it is
* enabled, a sequence of clicks on different items will make them
* all selected, progressively. A click on an already selected item
* will unselect it. If interacting via the keyboard,
* multi-selection is enabled while holding the "Shift" key.
*
* @note By default, multi-selection is @b disabled on gengrids
*
* @see elm_gengrid_multi_select_get()
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_multi_select_set(Evas_Object *obj, Eina_Bool multi);
/**
* Get whether multi-selection is enabled or disabled for a given
* gengrid widget
*
* @param obj The gengrid object.
* @return @c EINA_TRUE, if multi-selection is enabled, @c
* EINA_FALSE otherwise
*
* @see elm_gengrid_multi_select_set() for more details
*
* @ingroup Gengrid
*/
EAPI Eina_Bool elm_gengrid_multi_select_get(const Evas_Object *obj);
/**
* Set the direction in which a given gengrid widget will expand while
* placing its items.
*
* @param obj The gengrid object.
* @param horizontal @c EINA_TRUE to make the gengrid expand horizontally,
* @c EINA_FALSE to expand vertically.
*
* When in "horizontal mode" (@c EINA_TRUE), items will be placed in @b columns,
* from top to bottom and, when the space for a column is filled, another one is
* started on the right, thus expanding the grid horizontally. When in
* "vertical mode" (@c EINA_FALSE), though, items will be placed in @b rows,
* from left to right and, when the space for a row is filled, another one is
* started below, thus expanding the grid vertically.
*
* @note By default, gengrid is in vertical mode, @c EINA_FALSE.
*
* @see elm_gengrid_horizontal_get()
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
/**
* Get for what direction a given gengrid widget will expand while
* placing its items.
*
* @param obj The gengrid object.
* @return @c EINA_TRUE, if @p obj is set to expand horizontally,
* @c EINA_FALSE if it's set to expand vertically.
*
* @see elm_gengrid_horizontal_set() for more details
*
* @ingroup Gengrid
*/
EAPI Eina_Bool elm_gengrid_horizontal_get(const Evas_Object *obj);
/**
* Enable or disable bouncing effect for a given gengrid widget
*
* @param obj The gengrid object
* @param h_bounce @c EINA_TRUE, to enable @b horizontal bouncing,
* @c EINA_FALSE to disable it
* @param v_bounce @c EINA_TRUE, to enable @b vertical bouncing,
* @c EINA_FALSE to disable it
*
* The bouncing effect occurs whenever one reaches the gengrid's
* edge's while panning it -- it will scroll past its limits a
* little bit and return to the edge again, in a animated for,
* automatically.
*
* @note By default, gengrids have bouncing enabled on both axis
*
* @deprecated Use elm_scroller_bounce_set() instead.
*
* @see elm_scroller_bounce_set()
*
* @ingroup Gengrid
*/
EINA_DEPRECATED EAPI void elm_gengrid_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
/**
* Get whether bouncing effects are enabled or disabled, for a
* given gengrid widget, on each axis
*
* @param obj The gengrid object
* @param h_bounce Pointer to a variable where to store the
* horizontal bouncing flag.
* @param v_bounce Pointer to a variable where to store the
* vertical bouncing flag.
*
* @deprecated Use elm_scroller_bounce_get() instead.
*
* @see elm_scroller_bounce_get()
*
* @ingroup Gengrid
*/
EINA_DEPRECATED EAPI void elm_gengrid_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce);
/**
* Append a new item in a given gengrid widget.
*
* @param obj The gengrid object.
* @param gic The item class for the item.
* @param data The item data.
* @param func Convenience function called when the item is
* selected.
* @param func_data Data to be passed to @p func.
* @return A handle to the item added or @c NULL, on errors.
*
* This adds an item to the beginning of the gengrid.
*
* @see elm_gengrid_item_prepend()
* @see elm_gengrid_item_insert_before()
* @see elm_gengrid_item_insert_after()
* @see elm_object_item_del()
*
* @ingroup Gengrid
*/
EAPI Elm_Object_Item *elm_gengrid_item_append(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic, const void *data, Evas_Smart_Cb func, const void *func_data);
/**
* Prepend a new item in a given gengrid widget.
*
* @param obj The gengrid object.
* @param gic The item class for the item.
* @param data The item data.
* @param func Convenience function called when the item is
* selected.
* @param func_data Data to be passed to @p func.
* @return A handle to the item added or @c NULL, on errors.
*
* This adds an item to the end of the gengrid.
*
* @see elm_gengrid_item_append()
* @see elm_gengrid_item_insert_before()
* @see elm_gengrid_item_insert_after()
* @see elm_object_item_del()
*
* @ingroup Gengrid
*/
EAPI Elm_Object_Item *elm_gengrid_item_prepend(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic, const void *data, Evas_Smart_Cb func, const void *func_data);
/**
* Insert an item before another in a gengrid widget
*
* @param obj The gengrid object.
* @param gic The item class for the item.
* @param data The item data.
* @param relative The item to place this new one before.
* @param func Convenience function called when the item is
* selected.
* @param func_data Data to be passed to @p func.
* @return A handle to the item added or @c NULL, on errors.
*
* This inserts an item before another in the gengrid.
*
* @see elm_gengrid_item_append()
* @see elm_gengrid_item_prepend()
* @see elm_gengrid_item_insert_after()
* @see elm_object_item_del()
*
* @ingroup Gengrid
*/
EAPI Elm_Object_Item *elm_gengrid_item_insert_before(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic, const void *data, Elm_Object_Item *relative, Evas_Smart_Cb func, const void *func_data);
/**
* Insert an item after another in a gengrid widget
*
* @param obj The gengrid object.
* @param gic The item class for the item.
* @param data The item data.
* @param relative The item to place this new one after.
* @param func Convenience function called when the item is
* selected.
* @param func_data Data to be passed to @p func.
* @return A handle to the item added or @c NULL, on errors.
*
* This inserts an item after another in the gengrid.
*
* @see elm_gengrid_item_append()
* @see elm_gengrid_item_prepend()
* @see elm_gengrid_item_insert_after()
* @see elm_object_item_del()
*
* @ingroup Gengrid
*/
EAPI Elm_Object_Item *elm_gengrid_item_insert_after(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic, const void *data, Elm_Object_Item *relative, Evas_Smart_Cb func, const void *func_data);
/**
* Insert an item in a gengrid widget using a user-defined sort function.
*
* @param obj The gengrid object.
* @param gic The item class for the item.
* @param data The item data.
* @param comp User defined comparison function that defines the sort order
* based on Elm_Gen_Item and its data param.
* @param func Convenience function called when the item is selected.
* @param func_data Data to be passed to @p func.
* @return A handle to the item added or @c NULL, on errors.
*
* This inserts an item in the gengrid based on user defined comparison
* function. The two arguments passed to the function @p func are gengrid
* item handles to compare.
*
* @see elm_gengrid_item_append()
* @see elm_gengrid_item_prepend()
* @see elm_gengrid_item_insert_after()
* @see elm_object_item_del()
*
* @ingroup Gengrid
*/
EAPI Elm_Object_Item *elm_gengrid_item_sorted_insert(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic, const void *data, Eina_Compare_Cb comp, Evas_Smart_Cb func, const void *func_data);
/**
* Get the selected item in a given gengrid widget
*
* @param obj The gengrid object.
* @return The selected item's handle or @c NULL, if none is
* selected at the moment (and on errors)
*
* This returns the selected item in @p obj. If multi selection is
* enabled on @p obj (@see elm_gengrid_multi_select_set()), only
* the first item in the list is selected, which might not be very
* useful. For that case, see elm_gengrid_selected_items_get().
*
* @ingroup Gengrid
*/
EAPI Elm_Object_Item *elm_gengrid_selected_item_get(const Evas_Object *obj);
/**
* Get <b>a list</b> of selected items in a given gengrid
*
* @param obj The gengrid object.
* @return The list of selected items or @c NULL, if none is
* selected at the moment (and on errors)
*
* This returns a list of the selected items, in the order that
* they appear in the grid. This list is only valid as long as no
* more items are selected or unselected (or unselected implicitly
* by deletion). The list contains Gengrid item pointers as
* data, naturally.
*
* @see elm_gengrid_selected_item_get()
*
* @ingroup Gengrid
*/
EAPI const Eina_List *elm_gengrid_selected_items_get(const Evas_Object *obj);
/**
* Get a list of realized items in gengrid
*
* @param obj The gengrid object
* @return The list of realized items, nor NULL if none are realized.
*
* This returns a list of the realized items in the gengrid. The list
* contains gengrid item pointers. The list must be freed by the
* caller when done with eina_list_free(). The item pointers in the
* list are only valid so long as those items are not deleted or the
* gengrid is not deleted.
*
* @see elm_gengrid_realized_items_update()
*
* @ingroup Gengrid
*/
EAPI Eina_List *elm_gengrid_realized_items_get(const Evas_Object *obj);
/**
* Update the contents of all realized items.
*
* @param obj The gengrid object.
*
* This updates all realized items by calling all the item class functions again
* to get the contents, texts and states. Use this when the original
* item data has changed and the changes are desired to be reflected.
*
* To update just one item, use elm_gengrid_item_update().
*
* @see elm_gengrid_realized_items_get()
* @see elm_gengrid_item_update()
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_realized_items_update(Evas_Object *obj);
/**
* Get the first item in a given gengrid widget
*
* @param obj The gengrid object
* @return The first item's handle or @c NULL, if there are no
* items in @p obj (and on errors)
*
* This returns the first item in the @p obj's internal list of
* items.
*
* @see elm_gengrid_last_item_get()
*
* @ingroup Gengrid
*/
EAPI Elm_Object_Item *elm_gengrid_first_item_get(const Evas_Object *obj);
/**
* Get the last item in a given gengrid widget
*
* @param obj The gengrid object
* @return The last item's handle or @c NULL, if there are no
* items in @p obj (and on errors)
*
* This returns the last item in the @p obj's internal list of
* items.
*
* @see elm_gengrid_first_item_get()
*
* @ingroup Gengrid
*/
EAPI Elm_Object_Item *elm_gengrid_last_item_get(const Evas_Object *obj);
/**
* Set the scrollbar policy
*
* @param obj The gengrid object
* @param policy_h Horizontal scrollbar policy.
* @param policy_v Vertical scrollbar policy.
*
* This sets the scrollbar visibility policy for the given gengrid
* scroller. #ELM_SCROLLER_POLICY_AUTO means the scrollbar is made
* visible if it is needed, and otherwise kept
* hidden. #ELM_SCROLLER_POLICY_ON turns it on all the time, and
* #ELM_SCROLLER_POLICY_OFF always keeps it off. This applies
* respectively for the horizontal and vertical scrollbars. Default
* is #ELM_SCROLLER_POLICY_AUTO.
*
* @deprecated Use elm_scroller_policy_set() instead.
*
* @see elm_scroller_policy_set()
*
* @see elm_gengrid_scroller_policy_get()
*
* @ingroup Gengrid
*/
EINA_DEPRECATED EAPI void elm_gengrid_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v);
/**
* Get the scrollbar policy
*
* @param obj The gengrid object
* @param policy_h Pointer to store the horizontal scrollbar policy.
* @param policy_v Pointer to store the vertical scrollbar policy.
*
* @deprecated Use elm_scroller_policy_get() instead.
*
* @see elm_scroller_policy_get()
*
* @see elm_gengrid_scroller_policy_set()
*
* @ingroup Gengrid
*/
EINA_DEPRECATED EAPI void elm_gengrid_scroller_policy_get(const Evas_Object *obj, Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v);
/**
* Return how many items are currently in a list
*
* @param obj The list
* @return The total number of list items in the list
*
* This behavior is O(1) and includes items which may or may not be realized.
*
* @ingroup Gengrid
*/
EAPI unsigned int elm_gengrid_items_count(const Evas_Object *obj);
/**
* Set the size for the items of a given gengrid widget
*
* @param obj The gengrid object.
* @param w The items' width.
* @param h The items' height;
*
* A gengrid, after creation, has still no information on the size
* to give to each of its cells. So, you most probably will end up
* with squares one @ref Fingers "finger" wide, the default
* size. Use this function to force a custom size for you items,
* making them as big as you wish.
*
* @see elm_gengrid_item_size_get()
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_item_size_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h);
/**
* Get the size set for the items of a given gengrid widget
*
* @param obj The gengrid object.
* @param w Pointer to a variable where to store the items' width.
* @param h Pointer to a variable where to store the items' height.
*
* @note Use @c NULL pointers on the size values you're not
* interested in: they'll be ignored by the function.
*
* @see elm_gengrid_item_size_get() for more details
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_item_size_get(const Evas_Object *obj, Evas_Coord *w, Evas_Coord *h);
/**
* Set the size for the group items of a given gengrid widget
*
* @param obj The gengrid object.
* @param w The group items' width.
* @param h The group items' height;
*
* A gengrid, after creation, has still no information on the size
* to give to each of its cells. So, you most probably will end up
* with squares one @ref Fingers "finger" wide, the default
* size. Use this function to force a custom size for you group items,
* making them as big as you wish.
*
* @see elm_gengrid_group_item_size_get()
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_group_item_size_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h);
/**
* Get the size set for the group items of a given gengrid widget
*
* @param obj The gengrid object.
* @param w Pointer to a variable where to store the group items' width.
* @param h Pointer to a variable where to store the group items' height.
*
* @note Use @c NULL pointers on the size values you're not
* interested in: they'll be ignored by the function.
*
* @see elm_gengrid_group_item_size_get() for more details
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_group_item_size_get(const Evas_Object *obj, Evas_Coord *w, Evas_Coord *h);
/**
* Set the items grid's alignment within a given gengrid widget
*
* @param obj The gengrid object.
* @param align_x Alignment in the horizontal axis (0 <= align_x <= 1).
* @param align_y Alignment in the vertical axis (0 <= align_y <= 1).
*
* This sets the alignment of the whole grid of items of a gengrid
* within its given viewport. By default, those values are both
* 0.5, meaning that the gengrid will have its items grid placed
* exactly in the middle of its viewport.
*
* @note If given alignment values are out of the cited ranges,
* they'll be changed to the nearest boundary values on the valid
* ranges.
*
* @see elm_gengrid_align_get()
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_align_set(Evas_Object *obj, double align_x, double align_y);
/**
* Get the items grid's alignment values within a given gengrid
* widget
*
* @param obj The gengrid object.
* @param align_x Pointer to a variable where to store the
* horizontal alignment.
* @param align_y Pointer to a variable where to store the vertical
* alignment.
*
* @note Use @c NULL pointers on the alignment values you're not
* interested in: they'll be ignored by the function.
*
* @see elm_gengrid_align_set() for more details
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_align_get(const Evas_Object *obj, double *align_x, double *align_y);
/**
* Set whether a given gengrid widget is or not able have items
* @b reordered
*
* @param obj The gengrid object
* @param reorder_mode Use @c EINA_TRUE to turn reordering on,
* @c EINA_FALSE to turn it off
*
* If a gengrid is set to allow reordering, a click held for more
* than 0.5 over a given item will highlight it specially,
* signaling the gengrid has entered the reordering state. From
* that time on, the user will be able to, while still holding the
* mouse button down, move the item freely in the gengrid's
* viewport, replacing to said item to the locations it goes to.
* The replacements will be animated and, whenever the user
* releases the mouse button, the item being replaced gets a new
* definitive place in the grid.
*
* @see elm_gengrid_reorder_mode_get()
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_reorder_mode_set(Evas_Object *obj, Eina_Bool reorder_mode);
/**
* Get whether a given gengrid widget is or not able have items
* @b reordered
*
* @param obj The gengrid object
* @return @c EINA_TRUE, if reordering is on, @c EINA_FALSE if it's
* off
*
* @see elm_gengrid_reorder_mode_set() for more details
*
* @ingroup Gengrid
*/
EAPI Eina_Bool elm_gengrid_reorder_mode_get(const Evas_Object *obj);
/**
* Set a given gengrid widget's scrolling page size, relative to
* its viewport size.
*
* @param obj The gengrid object
* @param h_pagerel The horizontal page (relative) size
* @param v_pagerel The vertical page (relative) size
*
* The gengrid's scroller is capable of binding scrolling by the
* user to "pages". It means that, while scrolling and, specially
* after releasing the mouse button, the grid will @b snap to the
* nearest displaying page's area. When page sizes are set, the
* grid's continuous content area is split into (equal) page sized
* pieces.
*
* This function sets the size of a page <b>relatively to the
* viewport dimensions</b> of the gengrid, for each axis. A value
* @c 1.0 means "the exact viewport's size", in that axis, while @c
* 0.0 turns paging off in that axis. Likewise, @c 0.5 means "half
* a viewport". Sane usable values are, than, between @c 0.0 and @c
* 1.0. Values beyond those will make it behave behave
* inconsistently. If you only want one axis to snap to pages, use
* the value @c 0.0 for the other one.
*
* There is a function setting page size values in @b absolute
* values, too -- elm_gengrid_page_size_set(). Naturally, its use
* is mutually exclusive to this one.
*
* @deprecated Use elm_scroller_page_relative_set() instead.
*
* @see elm_scroller_page_relative_set()
*
* @ingroup Gengrid
*/
EINA_DEPRECATED EAPI void elm_gengrid_page_relative_set(Evas_Object *obj, double h_pagerel, double v_pagerel);
/**
* Get a given gengrid widget's scrolling page size, relative to
* its viewport size.
*
* @param obj The gengrid object
* @param h_pagerel Pointer to a variable where to store the
* horizontal page (relative) size
* @param v_pagerel Pointer to a variable where to store the
* vertical page (relative) size
*
* @deprecated Use elm_scroller_page_relative_get() instead.
*
* @see elm_scroller_page_relative_get()
*
* @ingroup Gengrid
*/
EINA_DEPRECATED EAPI void elm_gengrid_page_relative_get(const Evas_Object *obj, double *h_pagerel, double *v_pagerel);
/**
* Set a given gengrid widget's scrolling page size
*
* @param obj The gengrid object
* @param h_pagesize The horizontal page size, in pixels
* @param v_pagesize The vertical page size, in pixels
*
* The gengrid's scroller is capable of binding scrolling by the
* user to "pages". It means that, while scrolling and, specially
* after releasing the mouse button, the grid will @b snap to the
* nearest displaying page's area. When page sizes are set, the
* grid's continuous content area is split into (equal) page sized
* pieces.
*
* This function sets the size of a page of the gengrid, in pixels,
* for each axis. Sane usable values are, between @c 0 and the
* dimensions of @p obj, for each axis. Values beyond those will
* make it behave behave inconsistently. If you only want one axis
* to snap to pages, use the value @c 0 for the other one.
*
* There is a function setting page size values in @b relative
* values, too -- elm_gengrid_page_relative_set(). Naturally, its
* use is mutually exclusive to this one.
*
* @deprecated Use elm_scroller_page_size_set() instead.
*
* @see elm_scroller_page_size_set()
*
* @ingroup Gengrid
*/
EINA_DEPRECATED EAPI void elm_gengrid_page_size_set(Evas_Object *obj, Evas_Coord h_pagesize, Evas_Coord v_pagesize);
/**
* @brief Get gengrid current page number.
*
* @param obj The gengrid object
* @param h_pagenumber The horizontal page number
* @param v_pagenumber The vertical page number
*
* The page number starts from 0. 0 is the first page.
* Current page means the page which meet the top-left of the viewport.
* If there are two or more pages in the viewport, it returns the number of page
* which meet the top-left of the viewport.
*
* @deprecated Use elm_scroller_current_page_set() instead.
*
* @see elm_scroller_current_page_set()
*
* @see elm_gengrid_last_page_get()
* @see elm_gengrid_page_show()
* @see elm_gengrid_page_bring_in()
*/
EINA_DEPRECATED EAPI void elm_gengrid_current_page_get(const Evas_Object *obj, int *h_pagenumber, int *v_pagenumber);
/**
* @brief Get gengrid last page number.
*
* @param obj The gengrid object
* @param h_pagenumber The horizontal page number
* @param v_pagenumber The vertical page number
*
* The page number starts from 0. 0 is the first page.
* This returns the last page number among the pages.
*
* @deprecated Use elm_scroller_last_page_set() instead.
*
* @see elm_scroller_last_page_set()
*
* @see elm_gengrid_current_page_get()
* @see elm_gengrid_page_show()
* @see elm_gengrid_page_bring_in()
*/
EINA_DEPRECATED EAPI void elm_gengrid_last_page_get(const Evas_Object *obj, int *h_pagenumber, int *v_pagenumber);
/**
* Show a specific virtual region within the gengrid content object by page number.
*
* @param obj The gengrid object
* @param h_pagenumber The horizontal page number
* @param v_pagenumber The vertical page number
*
* 0, 0 of the indicated page is located at the top-left of the viewport.
* This will jump to the page directly without animation.
*
* Example of usage:
*
* @code
* sc = elm_gengrid_add(win);
* elm_gengrid_content_set(sc, content);
* elm_gengrid_page_relative_set(sc, 1, 0);
* elm_gengrid_current_page_get(sc, &h_page, &v_page);
* elm_gengrid_page_show(sc, h_page + 1, v_page);
* @endcode
*
* @see elm_gengrid_page_bring_in()
*/
EAPI void elm_gengrid_page_show(const Evas_Object *obj, int h_pagenumber, int v_pagenumber);
/**
* Show a specific virtual region within the gengrid content object by page number.
*
* @param obj The gengrid object
* @param h_pagenumber The horizontal page number
* @param v_pagenumber The vertical page number
*
* 0, 0 of the indicated page is located at the top-left of the viewport.
* This will slide to the page with animation.
*
* Example of usage:
*
* @code
* sc = elm_gengrid_add(win);
* elm_gengrid_content_set(sc, content);
* elm_gengrid_page_relative_set(sc, 1, 0);
* elm_gengrid_last_page_get(sc, &h_page, &v_page);
* elm_gengrid_page_bring_in(sc, h_page, v_page);
* @endcode
*
* @deprecated Use elm_scroller_page_bring_in() instead.
*
* @see elm_scroller_page_bring_in()
*
* @see elm_gengrid_page_show()
*/
EINA_DEPRECATED EAPI void elm_gengrid_page_bring_in(const Evas_Object *obj, int h_pagenumber, int v_pagenumber);
/**
* Set how the items grid's filled within a given gengrid widget
*
* @param obj The gengrid object.
* @param fill Filled if True
*
* This sets the fill state of the whole grid of items of a gengrid
* within its given viewport. By default, this value is false, meaning
* that if the first line of items grid's isn't filled, the items are
* centered with the alignment
*
* @see elm_gengrid_filled_get()
*
* @ingroup Gengrid
*
*/
EAPI void elm_gengrid_filled_set(Evas_Object *obj, Eina_Bool fill);
/**
* Get how the items grid's filled within a given gengrid widget
*
* @param obj The gengrid object.
* @return @c EINA_TRUE, if filled is on, @c EINA_FALSE if it's
* off
*
* @note Use @c NULL pointers on the alignment values you're not
* interested in: they'll be ignored by the function.
*
* @see elm_gengrid_align_set() for more details
*
* @ingroup Gengrid
*/
EAPI Eina_Bool elm_gengrid_filled_get(const Evas_Object *obj);
/**
* Set the gengrid select mode.
*
* @param obj The gengrid object
* @param mode The select mode
*
* elm_gengrid_select_mode_set() changes item select mode in the gengrid 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_gengrid_select_mode_get()
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_select_mode_set(Evas_Object *obj, Elm_Object_Select_Mode mode);
/**
* Get the gengrid select mode.
*
* @param obj The gengrid object
* @return The select mode
* (If getting mode is failed, it returns ELM_OBJECT_SELECT_MODE_MAX)
*
* @see elm_gengrid_select_mode_set()
*
* @ingroup Gengrid
*/
EAPI Elm_Object_Select_Mode elm_gengrid_select_mode_get(const Evas_Object *obj);
/**
* Set whether the gengrid items' should be highlighted when item selected.
*
* @param obj The gengrid object.
* @param highlight @c EINA_TRUE to enable highlight or @c EINA_FALSE to
* disable it.
*
* This will turn on/off the highlight effect when items are selected and
* they will or will not be highlighted. The selected and clicked
* callback functions will still be called.
*
* highlight is enabled by default.
*
* @see elm_gengrid_highlight_mode_get().
*
* @ingroup Gengrid
*/
EAPI void elm_gengrid_highlight_mode_set(Evas_Object *obj, Eina_Bool highlight);
/**
* Get whether the gengrid items' should be highlighted when item selected.
*
* @param obj The gengrid object.
* @return @c EINA_TRUE means items can be highlighted. @c EINA_FALSE indicates
* they can't. If @p obj is @c NULL, @c EINA_FALSE is returned.
*
* @see elm_gengrid_highlight_mode_set() for details.
*
* @ingroup Gengrid
*/
EAPI Eina_Bool elm_gengrid_highlight_mode_get(const Evas_Object *obj);
/**
* Get the nth item, in a given gengrid widget, placed at position @p nth, in
* its internal items list
*
* @param obj The gengrid object
* @param nth The number of the item to grab (0 being the first)
*
* @return The item stored in @p obj at position @p nth or @c NULL, if there's
* no item with that index (and on errors)
*
* @ingroup Genilst
* @since 1.8
*/
EAPI Elm_Object_Item *elm_gengrid_nth_item_get(const Evas_Object *obj, unsigned int nth);

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,824 @@
#define ELM_GENLIST_ITEM_CLASS_VERSION ELM_GEN_ITEM_CLASS_VERSION
#define ELM_GENLIST_ITEM_CLASS_HEADER ELM_GEN_ITEM_CLASS_HEADER
/**
* Defines if the item is of any special type (has subitems or it's the
* index of a group), or is just a simple item.
*
* @ingroup Genlist
*/
typedef enum
{
ELM_GENLIST_ITEM_NONE = 0, /**< simple item */
ELM_GENLIST_ITEM_TREE = (1 << 0), /**< this may be expanded and have child items. */
ELM_GENLIST_ITEM_GROUP = (1 << 1), /**< an index item of a group of items. this item can have child items. */
ELM_GENLIST_ITEM_MAX = (1 << 2)
} Elm_Genlist_Item_Type;
/**
* Defines the type of the item part
* Used while updating item's parts
* It can be used at updating multi fields.
*
* @ingroup Genlist
*/
typedef enum
{
ELM_GENLIST_ITEM_FIELD_ALL = 0,
ELM_GENLIST_ITEM_FIELD_TEXT = (1 << 0),
ELM_GENLIST_ITEM_FIELD_CONTENT = (1 << 1),
ELM_GENLIST_ITEM_FIELD_STATE = (1 << 2)
} Elm_Genlist_Item_Field_Type;
/**
* Defines where to position the item in the genlist.
*
* @ingroup Genlist
*/
typedef enum
{
ELM_GENLIST_ITEM_SCROLLTO_NONE = 0, /**< no scrollto */
ELM_GENLIST_ITEM_SCROLLTO_IN = (1 << 0), /**< to the nearest viewport */
ELM_GENLIST_ITEM_SCROLLTO_TOP = (1 << 1), /**< to the top of viewport */
ELM_GENLIST_ITEM_SCROLLTO_MIDDLE = (1 << 2) /**< to the middle of viewport */
} Elm_Genlist_Item_Scrollto_Type;
/**
* @see Elm_Gen_Item_Class
*/
typedef Elm_Gen_Item_Class Elm_Genlist_Item_Class;
/**
* @see Elm_Gen_Item_Text_Get_Cb
*/
typedef Elm_Gen_Item_Text_Get_Cb Elm_Genlist_Item_Text_Get_Cb;
/**
* @see Elm_Gen_Item_Content_Get_Cb
*/
typedef Elm_Gen_Item_Content_Get_Cb Elm_Genlist_Item_Content_Get_Cb;
/**
* @see Elm_Gen_Item_State_Get_Cb
*/
typedef Elm_Gen_Item_State_Get_Cb Elm_Genlist_Item_State_Get_Cb;
/**
* @see Elm_Gen_Item_Del_Cb
*/
typedef Elm_Gen_Item_Del_Cb Elm_Genlist_Item_Del_Cb;
/**
* Get the @b next item in a genlist widget's internal list of items,
* given a handle to one of those items.
*
* @param it The genlist item to fetch next from
* @return The item after @p item, or @c NULL if there's none (and
* on errors)
*
* This returns the item placed after the @p item, on the container
* genlist.
*
* @see elm_genlist_item_prev_get()
*
* @ingroup Genlist
*/
EAPI Elm_Object_Item *elm_genlist_item_next_get(const Elm_Object_Item *it);
/**
* Get the @b previous item in a genlist widget's internal list of items,
* given a handle to one of those items.
*
* @param it The genlist item to fetch previous from
* @return The item before @p item, or @c NULL if there's none (and
* on errors)
*
* This returns the item placed before the @p item, on the container
* genlist.
*
* @see elm_genlist_item_next_get()
*
* @ingroup Genlist
*/
EAPI Elm_Object_Item *elm_genlist_item_prev_get(const Elm_Object_Item *it);
/**
* Set whether a given genlist item is selected or not
*
* @param it The item
* @param selected Use @c EINA_TRUE, to make it selected, @c
* EINA_FALSE to make it unselected
*
* This sets the selected state of an item. If multi selection is
* not enabled on the containing genlist and @p selected is @c
* EINA_TRUE, any other previously selected items will get
* unselected in favor of this new one.
*
* @see elm_genlist_item_selected_get()
*
* @ingroup Genlist
*/
EAPI void elm_genlist_item_selected_set(Elm_Object_Item *it, Eina_Bool selected);
/**
* Get whether a given genlist item is selected or not
*
* @param it The item
* @return @c EINA_TRUE, if it's selected, @c EINA_FALSE otherwise
*
* @see elm_genlist_item_selected_set() for more details
*
* @ingroup Genlist
*/
EAPI Eina_Bool elm_genlist_item_selected_get(const Elm_Object_Item *it);
/**
* Show the portion of a genlist's internal list containing a given
* item, immediately.
*
* @param it The item to display
* @param type The position to bring in, the given item to.
* @ref Elm_Genlist_Item_Scrollto_Type
*
* This causes genlist to jump to the given item @p it and show it (by
* jumping to that position), if it is not fully visible.
*
* @see elm_genlist_item_bring_in()
*
* @ingroup Genlist
*/
EAPI void elm_genlist_item_show(Elm_Object_Item *it, Elm_Genlist_Item_Scrollto_Type type);
/**
* Animatedly bring in, to the visible are of a genlist, a given
* item on it.
*
* @param it The item to display
* @param type The position to bring in, the given item to.
* @ref Elm_Genlist_Item_Scrollto_Type
*
* This causes genlist to jump to the given item @p it and show it (by
* animatedly scrolling), if it is not fully visible.
* This may use animation and take a some time to do so.
*
* @see elm_genlist_item_show()
*
* @ingroup Genlist
*/
EAPI void elm_genlist_item_bring_in(Elm_Object_Item *it, Elm_Genlist_Item_Scrollto_Type type);
/**
* Update all the contents of an item
*
* @param it The item
*
* This updates an item by calling all the item class functions again
* to get the contents, texts and states. Use this when the original
* item data has changed and the changes are desired to be reflected.
*
* Use elm_genlist_realized_items_update() to update all already realized
* items.
*
* @note This also updates internal genlist item object(edje_object as of now).
* So when this is called between mouse down and mouse up, mouse up event will
* be ignored because edje_object is deleted and created again by this API. If
* you want to avoid this, please use @ref elm_genlist_item_fields_update.
*
* @see elm_genlist_realized_items_update()
*
* @ingroup Genlist
*/
EAPI void elm_genlist_item_update(Elm_Object_Item *it);
/**
* Update the item class of an item
*
* @param it The item
* @param itc The item class for the item
*
* This sets another class of the item, changing the way that it is
* displayed. After changing the item class, elm_genlist_item_update() is
* called on the item @p it.
*
* @ingroup Genlist
*/
EAPI void elm_genlist_item_item_class_update(Elm_Object_Item *it, const Elm_Genlist_Item_Class *itc);
/**
* Get the Genlist Item class for the given Genlist Item.
*
* @param it The genlist item
*
* This returns the Genlist_Item_Class for the given item. It can be used to
* examine the function pointers and item_style.
*
* @ingroup Genlist
*/
EAPI const Elm_Genlist_Item_Class *elm_genlist_item_item_class_get(const Elm_Object_Item *it);
/**
* Get the index of the item. It is only valid once displayed.
*
* @param it a genlist item
* @return the position inside the list of item.
*
* @ingroup Genlist
*/
EAPI int elm_genlist_item_index_get(const Elm_Object_Item *it);
/**
* Create a new genlist item class in a given genlist widget.
*
* @return New allocated a genlist item class.
*
* This adds genlist item class for the genlist widget. When adding an item,
* genlist_item_{append, prepend, insert} function needs item class of the item.
* Given callback parameters are used at retrieving {text, content} of
* added item. Set as NULL if it's not used.
* If there's no available memory, return can be NULL.
*
* @see elm_genlist_item_class_free()
* @see elm_genlist_item_append()
*
* @ingroup Genlist
*/
EAPI Elm_Genlist_Item_Class *elm_genlist_item_class_new(void);
/**
* Remove an item class in a given genlist widget.
*
* @param itc The itc to be removed.
*
* This removes item class from the genlist widget.
* Whenever it has no more references to it, item class is going to be freed.
* Otherwise it just decreases its reference count.
*
* @see elm_genlist_item_class_new()
* @see elm_genlist_item_class_ref()
* @see elm_genlist_item_class_unref()
*
* @ingroup Genlist
*/
EAPI void elm_genlist_item_class_free(Elm_Genlist_Item_Class *itc);
/**
* Increments object reference count for the item class.
*
* @param itc The given item class object to reference
*
* This API just increases its reference count for item class management.
*
* @see elm_genlist_item_class_unref()
*
* @ingroup Genlist
*/
EAPI void elm_genlist_item_class_ref(Elm_Genlist_Item_Class *itc);
/**
* Decrements object reference count for the item class.
*
* @param itc The given item class object to reference
*
* This API just decreases its reference count for item class management.
* Reference count can't be less than 0.
*
* @see elm_genlist_item_class_ref()
* @see elm_genlist_item_class_free()
*
* @ingroup Genlist
*/
EAPI void elm_genlist_item_class_unref(Elm_Genlist_Item_Class *itc);
/**
* Set the text to be shown in a given genlist item's tooltips.
*
* @param it The genlist item
* @param text The text to set in the content
*
* This call will setup the text to be used as tooltip to that item
* (analogous to elm_object_tooltip_text_set(), but being item
* tooltips with higher precedence than object tooltips). It can
* have only one tooltip at a time, so any previous tooltip data
* will get removed.
*
* In order to set a content or something else as a tooltip, look at
* elm_genlist_item_tooltip_content_cb_set().
*
* @ingroup Genlist
*/
EAPI void elm_genlist_item_tooltip_text_set(Elm_Object_Item *it, const char *text);
/**
* Set the content to be shown in a given genlist item's tooltips
*
* @param it The genlist item.
* @param func The function returning 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 @p func, the tooltip is unset with
* elm_genlist_item_tooltip_unset() or the owner @p item
* dies. This callback receives as its first parameter the
* given @p data, being @c event_info the item handle.
*
* This call will setup the tooltip's contents to @p item
* (analogous to elm_object_tooltip_content_cb_set(), but being
* item tooltips with higher precedence than object tooltips). It
* can have only one tooltip at a time, so any previous tooltip
* content will get removed. @p func (with @p data) will be called
* every time Elementary needs to show the tooltip and it should
* return a valid Evas object, which will be fully managed by the
* tooltip system, getting deleted when the tooltip is gone.
*
* In order to set just a text as a tooltip, look at
* elm_genlist_item_tooltip_text_set().
*
* @ingroup Genlist
*/
EAPI void elm_genlist_item_tooltip_content_cb_set(Elm_Object_Item *it, Elm_Tooltip_Item_Content_Cb func, const void *data, Evas_Smart_Cb del_cb);
/**
* Unset a tooltip from a given genlist item
*
* @param it genlist item to remove a previously set tooltip from.
*
* This call removes any tooltip set on @p item. The callback
* provided as @c del_cb to
* elm_genlist_item_tooltip_content_cb_set() will be called to
* notify it is not used anymore (and have resources cleaned, if
* need be).
*
* @see elm_genlist_item_tooltip_content_cb_set()
*
* @ingroup Genlist
*/
EAPI void elm_genlist_item_tooltip_unset(Elm_Object_Item *it);
/**
* Set a different @b style for a given genlist item's tooltip.
*
* @param it genlist item with tooltip set
* @param style the <b>theme style</b> to use on tooltips (e.g. @c
* "default", @c "transparent", etc)
*
* Tooltips can have <b>alternate styles</b> to be displayed on,
* which are defined by the theme set on Elementary. This function
* works analogously as elm_object_tooltip_style_set(), but here
* applied only to genlist item objects. The default style for
* tooltips is @c "default".
*
* @note before you set a style you should define a tooltip with
* elm_genlist_item_tooltip_content_cb_set() or
* elm_genlist_item_tooltip_text_set()
*
* @see elm_genlist_item_tooltip_style_get()
*
* @ingroup Genlist
*/
EAPI void elm_genlist_item_tooltip_style_set(Elm_Object_Item *it, const char *style);
/**
* Get the style set a given genlist item's tooltip.
*
* @param it genlist item with tooltip already set on.
* @return style the theme style in use, which defaults to
* "default". If the object does not have a tooltip set,
* then @c NULL is returned.
*
* @see elm_genlist_item_tooltip_style_set() for more details
*
* @ingroup Genlist
*/
EAPI const char *elm_genlist_item_tooltip_style_get(const Elm_Object_Item *it);
/**
* @brief Disable size restrictions on an object's tooltip
* @param it The tooltip's anchor object
* @param disable If EINA_TRUE, size restrictions are disabled
* @return EINA_FALSE on failure, EINA_TRUE on success
*
* This function allows a tooltip to expand beyond its parent window's canvas.
* It will instead be limited only by the size of the display.
*/
EAPI Eina_Bool elm_genlist_item_tooltip_window_mode_set(Elm_Object_Item *it, Eina_Bool disable);
/**
* @brief Retrieve size restriction state of an object's tooltip
* @param it The tooltip's anchor object
* @return If EINA_TRUE, size restrictions are disabled
*
* This function returns whether a tooltip is allowed to expand beyond
* its parent window's canvas.
* It will instead be limited only by the size of the display.
*/
EAPI Eina_Bool elm_genlist_item_tooltip_window_mode_get(const Elm_Object_Item *it);
/**
* Set the type of mouse pointer/cursor decoration to be shown,
* when the mouse pointer is over the given genlist widget item
*
* @param it genlist 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 @p
* item will always show cursor @p type.
*
* 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_genlist_item_cursor_get()
* @see elm_genlist_item_cursor_unset()
*
* @ingroup Genlist
*/
EAPI void elm_genlist_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 genlist widget item
*
* @param it genlist 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_genlist_item_cursor_set() for more details
* @see elm_genlist_item_cursor_unset()
*
* @ingroup Genlist
*/
EAPI const char *elm_genlist_item_cursor_get(const Elm_Object_Item *it);
/**
* Unset any custom mouse pointer/cursor decoration set to be
* shown, when the mouse pointer is over the given genlist widget
* item, thus making it show the @b default cursor again.
*
* @param it a genlist 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_genlist_item_cursor_set() for more details
*
* @ingroup Genlist
*/
EAPI void elm_genlist_item_cursor_unset(Elm_Object_Item *it);
/**
* Set a different @b style for a given custom cursor set for a
* genlist item.
*
* @param it genlist item with custom cursor set
* @param style the <b>theme style</b> to use (e.g. @c "default",
* @c "transparent", etc)
*
* This function only makes sense when one is using custom mouse
* cursor decorations <b>defined in a theme file</b> , which can
* have, given a cursor name/type, <b>alternate styles</b> on
* it. It works analogously as elm_object_cursor_style_set(), but
* here applied only to genlist item objects.
*
* @warning Before you set a cursor style you should have defined a
* custom cursor previously on the item, with
* elm_genlist_item_cursor_set()
*
* @see elm_genlist_item_cursor_engine_only_set()
* @see elm_genlist_item_cursor_style_get()
*
* @ingroup Genlist
*/
EAPI void elm_genlist_item_cursor_style_set(Elm_Object_Item *it, const char *style);
/**
* Get the current @b style set for a given genlist item's custom
* cursor
*
* @param it genlist 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.
*
* @see elm_genlist_item_cursor_style_set() for more details
*
* @ingroup Genlist
*/
EAPI const char *elm_genlist_item_cursor_style_get(const Elm_Object_Item *it);
/**
* Set if the (custom) cursor for a given genlist item should be
* searched in its theme, also, or should only rely on the
* rendering engine.
*
* @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.
*
* @note This call is of use only if you've set a custom cursor
* for genlist items, with elm_genlist_item_cursor_set().
*
* @note By default, cursors will only be looked for between those
* provided by the rendering engine.
*
* @ingroup Genlist
*/
EAPI void elm_genlist_item_cursor_engine_only_set(Elm_Object_Item *it, Eina_Bool engine_only);
/**
* Get if the (custom) cursor for a given genlist item is being
* searched in its theme, also, or is only relying on the rendering
* engine.
*
* @param it a genlist 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.
*
* @see elm_genlist_item_cursor_engine_only_set(), for more details
*
* @ingroup Genlist
*/
EAPI Eina_Bool elm_genlist_item_cursor_engine_only_get(const Elm_Object_Item *it);
/**
* Get the parent item of the given item
*
* @param it The item
* @return The parent of the item or @c NULL if it has no parent.
*
* This returns the item that was specified as parent of the item @p it on
* elm_genlist_item_append() and insertion related functions.
*
* @ingroup Genlist
*/
EAPI Elm_Object_Item *elm_genlist_item_parent_get(const Elm_Object_Item *it);
/**
* Remove all sub-items (children) of the given item
*
* @param it The item
*
* This removes all items that are children (and their descendants) of the
* given item @p it.
*
* @see elm_genlist_clear()
* @see elm_object_item_del()
*
* @ingroup Genlist
*/
EAPI void elm_genlist_item_subitems_clear(Elm_Object_Item *it);
/**
* Sets the expanded state of an item.
*
* @param it The item
* @param expanded The expanded state (@c EINA_TRUE expanded, @c EINA_FALSE not expanded).
*
* This function flags the item of type #ELM_GENLIST_ITEM_TREE as
* expanded or not.
*
* The theme will respond to this change visually, and a signal "expanded" or
* "contracted" will be sent from the genlist with a pointer to the item that
* has been expanded/contracted.
*
* Calling this function won't show or hide any child of this item (if it is
* a parent). You must manually delete and create them on the callbacks of
* the "expanded" or "contracted" signals.
*
* @see elm_genlist_item_expanded_get()
*
* @ingroup Genlist
*/
EAPI void elm_genlist_item_expanded_set(Elm_Object_Item *it, Eina_Bool expanded);
/**
* Get the expanded state of an item
*
* @param it The item
* @return The expanded state
*
* This gets the expanded state of an item.
*
* @see elm_genlist_item_expanded_set()
*
* @ingroup Genlist
*/
EAPI Eina_Bool elm_genlist_item_expanded_get(const Elm_Object_Item *it);
/**
* Get the depth of expanded item
*
* @param it The genlist item object
* @return The depth of expanded item
*
* @ingroup Genlist
*/
EAPI int elm_genlist_item_expanded_depth_get(const Elm_Object_Item *it);
/**
* Unset all contents fetched by the item class
*
* @param it The item
* @param l The contents list to return
*
* This instructs genlist to release references to contents in the item,
* meaning that they will no longer be managed by genlist and are
* floating "orphans" that can be re-used elsewhere if the user wants
* to.
*
* @ingroup Genlist
*/
EAPI void elm_genlist_item_all_contents_unset(Elm_Object_Item *it, Eina_List **l);
/**
* Promote an item to the top of the list
*
* @param it The item
*
* @ingroup Genlist
*/
EAPI void elm_genlist_item_promote(Elm_Object_Item *it);
/**
* Demote an item to the end of the list
*
* @param it The item
*
* @ingroup Genlist
*/
EAPI void elm_genlist_item_demote(Elm_Object_Item *it);
/**
* Update the part of an item
*
* @param it The item
* @param parts The name of item's part
* @param itf The type of item's part type
*
* This updates an item's part by calling item's fetching functions again
* to get the contents, texts and states. Use this when the original
* item data has changed and the changes are desired to be reflected.
* Second parts argument is used for globbing to match '*', '?', and '.'
* It can be used at updating multi fields.
*
* Use elm_genlist_realized_items_update() to update an item's all
* property.
*
* @see elm_genlist_item_update()
*
* @ingroup Genlist
*/
EAPI void elm_genlist_item_fields_update(Elm_Object_Item *it, const char *parts, Elm_Genlist_Item_Field_Type itf);
/**
* Activate a genlist mode on an item
*
* @param it The genlist item
* @param decorate_it_type Mode name
* @param decorate_it_set Boolean to define set or unset mode.
*
* A genlist mode is a different way of selecting an item. Once a mode is
* activated on an item, any other selected item is immediately unselected.
* This feature provides an easy way of implementing a new kind of animation
* for selecting an item, without having to entirely rewrite the item style
* theme. However, the elm_genlist_selected_* API can't be used to get what
* item is activate for a mode.
*
* The current item style will still be used, but applying a genlist mode to
* an item will select it using a different kind of animation.
*
* The current active item for a mode can be found by
* elm_genlist_decorated_item_get().
*
* The characteristics of genlist mode are:
* - Only one mode can be active at any time, and for only one item.
* - Genlist handles deactivating other items when one item is activated.
* - A mode is defined in the genlist theme (edc), and more modes can easily
* be added.
* - A mode style and the genlist item style are different things. They
* can be combined to provide a default style to the item, with some kind
* of animation for that item when the mode is activated.
*
* When a mode is activated on an item, a new view for that item is created.
* The theme of this mode defines the animation that will be used to transit
* the item from the old view to the new view. This second (new) view will be
* active for that item while the mode is active on the item, and will be
* destroyed after the mode is totally deactivated from that item.
*
* @see elm_genlist_mode_get()
* @see elm_genlist_decorated_item_get()
*
* @ingroup Genlist
*/
EAPI void elm_genlist_item_decorate_mode_set(Elm_Object_Item *it, const char *decorate_it_type, Eina_Bool decorate_it_set);
/**
* Get the item's decorate mode.
*
* @param it The genlist item
*
* This function just returns the name of the item's decorate mode.
*
* @see elm_genlist_item_decorate_mode_set()
* @see elm_genlist_decorated_item_get()
*
* @ingroup Genlist
*/
EAPI const char *elm_genlist_item_decorate_mode_get(const Elm_Object_Item *it);
/**
* Get the Item's Type
*
* @param it The genlist item
* @return The item type.
*
* This function returns the item's type. Normally the item's type.
* If it failed, return value is ELM_GENLIST_ITEM_MAX
*
* @ingroup Genlist
*/
EAPI Elm_Genlist_Item_Type elm_genlist_item_type_get(const Elm_Object_Item *it);
/**
* Set the flip state of a given genlist item.
*
* @param it The genlist item object
* @param flip The flip mode
* (EINA_TRUE = on, EINA_FALSE = off)
*
* This function sets the flip state of a given genlist item.
* Flip mode overrides current item object.
* It can be used for on-the-fly item replace.
* Flip mode can be used with/without decorate mode.
*
* @see elm_genlist_item_flip_get()
*
* @ingroup Genlist
*/
EAPI void elm_genlist_item_flip_set(Elm_Object_Item *it, Eina_Bool flip);
/**
* Get the flip state of a given genlist item.
*
* @param it The genlist item object
*
* This function returns the flip state of a given genlist item.
* If the parameter is invalid, it returns EINA_FALSE.
*
* @see elm_genlist_item_flip_set()
*
* @ingroup Genlist
*/
EAPI Eina_Bool elm_genlist_item_flip_get(const Elm_Object_Item *it);
/**
* Set the genlist item's select mode.
*
* @param it The genlist item object
* @param mode The select mode
*
* elm_genlist_select_mode_set() changes item's select mode.
* - ELM_OBJECT_SELECT_MODE_DEFAULT : The item 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 the item
* entirely and they will neither appear selected nor call selected
* callback functions.
* - ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY : This will apply no-finger-size rule
* with ELM_OBJECT_SELECT_MODE_NONE. No-finger-size rule makes an item can be
* smaller than lower limit. Clickable objects should be bigger than
* human touch point device (your finger) for some touch or
* small screen devices. So it is enabled, the item can be shrink than
* predefined finger-size value. And the item will be updated.
*
* @see elm_genlist_item_select_mode_get()
*
* @ingroup Genlist
*/
EAPI void
elm_genlist_item_select_mode_set(Elm_Object_Item *it,
Elm_Object_Select_Mode mode);
/**
* Get the genlist item's select mode.
*
* @param it The genlist item object
* @return The select mode
* (If getting mode is failed, it returns ELM_OBJECT_SELECT_MODE_MAX)
*
* @see elm_genlist_item_select_mode_set()
*
* @ingroup Genlist
*/
EAPI Elm_Object_Select_Mode
elm_genlist_item_select_mode_get(const Elm_Object_Item *it);

View File

@ -0,0 +1,508 @@
#define ELM_OBJ_GENLIST_PAN_CLASS elm_obj_genlist_pan_class_get()
const Eo_Class *elm_obj_genlist_pan_class_get(void) EINA_CONST;
#define ELM_OBJ_GENLIST_CLASS elm_obj_genlist_class_get()
const Eo_Class *elm_obj_genlist_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_GENLIST_BASE_ID;
enum
{
ELM_OBJ_GENLIST_SUB_ID_ITEMS_COUNT,
ELM_OBJ_GENLIST_SUB_ID_ITEM_APPEND,
ELM_OBJ_GENLIST_SUB_ID_ITEM_PREPEND,
ELM_OBJ_GENLIST_SUB_ID_ITEM_INSERT_AFTER,
ELM_OBJ_GENLIST_SUB_ID_ITEM_INSERT_BEFORE,
ELM_OBJ_GENLIST_SUB_ID_ITEM_SORTED_INSERT,
ELM_OBJ_GENLIST_SUB_ID_CLEAR,
ELM_OBJ_GENLIST_SUB_ID_MULTI_SELECT_SET,
ELM_OBJ_GENLIST_SUB_ID_MULTI_SELECT_GET,
ELM_OBJ_GENLIST_SUB_ID_SELECTED_ITEM_GET,
ELM_OBJ_GENLIST_SUB_ID_SELECTED_ITEMS_GET,
ELM_OBJ_GENLIST_SUB_ID_REALIZED_ITEMS_GET,
ELM_OBJ_GENLIST_SUB_ID_AT_XY_ITEM_GET,
ELM_OBJ_GENLIST_SUB_ID_FIRST_ITEM_GET,
ELM_OBJ_GENLIST_SUB_ID_LAST_ITEM_GET,
ELM_OBJ_GENLIST_SUB_ID_MODE_SET,
ELM_OBJ_GENLIST_SUB_ID_MODE_GET,
ELM_OBJ_GENLIST_SUB_ID_HOMOGENEOUS_SET,
ELM_OBJ_GENLIST_SUB_ID_HOMOGENEOUS_GET,
ELM_OBJ_GENLIST_SUB_ID_BLOCK_COUNT_SET,
ELM_OBJ_GENLIST_SUB_ID_BLOCK_COUNT_GET,
ELM_OBJ_GENLIST_SUB_ID_LONGPRESS_TIMEOUT_SET,
ELM_OBJ_GENLIST_SUB_ID_LONGPRESS_TIMEOUT_GET,
ELM_OBJ_GENLIST_SUB_ID_REALIZED_ITEMS_UPDATE,
ELM_OBJ_GENLIST_SUB_ID_DECORATED_ITEM_GET,
ELM_OBJ_GENLIST_SUB_ID_DECORATE_MODE_GET,
ELM_OBJ_GENLIST_SUB_ID_DECORATE_MODE_SET,
ELM_OBJ_GENLIST_SUB_ID_REORDER_MODE_SET,
ELM_OBJ_GENLIST_SUB_ID_REORDER_MODE_GET,
ELM_OBJ_GENLIST_SUB_ID_SELECT_MODE_SET,
ELM_OBJ_GENLIST_SUB_ID_SELECT_MODE_GET,
ELM_OBJ_GENLIST_SUB_ID_HIGHLIGHT_MODE_SET,
ELM_OBJ_GENLIST_SUB_ID_HIGHLIGHT_MODE_GET,
ELM_OBJ_GENLIST_SUB_ID_TREE_EFFECT_ENABLED_SET,
ELM_OBJ_GENLIST_SUB_ID_TREE_EFFECT_ENABLED_GET,
ELM_OBJ_GENLIST_SUB_ID_LAST
};
#define ELM_OBJ_GENLIST_ID(sub_id) (ELM_OBJ_GENLIST_BASE_ID + sub_id)
/**
* @def elm_obj_genlist_items_count
* @since 1.8
*
* Return how many items are currently in a list
*
* @param[out] ret
*
* @see elm_genlist_items_count
*/
#define elm_obj_genlist_items_count(ret) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_ITEMS_COUNT), EO_TYPECHECK(unsigned int *, ret)
/**
* @def elm_obj_genlist_item_append
* @since 1.8
*
* Append a new item in a given genlist widget.
*
* @param[in] itc
* @param[in] data
* @param[in] parent
* @param[in] type
* @param[in] func
* @param[in] func_data
* @param[out] ret
*
* @see elm_genlist_item_append
*/
#define elm_obj_genlist_item_append(itc, data, parent, type, func, func_data, ret) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_ITEM_APPEND), EO_TYPECHECK(const Elm_Genlist_Item_Class *, itc), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Elm_Object_Item *, parent), EO_TYPECHECK(Elm_Genlist_Item_Type, type), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(const void *, func_data), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_genlist_item_prepend
* @since 1.8
*
* Prepend a new item in a given genlist widget.
*
* @param[in] itc
* @param[in] data
* @param[in] parent
* @param[in] type
* @param[in] func
* @param[in] func_data
* @param[out] ret
*
* @see elm_genlist_item_prepend
*/
#define elm_obj_genlist_item_prepend(itc, data, parent, type, func, func_data, ret) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_ITEM_PREPEND), EO_TYPECHECK(const Elm_Genlist_Item_Class *, itc), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Elm_Object_Item *, parent), EO_TYPECHECK(Elm_Genlist_Item_Type, type), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(const void *, func_data), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_genlist_item_insert_after
* @since 1.8
*
* Insert an item after another in a genlist widget
*
* @param[in] itc
* @param[in] data
* @param[in] parent
* @param[in] after_it
* @param[in] type
* @param[in] func
* @param[in] func_data
* @param[out] ret
*
* @see elm_genlist_item_insert_after
*/
#define elm_obj_genlist_item_insert_after(itc, data, parent, after_it, type, func, func_data, ret) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_ITEM_INSERT_AFTER), EO_TYPECHECK(const Elm_Genlist_Item_Class *, itc), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Elm_Object_Item *, parent), EO_TYPECHECK(Elm_Object_Item *, after_it), EO_TYPECHECK(Elm_Genlist_Item_Type, type), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(const void *, func_data), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_genlist_item_insert_before
* @since 1.8
*
* Insert an item before another in a genlist widget
*
* @param[in] itc
* @param[in] data
* @param[in] parent
* @param[in] before_it
* @param[in] type
* @param[in] func
* @param[in] func_data
* @param[out] ret
*
* @see elm_genlist_item_insert_before
*/
#define elm_obj_genlist_item_insert_before(itc, data, parent, before_it, type, func, func_data, ret) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_ITEM_INSERT_BEFORE), EO_TYPECHECK(const Elm_Genlist_Item_Class *, itc), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Elm_Object_Item *, parent), EO_TYPECHECK(Elm_Object_Item *, before_it), EO_TYPECHECK(Elm_Genlist_Item_Type, type), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(const void *, func_data), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_genlist_item_sorted_insert
* @since 1.8
*
* Insert a new item into the sorted genlist object
*
* @param[in] itc
* @param[in] data
* @param[in] parent
* @param[in] type
* @param[in] comp
* @param[in] func
* @param[in] func_data
* @param[out] ret
*
* @see elm_genlist_item_sorted_insert
*/
#define elm_obj_genlist_item_sorted_insert(itc, data, parent, type, comp, func, func_data, ret) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_ITEM_SORTED_INSERT), EO_TYPECHECK(const Elm_Genlist_Item_Class *, itc), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Elm_Object_Item *, parent), EO_TYPECHECK(Elm_Genlist_Item_Type, type), EO_TYPECHECK(Eina_Compare_Cb, comp), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(const void *, func_data), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_genlist_clear
* @since 1.8
*
* Remove all items from a given genlist widget.
*
*
* @see elm_genlist_clear
*/
#define elm_obj_genlist_clear() ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_CLEAR)
/**
* @def elm_obj_genlist_multi_select_set
* @since 1.8
*
* Enable or disable multi-selection in the genlist
*
* @param[in] multi
*
* @see elm_genlist_multi_select_set
*/
#define elm_obj_genlist_multi_select_set(multi) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_MULTI_SELECT_SET), EO_TYPECHECK(Eina_Bool, multi)
/**
* @def elm_obj_genlist_multi_select_get
* @since 1.8
*
* Gets if multi-selection in genlist is enabled or disabled.
*
* @param[out] ret
*
* @see elm_genlist_multi_select_get
*/
#define elm_obj_genlist_multi_select_get(ret) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_MULTI_SELECT_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_genlist_selected_item_get
* @since 1.8
*
* Get the selected item in the genlist.
*
* @param[out] ret
*
* @see elm_genlist_selected_item_get
*/
#define elm_obj_genlist_selected_item_get(ret) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_SELECTED_ITEM_GET), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_genlist_selected_items_get
* @since 1.8
*
* Get a list of selected items in the genlist.
*
* @param[out] ret
*
* @see elm_genlist_selected_items_get
*/
#define elm_obj_genlist_selected_items_get(ret) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_SELECTED_ITEMS_GET), EO_TYPECHECK(const Eina_List **, ret)
/**
* @def elm_obj_genlist_realized_items_get
* @since 1.8
*
* Get a list of realized items in genlist
*
* @param[out] ret
*
* @see elm_genlist_realized_items_get
*/
#define elm_obj_genlist_realized_items_get(ret) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_REALIZED_ITEMS_GET), EO_TYPECHECK(Eina_List **, ret)
/**
* @def elm_obj_genlist_at_xy_item_get
* @since 1.8
*
* Get the item that is at the x, y canvas coords.
*
* @param[in] x
* @param[in] y
* @param[out] posret
* @param[out] ret
*
* @see elm_genlist_at_xy_item_get
*/
#define elm_obj_genlist_at_xy_item_get(x, y, posret, ret) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_AT_XY_ITEM_GET), EO_TYPECHECK(Evas_Coord, x), EO_TYPECHECK(Evas_Coord, y), EO_TYPECHECK(int *, posret), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_genlist_first_item_get
* @since 1.8
*
* Get the first item in the genlist
*
* @param[out] ret
*
* @see elm_genlist_first_item_get
*/
#define elm_obj_genlist_first_item_get(ret) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_FIRST_ITEM_GET), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_genlist_last_item_get
* @since 1.8
*
* Get the last item in the genlist
*
* @param[out] ret
*
* @see elm_genlist_last_item_get
*/
#define elm_obj_genlist_last_item_get(ret) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_LAST_ITEM_GET), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_genlist_mode_set
* @since 1.8
*
* This sets the horizontal stretching mode.
*
* @param[in] mode
*
* @see elm_genlist_mode_set
*/
#define elm_obj_genlist_mode_set(mode) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_MODE_SET), EO_TYPECHECK(Elm_List_Mode, mode)
/**
* @def elm_obj_genlist_mode_get
* @since 1.8
*
* Gets the horizontal stretching mode.
*
* @param[out] ret
*
* @see elm_genlist_mode_get
*/
#define elm_obj_genlist_mode_get(ret) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_MODE_GET), EO_TYPECHECK(Elm_List_Mode *, ret)
/**
* @def elm_obj_genlist_homogeneous_set
* @since 1.8
*
* Enable/disable homogeneous mode.
*
* @param[in] homogeneous
*
* @see elm_genlist_homogeneous_set
*/
#define elm_obj_genlist_homogeneous_set(homogeneous) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_HOMOGENEOUS_SET), EO_TYPECHECK(Eina_Bool, homogeneous)
/**
* @def elm_obj_genlist_homogeneous_get
* @since 1.8
*
* Get whether the homogeneous mode is enabled.
*
* @param[out] ret
*
* @see elm_genlist_homogeneous_get
*/
#define elm_obj_genlist_homogeneous_get(ret) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_HOMOGENEOUS_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_genlist_block_count_set
* @since 1.8
*
* Set the maximum number of items within an item block
*
* @param[in] count
*
* @see elm_genlist_block_count_set
*/
#define elm_obj_genlist_block_count_set(count) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_BLOCK_COUNT_SET), EO_TYPECHECK(int, count)
/**
* @def elm_obj_genlist_block_count_get
* @since 1.8
*
* Get the maximum number of items within an item block
*
* @param[out] ret
*
* @see elm_genlist_block_count_get
*/
#define elm_obj_genlist_block_count_get(ret) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_BLOCK_COUNT_GET), EO_TYPECHECK(int *, ret)
/**
* @def elm_obj_genlist_longpress_timeout_set
* @since 1.8
*
* Set the timeout in seconds for the longpress event.
*
* @param[in] timeout
*
* @see elm_genlist_longpress_timeout_set
*/
#define elm_obj_genlist_longpress_timeout_set(timeout) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_LONGPRESS_TIMEOUT_SET), EO_TYPECHECK(double, timeout)
/**
* @def elm_obj_genlist_longpress_timeout_get
* @since 1.8
*
* Get the timeout in seconds for the longpress event.
*
* @param[out] ret
*
* @see elm_genlist_longpress_timeout_get
*/
#define elm_obj_genlist_longpress_timeout_get(ret) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_LONGPRESS_TIMEOUT_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_genlist_realized_items_update
* @since 1.8
*
* Update the contents of all realized items.
*
*
* @see elm_genlist_realized_items_update
*/
#define elm_obj_genlist_realized_items_update() ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_REALIZED_ITEMS_UPDATE)
/**
* @def elm_obj_genlist_decorated_item_get
* @since 1.8
*
* Get active genlist mode item
*
* @param[out] ret
*
* @see elm_genlist_decorated_item_get
*/
#define elm_obj_genlist_decorated_item_get(ret) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_DECORATED_ITEM_GET), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_genlist_decorate_mode_get
* @since 1.8
*
* Get Genlist decorate mode
*
* @param[out] ret
*
* @see elm_genlist_decorate_mode_get
*/
#define elm_obj_genlist_decorate_mode_get(ret) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_DECORATE_MODE_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_genlist_decorate_mode_set
* @since 1.8
*
* Set Genlist decorate mode
*
* @param[in] decorated
*
* @see elm_genlist_decorate_mode_set
*/
#define elm_obj_genlist_decorate_mode_set(decorated) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_DECORATE_MODE_SET), EO_TYPECHECK(Eina_Bool, decorated)
/**
* @def elm_obj_genlist_reorder_mode_set
* @since 1.8
*
* Set reorder mode
*
* @param[in] reorder_mode
*
* @see elm_genlist_reorder_mode_set
*/
#define elm_obj_genlist_reorder_mode_set(reorder_mode) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_REORDER_MODE_SET), EO_TYPECHECK(Eina_Bool, reorder_mode)
/**
* @def elm_obj_genlist_reorder_mode_get
* @since 1.8
*
* Get the reorder mode
*
* @param[out] ret
*
* @see elm_genlist_reorder_mode_get
*/
#define elm_obj_genlist_reorder_mode_get(ret) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_REORDER_MODE_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_genlist_select_mode_set
* @since 1.8
*
* Set the genlist select mode.
*
* @param[in] mode
*
* @see elm_genlist_select_mode_set
*/
#define elm_obj_genlist_select_mode_set(mode) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_SELECT_MODE_SET), EO_TYPECHECK(Elm_Object_Select_Mode, mode)
/**
* @def elm_obj_genlist_select_mode_get
* @since 1.8
*
* Get the genlist select mode.
*
* @param[out] ret
*
* @see elm_genlist_select_mode_get
*/
#define elm_obj_genlist_select_mode_get(ret) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_SELECT_MODE_GET), EO_TYPECHECK(Elm_Object_Select_Mode *, ret)
/**
* @def elm_obj_genlist_highlight_mode_set
* @since 1.8
*
* Set whether the genlist items' should be highlighted when item selected.
*
* @param[in] highlight
*
* @see elm_genlist_highlight_mode_set
*/
#define elm_obj_genlist_highlight_mode_set(highlight) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_HIGHLIGHT_MODE_SET), EO_TYPECHECK(Eina_Bool, highlight)
/**
* @def elm_obj_genlist_highlight_mode_get
* @since 1.8
*
* Get whether the genlist items' should be highlighted when item selected.
*
* @param[out] ret
*
* @see elm_genlist_highlight_mode_get
*/
#define elm_obj_genlist_highlight_mode_get(ret) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_HIGHLIGHT_MODE_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_genlist_tree_effect_enabled_set
* @since 1.8
*
* Set Genlist tree effect
*
* @param[in] enabled
*
* @see elm_genlist_tree_effect_enabled_set
*/
#define elm_obj_genlist_tree_effect_enabled_set(enabled) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_TREE_EFFECT_ENABLED_SET), EO_TYPECHECK(Eina_Bool, enabled)
/**
* @def elm_obj_genlist_tree_effect_enabled_get
* @since 1.8
*
* Get Genlist tree effect
*
* @param[out] ret
*
* @see elm_genlist_tree_effect_enabled_get
*/
#define elm_obj_genlist_tree_effect_enabled_get(ret) ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_TREE_EFFECT_ENABLED_GET), EO_TYPECHECK(Eina_Bool *, ret)

View File

@ -0,0 +1,645 @@
/**
* Add a new genlist widget to the given parent Elementary
* (container) object
*
* @param parent The parent object
* @return a new genlist widget handle or @c NULL, on errors
*
* This function inserts a new genlist widget on the canvas.
*
* @see elm_genlist_item_append()
* @see elm_object_item_del()
* @see elm_genlist_clear()
*
* @ingroup Genlist
*/
EAPI Evas_Object *elm_genlist_add(Evas_Object *parent);
/**
* Remove all items from a given genlist widget.
*
* @param obj The genlist object
*
* This removes (and deletes) all items in @p obj, leaving it empty.
*
* @see elm_object_item_del(), to remove just one item.
*
* @ingroup Genlist
*/
EAPI void elm_genlist_clear(Evas_Object *obj);
/**
* Enable or disable multi-selection in the genlist
*
* @param obj The genlist object
* @param multi Multi-select enable/disable. Default is disabled.
*
* This enables (@c EINA_TRUE) or disables (@c EINA_FALSE) multi-selection in
* the list. This allows more than 1 item to be selected. To retrieve the list
* of selected items, use elm_genlist_selected_items_get().
*
* @see elm_genlist_selected_items_get()
* @see elm_genlist_multi_select_get()
*
* @ingroup Genlist
*/
EAPI void elm_genlist_multi_select_set(Evas_Object *obj, Eina_Bool multi);
/**
* Gets if multi-selection in genlist is enabled or disabled.
*
* @param obj The genlist object
* @return Multi-select enabled/disabled
* (@c EINA_TRUE = enabled/@c EINA_FALSE = disabled). Default is @c EINA_FALSE.
*
* @see elm_genlist_multi_select_set()
*
* @ingroup Genlist
*/
EAPI Eina_Bool elm_genlist_multi_select_get(const Evas_Object *obj);
/**
* This sets the horizontal stretching mode.
*
* @param obj The genlist object
* @param mode The mode to use (one of #ELM_LIST_SCROLL or #ELM_LIST_LIMIT).
*
* This sets the mode used for sizing items horizontally. Valid modes
* are #ELM_LIST_LIMIT, #ELM_LIST_SCROLL, and #ELM_LIST_COMPRESS. The default is
* ELM_LIST_SCROLL. This mode means that if items are too wide to fit,
* the scroller will scroll horizontally. Otherwise items are expanded
* to fill the width of the viewport of the scroller. If it is
* ELM_LIST_LIMIT, items will be expanded to the viewport width and
* limited to that size. If it is ELM_LIST_COMPRESS, the item width will be
* fixed (restricted to a minimum of) to the list width when calculating its
* size in order to allow the height to be calculated based on it. This allows,
* for instance, text block to wrap lines if the Edje part is configured with
* "text.min: 0 1".
* @note ELM_LIST_COMPRESS will make list resize slower as it will have to
* recalculate every item height again whenever the list width
* changes!
* @note Homogeneous mode is for that all items in the genlist same
* width/height. With ELM_LIST_COMPRESS, it makes genlist items to fast
* initializing. However there's no sub-objects in genlist which can be
* on the flying resizable (such as TEXTBLOCK). If then, some dynamic
* resizable objects in genlist would not diplayed properly.
*
* @see elm_genlist_mode_get()
*
* @ingroup Genlist
*/
EAPI void elm_genlist_mode_set(Evas_Object *obj, Elm_List_Mode mode);
/**
* Gets the horizontal stretching mode.
*
* @param obj The genlist object
* @return The mode to use
* (#ELM_LIST_LIMIT, #ELM_LIST_SCROLL)
*
* @see elm_genlist_mode_set()
*
* @ingroup Genlist
*/
EAPI Elm_List_Mode elm_genlist_mode_get(const Evas_Object *obj);
/**
* Append a new item in a given genlist widget.
*
* @param obj The genlist object
* @param itc The item class for the item
* @param data The item data
* @param parent The parent item, or NULL if none
* @param type Item type
* @param func Convenience function called when the item is selected
* @param func_data Data passed to @p func above.
* @return A handle to the item added or @c NULL if not possible
*
* This adds the given item to the end of the list or the end of
* the children list if the @p parent is given.
*
* @see elm_genlist_item_prepend()
* @see elm_genlist_item_insert_before()
* @see elm_genlist_item_insert_after()
* @see elm_object_item_del()
*
* @ingroup Genlist
*/
EAPI Elm_Object_Item *elm_genlist_item_append(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Object_Item *parent, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data);
/**
* Prepend a new item in a given genlist widget.
*
* @param obj The genlist object
* @param itc The item class for the item
* @param data The item data
* @param parent The parent item, or NULL if none
* @param type Item type
* @param func Convenience function called when the item is selected
* @param func_data Data passed to @p func above.
* @return A handle to the item added or NULL if not possible
*
* This adds an item to the beginning of the list or beginning of the
* children of the parent if given.
*
* @see elm_genlist_item_append()
* @see elm_genlist_item_insert_before()
* @see elm_genlist_item_insert_after()
* @see elm_object_item_del()
*
* @ingroup Genlist
*/
EAPI Elm_Object_Item *elm_genlist_item_prepend(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Object_Item *parent, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data);
/**
* Insert an item before another in a genlist widget
*
* @param obj The genlist object
* @param itc The item class for the item
* @param data The item data
* @param parent The parent item, or NULL if none
* @param before The item to place this new one before.
* @param type Item type
* @param func Convenience function called when the item is selected
* @param func_data Data passed to @p func above.
* @return A handle to the item added or @c NULL if not possible
*
* This inserts an item before another in the list. It will be in the
* same tree level or group as the item it is inserted before.
*
* @see elm_genlist_item_append()
* @see elm_genlist_item_prepend()
* @see elm_genlist_item_insert_after()
* @see elm_object_item_del()
*
* @ingroup Genlist
*/
EAPI Elm_Object_Item *elm_genlist_item_insert_before(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Object_Item *parent, Elm_Object_Item *before, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data);
/**
* Insert an item after another in a genlist widget
*
* @param obj The genlist object
* @param itc The item class for the item
* @param data The item data
* @param parent The parent item, or NULL if none
* @param after The item to place this new one after.
* @param type Item type
* @param func Convenience function called when the item is selected
* @param func_data Data passed to @p func above.
* @return A handle to the item added or @c NULL if not possible
*
* This inserts an item after another in the list. It will be in the
* same tree level or group as the item it is inserted after.
*
* @see elm_genlist_item_append()
* @see elm_genlist_item_prepend()
* @see elm_genlist_item_insert_before()
* @see elm_object_item_del()
*
* @ingroup Genlist
*/
EAPI Elm_Object_Item *elm_genlist_item_insert_after(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Object_Item *parent, Elm_Object_Item *after, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data);
/**
* Insert a new item into the sorted genlist object
*
* @param obj The genlist object
* @param itc The item class for the item
* @param data The item data
* @param parent The parent item, or NULL if none
* @param type Item type
* @param comp The function called for the sort
* @param func Convenience function called when item selected
* @param func_data Data passed to @p func above.
* @return A handle to the item added or NULL if not possible
*
* This inserts an item in the genlist based on user defined comparison
* function. The two arguments passed to the function @p func are genlist item
* handles to compare.
*
* @see elm_genlist_item_append()
* @see elm_genlist_item_prepend()
* @see elm_genlist_item_insert_after()
* @see elm_object_item_del()
* @ingroup Genlist
*/
EAPI Elm_Object_Item *elm_genlist_item_sorted_insert(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Object_Item *parent, Elm_Genlist_Item_Type type, Eina_Compare_Cb comp, Evas_Smart_Cb func, const void *func_data);
/* operations to retrieve existing items */
/**
* Get the selected item in the genlist.
*
* @param obj The genlist object
* @return The selected item, or NULL if none is selected.
*
* This gets the selected item in the list (if multi-selection is enabled, only
* the item that was first selected in the list is returned - which is not very
* useful, so see elm_genlist_selected_items_get() for when multi-selection is
* used).
*
* If no item is selected, NULL is returned.
*
* @see elm_genlist_selected_items_get()
*
* @ingroup Genlist
*/
EAPI Elm_Object_Item *elm_genlist_selected_item_get(const Evas_Object *obj);
/**
* Get a list of selected items in the genlist.
*
* @param obj The genlist object
* @return The list of selected items, or NULL if none are selected.
*
* It returns a list of the selected items. This list pointer is only valid so
* long as the selection doesn't change (no items are selected or unselected, or
* unselected implicitly by deletion). The list contains genlist items
* pointers. The order of the items in this list is the order which they were
* selected, i.e. the first item in this list is the first item that was
* selected, and so on.
*
* @note If not in multi-select mode, consider using function
* elm_genlist_selected_item_get() instead.
*
* @see elm_genlist_multi_select_set()
* @see elm_genlist_selected_item_get()
*
* @ingroup Genlist
*/
EAPI const Eina_List *elm_genlist_selected_items_get(const Evas_Object *obj);
/**
* Get a list of realized items in genlist
*
* @param obj The genlist object
* @return The list of realized items, nor NULL if none are realized.
*
* This returns a list of the realized items in the genlist. The list
* contains genlist item pointers. The list must be freed by the
* caller when done with eina_list_free(). The item pointers in the
* list are only valid so long as those items are not deleted or the
* genlist is not deleted.
*
* @see elm_genlist_realized_items_update()
*
* @ingroup Genlist
*/
EAPI Eina_List *elm_genlist_realized_items_get(const Evas_Object *obj);
/**
* Get the first item in the genlist
*
* This returns the first item in the list.
*
* @param obj The genlist object
* @return The first item, or NULL if none
*
* @ingroup Genlist
*/
EAPI Elm_Object_Item *elm_genlist_first_item_get(const Evas_Object *obj);
/**
* Get the last item in the genlist
*
* This returns the last item in the list.
*
* @return The last item, or NULL if none
*
* @ingroup Genlist
*/
EAPI Elm_Object_Item *elm_genlist_last_item_get(const Evas_Object *obj);
/**
* Update the contents of all realized items.
*
* @param obj The genlist object.
*
* This updates all realized items by calling all the item class functions again
* to get the contents, texts and states. Use this when the original
* item data has changed and the changes are desired to be reflected.
*
* To update just one item, use elm_genlist_item_update().
*
* @see elm_genlist_realized_items_get()
* @see elm_genlist_item_update()
*
* @ingroup Genlist
*/
EAPI void elm_genlist_realized_items_update(Evas_Object *obj);
/**
* Return how many items are currently in a list
*
* @param obj The list
* @return The total number of list items in the list
*
* This behavior is O(1) and includes items which may or may not be realized.
*
* @ingroup Genlist
*/
EAPI unsigned int elm_genlist_items_count(const Evas_Object *obj);
/**
* Enable/disable homogeneous mode.
*
* @param obj The genlist object
* @param homogeneous Assume the items within the genlist are of the
* same height and width (EINA_TRUE = on, EINA_FALSE = off). Default is @c
* EINA_FALSE.
*
* This will enable the homogeneous mode where items are of the same
* height and width so that genlist may do the lazy-loading at its
* maximum (which increases the performance for scrolling the list).
* In the normal mode, genlist will pre-calculate all the items' sizes even
* though they are not in use. So items' callbacks are called many times than
* expected. But homogeneous mode will skip the item size pre-calculation
* process so items' callbacks are called only when the item is needed.
*
* @note This also works well with group index.
*
* @see elm_genlist_mode_set()
* @see elm_genlist_homogeneous_get()
*
* @ingroup Genlist
*/
EAPI void elm_genlist_homogeneous_set(Evas_Object *obj, Eina_Bool homogeneous);
/**
* Get whether the homogeneous mode is enabled.
*
* @param obj The genlist object
* @return Assume the items within the genlist are of the same height
* and width (EINA_TRUE = on, EINA_FALSE = off)
*
* @see elm_genlist_homogeneous_set()
*
* @ingroup Genlist
*/
EAPI Eina_Bool elm_genlist_homogeneous_get(const Evas_Object *obj);
/**
* Set the maximum number of items within an item block
*
* @param obj The genlist object
* @param count Maximum number of items within an item block. Default is 32.
*
* This will configure the block count to tune to the target with particular
* performance matrix.
*
* A block of objects will be used to reduce the number of operations due to
* many objects in the screen. It can determine the visibility, or if the
* object has changed, it theme needs to be updated, etc. doing this kind of
* calculation to the entire block, instead of per object.
*
* The default value for the block count is enough for most lists, so unless
* you know you will have a lot of objects visible in the screen at the same
* time, don't try to change this.
*
* @see elm_genlist_block_count_get()
* @see @ref Genlist_Implementation
*
* @ingroup Genlist
*/
EAPI void elm_genlist_block_count_set(Evas_Object *obj, int count);
/**
* Get the maximum number of items within an item block
*
* @param obj The genlist object
* @return Maximum number of items within an item block
*
* @see elm_genlist_block_count_set()
*
* @ingroup Genlist
*/
EAPI int elm_genlist_block_count_get(const Evas_Object *obj);
/**
* Set the timeout in seconds for the longpress event.
*
* @param obj The genlist object
* @param timeout timeout in seconds. Default is elm config value(1.0)
*
* This option will change how long it takes to send an event "longpressed"
* after the mouse down signal is sent to the list. If this event occurs, no
* "clicked" event will be sent.
*
* @warning If you set the longpress timeout value with this API, your genlist
* will not be affected by the longpress value of elementary config value
* later.
*
* @see elm_genlist_longpress_timeout_set()
*
* @ingroup Genlist
*/
EAPI void elm_genlist_longpress_timeout_set(Evas_Object *obj, double timeout);
/**
* Get the timeout in seconds for the longpress event.
*
* @param obj The genlist object
* @return timeout in seconds
*
* @see elm_genlist_longpress_timeout_get()
*
* @ingroup Genlist
*/
EAPI double elm_genlist_longpress_timeout_get(const Evas_Object *obj);
/**
* Get the item that is at the x, y canvas coords.
*
* @param obj The genlist object.
* @param x The input x coordinate
* @param y The input y coordinate
* @param posret The position relative to the item returned here
* @return The item at the coordinates or NULL if none
*
* This returns the item at the given coordinates (which are canvas
* relative, not object-relative). If an item is at that coordinate,
* that item handle is returned, and if @p posret is not NULL, the
* integer pointed to is set to a value of -1, 0 or 1, depending if
* the coordinate is on the upper portion of that item (-1), on the
* middle section (0) or on the lower part (1). If NULL is returned as
* an item (no item found there), then posret may indicate -1 or 1
* based if the coordinate is above or below all items respectively in
* the genlist.
*
* @ingroup Genlist
*/
EAPI Elm_Object_Item *elm_genlist_at_xy_item_get(const Evas_Object *obj, Evas_Coord x, Evas_Coord y, int *posret);
/**
* Get active genlist mode item
*
* @param obj The genlist object
* @return The active item for that current mode. Or @c NULL if no item is
* activated with any mode.
*
* This function returns the item that was activated with a mode, by the
* function elm_genlist_item_decorate_mode_set().
*
* @see elm_genlist_item_decorate_mode_set()
* @see elm_genlist_mode_get()
*
* @ingroup Genlist
*/
EAPI Elm_Object_Item *elm_genlist_decorated_item_get(const Evas_Object *obj);
/**
* Set reorder mode
*
* @param obj The genlist object
* @param reorder_mode The reorder mode
* (EINA_TRUE = on, EINA_FALSE = off)
*
* After turning on the reorder mode, longpress on normal item will trigger
* reordering of the item. You can move the item up and down. However, reorder
* does not work with group item.
*
* @ingroup Genlist
*/
EAPI void elm_genlist_reorder_mode_set(Evas_Object *obj, Eina_Bool reorder_mode);
/**
* Get the reorder mode
*
* @param obj The genlist object
* @return The reorder mode
* (EINA_TRUE = on, EINA_FALSE = off)
*
* @ingroup Genlist
*/
EAPI Eina_Bool elm_genlist_reorder_mode_get(const Evas_Object *obj);
/**
* Set Genlist decorate mode
*
* This sets Genlist decorate mode to all items.
*
* @param obj The Genlist object
* @param decorated The decorate mode status
* (EINA_TRUE = decorate mode, EINA_FALSE = normal mode
*
* @ingroup Genlist
*/
EAPI void elm_genlist_decorate_mode_set(Evas_Object *obj, Eina_Bool decorated);
/**
* Get Genlist decorate mode
*
* @param obj The genlist object
* @return The decorate mode status
* (EINA_TRUE = decorate mode, EINA_FALSE = normal mode
*
* @ingroup Genlist
*/
EAPI Eina_Bool elm_genlist_decorate_mode_get(const Evas_Object *obj);
/**
* Set Genlist tree effect
*
* @param obj The genlist object
* @param enabled The tree effect status
* (EINA_TRUE = enabled, EINA_FALSE = disabled
*
* @ingroup Genlist
*/
EAPI void elm_genlist_tree_effect_enabled_set(Evas_Object *obj, Eina_Bool enabled);
/**
* Get Genlist tree effect
*
* @param obj The genlist object
* @return The tree effect status
* (EINA_TRUE = enabled, EINA_FALSE = disabled
*
* @ingroup Genlist
*/
EAPI Eina_Bool elm_genlist_tree_effect_enabled_get(const Evas_Object *obj);
/**
* Set the genlist select mode.
*
* @param obj The genlist object
* @param mode The select mode
*
* elm_genlist_select_mode_set() changes item select mode in the genlist widget.
* - ELM_OBJECT_SELECT_MODE_DEFAULT : Items will call their selection func and
* callback once 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_genlist_select_mode_get()
*
* @ingroup Genlist
*/
EAPI void elm_genlist_select_mode_set(Evas_Object *obj, Elm_Object_Select_Mode mode);
/**
* Get the genlist select mode.
*
* @param obj The genlist object
* @return The select mode
* (If getting mode is failed, it returns ELM_OBJECT_SELECT_MODE_MAX)
*
* @see elm_genlist_select_mode_set()
*
* @ingroup Genlist
*/
EAPI Elm_Object_Select_Mode elm_genlist_select_mode_get(const Evas_Object *obj);
/**
* Set whether the genlist items' should be highlighted when item selected.
*
* @param obj The genlist object.
* @param highlight @c EINA_TRUE to enable highlighting or @c EINA_FALSE to
* disable it.
*
* This will turn on/off the highlight effect when item selection and
* they will, or will not highlighted. The selected and clicked
* callback functions will still be called.
*
* Highlight is enabled by default.
*
* @see elm_genlist_highlight_mode_get().
*
* @ingroup Genlist
*/
EAPI void elm_genlist_highlight_mode_set(Evas_Object *obj, Eina_Bool highlight);
/**
* Get whether the genlist items' should be highlighted when item selected.
*
* @param obj The genlist object.
* @return @c EINA_TRUE means items can be highlighted. @c EINA_FALSE indicates
* they can't. If @p obj is @c NULL, @c EINA_FALSE is returned.
*
* @see elm_genlist_highlight_mode_set() for details.
*
* @ingroup Genlist
*/
EAPI Eina_Bool elm_genlist_highlight_mode_get(const Evas_Object *obj);
/**
* Get the nth item, in a given genlist widget, placed at position @p nth, in
* its internal items list
*
* @param obj The genlist object
* @param nth The number of the item to grab (0 being the first)
*
* @return The item stored in @p obj at position @p nth or @c NULL, if there's
* no item with that index (and on errors)
*
* @ingroup Genilst
* @since 1.8
*/
EAPI Elm_Object_Item *
elm_genlist_nth_item_get(const Evas_Object *obj, unsigned int nth);

View File

@ -17,208 +17,12 @@
* @{
*/
#define ELM_OBJ_GRID_CLASS elm_obj_grid_class_get()
const Eo_Class *elm_obj_grid_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_GRID_BASE_ID;
enum
{
ELM_OBJ_GRID_SUB_ID_SIZE_SET,
ELM_OBJ_GRID_SUB_ID_SIZE_GET,
ELM_OBJ_GRID_SUB_ID_PACK,
ELM_OBJ_GRID_SUB_ID_UNPACK,
ELM_OBJ_GRID_SUB_ID_CLEAR,
ELM_OBJ_GRID_SUB_ID_CHILDREN_GET,
ELM_OBJ_GRID_SUB_ID_LAST
};
#define ELM_OBJ_GRID_ID(sub_id) (ELM_OBJ_GRID_BASE_ID + sub_id)
/**
* @def elm_obj_grid_size_set
* @since 1.8
*
* Set the virtual size of the grid
*
* @param[in] w
* @param[in] h
*
* @see elm_grid_size_set
*/
#define elm_obj_grid_size_set(w, h) ELM_OBJ_GRID_ID(ELM_OBJ_GRID_SUB_ID_SIZE_SET), EO_TYPECHECK(Evas_Coord, w), EO_TYPECHECK(Evas_Coord, h)
/**
* @def elm_obj_grid_size_get
* @since 1.8
*
* Get the virtual size of the grid
*
* @param[out] w
* @param[out] h
*
* @see elm_grid_size_get
*/
#define elm_obj_grid_size_get(w, h) ELM_OBJ_GRID_ID(ELM_OBJ_GRID_SUB_ID_SIZE_GET), EO_TYPECHECK(Evas_Coord *, w), EO_TYPECHECK(Evas_Coord *, h)
/**
* @def elm_obj_grid_pack
* @since 1.8
*
* Pack child at given position and size
*
* @param[in] subobj
* @param[in] x
* @param[in] y
* @param[in] w
* @param[in] h
*
* @see elm_grid_pack
*/
#define elm_obj_grid_pack(subobj, x, y, w, h) ELM_OBJ_GRID_ID(ELM_OBJ_GRID_SUB_ID_PACK), EO_TYPECHECK(Evas_Object *, subobj), EO_TYPECHECK(Evas_Coord, x), EO_TYPECHECK(Evas_Coord, y), EO_TYPECHECK(Evas_Coord, w), EO_TYPECHECK(Evas_Coord, h)
/**
* @def elm_obj_grid_unpack
* @since 1.8
*
* Unpack a child from a grid object
*
* @param[in] subobj
*
* @see elm_grid_unpack
*/
#define elm_obj_grid_unpack(subobj) ELM_OBJ_GRID_ID(ELM_OBJ_GRID_SUB_ID_UNPACK), EO_TYPECHECK(Evas_Object *, subobj)
/**
* @def elm_obj_grid_clear
* @since 1.8
*
* Faster way to remove all child objects from a grid object.
*
* @param[in] clear
*
* @see elm_grid_clear
*/
#define elm_obj_grid_clear(clear) ELM_OBJ_GRID_ID(ELM_OBJ_GRID_SUB_ID_CLEAR), EO_TYPECHECK(Eina_Bool, clear)
/**
* @def elm_obj_grid_children_get
* @since 1.8
*
* Get the list of the children for the grid.
*
* @param[out] ret
*
* @see elm_grid_children_get
*/
#define elm_obj_grid_children_get(ret) ELM_OBJ_GRID_ID(ELM_OBJ_GRID_SUB_ID_CHILDREN_GET), EO_TYPECHECK(Eina_List **, ret)
/**
* Add a new grid to the parent
*
* @param parent The parent object
* @return The new object or NULL if it cannot be created
*
* @ingroup Grid
*/
EAPI Evas_Object *elm_grid_add(Evas_Object *parent);
/**
* Set the virtual size of the grid
*
* @param obj The grid object
* @param w The virtual width of the grid
* @param h The virtual height of the grid
*
* @ingroup Grid
*/
EAPI void elm_grid_size_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h);
/**
* Get the virtual size of the grid
*
* @param obj The grid object
* @param w Pointer to integer to store the virtual width of the grid
* @param h Pointer to integer to store the virtual height of the grid
*
* @ingroup Grid
*/
EAPI void elm_grid_size_get(const Evas_Object *obj, Evas_Coord *w, Evas_Coord *h);
/**
* Pack child at given position and size
*
* @param obj The grid object
* @param subobj The child to pack
* @param x The virtual x coord at which to pack it
* @param y The virtual y coord at which to pack it
* @param w The virtual width at which to pack it
* @param h The virtual height at which to pack it
*
* @ingroup Grid
*/
EAPI void elm_grid_pack(Evas_Object *obj, Evas_Object *subobj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
/**
* Unpack a child from a grid object
*
* @param obj The grid object
* @param subobj The child to unpack
*
* @ingroup Grid
*/
EAPI void elm_grid_unpack(Evas_Object *obj, Evas_Object *subobj);
/**
* Faster way to remove all child objects from a grid object.
*
* @param obj The grid object
* @param clear If true, it will delete just removed children
*
* @ingroup Grid
*/
EAPI void elm_grid_clear(Evas_Object *obj, Eina_Bool clear);
/**
* Set packing of an existing child at to position and size
*
* @param subobj The child to set packing of
* @param x The virtual x coord at which to pack it
* @param y The virtual y coord at which to pack it
* @param w The virtual width at which to pack it
* @param h The virtual height at which to pack it
*
* @ingroup Grid
*/
EAPI void elm_grid_pack_set(Evas_Object *subobj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
/**
* Get packing of a child
*
* @param subobj The child to query
* @param x Pointer to integer to store the virtual x coord
* @param y Pointer to integer to store the virtual y coord
* @param w Pointer to integer to store the virtual width
* @param h Pointer to integer to store the virtual height
*
* @ingroup Grid
*/
EAPI void elm_grid_pack_get(Evas_Object *subobj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
/**
* Get the list of the children for the grid.
*
* @param obj The grid object
*
* @note This is a duplicate of the list kept by the grid internally.
* It's up to the user to destroy it when it no longer needs it.
* It's possible to remove objects from the grid when walking this
* list, but these removals won't be reflected on it.
*
* @ingroup Grid
*/
EAPI Eina_List *elm_grid_children_get(const Evas_Object *obj);
#ifdef EFL_EO_API_SUPPORT
#include <elm_grid_eo.h>
#endif
#ifndef EFL_NOLEGACY_API_SUPPORT
#include <elm_grid_legacy.h>
#endif
/**
* @}

View File

@ -0,0 +1,98 @@
#define ELM_OBJ_GRID_CLASS elm_obj_grid_class_get()
const Eo_Class *elm_obj_grid_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_GRID_BASE_ID;
enum
{
ELM_OBJ_GRID_SUB_ID_SIZE_SET,
ELM_OBJ_GRID_SUB_ID_SIZE_GET,
ELM_OBJ_GRID_SUB_ID_PACK,
ELM_OBJ_GRID_SUB_ID_UNPACK,
ELM_OBJ_GRID_SUB_ID_CLEAR,
ELM_OBJ_GRID_SUB_ID_CHILDREN_GET,
ELM_OBJ_GRID_SUB_ID_LAST
};
#define ELM_OBJ_GRID_ID(sub_id) (ELM_OBJ_GRID_BASE_ID + sub_id)
/**
* @def elm_obj_grid_size_set
* @since 1.8
*
* Set the virtual size of the grid
*
* @param[in] w
* @param[in] h
*
* @see elm_grid_size_set
*/
#define elm_obj_grid_size_set(w, h) ELM_OBJ_GRID_ID(ELM_OBJ_GRID_SUB_ID_SIZE_SET), EO_TYPECHECK(Evas_Coord, w), EO_TYPECHECK(Evas_Coord, h)
/**
* @def elm_obj_grid_size_get
* @since 1.8
*
* Get the virtual size of the grid
*
* @param[out] w
* @param[out] h
*
* @see elm_grid_size_get
*/
#define elm_obj_grid_size_get(w, h) ELM_OBJ_GRID_ID(ELM_OBJ_GRID_SUB_ID_SIZE_GET), EO_TYPECHECK(Evas_Coord *, w), EO_TYPECHECK(Evas_Coord *, h)
/**
* @def elm_obj_grid_pack
* @since 1.8
*
* Pack child at given position and size
*
* @param[in] subobj
* @param[in] x
* @param[in] y
* @param[in] w
* @param[in] h
*
* @see elm_grid_pack
*/
#define elm_obj_grid_pack(subobj, x, y, w, h) ELM_OBJ_GRID_ID(ELM_OBJ_GRID_SUB_ID_PACK), EO_TYPECHECK(Evas_Object *, subobj), EO_TYPECHECK(Evas_Coord, x), EO_TYPECHECK(Evas_Coord, y), EO_TYPECHECK(Evas_Coord, w), EO_TYPECHECK(Evas_Coord, h)
/**
* @def elm_obj_grid_unpack
* @since 1.8
*
* Unpack a child from a grid object
*
* @param[in] subobj
*
* @see elm_grid_unpack
*/
#define elm_obj_grid_unpack(subobj) ELM_OBJ_GRID_ID(ELM_OBJ_GRID_SUB_ID_UNPACK), EO_TYPECHECK(Evas_Object *, subobj)
/**
* @def elm_obj_grid_clear
* @since 1.8
*
* Faster way to remove all child objects from a grid object.
*
* @param[in] clear
*
* @see elm_grid_clear
*/
#define elm_obj_grid_clear(clear) ELM_OBJ_GRID_ID(ELM_OBJ_GRID_SUB_ID_CLEAR), EO_TYPECHECK(Eina_Bool, clear)
/**
* @def elm_obj_grid_children_get
* @since 1.8
*
* Get the list of the children for the grid.
*
* @param[out] ret
*
* @see elm_grid_children_get
*/
#define elm_obj_grid_children_get(ret) ELM_OBJ_GRID_ID(ELM_OBJ_GRID_SUB_ID_CHILDREN_GET), EO_TYPECHECK(Eina_List **, ret)

View File

@ -0,0 +1,107 @@
/**
* Add a new grid to the parent
*
* @param parent The parent object
* @return The new object or NULL if it cannot be created
*
* @ingroup Grid
*/
EAPI Evas_Object *elm_grid_add(Evas_Object *parent);
/**
* Set the virtual size of the grid
*
* @param obj The grid object
* @param w The virtual width of the grid
* @param h The virtual height of the grid
*
* @ingroup Grid
*/
EAPI void elm_grid_size_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h);
/**
* Get the virtual size of the grid
*
* @param obj The grid object
* @param w Pointer to integer to store the virtual width of the grid
* @param h Pointer to integer to store the virtual height of the grid
*
* @ingroup Grid
*/
EAPI void elm_grid_size_get(const Evas_Object *obj, Evas_Coord *w, Evas_Coord *h);
/**
* Pack child at given position and size
*
* @param obj The grid object
* @param subobj The child to pack
* @param x The virtual x coord at which to pack it
* @param y The virtual y coord at which to pack it
* @param w The virtual width at which to pack it
* @param h The virtual height at which to pack it
*
* @ingroup Grid
*/
EAPI void elm_grid_pack(Evas_Object *obj, Evas_Object *subobj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
/**
* Unpack a child from a grid object
*
* @param obj The grid object
* @param subobj The child to unpack
*
* @ingroup Grid
*/
EAPI void elm_grid_unpack(Evas_Object *obj, Evas_Object *subobj);
/**
* Faster way to remove all child objects from a grid object.
*
* @param obj The grid object
* @param clear If true, it will delete just removed children
*
* @ingroup Grid
*/
EAPI void elm_grid_clear(Evas_Object *obj, Eina_Bool clear);
/**
* Set packing of an existing child at to position and size
*
* @param subobj The child to set packing of
* @param x The virtual x coord at which to pack it
* @param y The virtual y coord at which to pack it
* @param w The virtual width at which to pack it
* @param h The virtual height at which to pack it
*
* @ingroup Grid
*/
EAPI void elm_grid_pack_set(Evas_Object *subobj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
/**
* Get packing of a child
*
* @param subobj The child to query
* @param x Pointer to integer to store the virtual x coord
* @param y Pointer to integer to store the virtual y coord
* @param w Pointer to integer to store the virtual width
* @param h Pointer to integer to store the virtual height
*
* @ingroup Grid
*/
EAPI void elm_grid_pack_get(Evas_Object *subobj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
/**
* Get the list of the children for the grid.
*
* @param obj The grid object
*
* @note This is a duplicate of the list kept by the grid internally.
* It's up to the user to destroy it when it no longer needs it.
* It's possible to remove objects from the grid when walking this
* list, but these removals won't be reflected on it.
*
* @ingroup Grid
*/
EAPI Eina_List *elm_grid_children_get(const Evas_Object *obj);

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,22 @@
/**
* Possible orientation options for elm_image_orient_set().
*
* @image html elm_image_orient_set.png
* @image latex elm_image_orient_set.eps width=\textwidth
*
* @ingroup Image
*/
typedef enum
{
ELM_IMAGE_ORIENT_NONE = 0, /**< no orientation change */
ELM_IMAGE_ORIENT_0 = 0, /**< no orientation change */
ELM_IMAGE_ROTATE_90 = 1, /**< rotate 90 degrees clockwise */
ELM_IMAGE_ROTATE_180 = 2, /**< rotate 180 degrees clockwise */
ELM_IMAGE_ROTATE_270 = 3, /**< rotate 90 degrees counter-clockwise (i.e. 270 degrees clockwise) */
ELM_IMAGE_FLIP_HORIZONTAL = 4, /**< flip image horizontally */
ELM_IMAGE_FLIP_VERTICAL = 5, /**< flip image vertically */
ELM_IMAGE_FLIP_TRANSPOSE = 6, /**< flip the image along the y = (width - x) line (bottom-left to top-right) */
ELM_IMAGE_FLIP_TRANSVERSE = 7 /**< flip the image along the y = x line (top-left to bottom-right) */
} Elm_Image_Orient;

View File

@ -0,0 +1,544 @@
#define ELM_OBJ_IMAGE_CLASS elm_obj_image_class_get()
const Eo_Class *elm_obj_image_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_IMAGE_BASE_ID;
enum
{
ELM_OBJ_IMAGE_SUB_ID_ASPECT_FIXED_SET,
ELM_OBJ_IMAGE_SUB_ID_ASPECT_FIXED_GET,
ELM_OBJ_IMAGE_SUB_ID_EDITABLE_SET,
ELM_OBJ_IMAGE_SUB_ID_EDITABLE_GET,
ELM_OBJ_IMAGE_SUB_ID_FILE_SET,
ELM_OBJ_IMAGE_SUB_ID_FILE_GET,
ELM_OBJ_IMAGE_SUB_ID_SIZING_EVAL,
ELM_OBJ_IMAGE_SUB_ID_SMOOTH_SCALE_SET,
ELM_OBJ_IMAGE_SUB_ID_SMOOTH_SCALE_GET,
ELM_OBJ_IMAGE_SUB_ID_FILL_INSIDE_SET,
ELM_OBJ_IMAGE_SUB_ID_FILL_INSIDE_GET,
ELM_OBJ_IMAGE_SUB_ID_FILL_OUTSIDE_SET,
ELM_OBJ_IMAGE_SUB_ID_FILL_OUTSIDE_GET,
ELM_OBJ_IMAGE_SUB_ID_OBJECT_GET,
ELM_OBJ_IMAGE_SUB_ID_LOAD_SIZE_SET,
ELM_OBJ_IMAGE_SUB_ID_LOAD_SIZE_GET,
ELM_OBJ_IMAGE_SUB_ID_MEMFILE_SET,
ELM_OBJ_IMAGE_SUB_ID_ORIENT_SET,
ELM_OBJ_IMAGE_SUB_ID_ORIENT_GET,
ELM_OBJ_IMAGE_SUB_ID_PRELOAD_DISABLED_SET,
ELM_OBJ_IMAGE_SUB_ID_RESIZE_DOWN_SET,
ELM_OBJ_IMAGE_SUB_ID_RESIZE_DOWN_GET,
ELM_OBJ_IMAGE_SUB_ID_RESIZE_UP_SET,
ELM_OBJ_IMAGE_SUB_ID_RESIZE_UP_GET,
ELM_OBJ_IMAGE_SUB_ID_SCALE_SET,
ELM_OBJ_IMAGE_SUB_ID_SCALE_GET,
ELM_OBJ_IMAGE_SUB_ID_OBJECT_SIZE_GET,
ELM_OBJ_IMAGE_SUB_ID_SMOOTH_SET,
ELM_OBJ_IMAGE_SUB_ID_SMOOTH_GET,
ELM_OBJ_IMAGE_SUB_ID_NO_SCALE_SET,
ELM_OBJ_IMAGE_SUB_ID_NO_SCALE_GET,
ELM_OBJ_IMAGE_SUB_ID_RESIZABLE_SET,
ELM_OBJ_IMAGE_SUB_ID_RESIZABLE_GET,
ELM_OBJ_IMAGE_SUB_ID_ANIMATED_AVAILABLE_GET,
ELM_OBJ_IMAGE_SUB_ID_ANIMATED_SET,
ELM_OBJ_IMAGE_SUB_ID_ANIMATED_GET,
ELM_OBJ_IMAGE_SUB_ID_ANIMATED_PLAY_SET,
ELM_OBJ_IMAGE_SUB_ID_ANIMATED_PLAY_GET,
ELM_OBJ_IMAGE_SUB_ID_LAST
};
#define ELM_OBJ_IMAGE_ID(sub_id) (ELM_OBJ_IMAGE_BASE_ID + sub_id)
/**
* @def elm_obj_image_memfile_set
* @since 1.8
*
* Set a location in memory to be used as an image object's source
*
* @param[in] img
* @param[in] size
* @param[in] format
* @param[in] key
* @param[out] ret
*
* @see elm_image_memfile_set
*/
#define elm_obj_image_memfile_set(img, size, format, key, ret) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_MEMFILE_SET), EO_TYPECHECK(const void *, img), EO_TYPECHECK(size_t, size), EO_TYPECHECK(const char *, format), EO_TYPECHECK(const char *, key), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_image_file_set
* @since 1.8
*
* Set the file that will be used as the image's source.
*
* @param[in] file
* @param[in] group
* @param[out] ret
*
* @see elm_image_file_set
*/
#define elm_obj_image_file_set(file, group, ret) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_FILE_SET), EO_TYPECHECK(const char *, file), EO_TYPECHECK(const char *, group), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_image_file_get
* @since 1.8
*
* Get the file that will be used as image.
*
* @param[out] file
* @param[out] group
*
* @see elm_image_file_get
*/
#define elm_obj_image_file_get(file, group) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_FILE_GET), EO_TYPECHECK(const char **, file), EO_TYPECHECK(const char **, group)
/**
* @def elm_obj_image_smooth_set
* @since 1.8
*
* Set the smooth effect for an image.
*
* @param[in] smooth
*
* @see elm_image_smooth_set
*/
#define elm_obj_image_smooth_set(smooth) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_SMOOTH_SET), EO_TYPECHECK(Eina_Bool, smooth)
/**
* @def elm_obj_image_smooth_get
* @since 1.8
*
* Get the smooth effect for an image.
*
* @param[out] ret
*
* @see elm_image_smooth_get
*/
#define elm_obj_image_smooth_get(ret) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_SMOOTH_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_image_size_get
* @since 1.8
*
* No description supplied by the EAPI.
*
* @param[out] w
* @param[out] h
*
* @see elm_image_size_get
*/
#define elm_obj_image_size_get(w, h) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_OBJECT_SIZE_GET), EO_TYPECHECK(int *, w), EO_TYPECHECK(int *, h)
/**
* @def elm_obj_image_no_scale_set
* @since 1.8
*
* Disable scaling of this object.
*
* @param[in] no_scale
*
* @see elm_image_no_scale_set
*/
#define elm_obj_image_no_scale_set(no_scale) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_NO_SCALE_SET), EO_TYPECHECK(Eina_Bool, no_scale)
/**
* @def elm_obj_image_no_scale_get
* @since 1.8
*
* Get whether scaling is disabled on the object.
*
* @param[out] ret
*
* @see elm_image_no_scale_get
*/
#define elm_obj_image_no_scale_get(ret) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_NO_SCALE_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_image_resizable_set
* @since 1.8
*
* Set if the object is (up/down) resizable.
*
* @param[in] up
* @param[in] down
*
* @see elm_image_resizable_set
*/
#define elm_obj_image_resizable_set(up, down) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_RESIZABLE_SET), EO_TYPECHECK(Eina_Bool, up), EO_TYPECHECK(Eina_Bool, down)
/**
* @def elm_obj_image_resizable_get
* @since 1.8
*
* Get if the object is (up/down) resizable.
*
* @param[out] size_up
* @param[out] size_down
*
* @see elm_image_resizable_get
*/
#define elm_obj_image_resizable_get(size_up, size_down) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_RESIZABLE_GET), EO_TYPECHECK(Eina_Bool *, size_up), EO_TYPECHECK(Eina_Bool *, size_down)
/**
* @def elm_obj_image_fill_outside_set
* @since 1.8
*
* Set if the image fills the entire object area, when keeping the aspect ratio.
*
* @param[in] fill_outside
*
* @see elm_image_fill_outside_set
*/
#define elm_obj_image_fill_outside_set(fill_outside) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_FILL_OUTSIDE_SET), EO_TYPECHECK(Eina_Bool, fill_outside)
/**
* @def elm_obj_image_fill_outside_get
* @since 1.8
*
* Get if the object is filled outside
*
* @param[out] ret
*
* @see elm_image_fill_outside_get
*/
#define elm_obj_image_fill_outside_get(ret) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_FILL_OUTSIDE_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_image_preload_disabled_set
* @since 1.8
*
* Enable or disable preloading of the image
*
* @param[in] disabled
*
* @see elm_image_preload_disabled_set
*/
#define elm_obj_image_preload_disabled_set(disabled) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_PRELOAD_DISABLED_SET), EO_TYPECHECK(Eina_Bool, disabled)
/**
* @def elm_obj_image_orient_set
* @since 1.8
*
* Set the image orientation.
*
* @param[in] orient
*
* @see elm_image_orient_set
*/
#define elm_obj_image_orient_set(orient) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_ORIENT_SET), EO_TYPECHECK(Elm_Image_Orient, orient)
/**
* @def elm_obj_image_orient_get
* @since 1.8
*
* Get the image orientation.
*
* @param[out] ret
*
* @see elm_image_orient_get
*/
#define elm_obj_image_orient_get(ret) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_ORIENT_GET), EO_TYPECHECK(Elm_Image_Orient *, ret)
/**
* @def elm_obj_image_editable_set
* @since 1.8
*
* Make the image 'editable'.
*
* @param[in] set
* @param[in] parent
*
* @see elm_image_editable_set
*/
#define elm_obj_image_editable_set(set, parent) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_EDITABLE_SET), EO_TYPECHECK(Eina_Bool, set), EO_TYPECHECK(Evas_Object *, parent)
/**
* @def elm_obj_image_editable_get
* @since 1.8
*
* Check if the image is 'editable'.
*
* @param[out] ret
*
* @see elm_image_editable_get
*/
#define elm_obj_image_editable_get(ret) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_EDITABLE_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_image_object_get
* @since 1.8
*
* Get the inlined image object of the image widget.
*
* @param[out] ret
*
* @see elm_image_object_get
*/
#define elm_obj_image_object_get(ret) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_OBJECT_GET), EO_TYPECHECK(Evas_Object **, ret)
/**
* @def elm_obj_image_aspect_fixed_set
* @since 1.8
*
* Set whether the original aspect ratio of the image should be kept on resize.
*
* @param[in] fixed
*
* @see elm_image_aspect_fixed_set
*/
#define elm_obj_image_aspect_fixed_set(fixed) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_ASPECT_FIXED_SET), EO_TYPECHECK(Eina_Bool, fixed)
/**
* @def elm_obj_image_aspect_fixed_get
* @since 1.8
*
* Get if the object retains the original aspect ratio.
*
* @param[out] ret
*
* @see elm_image_aspect_fixed_get
*/
#define elm_obj_image_aspect_fixed_get(ret) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_ASPECT_FIXED_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_image_animated_available_get
* @since 1.8
*
* Get whether an image object supports animation or not.
*
* @param[out] ret
*
* @see elm_image_animated_available_get
*/
#define elm_obj_image_animated_available_get(ret) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_ANIMATED_AVAILABLE_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_image_animated_set
* @since 1.8
*
* Set whether an image object (which supports animation) is to
*
* @param[in] anim
*
* @see elm_image_animated_set
*/
#define elm_obj_image_animated_set(anim) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_ANIMATED_SET), EO_TYPECHECK(Eina_Bool, anim)
/**
* @def elm_obj_image_animated_get
* @since 1.8
*
* Get whether an image object has animation enabled or not.
*
* @param[out] ret
*
* @see elm_image_animated_get
*/
#define elm_obj_image_animated_get(ret) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_ANIMATED_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_image_animated_play_set
* @since 1.8
*
* Start or stop an image object's animation.
*
* @param[in] play
*
* @see elm_image_animated_play_set
*/
#define elm_obj_image_animated_play_set(play) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_ANIMATED_PLAY_SET), EO_TYPECHECK(Eina_Bool, play)
/**
* @def elm_obj_image_animated_play_get
* @since 1.8
*
* Get whether an image object is under animation or not.
*
* @param[out] ret
*
* @see elm_image_animated_play_get
*/
#define elm_obj_image_animated_play_get(ret) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_ANIMATED_PLAY_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_image_sizing_eval
* @since 1.8
*
* No description supplied by the EAPI.
*
*/
#define elm_obj_image_sizing_eval() ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_SIZING_EVAL)
/**
* @def elm_obj_image_smooth_scale_set
* @since 1.8
*
* No description supplied by the EAPI.
*
* @param[in] smooth
*
* @see elm_image_smooth_scale_set
*/
#define elm_obj_image_smooth_scale_set(smooth) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_SMOOTH_SCALE_SET), EO_TYPECHECK(Eina_Bool, smooth)
/**
* @def elm_obj_image_smooth_scale_get
* @since 1.8
*
* No description supplied by the EAPI.
*
* @param[out] ret
*
* @see elm_image_smooth_scale_get
*/
#define elm_obj_image_smooth_scale_get(ret) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_SMOOTH_SCALE_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_image_fill_inside_set
* @since 1.8
*
* No description supplied by the EAPI.
*
* @param[in] fill_inside
*
* @see elm_image_fill_inside_set
*/
#define elm_obj_image_fill_inside_set(fill_inside) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_FILL_INSIDE_SET), EO_TYPECHECK(Eina_Bool, fill_inside)
/**
* @def elm_obj_image_fill_inside_get
* @since 1.8
*
* No description supplied by the EAPI.
*
* @param[out] ret
*
* @see elm_image_fill_inside_get
*/
#define elm_obj_image_fill_inside_get(ret) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_FILL_INSIDE_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_image_load_size_set
* @since 1.8
*
* No description supplied by the EAPI.
*
* @param[in] size
*
* @see elm_image_load_size_set
*/
#define elm_obj_image_load_size_set(size) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_LOAD_SIZE_SET), EO_TYPECHECK(int, size)
/**
* @def elm_obj_image_load_size_get
* @since 1.8
*
* No description supplied by the EAPI.
*
* @param[out] ret
*
* @see elm_image_load_size_get
*/
#define elm_obj_image_load_size_get(ret) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_LOAD_SIZE_GET), EO_TYPECHECK(int *, ret)
/**
* @def elm_obj_image_resize_down_set
* @since 1.8
*
* No description supplied by the EAPI.
*
* @param[in] resize_down
*
* @see elm_image_resize_down_set
*/
#define elm_obj_image_resize_down_set(resize_down) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_RESIZE_DOWN_SET), EO_TYPECHECK(Eina_Bool, resize_down)
/**
* @def elm_obj_image_resize_down_get
* @since 1.8
*
* No description supplied by the EAPI.
*
* @param[out] ret
*
* @see elm_image_resize_down_get
*/
#define elm_obj_image_resize_down_get(ret) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_RESIZE_DOWN_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_image_resize_up_set
* @since 1.8
*
* No description supplied by the EAPI.
*
* @param[in] resize_up
*
* @see elm_image_resize_up_set
*/
#define elm_obj_image_resize_up_set(resize_up) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_RESIZE_UP_SET), EO_TYPECHECK(Eina_Bool, resize_up)
/**
* @def elm_obj_image_resize_up_get
* @since 1.8
*
* No description supplied by the EAPI.
*
* @param[out] ret
*
* @see elm_image_resize_up_get
*/
#define elm_obj_image_resize_up_get(ret) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_RESIZE_UP_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_image_scale_set
* @since 1.8
*
* No description supplied by the EAPI.
*
* @param[in] scale
*
* @see elm_image_scale_set
*/
#define elm_obj_image_scale_set(scale) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_SCALE_SET), EO_TYPECHECK(double, scale)
/**
* @def elm_obj_image_scale_get
* @since 1.8
*
* No description supplied by the EAPI.
*
* @param[out] ret
*
* @see elm_image_scale_get
*/
#define elm_obj_image_scale_get(ret) ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_SCALE_GET), EO_TYPECHECK(double *, ret)

View File

@ -0,0 +1,468 @@
/**
* Add a new image to the parent.
*
* @param parent The parent object
* @return The new object or NULL if it cannot be created
*
* @see elm_image_file_set()
*
* @ingroup Image
*/
EAPI Evas_Object *elm_image_add(Evas_Object *parent);
/**
* Set a location in memory to be used as an image object's source
* bitmap.
*
* @param obj The image object
* @param img The binary data that will be used as image source
* @param size The size of binary data blob @p img
* @param format (Optional) expected format of @p img bytes
* @param key Optional indexing key of @p img to be passed to the
* image loader (eg. if @p img is a memory-mapped EET file)
*
* This function is handy when the contents of an image file are
* mapped in memory, for example.
*
* The @p format string should be something like @c "png", @c "jpg",
* @c "tga", @c "tiff", @c "bmp" etc, when provided (@c NULL, on the
* contrary). This improves the loader performance as it tries the
* "correct" loader first, before trying a range of other possible
* loaders until one succeeds.
*
* @return (@c EINA_TRUE = success, @c EINA_FALSE = error)
*
* @since 1.7
*
* @ingroup Image
*/
EAPI Eina_Bool elm_image_memfile_set(Evas_Object *obj, const void *img, size_t size, const char *format, const char *key);
/**
* Set the file that will be used as the image's source.
*
* @param obj The image object
* @param file The path to file that will be used as image source
* @param group The group that the image belongs to, in case it's an
* EET (including Edje case) file
*
* @return (@c EINA_TRUE = success, @c EINA_FALSE = error)
*
* @see elm_image_file_get()
*
* @note This function will trigger the Edje file case based on the
* extension of the @a file string (expects @c ".edj", for this
* case). If one wants to force this type of file independently of the
* extension, elm_image_file_edje_set() must be used, instead.
*
* @ingroup Image
*/
EAPI Eina_Bool elm_image_file_set(Evas_Object *obj, const char *file, const char *group);
/**
* Get the file that will be used as image.
*
* @param obj The image object
* @param file The path to file
* @param group The group that the image belongs in edje file
*
* @see elm_image_file_set()
*
* @ingroup Image
*/
EAPI void elm_image_file_get(const Evas_Object *obj, const char **file, const char **group);
/**
* Set the smooth effect for an image.
*
* @param obj The image object
* @param smooth @c EINA_TRUE if smooth scaling should be used, @c EINA_FALSE
* otherwise. Default is @c EINA_TRUE.
*
* Set the scaling algorithm to be used when scaling the image. Smooth
* scaling provides a better resulting image, but is slower.
*
* The smooth scaling should be disabled when making animations that change
* the image size, since it will be faster. Animations that don't require
* resizing of the image can keep the smooth scaling enabled (even if the
* image is already scaled, since the scaled image will be cached).
*
* @see elm_image_smooth_get()
*
* @ingroup Image
*/
EAPI void elm_image_smooth_set(Evas_Object *obj, Eina_Bool smooth);
/**
* Get the smooth effect for an image.
*
* @param obj The image object
* @return @c EINA_TRUE if smooth scaling is enabled, @c EINA_FALSE otherwise.
*
* @see elm_image_smooth_set()
*
* @ingroup Image
*/
EAPI Eina_Bool elm_image_smooth_get(const Evas_Object *obj);
/**
* Gets the current size of the image.
*
* @param obj The image object.
* @param w Pointer to store width, or NULL.
* @param h Pointer to store height, or NULL.
*
* This is the real size of the image, not the size of the object.
*
* @ingroup Image
*/
EAPI void elm_image_object_size_get(const Evas_Object *obj, int *w, int *h);
/**
* Disable scaling of this object.
*
* @param obj The image object.
* @param no_scale @c EINA_TRUE if the object is not scalable, @c EINA_FALSE
* otherwise. Default is @c EINA_FALSE.
*
* This function disables scaling of the elm_image widget through the
* function elm_object_scale_set(). However, this does not affect the widget
* size/resize in any way. For that effect, take a look at
* elm_image_resizable_set().
*
* @see elm_image_no_scale_get()
* @see elm_image_resizable_set()
* @see elm_object_scale_set()
*
* @ingroup Image
*/
EAPI void elm_image_no_scale_set(Evas_Object *obj, Eina_Bool no_scale);
/**
* Get whether scaling is disabled on the object.
*
* @param obj The image object
* @return @c EINA_TRUE if scaling is disabled, @c EINA_FALSE otherwise
*
* @see elm_image_no_scale_set()
*
* @ingroup Image
*/
EAPI Eina_Bool elm_image_no_scale_get(const Evas_Object *obj);
/**
* Set if the object is (up/down) resizable.
*
* @param obj The image object
* @param size_up A bool to set if the object is resizable up. Default is
* @c EINA_TRUE.
* @param size_down A bool to set if the object is resizable down. Default
* is @c EINA_TRUE.
*
* This function limits the image resize ability. If @p size_up is set to
* @c EINA_FALSE, the object can't have its height or width resized to a value
* higher than the original image size. Same is valid for @p size_down.
*
* @see elm_image_resizable_get()
*
* @ingroup Image
*/
EAPI void elm_image_resizable_set(Evas_Object *obj, Eina_Bool size_up, Eina_Bool size_down);
/**
* Get if the object is (up/down) resizable.
*
* @param obj The image object
* @param size_up A bool to set if the object is resizable up
* @param size_down A bool to set if the object is resizable down
*
* @see elm_image_resizable_set()
*
* @ingroup Image
*/
EAPI void elm_image_resizable_get(const Evas_Object *obj, Eina_Bool *size_up, Eina_Bool *size_down);
/**
* Set if the image fills the entire object area, when keeping the aspect ratio.
*
* @param obj The image object
* @param fill_outside @c EINA_TRUE if the object is filled outside,
* @c EINA_FALSE otherwise. Default is @c EINA_FALSE.
*
* When the image should keep its aspect ratio even if resized to another
* aspect ratio, there are two possibilities to resize it: keep the entire
* image inside the limits of height and width of the object (@p fill_outside
* is @c EINA_FALSE) or let the extra width or height go outside of the object,
* and the image will fill the entire object (@p fill_outside is @c EINA_TRUE).
*
* @note This option will have no effect if
* elm_image_aspect_fixed_set() is set to @c EINA_FALSE.
*
* @see elm_image_fill_outside_get()
* @see elm_image_aspect_fixed_set()
*
* @ingroup Image
*/
EAPI void elm_image_fill_outside_set(Evas_Object *obj, Eina_Bool fill_outside);
/**
* Get if the object is filled outside
*
* @param obj The image object
* @return @c EINA_TRUE if the object is filled outside, @c EINA_FALSE otherwise.
*
* @see elm_image_fill_outside_set()
*
* @ingroup Image
*/
EAPI Eina_Bool elm_image_fill_outside_get(const Evas_Object *obj);
/**
* Enable or disable preloading of the image
*
* @param obj The image object
* @param disabled If EINA_TRUE, preloading will be disabled
* @ingroup Image
*/
EAPI void elm_image_preload_disabled_set(Evas_Object *obj, Eina_Bool disabled);
/**
* Set the prescale size for the image
*
* @param obj The image object
* @param size The prescale size. This value is used for both width and
* height.
*
* This function sets a new size for pixmap representation of the given
* image. It allows the image to be loaded already in the specified size,
* reducing the memory usage and load time when loading a big image with load
* size set to a smaller size.
*
* It's equivalent to the elm_bg_load_size_set() function for bg.
*
* @note this is just a hint, the real size of the pixmap may differ
* depending on the type of image being loaded, being bigger than requested.
*
* @see elm_image_prescale_get()
* @see elm_bg_load_size_set()
*
* @ingroup Image
*/
EAPI void elm_image_prescale_set(Evas_Object *obj, int size);
/**
* Get the prescale size for the image
*
* @param obj The image object
* @return The prescale size
*
* @see elm_image_prescale_set()
*
* @ingroup Image
*/
EAPI int elm_image_prescale_get(const Evas_Object *obj);
/**
* Set the image orientation.
*
* @param obj The image object
* @param orient The image orientation @ref Elm_Image_Orient
* Default is #ELM_IMAGE_ORIENT_NONE.
*
* This function allows to rotate or flip the given image.
*
* @see elm_image_orient_get()
* @see @ref Elm_Image_Orient
*
* @ingroup Image
*/
EAPI void elm_image_orient_set(Evas_Object *obj, Elm_Image_Orient orient);
/**
* Get the image orientation.
*
* @param obj The image object
* @return The image orientation @ref Elm_Image_Orient
*
* @see elm_image_orient_set()
* @see @ref Elm_Image_Orient
*
* @ingroup Image
*/
EAPI Elm_Image_Orient elm_image_orient_get(const Evas_Object *obj);
/**
* Make the image 'editable'.
*
* @param obj Image object.
* @param set Turn on or off editability. Default is @c EINA_FALSE.
*
* This means the image is a valid drag target for drag and drop, and can be
* cut or pasted too.
*
* @ingroup Image
*/
EAPI void elm_image_editable_set(Evas_Object *obj, Eina_Bool set);
/**
* Check if the image is 'editable'.
*
* @param obj Image object.
* @return Editability.
*
* A return value of EINA_TRUE means the image is a valid drag target
* for drag and drop, and can be cut or pasted too.
*
* @ingroup Image
*/
EAPI Eina_Bool elm_image_editable_get(const Evas_Object *obj);
/**
* Get the inlined image object of the image widget.
*
* @param obj The image object to get the inlined image from
* @return The inlined image object, or NULL if none exists
*
* This function allows one to get the underlying @c Evas_Object of type
* Image from this elementary widget. It can be useful to do things like get
* the pixel data, save the image to a file, etc.
*
* @note Be careful to not manipulate it, as it is under control of
* elementary.
*
* @ingroup Image
*/
EAPI Evas_Object *elm_image_object_get(const Evas_Object *obj);
/**
* Set whether the original aspect ratio of the image should be kept on resize.
*
* @param obj The image object.
* @param fixed @c EINA_TRUE if the image should retain the aspect,
* @c EINA_FALSE otherwise.
*
* The original aspect ratio (width / height) of the image is usually
* distorted to match the object's size. Enabling this option will retain
* this original aspect, and the way that the image is fit into the object's
* area depends on the option set by elm_image_fill_outside_set().
*
* @see elm_image_aspect_fixed_get()
* @see elm_image_fill_outside_set()
*
* @ingroup Image
*/
EAPI void elm_image_aspect_fixed_set(Evas_Object *obj, Eina_Bool fixed);
/**
* Get if the object retains the original aspect ratio.
*
* @param obj The image object.
* @return @c EINA_TRUE if the object keeps the original aspect, @c EINA_FALSE
* otherwise.
*
* @ingroup Image
*/
EAPI Eina_Bool elm_image_aspect_fixed_get(const Evas_Object *obj);
/**
* Get whether an image object supports animation or not.
*
* @param obj The image object
* @return @c EINA_TRUE if the image supports animation,
* @c EINA_FALSE otherwise.
*
* This function returns if this Elementary image object's internal
* image can be animated. Currently Evas only supports GIF
* animation. If the return value is @b EINA_FALSE, other
* @c elm_image_animated_xxx API calls won't work.
*
* @see elm_image_animated_set()
*
* @ingroup Image
* @since 1.7
*/
EAPI Eina_Bool elm_image_animated_available_get(const Evas_Object *obj);
/**
* Set whether an image object (which supports animation) is to
* animate itself or not.
*
* @param obj The image object
* @param animated @c EINA_TRUE if the object is to animate itself,
* @c EINA_FALSE otherwise. Default is @c EINA_FALSE.
*
* An image object, even if it supports animation, will be displayed
* by default without animation. Call this function with @a animated
* set to @c EINA_TRUE to enable its animation. To start or stop the
* animation, actually, use elm_image_animated_play_set().
*
* @see elm_image_animated_get()
* @see elm_image_animated_available_get()
* @see elm_image_animated_play_set()
*
* @ingroup Image
* @since 1.7
*/
EAPI void elm_image_animated_set(Evas_Object *obj, Eina_Bool animated);
/**
* Get whether an image object has animation enabled or not.
*
* @param obj The image object
*
* @return @c EINA_TRUE if the image has animation enabled,
* @c EINA_FALSE otherwise.
*
* @see elm_image_animated_set()
*
* @ingroup Image
* @since 1.7
*/
EAPI Eina_Bool elm_image_animated_get(const Evas_Object *obj);
/**
* Start or stop an image object's animation.
*
* @param obj The image object
* @param play @c EINA_TRUE to start the animation, @c EINA_FALSE
* otherwise. Default is @c EINA_FALSE.
*
* To actually start playing any image object's animation, if it
* supports it, one must do something like:
*
* @code
* if (elm_image_animated_available_get(img))
* {
* elm_image_animated_set(img, EINA_TRUE);
* elm_image_animated_play_set(img, EINA_TRUE);
* }
* @endcode
*
* elm_image_animated_set() will enable animation on the image, <b>but
* not start it yet</b>. This is the function one uses to start and
* stop animations on image objects.
*
* @see elm_image_animated_available_get()
* @see elm_image_animated_set()
* @see elm_image_animated_play_get()
*
* @ingroup Image
* @since 1.7
*/
EAPI void elm_image_animated_play_set(Evas_Object *obj, Eina_Bool play);
/**
* Get whether an image object is under animation or not.
*
* @param obj The image object
* @return @c EINA_TRUE, if the image is being animated, @c EINA_FALSE
* otherwise.
*
* @see elm_image_animated_play_get()
*
* @ingroup Image
* @since 1.7
*/
EAPI Eina_Bool elm_image_animated_play_get(const Evas_Object *obj);

View File

@ -52,695 +52,18 @@
* @li @ref index_example_02
*/
#define ELM_OBJ_INDEX_CLASS elm_obj_index_class_get()
const Eo_Class *elm_obj_index_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_INDEX_BASE_ID;
enum
{
ELM_OBJ_INDEX_SUB_ID_AUTOHIDE_DISABLED_SET,
ELM_OBJ_INDEX_SUB_ID_AUTOHIDE_DISABLED_GET,
ELM_OBJ_INDEX_SUB_ID_ITEM_LEVEL_SET,
ELM_OBJ_INDEX_SUB_ID_ITEM_LEVEL_GET,
ELM_OBJ_INDEX_SUB_ID_SELECTED_ITEM_GET,
ELM_OBJ_INDEX_SUB_ID_ITEM_APPEND,
ELM_OBJ_INDEX_SUB_ID_ITEM_PREPEND,
ELM_OBJ_INDEX_SUB_ID_ITEM_INSERT_AFTER,
ELM_OBJ_INDEX_SUB_ID_ITEM_INSERT_BEFORE,
ELM_OBJ_INDEX_SUB_ID_ITEM_SORTED_INSERT,
ELM_OBJ_INDEX_SUB_ID_ITEM_FIND,
ELM_OBJ_INDEX_SUB_ID_ITEM_CLEAR,
ELM_OBJ_INDEX_SUB_ID_LEVEL_GO,
ELM_OBJ_INDEX_SUB_ID_INDICATOR_DISABLED_SET,
ELM_OBJ_INDEX_SUB_ID_INDICATOR_DISABLED_GET,
ELM_OBJ_INDEX_SUB_ID_HORIZONTAL_SET,
ELM_OBJ_INDEX_SUB_ID_HORIZONTAL_GET,
ELM_OBJ_INDEX_SUB_ID_DELAY_CHANGE_TIME_SET,
ELM_OBJ_INDEX_SUB_ID_DELAY_CHANGE_TIME_GET,
ELM_OBJ_INDEX_SUB_ID_OMIT_ENABLED_SET,
ELM_OBJ_INDEX_SUB_ID_OMIT_ENABLED_GET,
ELM_OBJ_INDEX_SUB_ID_LAST
};
#define ELM_OBJ_INDEX_ID(sub_id) (ELM_OBJ_INDEX_BASE_ID + sub_id)
/**
* @def elm_obj_index_autohide_disabled_set
* @since 1.8
*
* Enable or disable auto hiding feature for a given index widget.
*
* @param[in] disabled
*
* @see elm_index_autohide_disabled_set
*/
#define elm_obj_index_autohide_disabled_set(disabled) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_AUTOHIDE_DISABLED_SET), EO_TYPECHECK(Eina_Bool, disabled)
/**
* @def elm_obj_index_autohide_disabled_get
* @since 1.8
*
* Get whether auto hiding feature is enabled or not for a given index widget.
*
* @param[out] ret
*
* @see elm_index_autohide_disabled_get
*/
#define elm_obj_index_autohide_disabled_get(ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_AUTOHIDE_DISABLED_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_index_item_level_set
* @since 1.8
*
* Set the items level for a given index widget.
*
* @param[in] level
*
* @see elm_index_item_level_set
*/
#define elm_obj_index_item_level_set(level) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_ITEM_LEVEL_SET), EO_TYPECHECK(int, level)
/**
* @def elm_obj_index_item_level_get
* @since 1.8
*
* Get the items level set for a given index widget.
*
* @param[out] ret
*
* @see elm_index_item_level_get
*/
#define elm_obj_index_item_level_get(ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_ITEM_LEVEL_GET), EO_TYPECHECK(int *, ret)
/**
* @def elm_obj_index_selected_item_get
* @since 1.8
*
* Returns the last selected item, for a given index widget.
*
* @param[in] level
* @param[out] ret
*
* @see elm_index_selected_item_get
*/
#define elm_obj_index_selected_item_get(level, ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_SELECTED_ITEM_GET), EO_TYPECHECK(int, level), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_index_item_append
* @since 1.8
*
* Append a new item on a given index widget.
*
* @param[in] letter
* @param[in] func
* @param[in] data
* @param[out] ret
*
* @see elm_index_item_append
*/
#define elm_obj_index_item_append(letter, func, data, ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_ITEM_APPEND), EO_TYPECHECK(const char *, letter), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_index_item_prepend
* @since 1.8
*
* Prepend a new item on a given index widget.
*
* @param[in] letter
* @param[in] func
* @param[in] data
* @param[out] ret
*
* @see elm_index_item_prepend
*/
#define elm_obj_index_item_prepend(letter, func, data, ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_ITEM_PREPEND), EO_TYPECHECK(const char *, letter), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_index_item_insert_after
* @since 1.8
*
* Insert a new item into the index object after item after.
*
* @param[in] after
* @param[in] letter
* @param[in] func
* @param[in] data
* @param[out] ret
*
* @see elm_index_item_insert_after
*/
#define elm_obj_index_item_insert_after(after, letter, func, data, ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_ITEM_INSERT_AFTER), EO_TYPECHECK(Elm_Object_Item *, after), EO_TYPECHECK(const char *, letter), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_index_item_insert_before
* @since 1.8
*
* Insert a new item into the index object before item before.
*
* @param[in] before
* @param[in] letter
* @param[in] func
* @param[in] data
* @param[out] ret
*
* @see elm_index_item_insert_before
*/
#define elm_obj_index_item_insert_before(before, letter, func, data, ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_ITEM_INSERT_BEFORE), EO_TYPECHECK(Elm_Object_Item *, before), EO_TYPECHECK(const char *, letter), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_index_item_sorted_insert
* @since 1.8
*
* Insert a new item into the given index widget, using cmp_func
*
* @param[in] letter
* @param[in] func
* @param[in] data
* @param[in] cmp_func
* @param[in] cmp_data_func
* @param[out] ret
*
* @see elm_index_item_sorted_insert
*/
#define elm_obj_index_item_sorted_insert(letter, func, data, cmp_func, cmp_data_func, ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_ITEM_SORTED_INSERT), EO_TYPECHECK(const char *, letter), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Eina_Compare_Cb, cmp_func), EO_TYPECHECK(Eina_Compare_Cb, cmp_data_func), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_index_item_find
* @since 1.8
*
* Find a given index widget's item, <b>using item data</b>.
*
* @param[in] data
* @param[out] ret
*
* @see elm_index_item_find
*/
#define elm_obj_index_item_find(data, ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_ITEM_FIND), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_index_item_clear
* @since 1.8
*
* Removes all items from a given index widget.
*
*
* @see elm_index_item_clear
*/
#define elm_obj_index_item_clear() ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_ITEM_CLEAR)
/**
* @def elm_obj_index_level_go
* @since 1.8
*
* Go to a given items level on a index widget
*
* @param[in] level
*
* @see elm_index_level_go
*/
#define elm_obj_index_level_go(level) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_LEVEL_GO), EO_TYPECHECK(int, level)
/**
* @def elm_obj_index_indicator_disabled_set
* @since 1.8
*
* Set the indicator as to be disabled.
*
* @param[in] disabled
*
* @see elm_index_indicator_disabled_set
*/
#define elm_obj_index_indicator_disabled_set(disabled) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_INDICATOR_DISABLED_SET), EO_TYPECHECK(Eina_Bool, disabled)
/**
* @def elm_obj_index_indicator_disabled_get
* @since 1.8
*
* Get the value of indicator's disabled status.
*
* @param[out] ret
*
* @see elm_index_indicator_disabled_get
*/
#define elm_obj_index_indicator_disabled_get(ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_INDICATOR_DISABLED_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_index_horizontal_set
* @since 1.8
*
* Enable or disable horizontal mode on the index object
*
* @param[in] horizontal
*
* @see elm_index_horizontal_set
*/
#define elm_obj_index_horizontal_set(horizontal) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_HORIZONTAL_SET), EO_TYPECHECK(Eina_Bool, horizontal)
/**
* @def elm_obj_index_horizontal_get
* @since 1.8
*
* Get a value whether horizontal mode is enabled or not.
*
* @param[out] ret
*
* @see elm_index_horizontal_get
*/
#define elm_obj_index_horizontal_get(ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_HORIZONTAL_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_index_delay_change_time_set
* @since 1.8
*
* Change index delay change time.
*
* @param[in] ret
*
* @see elm_index_delay_change_time_get
*/
#define elm_obj_index_delay_change_time_set(dtime) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_DELAY_CHANGE_TIME_SET), EO_TYPECHECK(double, dtime)
/**
* @def elm_obj_index_delay_change_time_get
* @since 1.8
*
* Get index delay change time.
*
* @param[out] ret
*
* @see elm_index_delay_change_time_set
*/
#define elm_obj_index_delay_change_time_get(ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_DELAY_CHANGE_TIME_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_index_omit_enabled_set
* @since 1.8
*
* Enable or disable omit feature for a given index widget.
*
* @param[in] enabled
*
* @see elm_index_omit_enabled_set
*/
#define elm_obj_index_omit_enabled_set(enabled) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_OMIT_ENABLED_SET), EO_TYPECHECK(Eina_Bool, enabled)
/**
* @def elm_obj_index_omit_enabled_get
* @since 1.8
*
* Get whether omit feature is enabled or not for a given index widget.
*
* @param[out] ret
*
* @see elm_index_omit_enabled_get
*/
#define elm_obj_index_omit_enabled_get(ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_OMIT_ENABLED_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @addtogroup Index
* @{
*/
/**
* Add a new index widget to the given parent Elementary
* (container) object
*
* @param parent The parent object
* @return a new index widget handle or @c NULL, on errors
*
* This function inserts a new index widget on the canvas.
*
* @ingroup Index
*/
EAPI Evas_Object *elm_index_add(Evas_Object *parent);
/**
* Enable or disable auto hiding feature for a given index widget.
*
* @param obj The index object
* @param disabled @c EINA_TRUE to disable auto hiding, @c EINA_FALSE to enable
*
* @see elm_index_autohide_disabled_get()
*
* @ingroup Index
*/
EAPI void elm_index_autohide_disabled_set(Evas_Object *obj, Eina_Bool disabled);
/**
* Get whether auto hiding feature is enabled or not for a given index widget.
*
* @param obj The index object
* @return @c EINA_TRUE, if auto hiding is disabled, @c EINA_FALSE otherwise
*
* @see elm_index_autohide_disabled_set() for more details
*
* @ingroup Index
*/
EAPI Eina_Bool elm_index_autohide_disabled_get(const Evas_Object *obj);
/**
* Set the items level for a given index widget.
*
* @param obj The index object.
* @param level @c 0 or @c 1, the currently implemented levels.
*
* @see elm_index_item_level_get()
*
* @ingroup Index
*/
EAPI void elm_index_item_level_set(Evas_Object *obj, int level);
/**
* Get the items level set for a given index widget.
*
* @param obj The index object.
* @return @c 0 or @c 1, which are the levels @p obj might be at.
*
* @see elm_index_item_level_set() for more information
*
* @ingroup Index
*/
EAPI int elm_index_item_level_get(const Evas_Object *obj);
/**
* Set the selected state of an item.
*
* @param it The index item
* @param selected The selected state
*
* 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 previously selected will be unselected.
* Previously selected item can be get with function
* elm_index_selected_item_get().
*
* Selected items will be highlighted.
*
* @see elm_index_selected_item_get()
*
* @ingroup Index
*/
EAPI void elm_index_item_selected_set(Elm_Object_Item *it, Eina_Bool selected);
/**
* Returns the last selected item, for a given index widget.
*
* @param obj The index object.
* @param level @c 0 or @c 1, the currently implemented levels.
* @return The last item @b selected on @p obj (or @c NULL, on errors).
*
* @ingroup Index
*/
EAPI Elm_Object_Item *elm_index_selected_item_get(const Evas_Object *obj, int level);
/**
* Append a new item on a given index widget.
*
* @param obj The index object.
* @param letter Letter under which the item should be indexed
* @param func The function to call when the item is selected.
* @param data The item data to set for the index's item
* @return A handle to the item added or @c NULL, on errors
*
* Despite the most common usage of the @p letter argument is for
* single char strings, one could use arbitrary strings as index
* entries.
*
* @c item will be the pointer returned back on @c "changed", @c
* "delay,changed" and @c "selected" smart events.
*
* @ingroup Index
*/
EAPI Elm_Object_Item *elm_index_item_append(Evas_Object *obj, const char *letter, Evas_Smart_Cb func, const void *data);
/**
* Prepend a new item on a given index widget.
*
* @param obj The index object.
* @param letter Letter under which the item should be indexed
* @param func The function to call when the item is selected.
* @param data The item data to set for the index's item
* @return A handle to the item added or @c NULL, on errors
*
* Despite the most common usage of the @p letter argument is for
* single char strings, one could use arbitrary strings as index
* entries.
*
* @c item will be the pointer returned back on @c "changed", @c
* "delay,changed" and @c "selected" smart events.
*
* @ingroup Index
*/
EAPI Elm_Object_Item *elm_index_item_prepend(Evas_Object *obj, const char *letter, Evas_Smart_Cb func, const void *data);
/**
* Insert a new item into the index object after item @p after.
*
* @param obj The index object.
* @param after The index item to insert after.
* @param letter Letter under which the item should be indexed
* @param func The function to call when the item is clicked.
* @param data The item data to set for the index's item
* @return A handle to the item added or @c NULL, on errors
*
* Despite the most common usage of the @p letter argument is for
* single char strings, one could use arbitrary strings as index
* entries.
*
* @c item will be the pointer returned back on @c "changed", @c
* "delay,changed" and @c "selected" smart events.
*
* @note If @p relative is @c NULL this function will behave as
* elm_index_item_append().
*
* @ingroup Index
*/
EAPI Elm_Object_Item *elm_index_item_insert_after(Evas_Object *obj, Elm_Object_Item *after, const char *letter, Evas_Smart_Cb func, const void *data);
/**
* Insert a new item into the index object before item @p before.
*
* @param obj The index object.
* @param before The index item to insert after.
* @param letter Letter under which the item should be indexed
* @param func The function to call when the item is clicked.
* @param data The item data to set for the index's item
* @return A handle to the item added or @c NULL, on errors
*
* Despite the most common usage of the @p letter argument is for
* single char strings, one could use arbitrary strings as index
* entries.
*
* @c item will be the pointer returned back on @c "changed", @c
* "delay,changed" and @c "selected" smart events.
*
* @note If @p relative is @c NULL this function will behave as
* elm_index_item_prepend().
*
* @ingroup Index
*/
EAPI Elm_Object_Item *elm_index_item_insert_before(Evas_Object *obj, Elm_Object_Item *before, const char *letter, Evas_Smart_Cb func, const void *data);
/**
* Insert a new item into the given index widget, using @p cmp_func
* function to sort items (by item handles).
*
* @param obj The index object.
* @param letter Letter under which the item should be indexed
* @param func The function to call when the item is clicked.
* @param data The item data to set for the index's item
* @param cmp_func The comparing function to be used to sort index
* items <b>by index item handles</b>
* @param cmp_data_func A @b fallback function to be called for the
* sorting of index items <b>by item data</b>). It will be used
* when @p cmp_func returns @c 0 (equality), which means an index
* item with provided item data already exists. To decide which
* data item should be pointed to by the index item in question, @p
* cmp_data_func will be used. If @p cmp_data_func returns a
* non-negative value, the previous index item data will be
* replaced by the given @p item pointer. If the previous data need
* to be freed, it should be done by the @p cmp_data_func function,
* because all references to it will be lost. If this function is
* not provided (@c NULL is given), index items will be @b
* duplicated, if @p cmp_func returns @c 0.
* @return A handle to the item added or @c NULL, on errors
*
* Despite the most common usage of the @p letter argument is for
* single char strings, one could use arbitrary strings as index
* entries.
*
* @c item will be the pointer returned back on @c "changed", @c
* "delay,changed" and @c "selected" smart events.
*
* @ingroup Index
*/
EAPI Elm_Object_Item *elm_index_item_sorted_insert(Evas_Object *obj, const char *letter, Evas_Smart_Cb func, const void *data, Eina_Compare_Cb cmp_func, Eina_Compare_Cb cmp_data_func);
/**
* Find a given index widget's item, <b>using item data</b>.
*
* @param obj The index object
* @param data The item data pointed to by the desired index item
* @return The index item handle, if found, or @c NULL otherwise
*
* @ingroup Index
*/
EAPI Elm_Object_Item *elm_index_item_find(Evas_Object *obj, const void *data);
/**
* Removes @b all items from a given index widget.
*
* @param obj The index object.
*
* If deletion callbacks are set, via elm_object_item_del_cb_set(),
* that callback function will be called for each item in @p obj.
*
* @ingroup Index
*/
EAPI void elm_index_item_clear(Evas_Object *obj);
/**
* Flush the changes made to the index items so they work correctly
*
* This flushes any changes made to items indicating the object is ready to
* go. You should call this before any changes you expect to work. This
* is similar to elm_list_go().
*
* @param obj The index object
* @param level The index level (one of @c 0 or @c 1) where changes were made
*
* @warning If not called, it won't display the index properly.
*
* @ingroup Index
*/
EAPI void elm_index_level_go(Evas_Object *obj, int level);
/**
* Get the letter (string) set on a given index widget item.
*
* @param item The index item handle
* @return The letter string set on @p it
*
* @ingroup Index
*/
EAPI const char *elm_index_item_letter_get(const Elm_Object_Item *item);
/**
* Set the indicator as to be disabled.
*
* @param obj The index object
* @param disabled @c EINA_TRUE to disable it, @c EINA_FALSE to enable it
*
* In Index widget, Indicator notes popup text, which shows a letter has been selecting.
*
* @see elm_index_indicator_disabled_get()
*
* @ingroup Index
*/
EAPI void elm_index_indicator_disabled_set(Evas_Object *obj, Eina_Bool disabled);
/**
* Get the value of indicator's disabled status.
*
* @param obj The index object
* @return EINA_TRUE if the indicator is disabled.
*
* @see elm_index_indicator_disabled_set()
*
* @ingroup Index
*/
EAPI Eina_Bool elm_index_indicator_disabled_get(const Evas_Object *obj);
/**
* Enable or disable horizontal mode on the index object
*
* @param obj The index object.
* @param horizontal @c EINA_TRUE to enable horizontal or @c EINA_FALSE to
* disable it, i.e., to enable vertical mode. it's an area one @ref Fingers
* "finger" wide on the bottom side of the index widget's container.
*
* @note Vertical mode is set by default.
*
* On horizontal mode items are displayed on index from left to right,
* instead of from top to bottom. Also, the index will scroll horizontally.
*
* @see elm_index_horizontal_get()
*
* @ingroup Index
*/
EAPI void elm_index_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
/**
* Get a value whether horizontal mode is enabled or not.
*
* @param obj The index object.
* @return @c EINA_TRUE means horizontal mode selection is enabled.
* @c EINA_FALSE indicates it's disabled. If @p obj is @c NULL,
* @c EINA_FALSE is returned.
*
* @see elm_index_horizontal_set() for details.
*
* @ingroup Index
*/
EAPI Eina_Bool elm_index_horizontal_get(const Evas_Object *obj);
/**
* Set a delay change time for index object.
*
* @param obj The index object.
* @param delay_change_time The delay change time to set.
*
* @note delay time is 0.2 sec by default.
*
* @see elm_index_delay_change_time_get
*
* @ingroup Index
*/
EAPI void elm_index_delay_change_time_set(Evas_Object *obj, double delay_change_time);
/**
* Get a delay change time for index object.
*
* @param obj The index object.
* @return delay change time in seconds
*
* @see elm_index_delay_change_time_set
*
* @ingroup Index
*/
EAPI double elm_index_delay_change_time_get(const Evas_Object *obj);
/**
* Enable or disable omit feature for a given index widget.
*
* @param obj The index object
* @param enabled @c EINA_TRUE to enable omit feature, @c EINA_FALSE to disable
*
* @see elm_index_omit_enabled_get()
*
* @since 1.8
*
* @ingroup Index
*/
EAPI void elm_index_omit_enabled_set(Evas_Object *obj, Eina_Bool enabled);
/**
* Get whether omit feature is enabled or not for a given index widget.
*
* @param obj The index object
* @return @c EINA_TRUE, if omit feature is enabled, @c EINA_FALSE otherwise
*
* @see elm_index_omit_enabled_set()
*
* @since 1.8
*
* @ingroup Index
*/
EAPI Eina_Bool elm_index_omit_enabled_get(const Evas_Object *obj);
#include <elm_index_common.h>
#ifdef EFL_EO_API_SUPPORT
#include <elm_index_eo.h>
#endif
#ifndef EFL_NOLEGACY_API_SUPPORT
#include <elm_index_legacy.h>
#endif
/**
* @}

View File

@ -0,0 +1,21 @@
/**
* Set the selected state of an item.
*
* @param it The index item
* @param selected The selected state
*
* 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 previously selected will be unselected.
* Previously selected item can be get with function
* elm_index_selected_item_get().
*
* Selected items will be highlighted.
*
* @see elm_index_selected_item_get()
*
* @ingroup Index
*/
EAPI void elm_index_item_selected_set(Elm_Object_Item *it, Eina_Bool selected);

View File

@ -0,0 +1,308 @@
#define ELM_OBJ_INDEX_CLASS elm_obj_index_class_get()
const Eo_Class *elm_obj_index_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_INDEX_BASE_ID;
enum
{
ELM_OBJ_INDEX_SUB_ID_AUTOHIDE_DISABLED_SET,
ELM_OBJ_INDEX_SUB_ID_AUTOHIDE_DISABLED_GET,
ELM_OBJ_INDEX_SUB_ID_ITEM_LEVEL_SET,
ELM_OBJ_INDEX_SUB_ID_ITEM_LEVEL_GET,
ELM_OBJ_INDEX_SUB_ID_SELECTED_ITEM_GET,
ELM_OBJ_INDEX_SUB_ID_ITEM_APPEND,
ELM_OBJ_INDEX_SUB_ID_ITEM_PREPEND,
ELM_OBJ_INDEX_SUB_ID_ITEM_INSERT_AFTER,
ELM_OBJ_INDEX_SUB_ID_ITEM_INSERT_BEFORE,
ELM_OBJ_INDEX_SUB_ID_ITEM_SORTED_INSERT,
ELM_OBJ_INDEX_SUB_ID_ITEM_FIND,
ELM_OBJ_INDEX_SUB_ID_ITEM_CLEAR,
ELM_OBJ_INDEX_SUB_ID_LEVEL_GO,
ELM_OBJ_INDEX_SUB_ID_INDICATOR_DISABLED_SET,
ELM_OBJ_INDEX_SUB_ID_INDICATOR_DISABLED_GET,
ELM_OBJ_INDEX_SUB_ID_HORIZONTAL_SET,
ELM_OBJ_INDEX_SUB_ID_HORIZONTAL_GET,
ELM_OBJ_INDEX_SUB_ID_DELAY_CHANGE_TIME_SET,
ELM_OBJ_INDEX_SUB_ID_DELAY_CHANGE_TIME_GET,
ELM_OBJ_INDEX_SUB_ID_OMIT_ENABLED_SET,
ELM_OBJ_INDEX_SUB_ID_OMIT_ENABLED_GET,
ELM_OBJ_INDEX_SUB_ID_LAST
};
#define ELM_OBJ_INDEX_ID(sub_id) (ELM_OBJ_INDEX_BASE_ID + sub_id)
/**
* @def elm_obj_index_autohide_disabled_set
* @since 1.8
*
* Enable or disable auto hiding feature for a given index widget.
*
* @param[in] disabled
*
* @see elm_index_autohide_disabled_set
*/
#define elm_obj_index_autohide_disabled_set(disabled) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_AUTOHIDE_DISABLED_SET), EO_TYPECHECK(Eina_Bool, disabled)
/**
* @def elm_obj_index_autohide_disabled_get
* @since 1.8
*
* Get whether auto hiding feature is enabled or not for a given index widget.
*
* @param[out] ret
*
* @see elm_index_autohide_disabled_get
*/
#define elm_obj_index_autohide_disabled_get(ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_AUTOHIDE_DISABLED_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_index_item_level_set
* @since 1.8
*
* Set the items level for a given index widget.
*
* @param[in] level
*
* @see elm_index_item_level_set
*/
#define elm_obj_index_item_level_set(level) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_ITEM_LEVEL_SET), EO_TYPECHECK(int, level)
/**
* @def elm_obj_index_item_level_get
* @since 1.8
*
* Get the items level set for a given index widget.
*
* @param[out] ret
*
* @see elm_index_item_level_get
*/
#define elm_obj_index_item_level_get(ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_ITEM_LEVEL_GET), EO_TYPECHECK(int *, ret)
/**
* @def elm_obj_index_selected_item_get
* @since 1.8
*
* Returns the last selected item, for a given index widget.
*
* @param[in] level
* @param[out] ret
*
* @see elm_index_selected_item_get
*/
#define elm_obj_index_selected_item_get(level, ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_SELECTED_ITEM_GET), EO_TYPECHECK(int, level), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_index_item_append
* @since 1.8
*
* Append a new item on a given index widget.
*
* @param[in] letter
* @param[in] func
* @param[in] data
* @param[out] ret
*
* @see elm_index_item_append
*/
#define elm_obj_index_item_append(letter, func, data, ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_ITEM_APPEND), EO_TYPECHECK(const char *, letter), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_index_item_prepend
* @since 1.8
*
* Prepend a new item on a given index widget.
*
* @param[in] letter
* @param[in] func
* @param[in] data
* @param[out] ret
*
* @see elm_index_item_prepend
*/
#define elm_obj_index_item_prepend(letter, func, data, ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_ITEM_PREPEND), EO_TYPECHECK(const char *, letter), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_index_item_insert_after
* @since 1.8
*
* Insert a new item into the index object after item after.
*
* @param[in] after
* @param[in] letter
* @param[in] func
* @param[in] data
* @param[out] ret
*
* @see elm_index_item_insert_after
*/
#define elm_obj_index_item_insert_after(after, letter, func, data, ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_ITEM_INSERT_AFTER), EO_TYPECHECK(Elm_Object_Item *, after), EO_TYPECHECK(const char *, letter), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_index_item_insert_before
* @since 1.8
*
* Insert a new item into the index object before item before.
*
* @param[in] before
* @param[in] letter
* @param[in] func
* @param[in] data
* @param[out] ret
*
* @see elm_index_item_insert_before
*/
#define elm_obj_index_item_insert_before(before, letter, func, data, ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_ITEM_INSERT_BEFORE), EO_TYPECHECK(Elm_Object_Item *, before), EO_TYPECHECK(const char *, letter), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_index_item_sorted_insert
* @since 1.8
*
* Insert a new item into the given index widget, using cmp_func
*
* @param[in] letter
* @param[in] func
* @param[in] data
* @param[in] cmp_func
* @param[in] cmp_data_func
* @param[out] ret
*
* @see elm_index_item_sorted_insert
*/
#define elm_obj_index_item_sorted_insert(letter, func, data, cmp_func, cmp_data_func, ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_ITEM_SORTED_INSERT), EO_TYPECHECK(const char *, letter), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Eina_Compare_Cb, cmp_func), EO_TYPECHECK(Eina_Compare_Cb, cmp_data_func), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_index_item_find
* @since 1.8
*
* Find a given index widget's item, <b>using item data</b>.
*
* @param[in] data
* @param[out] ret
*
* @see elm_index_item_find
*/
#define elm_obj_index_item_find(data, ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_ITEM_FIND), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Elm_Object_Item **, ret)
/**
* @def elm_obj_index_item_clear
* @since 1.8
*
* Removes all items from a given index widget.
*
*
* @see elm_index_item_clear
*/
#define elm_obj_index_item_clear() ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_ITEM_CLEAR)
/**
* @def elm_obj_index_level_go
* @since 1.8
*
* Go to a given items level on a index widget
*
* @param[in] level
*
* @see elm_index_level_go
*/
#define elm_obj_index_level_go(level) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_LEVEL_GO), EO_TYPECHECK(int, level)
/**
* @def elm_obj_index_indicator_disabled_set
* @since 1.8
*
* Set the indicator as to be disabled.
*
* @param[in] disabled
*
* @see elm_index_indicator_disabled_set
*/
#define elm_obj_index_indicator_disabled_set(disabled) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_INDICATOR_DISABLED_SET), EO_TYPECHECK(Eina_Bool, disabled)
/**
* @def elm_obj_index_indicator_disabled_get
* @since 1.8
*
* Get the value of indicator's disabled status.
*
* @param[out] ret
*
* @see elm_index_indicator_disabled_get
*/
#define elm_obj_index_indicator_disabled_get(ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_INDICATOR_DISABLED_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_index_horizontal_set
* @since 1.8
*
* Enable or disable horizontal mode on the index object
*
* @param[in] horizontal
*
* @see elm_index_horizontal_set
*/
#define elm_obj_index_horizontal_set(horizontal) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_HORIZONTAL_SET), EO_TYPECHECK(Eina_Bool, horizontal)
/**
* @def elm_obj_index_horizontal_get
* @since 1.8
*
* Get a value whether horizontal mode is enabled or not.
*
* @param[out] ret
*
* @see elm_index_horizontal_get
*/
#define elm_obj_index_horizontal_get(ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_HORIZONTAL_GET), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_index_delay_change_time_set
* @since 1.8
*
* Change index delay change time.
*
* @param[in] ret
*
* @see elm_index_delay_change_time_get
*/
#define elm_obj_index_delay_change_time_set(dtime) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_DELAY_CHANGE_TIME_SET), EO_TYPECHECK(double, dtime)
/**
* @def elm_obj_index_delay_change_time_get
* @since 1.8
*
* Get index delay change time.
*
* @param[out] ret
*
* @see elm_index_delay_change_time_set
*/
#define elm_obj_index_delay_change_time_get(ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_DELAY_CHANGE_TIME_GET), EO_TYPECHECK(double *, ret)
/**
* @def elm_obj_index_omit_enabled_set
* @since 1.8
*
* Enable or disable omit feature for a given index widget.
*
* @param[in] enabled
*
* @see elm_index_omit_enabled_set
*/
#define elm_obj_index_omit_enabled_set(enabled) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_OMIT_ENABLED_SET), EO_TYPECHECK(Eina_Bool, enabled)
/**
* @def elm_obj_index_omit_enabled_get
* @since 1.8
*
* Get whether omit feature is enabled or not for a given index widget.
*
* @param[out] ret
*
* @see elm_index_omit_enabled_get
*/
#define elm_obj_index_omit_enabled_get(ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_OMIT_ENABLED_GET), EO_TYPECHECK(Eina_Bool *, ret)

View File

@ -0,0 +1,357 @@
/**
* Add a new index widget to the given parent Elementary
* (container) object
*
* @param parent The parent object
* @return a new index widget handle or @c NULL, on errors
*
* This function inserts a new index widget on the canvas.
*
* @ingroup Index
*/
EAPI Evas_Object *elm_index_add(Evas_Object *parent);
/**
* Enable or disable auto hiding feature for a given index widget.
*
* @param obj The index object
* @param disabled @c EINA_TRUE to disable auto hiding, @c EINA_FALSE to enable
*
* @see elm_index_autohide_disabled_get()
*
* @ingroup Index
*/
EAPI void elm_index_autohide_disabled_set(Evas_Object *obj, Eina_Bool disabled);
/**
* Get whether auto hiding feature is enabled or not for a given index widget.
*
* @param obj The index object
* @return @c EINA_TRUE, if auto hiding is disabled, @c EINA_FALSE otherwise
*
* @see elm_index_autohide_disabled_set() for more details
*
* @ingroup Index
*/
EAPI Eina_Bool elm_index_autohide_disabled_get(const Evas_Object *obj);
/**
* Set the items level for a given index widget.
*
* @param obj The index object.
* @param level @c 0 or @c 1, the currently implemented levels.
*
* @see elm_index_item_level_get()
*
* @ingroup Index
*/
EAPI void elm_index_item_level_set(Evas_Object *obj, int level);
/**
* Get the items level set for a given index widget.
*
* @param obj The index object.
* @return @c 0 or @c 1, which are the levels @p obj might be at.
*
* @see elm_index_item_level_set() for more information
*
* @ingroup Index
*/
EAPI int elm_index_item_level_get(const Evas_Object *obj);
/**
* Returns the last selected item, for a given index widget.
*
* @param obj The index object.
* @param level @c 0 or @c 1, the currently implemented levels.
* @return The last item @b selected on @p obj (or @c NULL, on errors).
*
* @ingroup Index
*/
EAPI Elm_Object_Item *elm_index_selected_item_get(const Evas_Object *obj, int level);
/**
* Append a new item on a given index widget.
*
* @param obj The index object.
* @param letter Letter under which the item should be indexed
* @param func The function to call when the item is selected.
* @param data The item data to set for the index's item
* @return A handle to the item added or @c NULL, on errors
*
* Despite the most common usage of the @p letter argument is for
* single char strings, one could use arbitrary strings as index
* entries.
*
* @c item will be the pointer returned back on @c "changed", @c
* "delay,changed" and @c "selected" smart events.
*
* @ingroup Index
*/
EAPI Elm_Object_Item *elm_index_item_append(Evas_Object *obj, const char *letter, Evas_Smart_Cb func, const void *data);
/**
* Prepend a new item on a given index widget.
*
* @param obj The index object.
* @param letter Letter under which the item should be indexed
* @param func The function to call when the item is selected.
* @param data The item data to set for the index's item
* @return A handle to the item added or @c NULL, on errors
*
* Despite the most common usage of the @p letter argument is for
* single char strings, one could use arbitrary strings as index
* entries.
*
* @c item will be the pointer returned back on @c "changed", @c
* "delay,changed" and @c "selected" smart events.
*
* @ingroup Index
*/
EAPI Elm_Object_Item *elm_index_item_prepend(Evas_Object *obj, const char *letter, Evas_Smart_Cb func, const void *data);
/**
* Insert a new item into the index object after item @p after.
*
* @param obj The index object.
* @param after The index item to insert after.
* @param letter Letter under which the item should be indexed
* @param func The function to call when the item is clicked.
* @param data The item data to set for the index's item
* @return A handle to the item added or @c NULL, on errors
*
* Despite the most common usage of the @p letter argument is for
* single char strings, one could use arbitrary strings as index
* entries.
*
* @c item will be the pointer returned back on @c "changed", @c
* "delay,changed" and @c "selected" smart events.
*
* @note If @p relative is @c NULL this function will behave as
* elm_index_item_append().
*
* @ingroup Index
*/
EAPI Elm_Object_Item *elm_index_item_insert_after(Evas_Object *obj, Elm_Object_Item *after, const char *letter, Evas_Smart_Cb func, const void *data);
/**
* Insert a new item into the index object before item @p before.
*
* @param obj The index object.
* @param before The index item to insert after.
* @param letter Letter under which the item should be indexed
* @param func The function to call when the item is clicked.
* @param data The item data to set for the index's item
* @return A handle to the item added or @c NULL, on errors
*
* Despite the most common usage of the @p letter argument is for
* single char strings, one could use arbitrary strings as index
* entries.
*
* @c item will be the pointer returned back on @c "changed", @c
* "delay,changed" and @c "selected" smart events.
*
* @note If @p relative is @c NULL this function will behave as
* elm_index_item_prepend().
*
* @ingroup Index
*/
EAPI Elm_Object_Item *elm_index_item_insert_before(Evas_Object *obj, Elm_Object_Item *before, const char *letter, Evas_Smart_Cb func, const void *data);
/**
* Insert a new item into the given index widget, using @p cmp_func
* function to sort items (by item handles).
*
* @param obj The index object.
* @param letter Letter under which the item should be indexed
* @param func The function to call when the item is clicked.
* @param data The item data to set for the index's item
* @param cmp_func The comparing function to be used to sort index
* items <b>by index item handles</b>
* @param cmp_data_func A @b fallback function to be called for the
* sorting of index items <b>by item data</b>). It will be used
* when @p cmp_func returns @c 0 (equality), which means an index
* item with provided item data already exists. To decide which
* data item should be pointed to by the index item in question, @p
* cmp_data_func will be used. If @p cmp_data_func returns a
* non-negative value, the previous index item data will be
* replaced by the given @p item pointer. If the previous data need
* to be freed, it should be done by the @p cmp_data_func function,
* because all references to it will be lost. If this function is
* not provided (@c NULL is given), index items will be @b
* duplicated, if @p cmp_func returns @c 0.
* @return A handle to the item added or @c NULL, on errors
*
* Despite the most common usage of the @p letter argument is for
* single char strings, one could use arbitrary strings as index
* entries.
*
* @c item will be the pointer returned back on @c "changed", @c
* "delay,changed" and @c "selected" smart events.
*
* @ingroup Index
*/
EAPI Elm_Object_Item *elm_index_item_sorted_insert(Evas_Object *obj, const char *letter, Evas_Smart_Cb func, const void *data, Eina_Compare_Cb cmp_func, Eina_Compare_Cb cmp_data_func);
/**
* Find a given index widget's item, <b>using item data</b>.
*
* @param obj The index object
* @param data The item data pointed to by the desired index item
* @return The index item handle, if found, or @c NULL otherwise
*
* @ingroup Index
*/
EAPI Elm_Object_Item *elm_index_item_find(Evas_Object *obj, const void *data);
/**
* Removes @b all items from a given index widget.
*
* @param obj The index object.
*
* If deletion callbacks are set, via elm_object_item_del_cb_set(),
* that callback function will be called for each item in @p obj.
*
* @ingroup Index
*/
EAPI void elm_index_item_clear(Evas_Object *obj);
/**
* Flush the changes made to the index items so they work correctly
*
* This flushes any changes made to items indicating the object is ready to
* go. You should call this before any changes you expect to work. This
* is similar to elm_list_go().
*
* @param obj The index object
* @param level The index level (one of @c 0 or @c 1) where changes were made
*
* @warning If not called, it won't display the index properly.
*
* @ingroup Index
*/
EAPI void elm_index_level_go(Evas_Object *obj, int level);
/**
* Get the letter (string) set on a given index widget item.
*
* @param item The index item handle
* @return The letter string set on @p it
*
* @ingroup Index
*/
EAPI const char *elm_index_item_letter_get(const Elm_Object_Item *item);
/**
* Set the indicator as to be disabled.
*
* @param obj The index object
* @param disabled @c EINA_TRUE to disable it, @c EINA_FALSE to enable it
*
* In Index widget, Indicator notes popup text, which shows a letter has been selecting.
*
* @see elm_index_indicator_disabled_get()
*
* @ingroup Index
*/
EAPI void elm_index_indicator_disabled_set(Evas_Object *obj, Eina_Bool disabled);
/**
* Get the value of indicator's disabled status.
*
* @param obj The index object
* @return EINA_TRUE if the indicator is disabled.
*
* @see elm_index_indicator_disabled_set()
*
* @ingroup Index
*/
EAPI Eina_Bool elm_index_indicator_disabled_get(const Evas_Object *obj);
/**
* Enable or disable horizontal mode on the index object
*
* @param obj The index object.
* @param horizontal @c EINA_TRUE to enable horizontal or @c EINA_FALSE to
* disable it, i.e., to enable vertical mode. it's an area one @ref Fingers
* "finger" wide on the bottom side of the index widget's container.
*
* @note Vertical mode is set by default.
*
* On horizontal mode items are displayed on index from left to right,
* instead of from top to bottom. Also, the index will scroll horizontally.
*
* @see elm_index_horizontal_get()
*
* @ingroup Index
*/
EAPI void elm_index_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
/**
* Get a value whether horizontal mode is enabled or not.
*
* @param obj The index object.
* @return @c EINA_TRUE means horizontal mode selection is enabled.
* @c EINA_FALSE indicates it's disabled. If @p obj is @c NULL,
* @c EINA_FALSE is returned.
*
* @see elm_index_horizontal_set() for details.
*
* @ingroup Index
*/
EAPI Eina_Bool elm_index_horizontal_get(const Evas_Object *obj);
/**
* Set a delay change time for index object.
*
* @param obj The index object.
* @param delay_change_time The delay change time to set.
*
* @note delay time is 0.2 sec by default.
*
* @see elm_index_delay_change_time_get
*
* @ingroup Index
*/
EAPI void elm_index_delay_change_time_set(Evas_Object *obj, double delay_change_time);
/**
* Get a delay change time for index object.
*
* @param obj The index object.
* @return delay change time in seconds
*
* @see elm_index_delay_change_time_set
*
* @ingroup Index
*/
EAPI double elm_index_delay_change_time_get(const Evas_Object *obj);
/**
* Enable or disable omit feature for a given index widget.
*
* @param obj The index object
* @param enabled @c EINA_TRUE to enable omit feature, @c EINA_FALSE to disable
*
* @see elm_index_omit_enabled_get()
*
* @since 1.8
*
* @ingroup Index
*/
EAPI void elm_index_omit_enabled_set(Evas_Object *obj, Eina_Bool enabled);
/**
* Get whether omit feature is enabled or not for a given index widget.
*
* @param obj The index object
* @return @c EINA_TRUE, if omit feature is enabled, @c EINA_FALSE otherwise
*
* @see elm_index_omit_enabled_set()
*
* @since 1.8
*
* @ingroup Index
*/
EAPI Eina_Bool elm_index_omit_enabled_get(const Evas_Object *obj);