diff --git a/legacy/elementary/ChangeLog b/legacy/elementary/ChangeLog index a048e04880..02955fa2bd 100644 --- a/legacy/elementary/ChangeLog +++ b/legacy/elementary/ChangeLog @@ -987,9 +987,8 @@ 2013-02-13 ChunEon Park (Hermet) - * GLview supports "language,changed" smart callback. + * GLview, Gengrid support "language,changed" smart callback. 2013-02-13 ChunEon Park (Hermet) * Ctxpopup will be dismissed when elm language is changed. - diff --git a/legacy/elementary/NEWS b/legacy/elementary/NEWS index d72156531f..3a481536b6 100644 --- a/legacy/elementary/NEWS +++ b/legacy/elementary/NEWS @@ -33,7 +33,7 @@ Additions: * Add elm_index_delay_change_time_set/get for changing delay change time in index. * Add elm_index smart callback - "language,changed". * Add smart callback signals of a scroller. "vbar,drag", "vbar,press", "vbar,unpress", "hbar,drag", "hbar,press", "hbar,unpress". - * Add elm_glview smart callback - "language,changed". + * Add elm_glview, elm_gengrid smart callback - "language,changed". Improvements: diff --git a/legacy/elementary/src/lib/elm_gengrid.c b/legacy/elementary/src/lib/elm_gengrid.c index 3823f406e1..8f360b01ed 100644 --- a/legacy/elementary/src/lib/elm_gengrid.c +++ b/legacy/elementary/src/lib/elm_gengrid.c @@ -59,6 +59,8 @@ static const char SIG_MOVED[] = "moved"; static const char SIG_INDEX_UPDATE[] = "index,update"; static const char SIG_HIGHLIGHTED[] = "highlighted"; static const char SIG_UNHIGHLIGHTED[] = "unhighlighted"; +static const char SIG_LANG_CHANGED[] = "language,changed"; + static const Evas_Smart_Cb_Description _smart_callbacks[] = { {SIG_ACTIVATED, ""}, {SIG_CLICKED_DOUBLE, ""}, @@ -86,9 +88,20 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = { {SIG_MOVED, ""}, {SIG_HIGHLIGHTED, ""}, {SIG_UNHIGHLIGHTED, ""}, + {SIG_LANG_CHANGED, ""}, + {NULL, NULL} }; +static void +_elm_gengrid_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_show_region(void *data) { @@ -3934,6 +3947,7 @@ _class_constructor(Eo_Class *klass) EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_FOCUS_NEXT), _elm_gengrid_smart_focus_next), EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_ACCESS), _elm_gengrid_smart_access), EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_FOCUS_DIRECTION_MANAGER_IS), _elm_gengrid_smart_focus_direction_manager_is), + EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_TRANSLATE), _elm_gengrid_smart_translate), EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_SIZING_EVAL), _elm_gengrid_smart_sizing_eval), diff --git a/legacy/elementary/src/lib/elm_gengrid.h b/legacy/elementary/src/lib/elm_gengrid.h index c126c57e33..8b95ce88c2 100644 --- a/legacy/elementary/src/lib/elm_gengrid.h +++ b/legacy/elementary/src/lib/elm_gengrid.h @@ -221,6 +221,9 @@ * The %c event_info parameter is the item that was highlighted. * - @c "unhighlighted" - an item in the list is unpressed and unhighlighted. * The %c event_info parameter is the item that was unhighlighted. + * - @c "language,changed" - This is called when the program's language is + * changed. Call the elm_gengrid_realized_items_update() if items text should + * be translated. * * Supported elm_object common APIs * @li elm_object_signal_emit() diff --git a/legacy/elementary/src/lib/elm_genlist.c b/legacy/elementary/src/lib/elm_genlist.c index 1e92033b4d..6cc9c78102 100644 --- a/legacy/elementary/src/lib/elm_genlist.c +++ b/legacy/elementary/src/lib/elm_genlist.c @@ -121,6 +121,7 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = { {SIG_TREE_EFFECT_FINISHED, ""}, {SIG_HIGHLIGHTED, ""}, {SIG_UNHIGHLIGHTED, ""}, + {SIG_LANG_CHANGED, ""}, {NULL, NULL} };