diff options
-rw-r--r-- | src/lib/elc_multibuttonentry.h | 543 | ||||
-rw-r--r-- | src/lib/elc_multibuttonentry_common.h | 15 | ||||
-rw-r--r-- | src/lib/elc_multibuttonentry_eo.h | 284 | ||||
-rw-r--r-- | src/lib/elc_multibuttonentry_legacy.h | 270 |
4 files changed, 576 insertions, 536 deletions
diff --git a/src/lib/elc_multibuttonentry.h b/src/lib/elc_multibuttonentry.h index a1c359e8d..9653548eb 100644 --- a/src/lib/elc_multibuttonentry.h +++ b/src/lib/elc_multibuttonentry.h @@ -50,548 +50,19 @@ * @li @ref elm_object_item_part_text_get */ -#define ELM_OBJ_MULTIBUTTONENTRY_CLASS elm_obj_multibuttonentry_class_get() - -const Eo_Class *elm_obj_multibuttonentry_class_get(void) EINA_CONST; - -extern EAPI Eo_Op ELM_OBJ_MULTIBUTTONENTRY_BASE_ID; - -enum -{ - ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ENTRY_GET, - ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_EXPANDED_GET, - ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_EXPANDED_SET, - ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_EDITABLE_SET, - ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_EDITABLE_GET, - ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_PREPEND, - ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_APPEND, - ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_INSERT_BEFORE, - ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_INSERT_AFTER, - ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEMS_GET, - ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_FIRST_ITEM_GET, - ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_LAST_ITEM_GET, - ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_SELECTED_ITEM_GET, - ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_CLEAR, - ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_FILTER_APPEND, - ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_FILTER_PREPEND, - ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_FILTER_REMOVE, - ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_LAST -}; - -#define ELM_OBJ_MULTIBUTTONENTRY_ID(sub_id) (ELM_OBJ_MULTIBUTTONENTRY_BASE_ID + sub_id) - - -/** - * @def elm_obj_multibuttonentry_entry_get - * @since 1.8 - * - * Get the entry of the multibuttonentry object - * - * @param[out] ret - * - * @see elm_multibuttonentry_entry_get - */ -#define elm_obj_multibuttonentry_entry_get(ret) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ENTRY_GET), EO_TYPECHECK(Evas_Object **, ret) - -/** - * @def elm_obj_multibuttonentry_expanded_get - * @since 1.8 - * - * Get the value of expanded state. - * - * @param[out] ret - * - * @see elm_multibuttonentry_expanded_get - */ -#define elm_obj_multibuttonentry_expanded_get(ret) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_EXPANDED_GET), EO_TYPECHECK(Eina_Bool *, ret) - -/** - * @def elm_obj_multibuttonentry_expanded_set - * @since 1.8 - * - * Set/Unset the multibuttonentry to expanded state. - * - * @param[in] expanded - * - * @see elm_multibuttonentry_expanded_set - */ -#define elm_obj_multibuttonentry_expanded_set(expanded) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_EXPANDED_SET), EO_TYPECHECK(Eina_Bool, expanded) - -/** - * @def elm_obj_multibuttonentry_editable_set - * @since 1.8 - * - * Sets if the multibuttonentry is to be editable or not. - * - * @param[in] editable - * - * @see elm_multibuttonentry_editable_set - */ -#define elm_obj_multibuttonentry_editable_set(editable) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_EDITABLE_SET), EO_TYPECHECK(Eina_Bool, editable) - -/** - * @def elm_obj_multibuttonentry_editable_get - * @since 1.8 - * - * Gets whether the multibuttonentry is editable or not. - * - * @param[out] ret - * - * @see elm_multibuttonentry_editable_get - */ -#define elm_obj_multibuttonentry_editable_get(ret) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_EDITABLE_GET), EO_TYPECHECK(Eina_Bool *, ret) - -/** - * @def elm_obj_multibuttonentry_item_prepend - * @since 1.8 - * - * Prepend a new item to the multibuttonentry - * - * @param[in] label - * @param[in] func - * @param[in] data - * @param[out] ret - * - * @see elm_multibuttonentry_item_prepend - */ -#define elm_obj_multibuttonentry_item_prepend(label, func, data, ret) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_PREPEND), EO_TYPECHECK(const char *, label), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(void *, data), EO_TYPECHECK(Elm_Object_Item **, ret) - -/** - * @def elm_obj_multibuttonentry_item_append - * @since 1.8 - * - * Append a new item to the multibuttonentry - * - * @param[in] label - * @param[in] func - * @param[in] data - * @param[out] ret - * - * @see elm_multibuttonentry_item_append - */ -#define elm_obj_multibuttonentry_item_append(label, func, data, ret) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_APPEND), EO_TYPECHECK(const char *, label), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(void *, data), EO_TYPECHECK(Elm_Object_Item **, ret) - -/** - * @def elm_obj_multibuttonentry_item_insert_before - * @since 1.8 - * - * Add a new item to the multibuttonentry before the indicated object - * - * @param[in] before - * @param[in] label - * @param[in] func - * @param[in] data - * @param[out] ret - * - * @see elm_multibuttonentry_item_insert_before - */ -#define elm_obj_multibuttonentry_item_insert_before(before, label, func, data, ret) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_INSERT_BEFORE), EO_TYPECHECK(Elm_Object_Item *, before), EO_TYPECHECK(const char *, label), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(void *, data), EO_TYPECHECK(Elm_Object_Item **, ret) - -/** - * @def elm_obj_multibuttonentry_item_insert_after - * @since 1.8 - * - * Add a new item to the multibuttonentry after the indicated object - * - * @param[in] after - * @param[in] label - * @param[in] func - * @param[in] data - * @param[out] ret - * - * @see elm_multibuttonentry_item_insert_after - */ -#define elm_obj_multibuttonentry_item_insert_after(after, label, func, data, ret) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_INSERT_AFTER), EO_TYPECHECK(Elm_Object_Item *, after), EO_TYPECHECK(const char *, label), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(void *, data), EO_TYPECHECK(Elm_Object_Item **, ret) /** - * @def elm_obj_multibuttonentry_items_get - * @since 1.8 - * - * Get a list of items in the multibuttonentry - * - * @param[out] ret - * - * @see elm_multibuttonentry_items_get - */ -#define elm_obj_multibuttonentry_items_get(ret) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEMS_GET), EO_TYPECHECK(const Eina_List **, ret) - -/** - * @def elm_obj_multibuttonentry_first_item_get - * @since 1.8 - * - * Get the first item in the multibuttonentry - * - * @param[out] ret - * - * @see elm_multibuttonentry_first_item_get - */ -#define elm_obj_multibuttonentry_first_item_get(ret) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_FIRST_ITEM_GET), EO_TYPECHECK(Elm_Object_Item **, ret) - -/** - * @def elm_obj_multibuttonentry_last_item_get - * @since 1.8 - * - * Get the last item in the multibuttonentry - * - * @param[out] ret - * - * @see elm_multibuttonentry_last_item_get - */ -#define elm_obj_multibuttonentry_last_item_get(ret) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_LAST_ITEM_GET), EO_TYPECHECK(Elm_Object_Item **, ret) - -/** - * @def elm_obj_multibuttonentry_selected_item_get - * @since 1.8 - * - * Get the selected item in the multibuttonentry - * - * @param[out] ret - * - * @see elm_multibuttonentry_selected_item_get - */ -#define elm_obj_multibuttonentry_selected_item_get(ret) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_SELECTED_ITEM_GET), EO_TYPECHECK(Elm_Object_Item **, ret) - -/** - * @def elm_obj_multibuttonentry_clear - * @since 1.8 - * - * Remove all items in the multibuttonentry. - * - * - * @see elm_multibuttonentry_clear - */ -#define elm_obj_multibuttonentry_clear() ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_CLEAR) - -/** - * @def elm_obj_multibuttonentry_item_filter_append - * @since 1.8 - * - * Append an item filter function for text inserted in the Multibuttonentry - * - * @param[in] func - * @param[in] data - * - * @see elm_multibuttonentry_item_filter_append - */ -#define elm_obj_multibuttonentry_item_filter_append(func, data) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_FILTER_APPEND), EO_TYPECHECK(Elm_Multibuttonentry_Item_Filter_Cb, func), EO_TYPECHECK(void *, data) - -/** - * @def elm_obj_multibuttonentry_item_filter_prepend - * @since 1.8 - * - * Prepend a filter function for text inserted in the Multibuttonentry - * - * @param[in] func - * @param[in] data - * - * @see elm_multibuttonentry_item_filter_prepend - */ -#define elm_obj_multibuttonentry_item_filter_prepend(func, data) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_FILTER_PREPEND), EO_TYPECHECK(Elm_Multibuttonentry_Item_Filter_Cb, func), EO_TYPECHECK(void *, data) - -/** - * @def elm_obj_multibuttonentry_item_filter_remove - * @since 1.8 - * - * Remove a filter from the list - * - * @param[in] func - * @param[in] data - * - * @see elm_multibuttonentry_item_filter_remove - */ -#define elm_obj_multibuttonentry_item_filter_remove(func, data) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_FILTER_REMOVE), EO_TYPECHECK(Elm_Multibuttonentry_Item_Filter_Cb, func), EO_TYPECHECK(void *, data) -/** * @addtogroup Multibuttonentry * @{ */ -/** - * @brief Callback to be invoked when an item is added to the multibuttonentry. - * - * @param obj The parent object - * @param item_label The label corresponding to the added item. - * @param item_data data specific to this item. - * @param data data specific to the multibuttonentry. - * - * @return EINA_TRUE - * EINA_FALSE otherwise. - * - * @ingroup Multibuttonentry - */ -typedef Eina_Bool (*Elm_Multibuttonentry_Item_Filter_Cb)(Evas_Object *obj, const char *item_label, void *item_data, void *data); - -/** - * @brief Add a new multibuttonentry to the parent - * - * @param parent The parent object - * @return The new object or NULL if it cannot be created - * - * - * @ingroup Multibuttonentry - */ -EAPI Evas_Object *elm_multibuttonentry_add(Evas_Object *parent); - - -/** - * Get the entry of the multibuttonentry object - * - * @param obj The multibuttonentry object - * @return The entry object, or NULL if none - * - * @ingroup Multibuttonentry - */ -EAPI Evas_Object *elm_multibuttonentry_entry_get(const Evas_Object *obj); - -/** - * Get the value of expanded state. - * In expanded state, the complete entry will be displayed. - * Otherwise, only single line of the entry will be displayed. - * - * @param obj The multibuttonentry object - * @return EINA_TRUE if the widget is in expanded state. EINA_FALSE if not. - * - * @ingroup Multibuttonentry - */ -EAPI Eina_Bool elm_multibuttonentry_expanded_get(const Evas_Object *obj); - -/** - * Set/Unset the multibuttonentry to expanded state. - * In expanded state, the complete entry will be displayed. - * Otherwise, only single line of the entry will be displayed. - * - * @param obj The multibuttonentry object - * @param expanded the value of expanded state. - * Set this to EINA_TRUE for expanded state. - * Set this to EINA_FALSE for single line state. - * - * @ingroup Multibuttonentry - */ -EAPI void elm_multibuttonentry_expanded_set(Evas_Object *obj, Eina_Bool expanded); - -/** - * Prepend a new item to the multibuttonentry - * - * @param obj The multibuttonentry object - * @param label The label of new item - * @param func The callback function to be invoked when this item is pressed. - * @param data The pointer to the data to be attached - * @return A handle to the item added or NULL if not possible - * - * @see Use elm_object_item_del() to delete the item. - * - * @ingroup Multibuttonentry - */ -EAPI Elm_Object_Item *elm_multibuttonentry_item_prepend(Evas_Object *obj, const char *label, Evas_Smart_Cb func, void *data); - -/** - * Append a new item to the multibuttonentry - * - * @param obj The multibuttonentry object - * @param label The label of new item - * @param func The callback function to be invoked when this item is pressed. - * @param data The pointer to the data to be attached - * @return A handle to the item added or NULL if not possible - * - * @see Use elm_object_item_del() to delete the item. - * - * @ingroup Multibuttonentry - */ -EAPI Elm_Object_Item *elm_multibuttonentry_item_append(Evas_Object *obj, const char *label, Evas_Smart_Cb func, void *data); - -/** - * Add a new item to the multibuttonentry before the indicated object - * - * reference. - * @param obj The multibuttonentry object - * @param before The item before which to add it - * @param label The label of new item - * @param func The callback function to be invoked when this item is pressed. - * @param data The pointer to the data to be attached - * @return A handle to the item added or NULL if not possible - * - * @see Use elm_object_item_del() to delete the item. - * - * @ingroup Multibuttonentry - */ -EAPI Elm_Object_Item *elm_multibuttonentry_item_insert_before(Evas_Object *obj, Elm_Object_Item *before, const char *label, Evas_Smart_Cb func, void *data); - -/** - * Add a new item to the multibuttonentry after the indicated object - * - * @param obj The multibuttonentry object - * @param after The item after which to add it - * @param label The label of new item - * @param func The callback function to be invoked when this item is pressed. - * @param data The pointer to the data to be attached - * @return A handle to the item added or NULL if not possible - * - * @see Use elm_object_item_del() to delete the item. - * - * @ingroup Multibuttonentry - */ -EAPI Elm_Object_Item *elm_multibuttonentry_item_insert_after(Evas_Object *obj, Elm_Object_Item *after, const char *label, Evas_Smart_Cb func, void *data); - -/** - * Get a list of items in the multibuttonentry - * - * @param obj The multibuttonentry object - * @return The list of items, or NULL if none - * - * @ingroup Multibuttonentry - */ -EAPI const Eina_List *elm_multibuttonentry_items_get(const Evas_Object *obj); - -/** - * Get the first item in the multibuttonentry - * - * @param obj The multibuttonentry object - * @return The first item, or NULL if none - * - * @ingroup Multibuttonentry - */ -EAPI Elm_Object_Item *elm_multibuttonentry_first_item_get(const Evas_Object *obj); - -/** - * Get the last item in the multibuttonentry - * - * @param obj The multibuttonentry object - * @return The last item, or NULL if none - * - * @ingroup Multibuttonentry - */ -EAPI Elm_Object_Item *elm_multibuttonentry_last_item_get(const Evas_Object *obj); - -/** - * Get the selected item in the multibuttonentry - * - * @param obj The multibuttonentry object - * @return The selected item, or NULL if none - * - * @ingroup Multibuttonentry - */ -EAPI Elm_Object_Item *elm_multibuttonentry_selected_item_get(const Evas_Object *obj); - -/** - * Set the selected state of an item - * - * @param it The item - * @param selected if it's EINA_TRUE, select the item otherwise, unselect the item - * - * @ingroup Multibuttonentry - */ -EAPI void elm_multibuttonentry_item_selected_set(Elm_Object_Item *it, Eina_Bool selected); - - -/** - * Get the selected state of an item - * - * @param it The item - * @return EINA_TRUE if the item is selected, EINA_FALSE otherwise. - * - * @ingroup Multibuttonentry - */ -EAPI Eina_Bool elm_multibuttonentry_item_selected_get(const Elm_Object_Item *it); - -/** - * Remove all items in the multibuttonentry. - * - * @param obj The multibuttonentry object - * - * @ingroup Multibuttonentry - */ -EAPI void elm_multibuttonentry_clear(Evas_Object *obj); - -/** - * Get the previous item in the multibuttonentry - * - * @param it The item - * @return The item before the item @p it - * - * @ingroup Multibuttonentry - */ -EAPI Elm_Object_Item *elm_multibuttonentry_item_prev_get(const Elm_Object_Item *it); - -/** - * Get the next item in the multibuttonentry - * - * @param it The item - * @return The item after the item @p it - * - * @ingroup Multibuttonentry - */ -EAPI Elm_Object_Item *elm_multibuttonentry_item_next_get(const Elm_Object_Item *it); - -/** - * Append an item filter function for text inserted in the Multibuttonentry - * - * Append the given callback to the list. This functions will be called - * whenever any text is inserted into the Multibuttonentry, with the text to be inserted - * as a parameter. The callback function is free to alter the text in any way - * it wants, but it must remember to free the given pointer and update it. - * If the new text is to be discarded, the function can free it and set it text - * parameter to NULL. This will also prevent any following filters from being - * called. - * - * @param obj The multibuttonentry object - * @param func The function to use as item filter - * @param data User data to pass to @p func - * - * @ingroup Multibuttonentry - */ -EAPI void elm_multibuttonentry_item_filter_append(Evas_Object *obj, Elm_Multibuttonentry_Item_Filter_Cb func, void *data); - -/** - * Prepend a filter function for text inserted in the Multibuttonentry - * - * Prepend the given callback to the list. See elm_multibuttonentry_item_filter_append() - * for more information - * - * @param obj The multibuttonentry object - * @param func The function to use as text filter - * @param data User data to pass to @p func - * - * @ingroup Multibuttonentry - */ -EAPI void elm_multibuttonentry_item_filter_prepend(Evas_Object *obj, Elm_Multibuttonentry_Item_Filter_Cb func, void *data); - -/** - * Remove a filter from the list - * - * Removes the given callback from the filter list. See elm_multibuttonentry_item_filter_append() - * for more information. - * - * @param obj The multibuttonentry object - * @param func The filter function to remove - * @param data The user data passed when adding the function - * - * @ingroup Multibuttonentry - */ -EAPI void elm_multibuttonentry_item_filter_remove(Evas_Object *obj, Elm_Multibuttonentry_Item_Filter_Cb func, void *data); - -/** - * Sets if the multibuttonentry is to be editable or not. - * - * @param obj The multibuttonentry object - * @param editable If EINA_TRUE, user can add/delete item in multibuttonentry, if not, the multibuttonentry is non-editable. - * - * @ingroup Multibuttonentry - * - * @since 1.7 - */ -EAPI void elm_multibuttonentry_editable_set(Evas_Object *obj, Eina_Bool editable); - -/** - * Gets whether the multibuttonentry is editable or not. - * - * @param obj The multibuttonentry object - * @return EINA_TRUE if the multibuttonentry is editable by the user. EINA_FALSE if not. - * - * @ingroup Multibuttonentry - * - * @since 1.7 - */ -EAPI Eina_Bool elm_multibuttonentry_editable_get(const Evas_Object *obj); - +#include "elc_multibuttonentry_common.h" +#ifdef EFL_EO_API_SUPPORT +#include "elc_multibuttonentry_eo.h" +#endif +#ifndef EFL_NOLEGACY_API_SUPPORT +#include "elc_multibuttonentry_legacy.h" +#endif /** * @} */ diff --git a/src/lib/elc_multibuttonentry_common.h b/src/lib/elc_multibuttonentry_common.h new file mode 100644 index 000000000..ff76c537e --- /dev/null +++ b/src/lib/elc_multibuttonentry_common.h @@ -0,0 +1,15 @@ +/** + * @brief Callback to be invoked when an item is added to the multibuttonentry. + * + * @param obj The parent object + * @param item_label The label corresponding to the added item. + * @param item_data data specific to this item. + * @param data data specific to the multibuttonentry. + * + * @return EINA_TRUE + * EINA_FALSE otherwise. + * + * @ingroup Multibuttonentry + */ +typedef Eina_Bool (*Elm_Multibuttonentry_Item_Filter_Cb)(Evas_Object *obj, const char *item_label, void *item_data, void *data); + diff --git a/src/lib/elc_multibuttonentry_eo.h b/src/lib/elc_multibuttonentry_eo.h new file mode 100644 index 000000000..4b8a30862 --- /dev/null +++ b/src/lib/elc_multibuttonentry_eo.h @@ -0,0 +1,284 @@ +#define ELM_OBJ_MULTIBUTTONENTRY_CLASS elm_obj_multibuttonentry_class_get() + +const Eo_Class *elm_obj_multibuttonentry_class_get(void) EINA_CONST; + +extern EAPI Eo_Op ELM_OBJ_MULTIBUTTONENTRY_BASE_ID; + +enum +{ + ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ENTRY_GET, + ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_EXPANDED_GET, + ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_EXPANDED_SET, + ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_EDITABLE_SET, + ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_EDITABLE_GET, + ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_PREPEND, + ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_APPEND, + ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_INSERT_BEFORE, + ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_INSERT_AFTER, + ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEMS_GET, + ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_FIRST_ITEM_GET, + ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_LAST_ITEM_GET, + ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_SELECTED_ITEM_GET, + ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_CLEAR, + ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_FILTER_APPEND, + ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_FILTER_PREPEND, + ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_FILTER_REMOVE, + ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_LAST +}; + +#define ELM_OBJ_MULTIBUTTONENTRY_ID(sub_id) (ELM_OBJ_MULTIBUTTONENTRY_BASE_ID + sub_id) + + +/** + * @def elm_obj_multibuttonentry_entry_get + * @since 1.8 + * + * Get the entry of the multibuttonentry object + * + * @param[out] ret + * + * @see elm_multibuttonentry_entry_get + * + * @ingroup Multibuttonentry + */ +#define elm_obj_multibuttonentry_entry_get(ret) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ENTRY_GET), EO_TYPECHECK(Evas_Object **, ret) + +/** + * @def elm_obj_multibuttonentry_expanded_get + * @since 1.8 + * + * Get the value of expanded state. + * + * @param[out] ret + * + * @see elm_multibuttonentry_expanded_get + * + * @ingroup Multibuttonentry + */ +#define elm_obj_multibuttonentry_expanded_get(ret) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_EXPANDED_GET), EO_TYPECHECK(Eina_Bool *, ret) + +/** + * @def elm_obj_multibuttonentry_expanded_set + * @since 1.8 + * + * Set/Unset the multibuttonentry to expanded state. + * + * @param[in] expanded + * + * @see elm_multibuttonentry_expanded_set + * + * @ingroup Multibuttonentry + */ +#define elm_obj_multibuttonentry_expanded_set(expanded) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_EXPANDED_SET), EO_TYPECHECK(Eina_Bool, expanded) + +/** + * @def elm_obj_multibuttonentry_editable_set + * @since 1.8 + * + * Sets if the multibuttonentry is to be editable or not. + * + * @param[in] editable + * + * @see elm_multibuttonentry_editable_set + * + * @ingroup Multibuttonentry + */ +#define elm_obj_multibuttonentry_editable_set(editable) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_EDITABLE_SET), EO_TYPECHECK(Eina_Bool, editable) + +/** + * @def elm_obj_multibuttonentry_editable_get + * @since 1.8 + * + * Gets whether the multibuttonentry is editable or not. + * + * @param[out] ret + * + * @see elm_multibuttonentry_editable_get + * + * @ingroup Multibuttonentry + */ +#define elm_obj_multibuttonentry_editable_get(ret) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_EDITABLE_GET), EO_TYPECHECK(Eina_Bool *, ret) + +/** + * @def elm_obj_multibuttonentry_item_prepend + * @since 1.8 + * + * Prepend a new item to the multibuttonentry + * + * @param[in] label + * @param[in] func + * @param[in] data + * @param[out] ret + * + * @see elm_multibuttonentry_item_prepend + * + * @ingroup Multibuttonentry + */ +#define elm_obj_multibuttonentry_item_prepend(label, func, data, ret) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_PREPEND), EO_TYPECHECK(const char *, label), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(void *, data), EO_TYPECHECK(Elm_Object_Item **, ret) + +/** + * @def elm_obj_multibuttonentry_item_append + * @since 1.8 + * + * Append a new item to the multibuttonentry + * + * @param[in] label + * @param[in] func + * @param[in] data + * @param[out] ret + * + * @see elm_multibuttonentry_item_append + * + * @ingroup Multibuttonentry + */ +#define elm_obj_multibuttonentry_item_append(label, func, data, ret) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_APPEND), EO_TYPECHECK(const char *, label), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(void *, data), EO_TYPECHECK(Elm_Object_Item **, ret) + +/** + * @def elm_obj_multibuttonentry_item_insert_before + * @since 1.8 + * + * Add a new item to the multibuttonentry before the indicated object + * + * @param[in] before + * @param[in] label + * @param[in] func + * @param[in] data + * @param[out] ret + * + * @see elm_multibuttonentry_item_insert_before + * + * @ingroup Multibuttonentry + */ +#define elm_obj_multibuttonentry_item_insert_before(before, label, func, data, ret) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_INSERT_BEFORE), EO_TYPECHECK(Elm_Object_Item *, before), EO_TYPECHECK(const char *, label), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(void *, data), EO_TYPECHECK(Elm_Object_Item **, ret) + +/** + * @def elm_obj_multibuttonentry_item_insert_after + * @since 1.8 + * + * Add a new item to the multibuttonentry after the indicated object + * + * @param[in] after + * @param[in] label + * @param[in] func + * @param[in] data + * @param[out] ret + * + * @see elm_multibuttonentry_item_insert_after + * + * @ingroup Multibuttonentry + */ +#define elm_obj_multibuttonentry_item_insert_after(after, label, func, data, ret) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_INSERT_AFTER), EO_TYPECHECK(Elm_Object_Item *, after), EO_TYPECHECK(const char *, label), EO_TYPECHECK(Evas_Smart_Cb, func), EO_TYPECHECK(void *, data), EO_TYPECHECK(Elm_Object_Item **, ret) + +/** + * @def elm_obj_multibuttonentry_items_get + * @since 1.8 + * + * Get a list of items in the multibuttonentry + * + * @param[out] ret + * + * @see elm_multibuttonentry_items_get + * + * @ingroup Multibuttonentry + */ +#define elm_obj_multibuttonentry_items_get(ret) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEMS_GET), EO_TYPECHECK(const Eina_List **, ret) + +/** + * @def elm_obj_multibuttonentry_first_item_get + * @since 1.8 + * + * Get the first item in the multibuttonentry + * + * @param[out] ret + * + * @see elm_multibuttonentry_first_item_get + * + * @ingroup Multibuttonentry + */ +#define elm_obj_multibuttonentry_first_item_get(ret) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_FIRST_ITEM_GET), EO_TYPECHECK(Elm_Object_Item **, ret) + +/** + * @def elm_obj_multibuttonentry_last_item_get + * @since 1.8 + * + * Get the last item in the multibuttonentry + * + * @param[out] ret + * + * @see elm_multibuttonentry_last_item_get + * + * @ingroup Multibuttonentry + */ +#define elm_obj_multibuttonentry_last_item_get(ret) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_LAST_ITEM_GET), EO_TYPECHECK(Elm_Object_Item **, ret) + +/** + * @def elm_obj_multibuttonentry_selected_item_get + * @since 1.8 + * + * Get the selected item in the multibuttonentry + * + * @param[out] ret + * + * @see elm_multibuttonentry_selected_item_get + * + * @ingroup Multibuttonentry + */ +#define elm_obj_multibuttonentry_selected_item_get(ret) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_SELECTED_ITEM_GET), EO_TYPECHECK(Elm_Object_Item **, ret) + +/** + * @def elm_obj_multibuttonentry_clear + * @since 1.8 + * + * Remove all items in the multibuttonentry. + * + * + * @see elm_multibuttonentry_clear + * + * @ingroup Multibuttonentry + */ +#define elm_obj_multibuttonentry_clear() ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_CLEAR) + +/** + * @def elm_obj_multibuttonentry_item_filter_append + * @since 1.8 + * + * Append an item filter function for text inserted in the Multibuttonentry + * + * @param[in] func + * @param[in] data + * + * @see elm_multibuttonentry_item_filter_append + * + * @ingroup Multibuttonentry + */ +#define elm_obj_multibuttonentry_item_filter_append(func, data) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_FILTER_APPEND), EO_TYPECHECK(Elm_Multibuttonentry_Item_Filter_Cb, func), EO_TYPECHECK(void *, data) + +/** + * @def elm_obj_multibuttonentry_item_filter_prepend + * @since 1.8 + * + * Prepend a filter function for text inserted in the Multibuttonentry + * + * @param[in] func + * @param[in] data + * + * @see elm_multibuttonentry_item_filter_prepend + * + * @ingroup Multibuttonentry + */ +#define elm_obj_multibuttonentry_item_filter_prepend(func, data) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_FILTER_PREPEND), EO_TYPECHECK(Elm_Multibuttonentry_Item_Filter_Cb, func), EO_TYPECHECK(void *, data) + +/** + * @def elm_obj_multibuttonentry_item_filter_remove + * @since 1.8 + * + * Remove a filter from the list + * + * @param[in] func + * @param[in] data + * + * @see elm_multibuttonentry_item_filter_remove + * + * @ingroup Multibuttonentry + */ +#define elm_obj_multibuttonentry_item_filter_remove(func, data) ELM_OBJ_MULTIBUTTONENTRY_ID(ELM_OBJ_MULTIBUTTONENTRY_SUB_ID_ITEM_FILTER_REMOVE), EO_TYPECHECK(Elm_Multibuttonentry_Item_Filter_Cb, func), EO_TYPECHECK(void *, data) diff --git a/src/lib/elc_multibuttonentry_legacy.h b/src/lib/elc_multibuttonentry_legacy.h new file mode 100644 index 000000000..3fb9d3f9e --- /dev/null +++ b/src/lib/elc_multibuttonentry_legacy.h @@ -0,0 +1,270 @@ +/** + * @brief Add a new multibuttonentry to the parent + * + * @param parent The parent object + * @return The new object or NULL if it cannot be created + * + * + * @ingroup Multibuttonentry + */ +EAPI Evas_Object *elm_multibuttonentry_add(Evas_Object *parent); + +/** + * Get the entry of the multibuttonentry object + * + * @param obj The multibuttonentry object + * @return The entry object, or NULL if none + * + * @ingroup Multibuttonentry + */ +EAPI Evas_Object *elm_multibuttonentry_entry_get(const Evas_Object *obj); + +/** + * Get the value of expanded state. + * In expanded state, the complete entry will be displayed. + * Otherwise, only single line of the entry will be displayed. + * + * @param obj The multibuttonentry object + * @return EINA_TRUE if the widget is in expanded state. EINA_FALSE if not. + * + * @ingroup Multibuttonentry + */ +EAPI Eina_Bool elm_multibuttonentry_expanded_get(const Evas_Object *obj); + +/** + * Set/Unset the multibuttonentry to expanded state. + * In expanded state, the complete entry will be displayed. + * Otherwise, only single line of the entry will be displayed. + * + * @param obj The multibuttonentry object + * @param expanded the value of expanded state. + * Set this to EINA_TRUE for expanded state. + * Set this to EINA_FALSE for single line state. + * + * @ingroup Multibuttonentry + */ +EAPI void elm_multibuttonentry_expanded_set(Evas_Object *obj, Eina_Bool expanded); + +/** + * Prepend a new item to the multibuttonentry + * + * @param obj The multibuttonentry object + * @param label The label of new item + * @param func The callback function to be invoked when this item is pressed. + * @param data The pointer to the data to be attached + * @return A handle to the item added or NULL if not possible + * + * @see Use elm_object_item_del() to delete the item. + * + * @ingroup Multibuttonentry + */ +EAPI Elm_Object_Item *elm_multibuttonentry_item_prepend(Evas_Object *obj, const char *label, Evas_Smart_Cb func, void *data); + +/** + * Append a new item to the multibuttonentry + * + * @param obj The multibuttonentry object + * @param label The label of new item + * @param func The callback function to be invoked when this item is pressed. + * @param data The pointer to the data to be attached + * @return A handle to the item added or NULL if not possible + * + * @see Use elm_object_item_del() to delete the item. + * + * @ingroup Multibuttonentry + */ +EAPI Elm_Object_Item *elm_multibuttonentry_item_append(Evas_Object *obj, const char *label, Evas_Smart_Cb func, void *data); + +/** + * Add a new item to the multibuttonentry before the indicated object + * + * reference. + * @param obj The multibuttonentry object + * @param before The item before which to add it + * @param label The label of new item + * @param func The callback function to be invoked when this item is pressed. + * @param data The pointer to the data to be attached + * @return A handle to the item added or NULL if not possible + * + * @see Use elm_object_item_del() to delete the item. + * + * @ingroup Multibuttonentry + */ +EAPI Elm_Object_Item *elm_multibuttonentry_item_insert_before(Evas_Object *obj, Elm_Object_Item *before, const char *label, Evas_Smart_Cb func, void *data); + +/** + * Add a new item to the multibuttonentry after the indicated object + * + * @param obj The multibuttonentry object + * @param after The item after which to add it + * @param label The label of new item + * @param func The callback function to be invoked when this item is pressed. + * @param data The pointer to the data to be attached + * @return A handle to the item added or NULL if not possible + * + * @see Use elm_object_item_del() to delete the item. + * + * @ingroup Multibuttonentry + */ +EAPI Elm_Object_Item *elm_multibuttonentry_item_insert_after(Evas_Object *obj, Elm_Object_Item *after, const char *label, Evas_Smart_Cb func, void *data); + +/** + * Get a list of items in the multibuttonentry + * + * @param obj The multibuttonentry object + * @return The list of items, or NULL if none + * + * @ingroup Multibuttonentry + */ +EAPI const Eina_List *elm_multibuttonentry_items_get(const Evas_Object *obj); + +/** + * Get the first item in the multibuttonentry + * + * @param obj The multibuttonentry object + * @return The first item, or NULL if none + * + * @ingroup Multibuttonentry + */ +EAPI Elm_Object_Item *elm_multibuttonentry_first_item_get(const Evas_Object *obj); + +/** + * Get the last item in the multibuttonentry + * + * @param obj The multibuttonentry object + * @return The last item, or NULL if none + * + * @ingroup Multibuttonentry + */ +EAPI Elm_Object_Item *elm_multibuttonentry_last_item_get(const Evas_Object *obj); + +/** + * Get the selected item in the multibuttonentry + * + * @param obj The multibuttonentry object + * @return The selected item, or NULL if none + * + * @ingroup Multibuttonentry + */ +EAPI Elm_Object_Item *elm_multibuttonentry_selected_item_get(const Evas_Object *obj); + +/** + * Set the selected state of an item + * + * @param it The item + * @param selected if it's EINA_TRUE, select the item otherwise, unselect the item + * + * @ingroup Multibuttonentry + */ +EAPI void elm_multibuttonentry_item_selected_set(Elm_Object_Item *it, Eina_Bool selected); + + +/** + * Get the selected state of an item + * + * @param it The item + * @return EINA_TRUE if the item is selected, EINA_FALSE otherwise. + * + * @ingroup Multibuttonentry + */ +EAPI Eina_Bool elm_multibuttonentry_item_selected_get(const Elm_Object_Item *it); + +/** + * Remove all items in the multibuttonentry. + * + * @param obj The multibuttonentry object + * + * @ingroup Multibuttonentry + */ +EAPI void elm_multibuttonentry_clear(Evas_Object *obj); + +/** + * Get the previous item in the multibuttonentry + * + * @param it The item + * @return The item before the item @p it + * + * @ingroup Multibuttonentry + */ +EAPI Elm_Object_Item *elm_multibuttonentry_item_prev_get(const Elm_Object_Item *it); + +/** + * Get the next item in the multibuttonentry + * + * @param it The item + * @return The item after the item @p it + * + * @ingroup Multibuttonentry + */ +EAPI Elm_Object_Item *elm_multibuttonentry_item_next_get(const Elm_Object_Item *it); + +/** + * Append an item filter function for text inserted in the Multibuttonentry + * + * Append the given callback to the list. This functions will be called + * whenever any text is inserted into the Multibuttonentry, with the text to be inserted + * as a parameter. The callback function is free to alter the text in any way + * it wants, but it must remember to free the given pointer and update it. + * If the new text is to be discarded, the function can free it and set it text + * parameter to NULL. This will also prevent any following filters from being + * called. + * + * @param obj The multibuttonentry object + * @param func The function to use as item filter + * @param data User data to pass to @p func + * + * @ingroup Multibuttonentry + */ +EAPI void elm_multibuttonentry_item_filter_append(Evas_Object *obj, Elm_Multibuttonentry_Item_Filter_Cb func, void *data); + +/** + * Prepend a filter function for text inserted in the Multibuttonentry + * + * Prepend the given callback to the list. See elm_multibuttonentry_item_filter_append() + * for more information + * + * @param obj The multibuttonentry object + * @param func The function to use as text filter + * @param data User data to pass to @p func + * + * @ingroup Multibuttonentry + */ +EAPI void elm_multibuttonentry_item_filter_prepend(Evas_Object *obj, Elm_Multibuttonentry_Item_Filter_Cb func, void *data); + +/** + * Remove a filter from the list + * + * Removes the given callback from the filter list. See elm_multibuttonentry_item_filter_append() + * for more information. + * + * @param obj The multibuttonentry object + * @param func The filter function to remove + * @param data The user data passed when adding the function + * + * @ingroup Multibuttonentry + */ +EAPI void elm_multibuttonentry_item_filter_remove(Evas_Object *obj, Elm_Multibuttonentry_Item_Filter_Cb func, void *data); + +/** + * Sets if the multibuttonentry is to be editable or not. + * + * @param obj The multibuttonentry object + * @param editable If EINA_TRUE, user can add/delete item in multibuttonentry, if not, the multibuttonentry is non-editable. + * + * @ingroup Multibuttonentry + * + * @since 1.7 + */ +EAPI void elm_multibuttonentry_editable_set(Evas_Object *obj, Eina_Bool editable); + +/** + * Gets whether the multibuttonentry is editable or not. + * + * @param obj The multibuttonentry object + * @return EINA_TRUE if the multibuttonentry is editable by the user. EINA_FALSE if not. + * + * @ingroup Multibuttonentry + * + * @since 1.7 + */ +EAPI Eina_Bool elm_multibuttonentry_editable_get(const Evas_Object *obj); |