static Eina_Bool _on_clock_val_up(void *data) { ELM_CLOCK_DATA_GET(data, sd); if (!sd->edit) goto clock_val_up_cancel; if (!sd->sel_obj) goto clock_val_up_cancel; if (sd->sel_obj == sd->digit[0]) { sd->hrs = sd->hrs + 12; if (sd->hrs >= 24) sd->hrs -= 24; } if (sd->sel_obj == sd->digit[1]) { sd->hrs = sd->hrs + 1; if (sd->hrs >= 24) sd->hrs -= 24; } if (sd->sel_obj == sd->digit[2]) { sd->min = sd->min + 10; if (sd->min >= 60) sd->min -= 60; } if (sd->sel_obj == sd->digit[3]) { sd->min = sd->min + 1; if (sd->min >= 60) sd->min -= 60; } if (sd->sel_obj == sd->digit[4]) { sd->sec = sd->sec + 10; if (sd->sec >= 60) sd->sec -= 60; } if (sd->sel_obj == sd->digit[5]) { sd->sec = sd->sec + 1; if (sd->sec >= 60) sd->sec -= 60; } if (sd->sel_obj == sd->am_pm_obj) { sd->hrs = sd->hrs + 12; if (sd->hrs > 23) sd->hrs -= 24; } sd->interval = sd->interval / 1.05; ecore_timer_interval_set(sd->spin, sd->interval); _time_update(data, EINA_FALSE); eo_do(data, eo_event_callback_call(ELM_CLOCK_EVENT_CHANGED, NULL)); return ECORE_CALLBACK_RENEW; clock_val_up_cancel: sd->spin = NULL; return ECORE_CALLBACK_CANCEL; }
static Eina_Bool _on_clock_val_down(void *data) { ELM_CLOCK_DATA_GET(data, sd); if (!sd->edit) goto clock_val_down_cancel; if (!sd->sel_obj) goto clock_val_down_cancel; if (sd->sel_obj == sd->digit[0]) { sd->hrs = sd->hrs - 12; if (sd->hrs < 0) sd->hrs += 24; } if (sd->sel_obj == sd->digit[1]) { sd->hrs = sd->hrs - 1; if (sd->hrs < 0) sd->hrs += 24; } if (sd->sel_obj == sd->digit[2]) { sd->min = sd->min - 10; if (sd->min < 0) sd->min += 60; } if (sd->sel_obj == sd->digit[3]) { sd->min = sd->min - 1; if (sd->min < 0) sd->min += 60; } if (sd->sel_obj == sd->digit[4]) { sd->sec = sd->sec - 10; if (sd->sec < 0) sd->sec += 60; } if (sd->sel_obj == sd->digit[5]) { sd->sec = sd->sec - 1; if (sd->sec < 0) sd->sec += 60; } if (sd->sel_obj == sd->am_pm_obj) { sd->hrs = sd->hrs - 12; if (sd->hrs < 0) sd->hrs += 24; } sd->interval = sd->interval / 1.05; ecore_timer_interval_set(sd->spin, sd->interval); _time_update(data, EINA_FALSE); efl_event_callback_legacy_call(data, ELM_CLOCK_EVENT_CHANGED, NULL); return ECORE_CALLBACK_RENEW; clock_val_down_cancel: sd->spin = NULL; return ECORE_CALLBACK_CANCEL; }
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); }