{
Evas_Object *pin, *box;
Elm_Entry_Filter_Limit_Size pin_size = {
- .max_char_count = 2,
+ .max_char_count = 1,
};
Elm_Entry_Filter_Accept_Set pin_char = {
.accepted = "0123456789",
static void _select_pin(struct _priv *priv, Evas_Object *obj)
{
- int i;
+ int i, j, v;
for (i = 0; i < COUNT_PIN; i++) {
if (priv->pin[i] == obj)
break;
}
- if (i == COUNT_PIN) {
- _ERR("failed to get entry");
- return;
- } else if (i == COUNT_PIN -1) {
- if (elm_entry_cursor_pos_get(obj) != 1)
- _reset_pin(priv, true);
- } else {
- elm_object_focus_allow_set(priv->pin[i + 1], EINA_TRUE);
- elm_object_focus_set(priv->pin[i + 1], EINA_TRUE);
- elm_object_signal_emit(obj, SIG_DISABLE, SRC_ELM);
- elm_object_focus_allow_set(obj, EINA_FALSE);
+ if (i == 0) {
+ for (j = 1; j < COUNT_PIN; j++) {
+ elm_entry_entry_set(priv->pin[j], "");
+ elm_object_signal_emit(priv->pin[j],
+ SIG_ENABLE, SRC_ELM);
+ }
}
+
+ v = (i + 1) % COUNT_PIN;
+ elm_object_focus_allow_set(priv->pin[v], EINA_TRUE);
+ if (v == 0) {
+ elm_object_focus_set(priv->done, EINA_TRUE);
+ elm_object_signal_emit(priv->pin[v],
+ SIG_ENABLE, SRC_ELM);
+ } else
+ elm_object_focus_set(priv->pin[v], EINA_TRUE);
+
+ elm_object_signal_emit(obj, SIG_DISABLE, SRC_ELM);
+ elm_object_focus_allow_set(obj, EINA_FALSE);
}
static void _key_down(int id, void *data, Evas *e, Evas_Object *obj,