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, ""},
{SIG_MOVED, ""},
{SIG_HIGHLIGHTED, ""},
{SIG_UNHIGHLIGHTED, ""},
+ {SIG_LANG_CHANGED, ""},
{NULL, NULL}
};
Evas_Coord *x,
Evas_Coord *y);
+static Eina_Bool
+_elm_gengrid_smart_translate(Evas_Object *obj)
+{
+ evas_object_smart_callback_call(obj, SIG_LANG_CHANGED, NULL);
+
+ return EINA_TRUE;
+}
+
static void
_item_show_region(void *data)
{
}
static void
+_access_activate_cb(void *data __UNUSED__,
+ Evas_Object *part_obj __UNUSED__,
+ Elm_Object_Item *item)
+{
+ Elm_Gen_Item *it = (Elm_Gen_Item *)item;
+ ELM_GENGRID_ITEM_CHECK_OR_RETURN(it);
+
+ _item_highlight(it);
+ it->sel_cb(it);
+}
+
+static void
_access_widget_item_register(Elm_Gen_Item *it)
{
Elm_Access_Info *ai;
_elm_access_callback_set(ai, ELM_ACCESS_INFO, _access_info_cb, it);
_elm_access_callback_set(ai, ELM_ACCESS_STATE, _access_state_cb, it);
_elm_access_on_highlight_hook_set(ai, _access_on_highlight_cb, it);
+ _elm_access_activate_callback_set(ai, _access_activate_cb, it);
}
static void
it->x = cx;
it->y = cy;
+ if (wsd->horizontal) it->position = cx;
+ else it->position = cy;
+
evas_object_geometry_get(wsd->pan_obj, &ox, &oy, &vw, &vh);
/* Preload rows/columns at each side of the Gengrid */
ELM_PAN_CLASS(sc)->pos_min_get = _elm_gengrid_pan_smart_pos_min_get;
ELM_PAN_CLASS(sc)->content_size_get =
_elm_gengrid_pan_smart_content_size_get;
+
}
static Eina_Bool
/* not a 'focus chain manager' */
ELM_WIDGET_CLASS(sc)->focus_next = NULL;
ELM_WIDGET_CLASS(sc)->focus_direction = NULL;
+ ELM_WIDGET_CLASS(sc)->translate = _elm_gengrid_smart_translate;
ELM_LAYOUT_CLASS(sc)->sizing_eval = _elm_gengrid_smart_sizing_eval;
pi->proxy = evas_object_image_filled_add
(evas_object_evas_get(ELM_WIDGET_DATA(GG_IT(it)->wsd)->obj));
- if (!pi->proxy) return EINA_FALSE;
+ if (!pi->proxy)
+ {
+ free(pi);
+ return NULL;
+ }
evas_object_clip_set(pi->proxy, evas_object_clip_get(GG_IT(it)->wsd->pan_obj));
evas_object_smart_member_add(pi->proxy, GG_IT(it)->wsd->pan_obj);
evas_object_hide(pi->proxy);
_item_fx_done(Elm_Transit_Effect *data, Elm_Transit *transit __UNUSED__)
{
Elm_Gen_FX_Item *fx_done_it = data;
- Elm_Gengrid_Smart_Data *sd = GG_IT(fx_done_it->it)->wsd;
+ Elm_Gengrid_Smart_Data *sd;
- if ((!fx_done_it) || (!fx_done_it->it) || (!sd)) return;
+ if ((!fx_done_it) || (!fx_done_it->it)) return;
+
+ sd = GG_IT(fx_done_it->it)->wsd;
+ if (!sd) return;
evas_object_image_source_visible_set(fx_done_it->proxy, EINA_TRUE);
evas_object_lower(fx_done_it->proxy);
Elm_Gen_Item *it = NULL;
Proxy_Item *pi = NULL;
Eina_List *l;
- Elm_Gengrid_Smart_Data *sd = GG_IT(fx_done_it->it)->wsd;
+ Elm_Gengrid_Smart_Data *sd;
+
+ if ((!fx_done_it) || (!fx_done_it->it)) return;
- if ((!fx_done_it) || (!fx_done_it->it) || (!sd)) return;
+ sd = GG_IT(fx_done_it->it)->wsd;
+ if (!sd) return;
sd->fx_items = eina_list_remove(sd->fx_items, fx_done_it);
free(fx_done_it);