summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--edje/view/useredit.edc31
-rw-r--r--src/view/view_user_edit.c27
2 files changed, 40 insertions, 18 deletions
diff --git a/edje/view/useredit.edc b/edje/view/useredit.edc
index dc28a17..d9f3ddd 100644
--- a/edje/view/useredit.edc
+++ b/edje/view/useredit.edc
@@ -800,9 +800,6 @@ group {
image, "btn_switch_off_nor.png" COMP;
image, "btn_switch_on_nor.png" COMP;
}
- script {
- public switch_on;
- }
parts {
part {
name, "bg";
@@ -835,7 +832,7 @@ group {
scale, 1;
description {
state, "default" 0.0;
- min, 0 4;
+ min, 0 3;
rel2.relative, 1.0 0.0;
fixed, 0 1;
align, 0.5 0.0;
@@ -853,7 +850,7 @@ group {
scale, 1;
description {
state, "default" 0.0;
- min, 4 0;
+ min, 3 0;
rel1 {
to, "pad.up";
relative, 0.0 1.0;
@@ -875,7 +872,7 @@ group {
scale, 1;
description {
state, "default" 0.0;
- min, 4 0;
+ min, 3 0;
rel1 {
to, "pad.up";
relative, 1.0 1.0;
@@ -896,7 +893,7 @@ group {
scale, 1;
description {
state, "default" 0.0;
- min, 0 4;
+ min, 0 3;
rel1 {
to, "pad.left";
relative, 1.0 1.0;
@@ -941,17 +938,17 @@ group {
}
program {
name, "sig,disable";
- signal, SIG_CHANGE;
+ signal, SIG_DISABLE;
source, SRC_PROG;
- script {
- if (get_int(switch_on) == 0) {
- set_state(PART:"switch", "disable", 0.0);
- set_int(switch_on, 1);
- } else {
- set_state(PART:"switch", "default", 0.0);
- set_int(switch_on, 0);
- }
- }
+ action, STATE_SET "disable" 0.0;
+ target, "switch";
+ }
+ program {
+ name, "sig,enable";
+ signal, SIG_ENABLE;
+ source, SRC_PROG;
+ action, STATE_SET "default" 0.0;
+ target, "switch";
}
}
}
diff --git a/src/view/view_user_edit.c b/src/view/view_user_edit.c
index 2995101..3e48415 100644
--- a/src/view/view_user_edit.c
+++ b/src/view/view_user_edit.c
@@ -78,6 +78,7 @@ struct _priv {
Evas_Object *popup;
Evas_Object *lock;
Evas_Object *pin[COUNT_PIN];
+ Eina_Bool locked;
char *selected_photo;
@@ -643,11 +644,31 @@ static void _select_btn_done(struct _priv *priv)
viewmgr_pop_view();
}
+static void _disable_pin(struct _priv *priv)
+{
+ int i;
+
+ for (i = 0; i < COUNT_PIN; i++) {
+ elm_entry_entry_set(priv->pin[i], "");
+ elm_object_focus_allow_set(priv->pin[i], EINA_FALSE);
+ elm_object_signal_emit(priv->pin[i], SIG_DISABLE, SRC_ELM);
+ }
+}
+
static void _select(struct _priv *priv, int id, Evas_Object *obj)
{
switch (id) {
case INPUT_HANDLER_TYPE_LOCK:
- elm_object_signal_emit(priv->lock, SIG_CHANGE, SRC_PROG);
+ if (priv->locked) {
+ _disable_pin(priv);
+ elm_object_signal_emit(priv->lock, SIG_DISABLE,
+ SRC_PROG);
+ } else {
+ _reset_pin(priv, false);
+ elm_object_signal_emit(priv->lock, SIG_ENABLE,
+ SRC_PROG);
+ }
+ priv->locked = !priv->locked;
break;
case INPUT_HANDLER_TYPE_PHOTO:
_add_icon_list(priv);
@@ -735,6 +756,8 @@ static void _key_down(int id, void *data, Evas *e, Evas_Object *obj,
case INPUT_HANDLER_TYPE_BTN_CANCEL:
case INPUT_HANDLER_TYPE_DELETE:
case INPUT_HANDLER_TYPE_ENTRY:
+ case INPUT_HANDLER_TYPE_PIN:
+ case INPUT_HANDLER_TYPE_LOCK:
if (_check_changed_input(priv)) {
_add_discard_popup(priv);
return;
@@ -859,6 +882,8 @@ static void _reset(struct _priv *priv)
}
_reset_pin(priv, false);
+ elm_object_signal_emit(priv->lock, SIG_ENABLE, SRC_PROG);
+ priv->locked = EINA_TRUE;
}
static void _show(void *data)