From b05ced2f37bf44bebe543371cf834959d8f123c5 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 --- ChangeLog | 3 +++ NEWS | 1 + src/lib/elm_index.c | 14 +++++++++++++- src/lib/elm_index.h | 1 + 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index f6cdaee..24505d1 100644 --- a/ChangeLog +++ b/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/NEWS b/NEWS index c0a4b5a..e9cf4f6 100644 --- a/NEWS +++ b/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/src/lib/elm_index.c b/src/lib/elm_index.c index daedd1b..a6a87d3 100644 --- a/src/lib/elm_index.c +++ b/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/src/lib/elm_index.h b/src/lib/elm_index.h index b88768a..6037198 100644 --- a/src/lib/elm_index.h +++ b/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 -- 2.7.4