From 1abf1518fee1c94ccaba1bcbaa7fc493b188260a Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 5 Mar 2019 17:00:37 -0500 Subject: [PATCH] elm_hoversel: remove all legacy usage from eo files this takes the current generated output from eolian for legacy code in evas and adds it to the tree, then removes legacy references from the corresponding eo files. in the case where the entire eo file was for a legacy object, that eo file has been removed from the tree ref T7724 Reviewed-by: Cedric BAIL Differential Revision: https://phab.enlightenment.org/D8134 --- src/Makefile_Elementary.am | 14 +- src/lib/elementary/efl_ui_text.c | 2 +- src/lib/elementary/elc_hoversel.c | 8 +- src/lib/elementary/elc_hoversel_legacy.h | 4 +- src/lib/elementary/elm_code_widget.c | 2 +- src/lib/elementary/elm_entry.c | 2 +- src/lib/elementary/elm_hoversel.eo | 113 ---------- src/lib/elementary/elm_hoversel_eo.c | 198 +++++++++++++++++ src/lib/elementary/elm_hoversel_eo.h | 206 ++++++++++++++++++ src/lib/elementary/elm_hoversel_eo.legacy.c | 72 ++++++ src/lib/elementary/elm_hoversel_eo.legacy.h | 165 ++++++++++++++ src/lib/elementary/elm_hoversel_item.eo | 33 --- src/lib/elementary/elm_hoversel_item_eo.c | 83 +++++++ src/lib/elementary/elm_hoversel_item_eo.h | 58 +++++ .../elementary/elm_hoversel_item_eo.legacy.c | 12 + .../elementary/elm_hoversel_item_eo.legacy.h | 51 +++++ src/lib/elementary/meson.build | 6 +- 17 files changed, 868 insertions(+), 161 deletions(-) delete mode 100644 src/lib/elementary/elm_hoversel.eo create mode 100644 src/lib/elementary/elm_hoversel_eo.c create mode 100644 src/lib/elementary/elm_hoversel_eo.h create mode 100644 src/lib/elementary/elm_hoversel_eo.legacy.c create mode 100644 src/lib/elementary/elm_hoversel_eo.legacy.h delete mode 100644 src/lib/elementary/elm_hoversel_item.eo create mode 100644 src/lib/elementary/elm_hoversel_item_eo.c create mode 100644 src/lib/elementary/elm_hoversel_item_eo.h create mode 100644 src/lib/elementary/elm_hoversel_item_eo.legacy.c create mode 100644 src/lib/elementary/elm_hoversel_item_eo.legacy.h diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am index 190803c6f9..d3325033d2 100644 --- a/src/Makefile_Elementary.am +++ b/src/Makefile_Elementary.am @@ -274,8 +274,6 @@ elm_legacy_eolian_files = \ lib/elementary/elm_fileselector_entry.eo \ lib/elementary/elm_flipselector.eo \ lib/elementary/elm_grid.eo \ - lib/elementary/elm_hoversel.eo \ - lib/elementary/elm_hoversel_item.eo \ lib/elementary/elm_icon.eo \ lib/elementary/elm_inwin.eo \ lib/elementary/elm_mapbuf.eo \ @@ -326,12 +324,20 @@ elementaryeolianfiles_DATA = $(elm_public_eolian_files) $(elm_eolian_type_files) noinst_DATA += $(elm_legacy_eolian_eo_h) elm_legacy_eo_files = \ -lib/elementary/efl_ui_bg_legacy_eo.c +lib/elementary/efl_ui_bg_legacy_eo.c \ +lib/elementary/elm_hoversel_eo.c \ +lib/elementary/elm_hoversel_eo.legacy.c \ +lib/elementary/elm_hoversel_item_eo.c \ +lib/elementary/elm_hoversel_item_eo.legacy.c elm_legacy_eo_headers = \ lib/elementary/efl_ui_bg_eo.legacy.h \ lib/elementary/efl_ui_bg_legacy_eo.h \ -lib/elementary/efl_ui_bg_legacy_eo.legacy.h +lib/elementary/efl_ui_bg_legacy_eo.legacy.h \ +lib/elementary/elm_hoversel_eo.h \ +lib/elementary/elm_hoversel_eo.legacy.h \ +lib/elementary/elm_hoversel_item_eo.h \ +lib/elementary/elm_hoversel_item_eo.legacy.h EXTRA_DIST2 += ${elementaryeolianfiles_DATA} $(elm_legacy_eolian_files) $(elm_private_eolian_files) $(elm_legacy_eo_files) diff --git a/src/lib/elementary/efl_ui_text.c b/src/lib/elementary/efl_ui_text.c index 11db0bea6a..53dddbeba0 100644 --- a/src/lib/elementary/efl_ui_text.c +++ b/src/lib/elementary/efl_ui_text.c @@ -15,7 +15,7 @@ #include "elm_entry_common.h" #include "elm_widget_entry.h" #include "efl_ui_text.eo.h" -#include "elm_hoversel.eo.h" +#include "elm_hoversel_eo.h" #include "efl_ui_text_part.eo.h" #include "elm_part_helper.h" diff --git a/src/lib/elementary/elc_hoversel.c b/src/lib/elementary/elc_hoversel.c index b8e02611d4..16967f62af 100644 --- a/src/lib/elementary/elc_hoversel.c +++ b/src/lib/elementary/elc_hoversel.c @@ -10,8 +10,8 @@ #include #include "elm_priv.h" -#include "elm_hoversel.eo.h" -#include "elm_hoversel_item.eo.h" +#include "elm_hoversel_eo.h" +#include "elm_hoversel_item_eo.h" #include "elm_widget_hoversel.h" #include "efl_ui_button_legacy.eo.h" @@ -1068,5 +1068,5 @@ _elm_hoversel_auto_update_get(const Eo *obj EINA_UNUSED, Elm_Hoversel_Data *sd) #define ELM_HOVERSEL_EXTRA_OPS \ EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_hoversel) -#include "elm_hoversel_item.eo.c" -#include "elm_hoversel.eo.c" +#include "elm_hoversel_item_eo.c" +#include "elm_hoversel_eo.c" diff --git a/src/lib/elementary/elc_hoversel_legacy.h b/src/lib/elementary/elc_hoversel_legacy.h index 89e6f9be3f..79a286f328 100644 --- a/src/lib/elementary/elc_hoversel_legacy.h +++ b/src/lib/elementary/elc_hoversel_legacy.h @@ -8,5 +8,5 @@ */ EAPI Evas_Object *elm_hoversel_add(Evas_Object *parent); -#include "elm_hoversel_item.eo.legacy.h" -#include "elm_hoversel.eo.legacy.h" +#include "elm_hoversel_item_eo.legacy.h" +#include "elm_hoversel_eo.legacy.h" diff --git a/src/lib/elementary/elm_code_widget.c b/src/lib/elementary/elm_code_widget.c index 5118b4ddb8..8a6a73c97a 100644 --- a/src/lib/elementary/elm_code_widget.c +++ b/src/lib/elementary/elm_code_widget.c @@ -10,7 +10,7 @@ #include "elm_code_widget_private.h" /* FIXME: hoversel is deprecated in EO APIs */ -#include "elm_hoversel.eo.h" +#include "elm_hoversel_eo.h" #define MY_CLASS ELM_CODE_WIDGET_CLASS diff --git a/src/lib/elementary/elm_entry.c b/src/lib/elementary/elm_entry.c index b743f51d3e..ccc7624b02 100644 --- a/src/lib/elementary/elm_entry.c +++ b/src/lib/elementary/elm_entry.c @@ -19,7 +19,7 @@ #include "elm_entry_part.eo.h" #include "elm_part_helper.h" -#include "elm_hoversel.eo.h" +#include "elm_hoversel_eo.h" #define MY_CLASS ELM_ENTRY_CLASS #define MY_CLASS_PFX elm_entry diff --git a/src/lib/elementary/elm_hoversel.eo b/src/lib/elementary/elm_hoversel.eo deleted file mode 100644 index e59959adf0..0000000000 --- a/src/lib/elementary/elm_hoversel.eo +++ /dev/null @@ -1,113 +0,0 @@ -import elm_general; - -class Elm.Hoversel extends Efl.Ui.Button_Legacy implements Efl.Ui.Selectable, - Efl.Ui.Clickable, - Efl.Access.Widget.Action, - Efl.Ui.Legacy -{ - [[Elementary hoversel class]] - legacy_prefix: elm_hoversel; - eo_prefix: elm_obj_hoversel; - event_prefix: elm_hoversel; - methods { - @property horizontal { - [[Control if the hoversel should expand horizontally. - - Note: The initial button will display horizontally regradless of this setting.]] - set { - } - get { - } - values { - horizontal: bool; [[If $true, the hover will expand horizontally to the right.]] - } - } - @property hover_parent { - [[Control the hover parent. - - Sets the hover parent object, the area that will be darkened when the - hoversel is clicked. Should probably be the window that the hoversel is - in.]] - set { - } - get { - } - values { - parent: Efl.Canvas.Object @nullable; [[The parent to use]] - } - } - @property expanded { - get { - [[Returns whether the hoversel is expanded.]] - return: bool; [[$true if the hoversel is expanded or $false otherwise]] - } - } - @property items { - get { - [[Get the list of items within the given hoversel.]] - return: const(list); [[List of items]] - } - } - @property auto_update { - [[Update icon and text of hoversel same to those of selected item automatically.]] - get{ - } - set{ - } - values { - auto_update: bool; [[$true if hoversel is updated automatically or $false otherwise]] - } - } - hover_begin { - [[This triggers the hoversel popup from code, the same as if the user had clicked the button.]] - } - clear { - [[This will remove all the children items from the hoversel. - - Warning Should *not* be called while the hoversel is active; use - @Elm.Hoversel.expanded.get to check first.]] - } - hover_end { - [[This dismisses the hoversel popup as if the user had clicked outside the hover.]] - } - item_add { - [[Add an item to the hoversel button - - This adds an item to the hoversel to show when it is clicked. Note: if you - need to use an icon from an edje file then use Elm.Hoversel.Item.icon.set - right after this function, and set icon_file to $null here.]] - - /* FIXME: Make the hoversel_item reference in the doc a real ref. */ - /* FIXME-doc - For more information on what $icon_file and $icon_type are, see the - @ref Icon "icon documentation". */ - return: Elm.Widget.Item; [[A handle to the added item.]] - params { - @in label: string @optional; [[The text label to use for the item (NULL if not desired)]] - @in icon_file: string @optional; [[An image file path on disk to use for the icon or standard icon name (NULL if not desired)]] - @in icon_type: Elm.Icon.Type; [[The icon type if relevant]] - @in func: Evas_Smart_Cb @optional; [[Convenience function to call when this item is selected. The last parameter $event_info of $func is the selected item pointer.]] - @in data: const(void_ptr) @optional; [[Data to pass to item-related functions]] - } - } - } - implements { - class.constructor; - Efl.Object.constructor; - Efl.Object.destructor; - Efl.Gfx.Entity.visible { set; } - Efl.Ui.Widget.widget_parent { set; } - Efl.Ui.Widget.theme_apply; - Efl.Ui.L10n.translation_update; - Efl.Ui.Widget.widget_input_event_handler; - Efl.Ui.Autorepeat.autorepeat_supported { get; } - Efl.Access.Widget.Action.elm_actions { get; } - Efl.Access.Object.access_children { get; } - } - events { - dismissed: void; [[Called when hoversel is dismissed]] - expanded: void; [[Called when hoversel is expanded]] - item,focused: Efl.Object; [[Called when hoversel item got focus]] - item,unfocused: Efl.Object; [[Called when hoversel item lost focus]] - } -} diff --git a/src/lib/elementary/elm_hoversel_eo.c b/src/lib/elementary/elm_hoversel_eo.c new file mode 100644 index 0000000000..d5eada96c3 --- /dev/null +++ b/src/lib/elementary/elm_hoversel_eo.c @@ -0,0 +1,198 @@ +EWAPI const Efl_Event_Description _ELM_HOVERSEL_EVENT_DISMISSED = + EFL_EVENT_DESCRIPTION("dismissed"); +EWAPI const Efl_Event_Description _ELM_HOVERSEL_EVENT_EXPANDED = + EFL_EVENT_DESCRIPTION("expanded"); +EWAPI const Efl_Event_Description _ELM_HOVERSEL_EVENT_ITEM_FOCUSED = + EFL_EVENT_DESCRIPTION("item,focused"); +EWAPI const Efl_Event_Description _ELM_HOVERSEL_EVENT_ITEM_UNFOCUSED = + EFL_EVENT_DESCRIPTION("item,unfocused"); + +void _elm_hoversel_horizontal_set(Eo *obj, Elm_Hoversel_Data *pd, Eina_Bool horizontal); + + +static Eina_Error +__eolian_elm_hoversel_horizontal_set_reflect(Eo *obj, Eina_Value val) +{ + Eina_Error r = 0; Eina_Bool cval; + if (!eina_value_bool_convert(&val, &cval)) + { + r = EINA_ERROR_VALUE_FAILED; + goto end; + } + elm_obj_hoversel_horizontal_set(obj, cval); + end: + eina_value_flush(&val); + return r; +} + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_hoversel_horizontal_set, EFL_FUNC_CALL(horizontal), Eina_Bool horizontal); + +Eina_Bool _elm_hoversel_horizontal_get(const Eo *obj, Elm_Hoversel_Data *pd); + + +static Eina_Value +__eolian_elm_hoversel_horizontal_get_reflect(Eo *obj) +{ + Eina_Bool val = elm_obj_hoversel_horizontal_get(obj); + return eina_value_bool_init(val); +} + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_hoversel_horizontal_get, Eina_Bool, 0); + +void _elm_hoversel_hover_parent_set(Eo *obj, Elm_Hoversel_Data *pd, Efl_Canvas_Object *parent); + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_hoversel_hover_parent_set, EFL_FUNC_CALL(parent), Efl_Canvas_Object *parent); + +Efl_Canvas_Object *_elm_hoversel_hover_parent_get(const Eo *obj, Elm_Hoversel_Data *pd); + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_hoversel_hover_parent_get, Efl_Canvas_Object *, NULL); + +Eina_Bool _elm_hoversel_expanded_get(const Eo *obj, Elm_Hoversel_Data *pd); + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_hoversel_expanded_get, Eina_Bool, 0); + +const Eina_List *_elm_hoversel_items_get(const Eo *obj, Elm_Hoversel_Data *pd); + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_hoversel_items_get, const Eina_List *, NULL); + +void _elm_hoversel_auto_update_set(Eo *obj, Elm_Hoversel_Data *pd, Eina_Bool auto_update); + + +static Eina_Error +__eolian_elm_hoversel_auto_update_set_reflect(Eo *obj, Eina_Value val) +{ + Eina_Error r = 0; Eina_Bool cval; + if (!eina_value_bool_convert(&val, &cval)) + { + r = EINA_ERROR_VALUE_FAILED; + goto end; + } + elm_obj_hoversel_auto_update_set(obj, cval); + end: + eina_value_flush(&val); + return r; +} + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_hoversel_auto_update_set, EFL_FUNC_CALL(auto_update), Eina_Bool auto_update); + +Eina_Bool _elm_hoversel_auto_update_get(const Eo *obj, Elm_Hoversel_Data *pd); + + +static Eina_Value +__eolian_elm_hoversel_auto_update_get_reflect(Eo *obj) +{ + Eina_Bool val = elm_obj_hoversel_auto_update_get(obj); + return eina_value_bool_init(val); +} + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_hoversel_auto_update_get, Eina_Bool, 0); + +void _elm_hoversel_hover_begin(Eo *obj, Elm_Hoversel_Data *pd); + +EOAPI EFL_VOID_FUNC_BODY(elm_obj_hoversel_hover_begin); + +void _elm_hoversel_clear(Eo *obj, Elm_Hoversel_Data *pd); + +EOAPI EFL_VOID_FUNC_BODY(elm_obj_hoversel_clear); + +void _elm_hoversel_hover_end(Eo *obj, Elm_Hoversel_Data *pd); + +EOAPI EFL_VOID_FUNC_BODY(elm_obj_hoversel_hover_end); + +Elm_Widget_Item *_elm_hoversel_item_add(Eo *obj, Elm_Hoversel_Data *pd, const char *label, const char *icon_file, Elm_Icon_Type icon_type, Evas_Smart_Cb func, const void *data); + +EOAPI EFL_FUNC_BODYV(elm_obj_hoversel_item_add, Elm_Widget_Item *, NULL, EFL_FUNC_CALL(label, icon_file, icon_type, func, data), const char *label, const char *icon_file, Elm_Icon_Type icon_type, Evas_Smart_Cb func, const void *data); + +Efl_Object *_elm_hoversel_efl_object_constructor(Eo *obj, Elm_Hoversel_Data *pd); + + +void _elm_hoversel_efl_object_destructor(Eo *obj, Elm_Hoversel_Data *pd); + + +void _elm_hoversel_efl_gfx_entity_visible_set(Eo *obj, Elm_Hoversel_Data *pd, Eina_Bool v); + + +void _elm_hoversel_efl_ui_widget_widget_parent_set(Eo *obj, Elm_Hoversel_Data *pd, Efl_Ui_Widget *parent); + + +Eina_Error _elm_hoversel_efl_ui_widget_theme_apply(Eo *obj, Elm_Hoversel_Data *pd); + + +void _elm_hoversel_efl_ui_l10n_translation_update(Eo *obj, Elm_Hoversel_Data *pd); + + +Eina_Bool _elm_hoversel_efl_ui_widget_widget_input_event_handler(Eo *obj, Elm_Hoversel_Data *pd, const Efl_Event *eo_event, Efl_Canvas_Object *source); + + +Eina_Bool _elm_hoversel_efl_ui_autorepeat_autorepeat_supported_get(const Eo *obj, Elm_Hoversel_Data *pd); + + +const Efl_Access_Action_Data *_elm_hoversel_efl_access_widget_action_elm_actions_get(const Eo *obj, Elm_Hoversel_Data *pd); + + +Eina_List *_elm_hoversel_efl_access_object_access_children_get(const Eo *obj, Elm_Hoversel_Data *pd); + + +static Eina_Bool +_elm_hoversel_class_initializer(Efl_Class *klass) +{ + const Efl_Object_Ops *opsp = NULL; + + const Efl_Object_Property_Reflection_Ops *ropsp = NULL; + +#ifndef ELM_HOVERSEL_EXTRA_OPS +#define ELM_HOVERSEL_EXTRA_OPS +#endif + + EFL_OPS_DEFINE(ops, + EFL_OBJECT_OP_FUNC(elm_obj_hoversel_horizontal_set, _elm_hoversel_horizontal_set), + EFL_OBJECT_OP_FUNC(elm_obj_hoversel_horizontal_get, _elm_hoversel_horizontal_get), + EFL_OBJECT_OP_FUNC(elm_obj_hoversel_hover_parent_set, _elm_hoversel_hover_parent_set), + EFL_OBJECT_OP_FUNC(elm_obj_hoversel_hover_parent_get, _elm_hoversel_hover_parent_get), + EFL_OBJECT_OP_FUNC(elm_obj_hoversel_expanded_get, _elm_hoversel_expanded_get), + EFL_OBJECT_OP_FUNC(elm_obj_hoversel_items_get, _elm_hoversel_items_get), + EFL_OBJECT_OP_FUNC(elm_obj_hoversel_auto_update_set, _elm_hoversel_auto_update_set), + EFL_OBJECT_OP_FUNC(elm_obj_hoversel_auto_update_get, _elm_hoversel_auto_update_get), + EFL_OBJECT_OP_FUNC(elm_obj_hoversel_hover_begin, _elm_hoversel_hover_begin), + EFL_OBJECT_OP_FUNC(elm_obj_hoversel_clear, _elm_hoversel_clear), + EFL_OBJECT_OP_FUNC(elm_obj_hoversel_hover_end, _elm_hoversel_hover_end), + EFL_OBJECT_OP_FUNC(elm_obj_hoversel_item_add, _elm_hoversel_item_add), + EFL_OBJECT_OP_FUNC(efl_constructor, _elm_hoversel_efl_object_constructor), + EFL_OBJECT_OP_FUNC(efl_destructor, _elm_hoversel_efl_object_destructor), + EFL_OBJECT_OP_FUNC(efl_gfx_entity_visible_set, _elm_hoversel_efl_gfx_entity_visible_set), + EFL_OBJECT_OP_FUNC(efl_ui_widget_parent_set, _elm_hoversel_efl_ui_widget_widget_parent_set), + EFL_OBJECT_OP_FUNC(efl_ui_widget_theme_apply, _elm_hoversel_efl_ui_widget_theme_apply), + EFL_OBJECT_OP_FUNC(efl_ui_l10n_translation_update, _elm_hoversel_efl_ui_l10n_translation_update), + EFL_OBJECT_OP_FUNC(efl_ui_widget_input_event_handler, _elm_hoversel_efl_ui_widget_widget_input_event_handler), + EFL_OBJECT_OP_FUNC(efl_ui_autorepeat_supported_get, _elm_hoversel_efl_ui_autorepeat_autorepeat_supported_get), + EFL_OBJECT_OP_FUNC(efl_access_widget_action_elm_actions_get, _elm_hoversel_efl_access_widget_action_elm_actions_get), + EFL_OBJECT_OP_FUNC(efl_access_object_access_children_get, _elm_hoversel_efl_access_object_access_children_get), + ELM_HOVERSEL_EXTRA_OPS + ); + opsp = &ops; + + static const Efl_Object_Property_Reflection refl_table[] = { + {"horizontal", __eolian_elm_hoversel_horizontal_set_reflect, __eolian_elm_hoversel_horizontal_get_reflect}, + {"auto_update", __eolian_elm_hoversel_auto_update_set_reflect, __eolian_elm_hoversel_auto_update_get_reflect}, + }; + static const Efl_Object_Property_Reflection_Ops rops = { + refl_table, EINA_C_ARRAY_LENGTH(refl_table) + }; + ropsp = &rops; + + return efl_class_functions_set(klass, opsp, ropsp); +} + +static const Efl_Class_Description _elm_hoversel_class_desc = { + EO_VERSION, + "Elm.Hoversel", + EFL_CLASS_TYPE_REGULAR, + sizeof(Elm_Hoversel_Data), + _elm_hoversel_class_initializer, + _elm_hoversel_class_constructor, + NULL +}; + +EFL_DEFINE_CLASS(elm_hoversel_class_get, &_elm_hoversel_class_desc, EFL_UI_BUTTON_LEGACY_CLASS, EFL_UI_SELECTABLE_INTERFACE, EFL_UI_CLICKABLE_INTERFACE, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL); + +#include "elm_hoversel_eo.legacy.c" diff --git a/src/lib/elementary/elm_hoversel_eo.h b/src/lib/elementary/elm_hoversel_eo.h new file mode 100644 index 0000000000..cdbf7fcc42 --- /dev/null +++ b/src/lib/elementary/elm_hoversel_eo.h @@ -0,0 +1,206 @@ +#ifndef _ELM_HOVERSEL_EO_H_ +#define _ELM_HOVERSEL_EO_H_ + +#ifndef _ELM_HOVERSEL_EO_CLASS_TYPE +#define _ELM_HOVERSEL_EO_CLASS_TYPE + +typedef Eo Elm_Hoversel; + +#endif + +#ifndef _ELM_HOVERSEL_EO_TYPES +#define _ELM_HOVERSEL_EO_TYPES + + +#endif +/** Elementary hoversel class + * + * @ingroup Elm_Hoversel + */ +#define ELM_HOVERSEL_CLASS elm_hoversel_class_get() + +EWAPI const Efl_Class *elm_hoversel_class_get(void); + +/** + * @brief Control if the hoversel should expand horizontally. + * + * @note The initial button will display horizontally regradless of this + * setting. + * + * @param[in] obj The object. + * @param[in] horizontal If @c true, the hover will expand horizontally to the + * right. + * + * @ingroup Elm_Hoversel + */ +EOAPI void elm_obj_hoversel_horizontal_set(Eo *obj, Eina_Bool horizontal); + +/** + * @brief Control if the hoversel should expand horizontally. + * + * @note The initial button will display horizontally regradless of this + * setting. + * + * @param[in] obj The object. + * + * @return If @c true, the hover will expand horizontally to the right. + * + * @ingroup Elm_Hoversel + */ +EOAPI Eina_Bool elm_obj_hoversel_horizontal_get(const Eo *obj); + +/** + * @brief Control the hover parent. + * + * Sets the hover parent object, the area that will be darkened when the + * hoversel is clicked. Should probably be the window that the hoversel is in. + * + * @param[in] obj The object. + * @param[in] parent The parent to use + * + * @ingroup Elm_Hoversel + */ +EOAPI void elm_obj_hoversel_hover_parent_set(Eo *obj, Efl_Canvas_Object *parent); + +/** + * @brief Control the hover parent. + * + * Sets the hover parent object, the area that will be darkened when the + * hoversel is clicked. Should probably be the window that the hoversel is in. + * + * @param[in] obj The object. + * + * @return The parent to use + * + * @ingroup Elm_Hoversel + */ +EOAPI Efl_Canvas_Object *elm_obj_hoversel_hover_parent_get(const Eo *obj); + +/** + * @brief Returns whether the hoversel is expanded. + * + * @param[in] obj The object. + * + * @return @c true if the hoversel is expanded or @c false otherwise + * + * @ingroup Elm_Hoversel + */ +EOAPI Eina_Bool elm_obj_hoversel_expanded_get(const Eo *obj); + +/** + * @brief Get the list of items within the given hoversel. + * + * @param[in] obj The object. + * + * @return List of items + * + * @ingroup Elm_Hoversel + */ +EOAPI const Eina_List *elm_obj_hoversel_items_get(const Eo *obj); + +/** + * @brief Update icon and text of hoversel same to those of selected item + * automatically. + * + * @param[in] obj The object. + * @param[in] auto_update @c true if hoversel is updated automatically or + * @c false otherwise + * + * @ingroup Elm_Hoversel + */ +EOAPI void elm_obj_hoversel_auto_update_set(Eo *obj, Eina_Bool auto_update); + +/** + * @brief Update icon and text of hoversel same to those of selected item + * automatically. + * + * @param[in] obj The object. + * + * @return @c true if hoversel is updated automatically or @c false otherwise + * + * @ingroup Elm_Hoversel + */ +EOAPI Eina_Bool elm_obj_hoversel_auto_update_get(const Eo *obj); + +/** This triggers the hoversel popup from code, the same as if the user had + * clicked the button. + * + * @ingroup Elm_Hoversel + */ +EOAPI void elm_obj_hoversel_hover_begin(Eo *obj); + +/** + * @brief This will remove all the children items from the hoversel. + * + * Warning Should *not* be called while the hoversel is active; use + * @ref elm_obj_hoversel_expanded_get to check first. + * @param[in] obj The object. + * + * @ingroup Elm_Hoversel + */ +EOAPI void elm_obj_hoversel_clear(Eo *obj); + +/** This dismisses the hoversel popup as if the user had clicked outside the + * hover. + * + * @ingroup Elm_Hoversel + */ +EOAPI void elm_obj_hoversel_hover_end(Eo *obj); + +/** + * @brief Add an item to the hoversel button + * + * This adds an item to the hoversel to show when it is clicked. Note: if you + * need to use an icon from an edje file then use Elm.Hoversel.Item.icon.set + * right after this function, and set icon_file to @c null here. + * + * @param[in] obj The object. + * @param[in] label The text label to use for the item (NULL if not desired) + * @param[in] icon_file An image file path on disk to use for the icon or + * standard icon name (NULL if not desired) + * @param[in] icon_type The icon type if relevant + * @param[in] func Convenience function to call when this item is selected. The + * last parameter @c event_info of @c func is the selected item pointer. + * @param[in] data Data to pass to item-related functions + * + * @return A handle to the added item. + * + * @ingroup Elm_Hoversel + */ +EOAPI Elm_Widget_Item *elm_obj_hoversel_item_add(Eo *obj, const char *label, const char *icon_file, Elm_Icon_Type icon_type, Evas_Smart_Cb func, const void *data); + +EWAPI extern const Efl_Event_Description _ELM_HOVERSEL_EVENT_DISMISSED; + +/** Called when hoversel is dismissed + * + * @ingroup Elm_Hoversel + */ +#define ELM_HOVERSEL_EVENT_DISMISSED (&(_ELM_HOVERSEL_EVENT_DISMISSED)) + +EWAPI extern const Efl_Event_Description _ELM_HOVERSEL_EVENT_EXPANDED; + +/** Called when hoversel is expanded + * + * @ingroup Elm_Hoversel + */ +#define ELM_HOVERSEL_EVENT_EXPANDED (&(_ELM_HOVERSEL_EVENT_EXPANDED)) + +EWAPI extern const Efl_Event_Description _ELM_HOVERSEL_EVENT_ITEM_FOCUSED; + +/** Called when hoversel item got focus + * @return Efl_Object * + * + * @ingroup Elm_Hoversel + */ +#define ELM_HOVERSEL_EVENT_ITEM_FOCUSED (&(_ELM_HOVERSEL_EVENT_ITEM_FOCUSED)) + +EWAPI extern const Efl_Event_Description _ELM_HOVERSEL_EVENT_ITEM_UNFOCUSED; + +/** Called when hoversel item lost focus + * @return Efl_Object * + * + * @ingroup Elm_Hoversel + */ +#define ELM_HOVERSEL_EVENT_ITEM_UNFOCUSED (&(_ELM_HOVERSEL_EVENT_ITEM_UNFOCUSED)) + +#endif diff --git a/src/lib/elementary/elm_hoversel_eo.legacy.c b/src/lib/elementary/elm_hoversel_eo.legacy.c new file mode 100644 index 0000000000..2697d7aee6 --- /dev/null +++ b/src/lib/elementary/elm_hoversel_eo.legacy.c @@ -0,0 +1,72 @@ + +EAPI void +elm_hoversel_horizontal_set(Elm_Hoversel *obj, Eina_Bool horizontal) +{ + elm_obj_hoversel_horizontal_set(obj, horizontal); +} + +EAPI Eina_Bool +elm_hoversel_horizontal_get(const Elm_Hoversel *obj) +{ + return elm_obj_hoversel_horizontal_get(obj); +} + +EAPI void +elm_hoversel_hover_parent_set(Elm_Hoversel *obj, Efl_Canvas_Object *parent) +{ + elm_obj_hoversel_hover_parent_set(obj, parent); +} + +EAPI Efl_Canvas_Object * +elm_hoversel_hover_parent_get(const Elm_Hoversel *obj) +{ + return elm_obj_hoversel_hover_parent_get(obj); +} + +EAPI Eina_Bool +elm_hoversel_expanded_get(const Elm_Hoversel *obj) +{ + return elm_obj_hoversel_expanded_get(obj); +} + +EAPI const Eina_List * +elm_hoversel_items_get(const Elm_Hoversel *obj) +{ + return elm_obj_hoversel_items_get(obj); +} + +EAPI void +elm_hoversel_auto_update_set(Elm_Hoversel *obj, Eina_Bool auto_update) +{ + elm_obj_hoversel_auto_update_set(obj, auto_update); +} + +EAPI Eina_Bool +elm_hoversel_auto_update_get(const Elm_Hoversel *obj) +{ + return elm_obj_hoversel_auto_update_get(obj); +} + +EAPI void +elm_hoversel_hover_begin(Elm_Hoversel *obj) +{ + elm_obj_hoversel_hover_begin(obj); +} + +EAPI void +elm_hoversel_clear(Elm_Hoversel *obj) +{ + elm_obj_hoversel_clear(obj); +} + +EAPI void +elm_hoversel_hover_end(Elm_Hoversel *obj) +{ + elm_obj_hoversel_hover_end(obj); +} + +EAPI Elm_Widget_Item * +elm_hoversel_item_add(Elm_Hoversel *obj, const char *label, const char *icon_file, Elm_Icon_Type icon_type, Evas_Smart_Cb func, const void *data) +{ + return elm_obj_hoversel_item_add(obj, label, icon_file, icon_type, func, data); +} diff --git a/src/lib/elementary/elm_hoversel_eo.legacy.h b/src/lib/elementary/elm_hoversel_eo.legacy.h new file mode 100644 index 0000000000..3196b9dc4d --- /dev/null +++ b/src/lib/elementary/elm_hoversel_eo.legacy.h @@ -0,0 +1,165 @@ +#ifndef _ELM_HOVERSEL_EO_LEGACY_H_ +#define _ELM_HOVERSEL_EO_LEGACY_H_ + +#ifndef _ELM_HOVERSEL_EO_CLASS_TYPE +#define _ELM_HOVERSEL_EO_CLASS_TYPE + +typedef Eo Elm_Hoversel; + +#endif + +#ifndef _ELM_HOVERSEL_EO_TYPES +#define _ELM_HOVERSEL_EO_TYPES + + +#endif + +/** + * @brief Control if the hoversel should expand horizontally. + * + * @note The initial button will display horizontally regradless of this + * setting. + * + * @param[in] obj The object. + * @param[in] horizontal If @c true, the hover will expand horizontally to the + * right. + * + * @ingroup Elm_Hoversel_Group + */ +EAPI void elm_hoversel_horizontal_set(Elm_Hoversel *obj, Eina_Bool horizontal); + +/** + * @brief Control if the hoversel should expand horizontally. + * + * @note The initial button will display horizontally regradless of this + * setting. + * + * @param[in] obj The object. + * + * @return If @c true, the hover will expand horizontally to the right. + * + * @ingroup Elm_Hoversel_Group + */ +EAPI Eina_Bool elm_hoversel_horizontal_get(const Elm_Hoversel *obj); + +/** + * @brief Control the hover parent. + * + * Sets the hover parent object, the area that will be darkened when the + * hoversel is clicked. Should probably be the window that the hoversel is in. + * + * @param[in] obj The object. + * @param[in] parent The parent to use + * + * @ingroup Elm_Hoversel_Group + */ +EAPI void elm_hoversel_hover_parent_set(Elm_Hoversel *obj, Efl_Canvas_Object *parent); + +/** + * @brief Control the hover parent. + * + * Sets the hover parent object, the area that will be darkened when the + * hoversel is clicked. Should probably be the window that the hoversel is in. + * + * @param[in] obj The object. + * + * @return The parent to use + * + * @ingroup Elm_Hoversel_Group + */ +EAPI Efl_Canvas_Object *elm_hoversel_hover_parent_get(const Elm_Hoversel *obj); + +/** + * @brief Returns whether the hoversel is expanded. + * + * @param[in] obj The object. + * + * @return @c true if the hoversel is expanded or @c false otherwise + * + * @ingroup Elm_Hoversel_Group + */ +EAPI Eina_Bool elm_hoversel_expanded_get(const Elm_Hoversel *obj); + +/** + * @brief Get the list of items within the given hoversel. + * + * @param[in] obj The object. + * + * @return List of items + * + * @ingroup Elm_Hoversel_Group + */ +EAPI const Eina_List *elm_hoversel_items_get(const Elm_Hoversel *obj); + +/** + * @brief Update icon and text of hoversel same to those of selected item + * automatically. + * + * @param[in] obj The object. + * @param[in] auto_update @c true if hoversel is updated automatically or + * @c false otherwise + * + * @ingroup Elm_Hoversel_Group + */ +EAPI void elm_hoversel_auto_update_set(Elm_Hoversel *obj, Eina_Bool auto_update); + +/** + * @brief Update icon and text of hoversel same to those of selected item + * automatically. + * + * @param[in] obj The object. + * + * @return @c true if hoversel is updated automatically or @c false otherwise + * + * @ingroup Elm_Hoversel_Group + */ +EAPI Eina_Bool elm_hoversel_auto_update_get(const Elm_Hoversel *obj); + +/** This triggers the hoversel popup from code, the same as if the user had + * clicked the button. + * + * @ingroup Elm_Hoversel_Group + */ +EAPI void elm_hoversel_hover_begin(Elm_Hoversel *obj); + +/** + * @brief This will remove all the children items from the hoversel. + * + * Warning Should *not* be called while the hoversel is active; use + * @ref elm_hoversel_expanded_get to check first. + * @param[in] obj The object. + * + * @ingroup Elm_Hoversel_Group + */ +EAPI void elm_hoversel_clear(Elm_Hoversel *obj); + +/** This dismisses the hoversel popup as if the user had clicked outside the + * hover. + * + * @ingroup Elm_Hoversel_Group + */ +EAPI void elm_hoversel_hover_end(Elm_Hoversel *obj); + +/** + * @brief Add an item to the hoversel button + * + * This adds an item to the hoversel to show when it is clicked. Note: if you + * need to use an icon from an edje file then use Elm.Hoversel.Item.icon.set + * right after this function, and set icon_file to @c null here. + * + * @param[in] obj The object. + * @param[in] label The text label to use for the item (NULL if not desired) + * @param[in] icon_file An image file path on disk to use for the icon or + * standard icon name (NULL if not desired) + * @param[in] icon_type The icon type if relevant + * @param[in] func Convenience function to call when this item is selected. The + * last parameter @c event_info of @c func is the selected item pointer. + * @param[in] data Data to pass to item-related functions + * + * @return A handle to the added item. + * + * @ingroup Elm_Hoversel_Group + */ +EAPI Elm_Widget_Item *elm_hoversel_item_add(Elm_Hoversel *obj, const char *label, const char *icon_file, Elm_Icon_Type icon_type, Evas_Smart_Cb func, const void *data); + +#endif diff --git a/src/lib/elementary/elm_hoversel_item.eo b/src/lib/elementary/elm_hoversel_item.eo deleted file mode 100644 index dcbfbc03fa..0000000000 --- a/src/lib/elementary/elm_hoversel_item.eo +++ /dev/null @@ -1,33 +0,0 @@ -import elm_general; - -class Elm.Hoversel.Item extends Elm.Widget.Item implements Efl.Ui.Legacy -{ - [[Elementary hoversel item class]] - legacy_prefix: elm_hoversel_item; - eo_prefix: elm_obj_hoversel_item; - methods { - @property icon { - [[This controls the icon for the given hoversel item. - - The icon can be loaded from the standard set, from an image file, or from an edje file.]] - get { - } - set { - } - values { - icon_file: string @nullable; [[An image file path on disk to use for the icon or standard icon name]] - icon_group: string @nullable; [[The edje group to use if $icon_file is an edje file. Set this to NULL if the icon is not an edje file]] - icon_type: Elm.Icon.Type; [[The icon type]] - } - } - } - implements { - Efl.Object.constructor; - Efl.Object.destructor; - Elm.Widget.Item.disable; - Elm.Widget.Item.signal_emit; - Elm.Widget.Item.part_text { get; set; } - Elm.Widget.Item.style { get; set; } - Elm.Widget.Item.item_focus { get; set; } - } -} diff --git a/src/lib/elementary/elm_hoversel_item_eo.c b/src/lib/elementary/elm_hoversel_item_eo.c new file mode 100644 index 0000000000..7a04565fd2 --- /dev/null +++ b/src/lib/elementary/elm_hoversel_item_eo.c @@ -0,0 +1,83 @@ + +void _elm_hoversel_item_icon_set(Eo *obj, Elm_Hoversel_Item_Data *pd, const char *icon_file, const char *icon_group, Elm_Icon_Type icon_type); + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_hoversel_item_icon_set, EFL_FUNC_CALL(icon_file, icon_group, icon_type), const char *icon_file, const char *icon_group, Elm_Icon_Type icon_type); + +void _elm_hoversel_item_icon_get(const Eo *obj, Elm_Hoversel_Item_Data *pd, const char **icon_file, const char **icon_group, Elm_Icon_Type *icon_type); + +EOAPI EFL_VOID_FUNC_BODYV_CONST(elm_obj_hoversel_item_icon_get, EFL_FUNC_CALL(icon_file, icon_group, icon_type), const char **icon_file, const char **icon_group, Elm_Icon_Type *icon_type); + +Efl_Object *_elm_hoversel_item_efl_object_constructor(Eo *obj, Elm_Hoversel_Item_Data *pd); + + +void _elm_hoversel_item_efl_object_destructor(Eo *obj, Elm_Hoversel_Item_Data *pd); + + +void _elm_hoversel_item_elm_widget_item_disable(Eo *obj, Elm_Hoversel_Item_Data *pd); + + +void _elm_hoversel_item_elm_widget_item_signal_emit(Eo *obj, Elm_Hoversel_Item_Data *pd, const char *emission, const char *source); + + +void _elm_hoversel_item_elm_widget_item_part_text_set(Eo *obj, Elm_Hoversel_Item_Data *pd, const char *part, const char *label); + + +const char *_elm_hoversel_item_elm_widget_item_part_text_get(const Eo *obj, Elm_Hoversel_Item_Data *pd, const char *part); + + +void _elm_hoversel_item_elm_widget_item_style_set(Eo *obj, Elm_Hoversel_Item_Data *pd, const char *style); + + +const char *_elm_hoversel_item_elm_widget_item_style_get(const Eo *obj, Elm_Hoversel_Item_Data *pd); + + +void _elm_hoversel_item_elm_widget_item_item_focus_set(Eo *obj, Elm_Hoversel_Item_Data *pd, Eina_Bool focused); + + +Eina_Bool _elm_hoversel_item_elm_widget_item_item_focus_get(const Eo *obj, Elm_Hoversel_Item_Data *pd); + + +static Eina_Bool +_elm_hoversel_item_class_initializer(Efl_Class *klass) +{ + const Efl_Object_Ops *opsp = NULL; + + const Efl_Object_Property_Reflection_Ops *ropsp = NULL; + +#ifndef ELM_HOVERSEL_ITEM_EXTRA_OPS +#define ELM_HOVERSEL_ITEM_EXTRA_OPS +#endif + + EFL_OPS_DEFINE(ops, + EFL_OBJECT_OP_FUNC(elm_obj_hoversel_item_icon_set, _elm_hoversel_item_icon_set), + EFL_OBJECT_OP_FUNC(elm_obj_hoversel_item_icon_get, _elm_hoversel_item_icon_get), + EFL_OBJECT_OP_FUNC(efl_constructor, _elm_hoversel_item_efl_object_constructor), + EFL_OBJECT_OP_FUNC(efl_destructor, _elm_hoversel_item_efl_object_destructor), + EFL_OBJECT_OP_FUNC(elm_wdg_item_disable, _elm_hoversel_item_elm_widget_item_disable), + EFL_OBJECT_OP_FUNC(elm_wdg_item_signal_emit, _elm_hoversel_item_elm_widget_item_signal_emit), + EFL_OBJECT_OP_FUNC(elm_wdg_item_part_text_set, _elm_hoversel_item_elm_widget_item_part_text_set), + EFL_OBJECT_OP_FUNC(elm_wdg_item_part_text_get, _elm_hoversel_item_elm_widget_item_part_text_get), + EFL_OBJECT_OP_FUNC(elm_wdg_item_style_set, _elm_hoversel_item_elm_widget_item_style_set), + EFL_OBJECT_OP_FUNC(elm_wdg_item_style_get, _elm_hoversel_item_elm_widget_item_style_get), + EFL_OBJECT_OP_FUNC(elm_wdg_item_focus_set, _elm_hoversel_item_elm_widget_item_item_focus_set), + EFL_OBJECT_OP_FUNC(elm_wdg_item_focus_get, _elm_hoversel_item_elm_widget_item_item_focus_get), + ELM_HOVERSEL_ITEM_EXTRA_OPS + ); + opsp = &ops; + + return efl_class_functions_set(klass, opsp, ropsp); +} + +static const Efl_Class_Description _elm_hoversel_item_class_desc = { + EO_VERSION, + "Elm.Hoversel.Item", + EFL_CLASS_TYPE_REGULAR, + sizeof(Elm_Hoversel_Item_Data), + _elm_hoversel_item_class_initializer, + NULL, + NULL +}; + +EFL_DEFINE_CLASS(elm_hoversel_item_class_get, &_elm_hoversel_item_class_desc, ELM_WIDGET_ITEM_CLASS, EFL_UI_LEGACY_INTERFACE, NULL); + +#include "elm_hoversel_item_eo.legacy.c" diff --git a/src/lib/elementary/elm_hoversel_item_eo.h b/src/lib/elementary/elm_hoversel_item_eo.h new file mode 100644 index 0000000000..13953aef0c --- /dev/null +++ b/src/lib/elementary/elm_hoversel_item_eo.h @@ -0,0 +1,58 @@ +#ifndef _ELM_HOVERSEL_ITEM_EO_H_ +#define _ELM_HOVERSEL_ITEM_EO_H_ + +#ifndef _ELM_HOVERSEL_ITEM_EO_CLASS_TYPE +#define _ELM_HOVERSEL_ITEM_EO_CLASS_TYPE + +typedef Eo Elm_Hoversel_Item; + +#endif + +#ifndef _ELM_HOVERSEL_ITEM_EO_TYPES +#define _ELM_HOVERSEL_ITEM_EO_TYPES + + +#endif +/** Elementary hoversel item class + * + * @ingroup Elm_Hoversel_Item + */ +#define ELM_HOVERSEL_ITEM_CLASS elm_hoversel_item_class_get() + +EWAPI const Efl_Class *elm_hoversel_item_class_get(void); + +/** + * @brief This controls the icon for the given hoversel item. + * + * The icon can be loaded from the standard set, from an image file, or from an + * edje file. + * + * @param[in] obj The object. + * @param[in] icon_file An image file path on disk to use for the icon or + * standard icon name + * @param[in] icon_group The edje group to use if @c icon_file is an edje file. + * Set this to NULL if the icon is not an edje file + * @param[in] icon_type The icon type + * + * @ingroup Elm_Hoversel_Item + */ +EOAPI void elm_obj_hoversel_item_icon_set(Eo *obj, const char *icon_file, const char *icon_group, Elm_Icon_Type icon_type); + +/** + * @brief This controls the icon for the given hoversel item. + * + * The icon can be loaded from the standard set, from an image file, or from an + * edje file. + * + * @param[in] obj The object. + * @param[out] icon_file An image file path on disk to use for the icon or + * standard icon name + * @param[out] icon_group The edje group to use if @c icon_file is an edje + * file. Set this to NULL if the icon is not an edje file + * @param[out] icon_type The icon type + * + * @ingroup Elm_Hoversel_Item + */ +EOAPI void elm_obj_hoversel_item_icon_get(const Eo *obj, const char **icon_file, const char **icon_group, Elm_Icon_Type *icon_type); + +#endif diff --git a/src/lib/elementary/elm_hoversel_item_eo.legacy.c b/src/lib/elementary/elm_hoversel_item_eo.legacy.c new file mode 100644 index 0000000000..2883608a76 --- /dev/null +++ b/src/lib/elementary/elm_hoversel_item_eo.legacy.c @@ -0,0 +1,12 @@ + +EAPI void +elm_hoversel_item_icon_set(Elm_Hoversel_Item *obj, const char *icon_file, const char *icon_group, Elm_Icon_Type icon_type) +{ + elm_obj_hoversel_item_icon_set(obj, icon_file, icon_group, icon_type); +} + +EAPI void +elm_hoversel_item_icon_get(const Elm_Hoversel_Item *obj, const char **icon_file, const char **icon_group, Elm_Icon_Type *icon_type) +{ + elm_obj_hoversel_item_icon_get(obj, icon_file, icon_group, icon_type); +} diff --git a/src/lib/elementary/elm_hoversel_item_eo.legacy.h b/src/lib/elementary/elm_hoversel_item_eo.legacy.h new file mode 100644 index 0000000000..3e34757eb0 --- /dev/null +++ b/src/lib/elementary/elm_hoversel_item_eo.legacy.h @@ -0,0 +1,51 @@ +#ifndef _ELM_HOVERSEL_ITEM_EO_LEGACY_H_ +#define _ELM_HOVERSEL_ITEM_EO_LEGACY_H_ + +#ifndef _ELM_HOVERSEL_ITEM_EO_CLASS_TYPE +#define _ELM_HOVERSEL_ITEM_EO_CLASS_TYPE + +typedef Eo Elm_Hoversel_Item; + +#endif + +#ifndef _ELM_HOVERSEL_ITEM_EO_TYPES +#define _ELM_HOVERSEL_ITEM_EO_TYPES + + +#endif + +/** + * @brief This controls the icon for the given hoversel item. + * + * The icon can be loaded from the standard set, from an image file, or from an + * edje file. + * + * @param[in] obj The object. + * @param[in] icon_file An image file path on disk to use for the icon or + * standard icon name + * @param[in] icon_group The edje group to use if @c icon_file is an edje file. + * Set this to NULL if the icon is not an edje file + * @param[in] icon_type The icon type + * + * @ingroup Elm_Hoversel_Item_Group + */ +EAPI void elm_hoversel_item_icon_set(Elm_Hoversel_Item *obj, const char *icon_file, const char *icon_group, Elm_Icon_Type icon_type); + +/** + * @brief This controls the icon for the given hoversel item. + * + * The icon can be loaded from the standard set, from an image file, or from an + * edje file. + * + * @param[in] obj The object. + * @param[out] icon_file An image file path on disk to use for the icon or + * standard icon name + * @param[out] icon_group The edje group to use if @c icon_file is an edje + * file. Set this to NULL if the icon is not an edje file + * @param[out] icon_type The icon type + * + * @ingroup Elm_Hoversel_Item_Group + */ +EAPI void elm_hoversel_item_icon_get(const Elm_Hoversel_Item *obj, const char **icon_file, const char **icon_group, Elm_Icon_Type *icon_type); + +#endif diff --git a/src/lib/elementary/meson.build b/src/lib/elementary/meson.build index 3964bb0f9b..e728630d3c 100644 --- a/src/lib/elementary/meson.build +++ b/src/lib/elementary/meson.build @@ -87,8 +87,6 @@ pub_legacy_eo_files = [ 'elm_fileselector_entry.eo', 'elm_flipselector.eo', 'elm_grid.eo', - 'elm_hoversel.eo', - 'elm_hoversel_item.eo', 'elm_icon.eo', 'elm_inwin.eo', 'elm_mapbuf.eo', @@ -699,6 +697,10 @@ elementary_pub_headers = [ 'efl_ui_bg_eo.legacy.h', 'efl_ui_bg_legacy_eo.h', 'efl_ui_bg_legacy_eo.legacy.h', + 'elm_hoversel_eo.h', + 'elm_hoversel_eo.legacy.h', + 'elm_hoversel_item_eo.h', + 'elm_hoversel_item_eo.legacy.h', ] elementary_header_src = [