list/genlist/gengrid: Internal refactoring of item_focused/unfocused

codes.

- Added a check for focus highlight enable status before calling focus
signal to edje.
- Used obj instead of WIDGET(it) because that is used many times.
This commit is contained in:
Daniel Juyung Seo 2014-03-23 23:29:16 +09:00
parent 26f4d3fcd9
commit 7f0f50fbc6
3 changed files with 26 additions and 22 deletions

View File

@ -1505,7 +1505,7 @@ static void
_elm_gengrid_item_focused(Elm_Gen_Item *it) _elm_gengrid_item_focused(Elm_Gen_Item *it)
{ {
Evas_Object *obj = WIDGET(it); Evas_Object *obj = WIDGET(it);
Elm_Gengrid_Smart_Data *sd = GG_IT(it)->wsd; ELM_GENGRID_DATA_GET(obj, sd);
const char *focus_raise; const char *focus_raise;
if (it->generation < sd->generation) if (it->generation < sd->generation)
@ -1530,14 +1530,14 @@ _elm_gengrid_item_focused(Elm_Gen_Item *it)
focus_raise = edje_object_data_get(VIEW(it), "focusraise"); focus_raise = edje_object_data_get(VIEW(it), "focusraise");
if ((focus_raise) && (!strcmp(focus_raise, "on"))) if ((focus_raise) && (!strcmp(focus_raise, "on")))
evas_object_raise(VIEW(it)); evas_object_raise(VIEW(it));
evas_object_smart_callback_call evas_object_smart_callback_call(obj, SIG_ITEM_FOCUSED, it);
(WIDGET(it), SIG_ITEM_FOCUSED, it);
} }
static void static void
_elm_gengrid_item_unfocused(Elm_Gen_Item *it) _elm_gengrid_item_unfocused(Elm_Gen_Item *it)
{ {
Elm_Gengrid_Smart_Data *sd = GG_IT(it)->wsd; Evas_Object *obj = WIDGET(it);
ELM_GENGRID_DATA_GET(obj, sd);
if (it->generation < sd->generation) if (it->generation < sd->generation)
return; return;
@ -1552,12 +1552,14 @@ _elm_gengrid_item_unfocused(Elm_Gen_Item *it)
sd->prev_focused_item = (Elm_Object_Item *)it; sd->prev_focused_item = (Elm_Object_Item *)it;
edje_object_signal_emit if (elm_widget_focus_highlight_enabled_get(obj))
(VIEW(sd->focused_item), "elm,state,unfocused", "elm"); {
edje_object_signal_emit
(VIEW(sd->focused_item), "elm,state,unfocused", "elm");
}
sd->focused_item = NULL; sd->focused_item = NULL;
evas_object_smart_callback_call evas_object_smart_callback_call(obj, SIG_ITEM_UNFOCUSED, it);
(WIDGET(it), SIG_ITEM_UNFOCUSED, it);
} }
/* NOTE: this code will be used later when the item selection on key press /* NOTE: this code will be used later when the item selection on key press

View File

@ -2440,7 +2440,7 @@ static void
_elm_genlist_item_focused(Elm_Gen_Item *it) _elm_genlist_item_focused(Elm_Gen_Item *it)
{ {
Evas_Object *obj = WIDGET(it); Evas_Object *obj = WIDGET(it);
Elm_Genlist_Smart_Data *sd = GL_IT(it)->wsd; ELM_GENLIST_DATA_GET(obj, sd);
const char *focus_raise; const char *focus_raise;
if (it->generation < sd->generation) if (it->generation < sd->generation)
@ -2464,14 +2464,14 @@ _elm_genlist_item_focused(Elm_Gen_Item *it)
focus_raise = edje_object_data_get(VIEW(it), "focusraise"); focus_raise = edje_object_data_get(VIEW(it), "focusraise");
if ((focus_raise) && (!strcmp(focus_raise, "on"))) if ((focus_raise) && (!strcmp(focus_raise, "on")))
evas_object_raise(VIEW(it)); evas_object_raise(VIEW(it));
evas_object_smart_callback_call evas_object_smart_callback_call(obj, SIG_ITEM_FOCUSED, it);
(WIDGET(it), SIG_ITEM_FOCUSED, it);
} }
static void static void
_elm_genlist_item_unfocused(Elm_Gen_Item *it) _elm_genlist_item_unfocused(Elm_Gen_Item *it)
{ {
Elm_Genlist_Smart_Data *sd = GL_IT(it)->wsd; Evas_Object *obj = WIDGET(it);
ELM_GENLIST_DATA_GET(obj, sd);
if (it->generation < sd->generation) if (it->generation < sd->generation)
return; return;
@ -2486,12 +2486,12 @@ _elm_genlist_item_unfocused(Elm_Gen_Item *it)
sd->prev_focused_item = (Elm_Object_Item *)it; sd->prev_focused_item = (Elm_Object_Item *)it;
edje_object_signal_emit if (elm_widget_focus_highlight_enabled_get(obj))
(VIEW(sd->focused_item), "elm,state,unfocused", "elm"); edje_object_signal_emit
(VIEW(sd->focused_item), "elm,state,unfocused", "elm");
sd->focused_item = NULL; sd->focused_item = NULL;
evas_object_smart_callback_call evas_object_smart_callback_call(obj, SIG_ITEM_UNFOCUSED, it);
(WIDGET(it), SIG_ITEM_UNFOCUSED, it);
} }
/* NOTE: this code will be used later when the item selection on key press /* NOTE: this code will be used later when the item selection on key press

View File

@ -1036,7 +1036,8 @@ _elm_list_item_focused(Elm_List_Item *it)
static void static void
_elm_list_item_unfocused(Elm_List_Item *it) _elm_list_item_unfocused(Elm_List_Item *it)
{ {
ELM_LIST_DATA_GET(WIDGET(it), sd); Evas_Object *obj = WIDGET(it);
ELM_LIST_DATA_GET(obj, sd);
if ((!sd) || (!sd->focused_item) || if ((!sd) || (!sd->focused_item) ||
(it != (Elm_List_Item *)sd->focused_item)) (it != (Elm_List_Item *)sd->focused_item))
@ -1046,13 +1047,14 @@ _elm_list_item_unfocused(Elm_List_Item *it)
if (sd->select_mode == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY) if (sd->select_mode == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY)
return; return;
if (elm_widget_focus_highlight_enabled_get(WIDGET(sd->focused_item))) if (elm_widget_focus_highlight_enabled_get(obj))
edje_object_signal_emit {
(VIEW(sd->focused_item), "elm,state,unfocused", "elm"); edje_object_signal_emit
(VIEW(sd->focused_item), "elm,state,unfocused", "elm");
}
sd->focused_item = NULL; sd->focused_item = NULL;
evas_object_smart_callback_call evas_object_smart_callback_call(obj, SIG_ITEM_UNFOCUSED, it);
(WIDGET(it), SIG_ITEM_UNFOCUSED, it);
} }
/* /*