enable lock button to on or off 70/46270/1
authorSoohye Shin <soohye.shin@samsung.com>
Wed, 19 Aug 2015 02:12:47 +0000 (11:12 +0900)
committerSoohye Shin <soohye.shin@samsung.com>
Wed, 19 Aug 2015 02:12:47 +0000 (11:12 +0900)
Change-Id: Iaea2a43bb014ef5bd9198b5c61f369a9a537807e
Signed-off-by: Soohye Shin <soohye.shin@samsung.com>
edje/images/btn_switch_off_nor.png [new file with mode: 0644]
edje/images/btn_switch_on_nor.png [new file with mode: 0644]
edje/view/useredit.edc
include/defs.h
src/view/view_user_edit.c

diff --git a/edje/images/btn_switch_off_nor.png b/edje/images/btn_switch_off_nor.png
new file mode 100644 (file)
index 0000000..4ac75a9
Binary files /dev/null and b/edje/images/btn_switch_off_nor.png differ
diff --git a/edje/images/btn_switch_on_nor.png b/edje/images/btn_switch_on_nor.png
new file mode 100644 (file)
index 0000000..12db806
Binary files /dev/null and b/edje/images/btn_switch_on_nor.png differ
index 67b2b02..7db08e3 100644 (file)
@@ -793,6 +793,13 @@ group {
 
 group {
        name, GRP_USER_EDIT_SWITCH;
+       images {
+               image, "btn_switch_off_nor.png" COMP;
+               image, "btn_switch_on_nor.png" COMP;
+       }
+       script {
+               public switch_on;
+       }
        parts {
                part {
                        name, "bg";
@@ -801,33 +808,108 @@ group {
                        description {
                                state, "default" 0.0;
                                min, 104 54;
+                               visible, 0;
+                       }
+               }
+               part {
+                       name, "switch";
+                       type, IMAGE;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               fixed, 1 1;
+                               image.normal, "btn_switch_on_nor.png";
+                       }
+                       description {
+                               state, "disable" 0.0;
+                               inherit, "default" 0.0;
+                               image.normal, "btn_switch_off_nor.png";
+                       }
+               }
+               part {
+                       name, "pad.up";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 4;
+                               rel2.relative, 1.0 0.0;
+                               fixed, 0 1;
+                               align, 0.5 0.0;
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "focus" 0.0;
+                               inherit, "default" 0.0;
                                color, 0 119 246 255;
                        }
                }
                part {
-                       name, "clip";
+                       name, "pad.left";
                        type, RECT;
                        scale, 1;
                        description {
                                state, "default" 0.0;
-                               fixed, 1 1;
+                               min, 4 0;
+                               rel1 {
+                                       to, "pad.up";
+                                       relative, 0.0 1.0;
+                               }
+                               rel2.relative, 0.0 1.0;
+                               fixed, 1 0;
+                               align, 0.0 0.5;
+                               color, 0 0 0 0;
                        }
                        description {
                                state, "focus" 0.0;
-                               rel1.relative, 0.5 0.5;
-                               rel2.relative, 0.5 0.5;
-                               min, 98 48;
-                               fixed, 1 1;
+                               inherit, "default" 0.0;
+                               color, 0 119 246 255;
                        }
                }
                part {
-                       name, PART_USER_EDIT_SWITCH;
-                       type, SWALLOW;
+                       name, "pad.right";
+                       type, RECT;
                        scale, 1;
-                       clip_to, "clip";
                        description {
                                state, "default" 0.0;
-                               fixed, 1 1;
+                               min, 4 0;
+                               rel1 {
+                                       to, "pad.up";
+                                       relative, 1.0 1.0;
+                               }
+                               fixed, 1 0;
+                               align, 1.0 0.5;
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "focus" 0.0;
+                               inherit, "default" 0.0;
+                               color, 0 119 246 255;
+                       }
+               }
+               part {
+                       name, "pad.down";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 4;
+                               rel1 {
+                                       to, "pad.left";
+                                       relative, 1.0 1.0;
+                               }
+                               rel2 {
+                                       to, "pad.right";
+                                       relative, 0.0 1.0;
+                               }
+                               fixed, 0 1;
+                               align, 0.5 1.0;
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "focus" 0.0;
+                               inherit, "default" 0.0;
+                               color, 0 119 246 255;
                        }
                }
        }
