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 <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8134
This commit is contained in:
Mike Blumenkrantz 2019-03-05 17:00:37 -05:00 committed by Cedric BAIL
parent 1cef796c51
commit 1abf1518fe
17 changed files with 868 additions and 161 deletions

View File

@ -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)

View File

@ -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"

View File

@ -10,8 +10,8 @@
#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"
@ -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"

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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<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]]
}
}

View File

@ -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"

View File

@ -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

View File

@ -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);
}

View File

@ -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

View File

@ -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; }
}
}

View File

@ -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"

View File

@ -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

View File

@ -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);
}

View File

@ -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

View File

@ -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 = [