Evas_Object *ctxpopup;
Evas_Object *del;
Evas_Object *popup;
+ Evas_Object *lock_icon;
struct datamgr *dm;
struct datamgr_item *di;
.key_down = _photo_key_down
};
-static void _load_lock_icon(struct _priv *priv, Evas_Object *ly)
+static void _change_entry_status(Evas_Object *pin, Eina_Bool disable,
+ const char *signal)
+{
+ Evas_Object *parent;
+
+ elm_entry_editable_set(pin, disable);
+ parent = elm_object_parent_widget_get(pin);
+ if (parent)
+ elm_object_signal_emit(parent, signal, SRC_PROG);
+
+ elm_object_focus_allow_set(pin, disable);
+}
+
+static void _load_lock_icon(struct _priv *priv)
{
- Evas_Object *lock;
const char *file = NULL;
- if (priv->lock) {
- elm_image_file_get(priv->lock, &file, NULL);
- elm_object_part_content_unset(priv->lock,
+ if (!priv->lock_icon) {
+ priv->lock_icon = utils_add_icon(priv->lock, IMAGE_SWITCH_ON,
PART_USER_EDIT_SWITCH);
- evas_object_del(priv->lock);
+ _change_entry_status(priv->pin, EINA_TRUE, SIG_UNFOCUS);
+ return;
}
- if (!file || !strcmp(file, IMAGE_SWITCH_OFF))
+ elm_image_file_get(priv->lock_icon, &file, NULL);
+ elm_object_part_content_unset(priv->lock, PART_USER_EDIT_SWITCH);
+ evas_object_del(priv->lock_icon);
+
+ if (!file || !strcmp(file, IMAGE_SWITCH_OFF)) {
file = IMAGE_SWITCH_ON;
- else
+ _change_entry_status(priv->pin, EINA_TRUE, SIG_UNFOCUS);
+ elm_entry_entry_set(priv->pin, MESSAGE_ENTRY_PIN);
+ } else {
file = IMAGE_SWITCH_OFF;
- lock = utils_add_icon(ly, file, PART_USER_EDIT_SWITCH);
+ _change_entry_status(priv->pin, EINA_FALSE, SIG_DISABLE);
+ elm_entry_entry_set(priv->pin, "");
+ }
- priv->lock = lock;
+ priv->lock_icon = utils_add_icon(priv->lock, file,
+ PART_USER_EDIT_SWITCH);
}
static void _lock_key_down(int id, void *data, Evas *e, Evas_Object *obj,
Evas_Event_Key_Down *ev)
{
if (!strcmp(ev->keyname, KEY_ENTER))
- _load_lock_icon(data, obj);
+ _load_lock_icon(data);
}
static input_handler lock_handler = {
if (!lock)
goto err;
- _load_lock_icon(priv, lock);
-
inputmgr_add_callback(lock, 0, &lock_handler, priv);
inputmgr_add_callback(photo, 0, &photo_handler, priv);
+ priv->lock = lock;
priv->photo = photo;
priv->name = name;
priv->pin = pin;
IMAGE_USER_CURRENT_DEFAULT_FOCUS);
}
+ _load_lock_icon(priv);
evas_object_show(priv->base);
elm_object_focus_set(priv->cancel, EINA_TRUE);
}
priv->del = NULL;
}
+ if (priv->lock_icon) {
+ evas_object_del(priv->lock_icon);
+ priv->lock_icon = NULL;
+ }
+
evas_object_hide(priv->base);
}
priv = data;
inputmgr_remove_callback(priv->photo, &photo_handler);
- inputmgr_remove_callback(priv->photo, &lock_handler);
+ inputmgr_remove_callback(priv->lock, &lock_handler);
inputmgr_remove_callback(priv->done, &done_handler);
inputmgr_remove_callback(priv->cancel, &cancel_handler);
viewmgr_remove_view(VIEW_PHOTO);
{
return &vclass;
}
-