@@ -838,7 +920,10 @@ group {
                        source, SRC_PROG;
                        action, STATE_SET "focus" 0.0;
                        transition, TRANSITION_LINEAR;
-                       target, "clip";
+                       target, "pad.up";
+                       target, "pad.right";
+                       target, "pad.left";
+                       target, "pad.down";
                }
                program {
                        name, "sig,unfocus";
@@ -846,7 +931,24 @@ group {
                        source, SRC_PROG;
                        action, STATE_SET "default" 0.0;
                        transition, TRANSITION_LINEAR;
-                       target, "clip";
+                       target, "pad.up";
+                       target, "pad.right";
+                       target, "pad.left";
+                       target, "pad.down";
+               }
+               program {
+                       name, "sig,disable";
+                       signal, SIG_CHANGE;
+                       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);
+                               }
+                       }
                }
        }
 }
index d2216ef..4a9dcc1 100644 (file)
 #define SIG_HIDE_ARROW "sig.hide.arrow"
 #define SIG_SELECT "elm,state,selected"
 #define SIG_UNSELECT "elm,state,unselected"
+#define SIG_CHANGE "sig.change"
 
 #define TITLE_WIDTH "title.width"
 
index cb348c8..29e0a5c 100644 (file)
@@ -41,7 +41,8 @@ enum input_handler_type {
        INPUT_HANDLER_TYPE_POPUP_BTN_CANCEL,
        INPUT_HANDLER_TYPE_DELETE_POPUP_BTN_DELETE,
        INPUT_HANDLER_TYPE_DELETE_POPUP_BTN_CANCEL,
-       INPUT_HANDLER_TYPE_ENTRY
+       INPUT_HANDLER_TYPE_ENTRY,
+       INPUT_HANDLER_TYPE_LOCK
 };
 
 enum user_item_type {
@@ -71,6 +72,7 @@ struct _priv {
        Evas_Object *ctxpopup;
        Evas_Object *del;
        Evas_Object *popup;
+       Evas_Object *lock;
 
        char *selected_photo;
 
@@ -89,6 +91,7 @@ static void _focused(int id, void *data, Evas_Object *obj,
        case INPUT_HANDLER_TYPE_PHOTO:
        case INPUT_HANDLER_TYPE_DELETE:
        case INPUT_HANDLER_TYPE_EO:
+       case INPUT_HANDLER_TYPE_LOCK:
                elm_object_signal_emit(obj, SIG_FOCUS, SRC_PROG);
                break;
        case INPUT_HANDLER_TYPE_ENTRY:
@@ -110,6 +113,7 @@ static void _unfocused(int id, void *data, Evas_Object *obj,
        case INPUT_HANDLER_TYPE_PHOTO:
        case INPUT_HANDLER_TYPE_DELETE:
        case INPUT_HANDLER_TYPE_EO:
+       case INPUT_HANDLER_TYPE_LOCK:
                elm_object_signal_emit(obj, SIG_UNFOCUS, SRC_PROG);
                break;
        case INPUT_HANDLER_TYPE_ENTRY:
@@ -375,18 +379,18 @@ static Evas_Object *_add_layout(struct _priv *priv)
        if (!name)
                goto err;
 
-       lock = utils_add_layout(ly, GRP_USER_EDIT_SWITCH, false,
+       lock = utils_add_layout(ly, GRP_USER_EDIT_SWITCH, true,
                        PART_USER_EDIT_CONTENTS_LOCK);
        if (!lock)
                goto err;
 
-       utils_add_icon(lock, IMAGE_SWITCH_OFF, PART_USER_EDIT_SWITCH);
-
        inputmgr_add_callback(photo, INPUT_HANDLER_TYPE_PHOTO, &handler, priv);
        inputmgr_add_callback(name, INPUT_HANDLER_TYPE_ENTRY, &handler, priv);
+       inputmgr_add_callback(lock, INPUT_HANDLER_TYPE_LOCK, &handler, priv);
 
        priv->photo = photo;
        priv->name = name;
+       priv->lock = lock;
 
        return ly;
 err:
@@ -545,6 +549,9 @@ static void _select_btn_done(struct _priv *priv)
 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);
+               break;
        case INPUT_HANDLER_TYPE_PHOTO:
                _add_icon_list(priv);
                break;
@@ -784,6 +791,7 @@ static void _destroy(void *data)
        inputmgr_remove_callback(priv->done, &handler);
        inputmgr_remove_callback(priv->cancel, &handler);
        inputmgr_remove_callback(priv->name, &handler);
+       inputmgr_remove_callback(priv->lock, &handler);
        viewmgr_remove_view(VIEW_PHOTO);
        evas_object_del(priv->base);
        free(priv);