forked from enlightenment/efl
efl_ui_radio: remove some legacy code
Summary: This uses constructor/destructor instead of group_add/group_del. Note: finalize can't be used for theme loading as any action done inside efl_add(...) would be lost (eg. part text set). Test Plan: 1) run elementary_test -to radio Reviewers: jpeg, woohyun, cedric Subscribers: akanad Differential Revision: https://phab.enlightenment.org/D5404 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This commit is contained in:
parent
0a25543ed5
commit
5f7710f561
|
@ -323,7 +323,6 @@ _efl_ui_check_efl_object_constructor(Eo *obj, Efl_Ui_Check_Data *pd EINA_UNUSED)
|
|||
obj = efl_constructor(efl_super(obj, MY_CLASS));
|
||||
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
|
||||
evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
|
||||
elm_widget_sub_object_parent_add(obj);
|
||||
|
||||
if (!elm_layout_theme_set(obj, "check", "base", elm_widget_style_get(obj)))
|
||||
CRI("Failed to set layout!");
|
||||
|
|
|
@ -26,7 +26,7 @@ static const Elm_Layout_Part_Alias_Description _text_aliases[] =
|
|||
|
||||
static const char SIG_CHANGED[] = "changed";
|
||||
static const Evas_Smart_Cb_Description _smart_callbacks[] = {
|
||||
{SIG_CHANGED, ""},
|
||||
{SIG_CHANGED, ""}, /**< handled by efl_ui_check */
|
||||
{SIG_WIDGET_LANG_CHANGED, ""}, /**< handled by elm_widget */
|
||||
{SIG_WIDGET_ACCESS_CHANGED, ""}, /**< handled by elm_widget */
|
||||
{SIG_LAYOUT_FOCUSED, ""}, /**< handled by elm_layout */
|
||||
|
@ -202,45 +202,6 @@ _access_state_cb(void *data EINA_UNUSED, Evas_Object *obj)
|
|||
return strdup(E_("State: Off"));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_ui_radio_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Radio_Data *priv)
|
||||
{
|
||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
||||
|
||||
efl_canvas_group_add(efl_super(obj, EFL_UI_CHECK_CLASS));
|
||||
elm_widget_sub_object_parent_add(obj);
|
||||
|
||||
if (!elm_layout_theme_set(obj, "radio", "base", elm_widget_style_get(obj)))
|
||||
CRI("Failed to set layout!");
|
||||
|
||||
elm_layout_signal_callback_add
|
||||
(obj, "elm,action,radio,toggle", "*", _radio_on_cb, obj);
|
||||
|
||||
priv->group = calloc(1, sizeof(Group));
|
||||
priv->group->radios = eina_list_append(priv->group->radios, obj);
|
||||
|
||||
elm_widget_can_focus_set(obj, EINA_TRUE);
|
||||
|
||||
elm_layout_sizing_eval(obj);
|
||||
|
||||
_elm_access_object_register(obj, wd->resize_obj);
|
||||
_elm_access_text_set
|
||||
(_elm_access_info_get(obj), ELM_ACCESS_TYPE, E_("Radio"));
|
||||
_elm_access_callback_set
|
||||
(_elm_access_info_get(obj), ELM_ACCESS_INFO, _access_info_cb, obj);
|
||||
_elm_access_callback_set
|
||||
(_elm_access_info_get(obj), ELM_ACCESS_STATE, _access_state_cb, obj);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_ui_radio_efl_canvas_group_group_del(Eo *obj, Efl_Ui_Radio_Data *sd)
|
||||
{
|
||||
sd->group->radios = eina_list_remove(sd->group->radios, obj);
|
||||
if (!sd->group->radios) free(sd->group);
|
||||
|
||||
efl_canvas_group_del(efl_super(obj, EFL_UI_CHECK_CLASS));
|
||||
}
|
||||
|
||||
EAPI Evas_Object *
|
||||
elm_radio_add(Evas_Object *parent)
|
||||
{
|
||||
|
@ -249,16 +210,44 @@ elm_radio_add(Evas_Object *parent)
|
|||
}
|
||||
|
||||
EOLIAN static Eo *
|
||||
_efl_ui_radio_efl_object_constructor(Eo *obj, Efl_Ui_Radio_Data *_pd EINA_UNUSED)
|
||||
_efl_ui_radio_efl_object_constructor(Eo *obj, Efl_Ui_Radio_Data *pd)
|
||||
{
|
||||
obj = efl_constructor(efl_super(obj, MY_CLASS));
|
||||
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
|
||||
evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
|
||||
|
||||
if (!elm_layout_theme_set(obj, "radio", "base", elm_widget_style_get(obj)))
|
||||
CRI("Failed to set layout!");
|
||||
|
||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL);
|
||||
elm_layout_signal_callback_add
|
||||
(obj, "elm,action,radio,toggle", "*", _radio_on_cb, obj);
|
||||
|
||||
pd->group = calloc(1, sizeof(Group));
|
||||
pd->group->radios = eina_list_append(pd->group->radios, obj);
|
||||
|
||||
elm_layout_sizing_eval(obj);
|
||||
|
||||
efl_access_role_set(obj, EFL_ACCESS_ROLE_RADIO_BUTTON);
|
||||
_elm_access_text_set
|
||||
(_elm_access_info_get(obj), ELM_ACCESS_TYPE, E_("Radio"));
|
||||
_elm_access_callback_set
|
||||
(_elm_access_info_get(obj), ELM_ACCESS_INFO, _access_info_cb, obj);
|
||||
_elm_access_callback_set
|
||||
(_elm_access_info_get(obj), ELM_ACCESS_STATE, _access_state_cb, obj);
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_ui_radio_efl_object_destructor(Eo *obj EINA_UNUSED, Efl_Ui_Radio_Data *pd)
|
||||
{
|
||||
pd->group->radios = eina_list_remove(pd->group->radios, obj);
|
||||
if (!pd->group->radios) free(pd->group);
|
||||
|
||||
efl_destructor(efl_super(obj, MY_CLASS));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_ui_radio_group_add(Eo *obj, Efl_Ui_Radio_Data *sd, Evas_Object *group)
|
||||
{
|
||||
|
@ -392,7 +381,6 @@ ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_radio, Efl_Ui_Radio_Data)
|
|||
ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(MY_CLASS_PFX)
|
||||
|
||||
#define EFL_UI_RADIO_EXTRA_OPS \
|
||||
EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_radio), \
|
||||
ELM_LAYOUT_TEXT_ALIASES_OPS(MY_CLASS_PFX)
|
||||
|
||||
#include "efl_ui_radio.eo.c"
|
||||
|
|
|
@ -77,6 +77,7 @@ class Efl.Ui.Radio (Efl.Ui.Check, Elm.Interface.Atspi_Widget_Action)
|
|||
implements {
|
||||
class.constructor;
|
||||
Efl.Object.constructor;
|
||||
Efl.Object.destructor;
|
||||
Elm.Widget.theme_apply;
|
||||
Elm.Widget.on_access_activate;
|
||||
Elm.Widget.widget_event;
|
||||
|
|
Loading…
Reference in New Issue