From 37b509a2fe22588c9e7cf02297cc75e707fd6cc0 Mon Sep 17 00:00:00 2001 From: ChunEon Park Date: Tue, 5 Feb 2013 12:54:36 +0000 Subject: [PATCH] elementary/index - added "language,changed" smart callback to index SVN revision: 83626 --- legacy/elementary/ChangeLog | 3 +++ legacy/elementary/NEWS | 1 + legacy/elementary/src/lib/elm_index.c | 14 +++++++++++++- legacy/elementary/src/lib/elm_index.h | 1 + 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/legacy/elementary/ChangeLog b/legacy/elementary/ChangeLog index f6cdaee6fb..24505d1218 100644 --- a/legacy/elementary/ChangeLog +++ b/legacy/elementary/ChangeLog @@ -973,3 +973,6 @@ * Fix a elm_transit crash issue when user delete all target objects in the effect end callback. +2013-02-05 ChunEon Park (Hermet) + + * Index supports "language,changed" smart callback diff --git a/legacy/elementary/NEWS b/legacy/elementary/NEWS index c0a4b5a6cd..e9cf4f6bf6 100644 --- a/legacy/elementary/NEWS +++ b/legacy/elementary/NEWS @@ -31,6 +31,7 @@ Additions: * Add a label signal callback "slide,end" * Add "highlighted" and "unhighlighted" callbacks to list, genlist, and gengrid. * Add elm_index_delay_change_time_set/get for changing delay change time in index. + * Add elm_index smart callback - "language,changed". Improvements: diff --git a/legacy/elementary/src/lib/elm_index.c b/legacy/elementary/src/lib/elm_index.c index daedd1b09d..a6a87d3ec8 100644 --- a/legacy/elementary/src/lib/elm_index.c +++ b/legacy/elementary/src/lib/elm_index.c @@ -17,22 +17,33 @@ static const char SIG_DELAY_CHANGED[] = "delay,changed"; static const char SIG_SELECTED[] = "selected"; static const char SIG_LEVEL_UP[] = "level,up"; static const char SIG_LEVEL_DOWN[] = "level,down"; +static const char SIG_LANG_CHANGED[] = "language,changed"; + static const Evas_Smart_Cb_Description _smart_callbacks[] = { {SIG_CHANGED, ""}, {SIG_DELAY_CHANGED, ""}, {SIG_SELECTED, ""}, {SIG_LEVEL_UP, ""}, {SIG_LEVEL_DOWN, ""}, + {SIG_LANG_CHANGED, ""}, {NULL, NULL} }; +static void +_elm_index_smart_translate(Eo *obj, void *_pd EINA_UNUSED, va_list *list) +{ + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + evas_object_smart_callback_call(obj, SIG_LANG_CHANGED, NULL); + if (ret) *ret = EINA_TRUE; +} + static void _item_free(Elm_Index_Item *it) { ELM_INDEX_DATA_GET(WIDGET(it), sd); sd->items = eina_list_remove(sd->items, it); - if (it->letter) + if (it->letter) { eina_stringshare_del(it->letter); it->letter = NULL; @@ -1464,6 +1475,7 @@ _class_constructor(Eo_Class *klass) EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_FOCUS_NEXT), _elm_index_smart_focus_next), EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_ACCESS), _elm_index_smart_access), EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_FOCUS_DIRECTION_MANAGER_IS), _elm_index_smart_focus_direction_manager_is), + EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_TRANSLATE), _elm_index_smart_translate), EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_SIZING_EVAL), _elm_index_smart_sizing_eval), diff --git a/legacy/elementary/src/lib/elm_index.h b/legacy/elementary/src/lib/elm_index.h index b88768a8f6..6037198c01 100644 --- a/legacy/elementary/src/lib/elm_index.h +++ b/legacy/elementary/src/lib/elm_index.h @@ -41,6 +41,7 @@ * level to the second level * - @c "level,down" - when the user moves a finger from the second * level to the first level + * - @c "language,changed" - the program's language changed * * The @c "delay,changed" event is so that it'll wait a small time * before actually reporting those events and, moreover, just the