static void _theme_hook(Evas_Object *obj) { Widget_Data *wd = elm_widget_data_get(obj); if (!wd) return; if (elm_widget_focus_get(obj)) edje_object_signal_emit(wd->clk, "elm,action,focus", "elm"); else edje_object_signal_emit(wd->clk, "elm,action,unfocus", "elm"); wd->cur.am_pm = !wd->cur.am_pm; /* hack - force update */ _time_update(obj); }
static void _elm_panes_smart_focus_next(Eo *obj, void *_pd, va_list *list) { double w, h; unsigned char i; Evas_Object *to_focus; Evas_Object *chain[2]; Evas_Object *left, *right; Elm_Panes_Smart_Data *sd = _pd; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); Elm_Focus_Direction dir = va_arg(*list, Elm_Focus_Direction); Evas_Object **next = va_arg(*list, Evas_Object **); Eina_Bool *ret = va_arg(*list, Eina_Bool *); if (ret) *ret = EINA_FALSE; Eina_Bool int_ret = EINA_FALSE; edje_object_part_drag_value_get (wd->resize_obj, "elm.bar", &w, &h); left = elm_layout_content_get(obj, "left"); right = elm_layout_content_get(obj, "right"); if (((sd->horizontal) && (h == 0.0)) || ((!sd->horizontal) && (w == 0.0))) { int_ret = elm_widget_focus_next_get(right, dir, next); if (ret) *ret = int_ret; return; } /* Direction */ if (dir == ELM_FOCUS_PREVIOUS) { chain[0] = right; chain[1] = left; } else if (dir == ELM_FOCUS_NEXT) { chain[0] = left; chain[1] = right; } else return; i = elm_widget_focus_get(chain[1]); if (elm_widget_focus_next_get(chain[i], dir, next)) { if (ret) *ret = EINA_TRUE; return; } i = !i; if (elm_widget_focus_next_get(chain[i], dir, &to_focus)) { *next = to_focus; if (ret) *ret = !!i; return; } }