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 \
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)
#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"
#include <Elementary.h>
#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"
#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"
*/
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"
#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
#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
+++ /dev/null
-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<Elm.Widget.Item>); [[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]]
- }
-}
--- /dev/null
+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"
--- /dev/null
+#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
--- /dev/null
+
+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);
+}
--- /dev/null
+#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
+++ /dev/null
-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; }
- }
-}
--- /dev/null
+
+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"
--- /dev/null
+#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
--- /dev/null
+
+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);
+}
--- /dev/null
+#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
'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',
'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 = [