forked from enlightenment/efl
nstate: Remove some legacy code
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).
This commit is contained in:
parent
d267595557
commit
1e83dd84c6
|
@ -274,39 +274,6 @@ _on_check_toggle(void *data,
|
|||
_activate(data);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_ui_check_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Check_Data *_pd EINA_UNUSED)
|
||||
{
|
||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
||||
|
||||
efl_canvas_group_add(efl_super(obj, MY_CLASS));
|
||||
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!");
|
||||
|
||||
edje_object_signal_callback_add
|
||||
(wd->resize_obj, "elm,action,check,on", "*",
|
||||
_on_check_on, obj);
|
||||
edje_object_signal_callback_add
|
||||
(wd->resize_obj, "elm,action,check,off", "*",
|
||||
_on_check_off, obj);
|
||||
edje_object_signal_callback_add
|
||||
(wd->resize_obj, "elm,action,check,toggle", "*",
|
||||
_on_check_toggle, obj);
|
||||
|
||||
_elm_access_object_register(obj, wd->resize_obj);
|
||||
_elm_access_text_set
|
||||
(_elm_access_info_get(obj), ELM_ACCESS_TYPE, E_("Check"));
|
||||
_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);
|
||||
|
||||
elm_widget_can_focus_set(obj, EINA_TRUE);
|
||||
elm_layout_sizing_eval(obj);
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_efl_ui_check_selected_get(Eo *obj, Efl_Ui_Check_Data *pd EINA_UNUSED)
|
||||
{
|
||||
|
@ -351,12 +318,34 @@ elm_check_add(Evas_Object *parent)
|
|||
}
|
||||
|
||||
EOLIAN static Eo *
|
||||
_efl_ui_check_efl_object_constructor(Eo *obj, Efl_Ui_Check_Data *_pd EINA_UNUSED)
|
||||
_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!");
|
||||
|
||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL);
|
||||
efl_canvas_layout_signal_callback_add
|
||||
(wd->resize_obj, "elm,action,check,on", "*", _on_check_on, obj);
|
||||
efl_canvas_layout_signal_callback_add
|
||||
(wd->resize_obj, "elm,action,check,off", "*", _on_check_off, obj);
|
||||
efl_canvas_layout_signal_callback_add
|
||||
(wd->resize_obj, "elm,action,check,toggle", "*", _on_check_toggle, obj);
|
||||
|
||||
efl_access_role_set(obj, EFL_ACCESS_ROLE_CHECK_BOX);
|
||||
_elm_access_object_register(obj, wd->resize_obj);
|
||||
_elm_access_text_set
|
||||
(_elm_access_info_get(obj), ELM_ACCESS_TYPE, E_("Check"));
|
||||
_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);
|
||||
|
||||
elm_widget_can_focus_set(obj, EINA_TRUE);
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
@ -419,7 +408,6 @@ ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_check, Efl_Ui_Check_Data)
|
|||
ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(MY_CLASS_PFX)
|
||||
|
||||
#define EFL_UI_CHECK_EXTRA_OPS \
|
||||
EFL_CANVAS_GROUP_ADD_OPS(efl_ui_check), \
|
||||
ELM_LAYOUT_TEXT_ALIASES_OPS(MY_CLASS_PFX)
|
||||
|
||||
#include "efl_ui_check.eo.c"
|
||||
|
|
|
@ -18,10 +18,6 @@ typedef struct
|
|||
int state;
|
||||
} Efl_Ui_Nstate_Data;
|
||||
|
||||
static const Evas_Smart_Cb_Description _smart_callbacks[] = {
|
||||
{NULL, NULL}
|
||||
};
|
||||
|
||||
static Eina_Bool _key_action_activate(Evas_Object *obj, const char *params);
|
||||
static void _state_active(Evas_Object *obj, Efl_Ui_Nstate_Data *sd);
|
||||
|
||||
|
@ -30,12 +26,33 @@ static const Elm_Action key_actions[] = {
|
|||
{NULL, NULL}
|
||||
};
|
||||
|
||||
static void
|
||||
_on_state_changed(void *data,
|
||||
Evas_Object *o EINA_UNUSED,
|
||||
const char *emission EINA_UNUSED,
|
||||
const char *source EINA_UNUSED)
|
||||
{
|
||||
efl_ui_nstate_activate(data);
|
||||
}
|
||||
|
||||
EOLIAN static Efl_Object *
|
||||
_efl_ui_nstate_efl_object_constructor(Eo *obj, Efl_Ui_Nstate_Data *pd EINA_UNUSED)
|
||||
_efl_ui_nstate_efl_object_constructor(Eo *obj, Efl_Ui_Nstate_Data *pd)
|
||||
{
|
||||
obj = efl_constructor(efl_super(obj, MY_CLASS));
|
||||
efl_canvas_object_type_set(obj, MY_CLASS_NAME);
|
||||
evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
|
||||
elm_widget_sub_object_parent_add(obj);
|
||||
|
||||
pd->state = 0;
|
||||
// Default: 2 states
|
||||
pd->nstate = 2;
|
||||
|
||||
if (!elm_layout_theme_set(obj, "nstate", "base", elm_widget_style_get(obj)))
|
||||
CRI("Failed to set layout!");
|
||||
|
||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL);
|
||||
efl_canvas_layout_signal_callback_add
|
||||
(wd->resize_obj, "elm,action,state,changed", "*", _on_state_changed, obj);
|
||||
|
||||
//TODO: Add ATSPI call here
|
||||
|
||||
return obj;
|
||||
|
@ -60,44 +77,6 @@ _state_active(Evas_Object *obj, Efl_Ui_Nstate_Data *sd)
|
|||
efl_event_callback_legacy_call(obj, EFL_UI_NSTATE_EVENT_STATE_CHANGED, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_on_state_changed(void *data,
|
||||
Evas_Object *o EINA_UNUSED,
|
||||
const char *emission EINA_UNUSED,
|
||||
const char *source EINA_UNUSED)
|
||||
{
|
||||
efl_ui_nstate_activate(data);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_ui_nstate_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Nstate_Data *pd)
|
||||
{
|
||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
||||
|
||||
efl_canvas_group_add(efl_super(obj, MY_CLASS));
|
||||
elm_widget_sub_object_parent_add(obj);
|
||||
|
||||
pd->state = 0;
|
||||
// Default: 2 states
|
||||
pd->nstate = 2;
|
||||
|
||||
if (!elm_layout_theme_set(obj, "nstate", "base", elm_widget_style_get(obj)))
|
||||
CRI("Failed to set layout!");
|
||||
|
||||
edje_object_signal_callback_add(wd->resize_obj, "elm,action,state,changed",
|
||||
"*", _on_state_changed, obj);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_ui_nstate_efl_canvas_group_group_del(Eo *obj, Efl_Ui_Nstate_Data *pd EINA_UNUSED)
|
||||
{
|
||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
||||
|
||||
edje_object_signal_callback_del_full(wd->resize_obj, "elm,action,state,changed",
|
||||
"*", _on_state_changed, obj);
|
||||
efl_canvas_group_del(efl_super(obj, MY_CLASS));
|
||||
}
|
||||
|
||||
EOLIAN static int
|
||||
_efl_ui_nstate_count_get(Eo *obj EINA_UNUSED, Efl_Ui_Nstate_Data *pd)
|
||||
{
|
||||
|
@ -174,9 +153,4 @@ _efl_ui_nstate_class_constructor(Efl_Class *klass)
|
|||
|
||||
ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_nstate, Efl_Ui_Nstate_Data)
|
||||
|
||||
/* Internal EO APIs and hidden overrides */
|
||||
|
||||
#define EFL_UI_NSTATE_EXTRA_OPS \
|
||||
EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_nstate)
|
||||
|
||||
#include "efl_ui_nstate.eo.c"
|
||||
|
|
Loading…
Reference in New Issue