add pin entry in user edit view 69/46769/3
authorSoohye Shin <soohye.shin@samsung.com>
Wed, 26 Aug 2015 02:54:21 +0000 (11:54 +0900)
committerSoohye Shin <soohye.shin@samsung.com>
Wed, 26 Aug 2015 05:05:54 +0000 (14:05 +0900)
Change-Id: I3a774cf07bb325098cd624dd6ca72d527b4bd62b
Signed-off-by: Soohye Shin <soohye.shin@samsung.com>
edje/view/useredit.edc
src/view/view_user_edit.c

index ec37a8a..dc28a17 100644 (file)
@@ -285,6 +285,89 @@ group {
                        }
                }
                part {
+                       name, "pad.require";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       to, PART_USER_EDIT_CONTENTS_PHOTO;
+                                       relative, 0.0 1.0;
+                               }
+                               rel2 {
+                                       to, PART_USER_EDIT_CONTENTS_PHOTO;
+                                       relative, 0.0 1.0;
+                               }
+                               min, 0 26;
+                               fixed, 1 1;
+                               align, 0.0 0.0;
+                               visible, 0;
+                       }
+               }
+               part {
+                       name, "icon.require";
+                       type, IMAGE;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       to, "pad.require";
+                                       relative, 1.0 1.0;
+                               }
+                               rel2.to, "pad.require";
+                               min, 12 24;
+                               fixed, 1 1;
+                               align, 0.0 0.0;
+                               image.normal, "ic_user_require_02.png";
+                       }
+               }
+               part {
+                       name, "pad.require.text";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       to, "icon.require";
+                                       relative, 1.0 0.0;
+                               }
+                               rel2 {
+                                       to, "icon.require";
+                                       relative, 1.0 0.0;
+                               }
+                               min, 6 0;
+                               align, 0.0 0.0;
+                               fixed, 1 1;
+                               visible, 0;
+                       }
+               }
+               part {
+                       name, "require";
+                       type, TEXT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       to, "pad.require.text";
+                                       relative, 1.0 1.0;
+                               }
+                               rel2 {
+                                       to, "pad.require.text";
+                                       relative, 1.0 1.0;
+                               }
+                               min, 294 24;
+                               fixed, 1 1;
+                               align, 0.0 0.0;
+                               text {
+                                       font, "TizenSans";
+                                       size, 24;
+                                       align, 0.0 0.5;
+                                       text, "Required fields";
+                               }
+                               color, 64 136 211 255;
+                       }
+               }
+               part {
                        name, "pad.profile";
                        type, RECT;
                        scale, 1;
@@ -386,7 +469,7 @@ group {
                        }
                }
                part {
-                       name, "pad.lock";
+                       name, "pad.pin";
                        type, RECT;
                        scale, 1;
                        description {
@@ -399,47 +482,47 @@ group {
                                        to, PART_USER_EDIT_CONTENTS_NAME;
                                        relative, 0.0 1.0;
                                }
-                               min, 0 42;
+                               min, 0 32;
                                fixed, 1 1;
                                align, 0.0 0.0;
                                visible, 0;
                        }
                }
                part {
-                       name, "lock";
+                       name, "pin";
                        type, TEXT;
                        scale, 1;
                        description {
                                state, "default" 0.0;
                                rel1 {
-                                       to, "pad.lock";
+                                       to, "pad.pin";
                                        relative, 1.0 1.0;
                                }
-                               rel2.to, "pad.lock";
+                               rel2.to, "pad.pin";
                                min, 436 32;
                                fixed, 1 1;
                                align, 0.0 0.0;
                                text {
                                        font, "TizenSans";
                                        size, 32;
-                                       text, "Privacy lock";
+                                       text, "Pin code";
                                        align, 0.0 0.5;
                                }
                                color, 77 77 77 255;
                        }
                }
                part {
-                       name, "pad.lock.down";
+                       name, "pad.pin.down";
                        type, RECT;
                        scale, 1;
                        description {
                                state, "default" 0.0;
                                rel1 {
-                                       to, "lock";
+                                       to, "pin";
                                        relative, 0.0 1.0;
                                }
                                rel2 {
-                                       to, "lock";
+                                       to, "pin";
                                        relative, 0.0 1.0;
                                }
                                min, 0 22;
@@ -449,102 +532,101 @@ group {
                        }
                }
                part {
-                       name, PART_USER_EDIT_CONTENTS_LOCK;
+                       name, PART_USER_EDIT_CONTENTS_PIN;
                        type, SWALLOW;
                        scale, 1;
                        description {
                                state, "default" 0.0;
                                rel1 {
-                                       to, "pad.lock.down";
-                                       relative, 1.0 1.0;
+                                       to, "pad.pin.down";
+                                       relative, 0.0 1.0;
                                }
-                               rel2.to, "pad.lock.down";
-                               min, 104 54;
+                               rel2 {
+                                       to, "pad.pin.down";
+                                       relative, 0.0 1.0;
+                               }
+                               min, 298 64;
                                fixed, 1 1;
                                align, 0.0 0.0;
                        }
                }
                part {
-                       name, "pad.require";
+                       name, "pad.lock";
                        type, RECT;
                        scale, 1;
                        description {
                                state, "default" 0.0;
                                rel1 {
-                                       to, PART_USER_EDIT_CONTENTS_LOCK;
+                                       to, PART_USER_EDIT_CONTENTS_PIN;
                                        relative, 0.0 1.0;
                                }
                                rel2 {
-                                       to, PART_USER_EDIT_CONTENTS_LOCK;
+                                       to, PART_USER_EDIT_CONTENTS_PIN;
                                        relative, 0.0 1.0;
                                }
-                               min, 0 52;
+                               min, 0 42;
                                fixed, 1 1;
                                align, 0.0 0.0;
                                visible, 0;
                        }
                }
                part {
-                       name, "icon.require";
-                       type, IMAGE;
+                       name, "lock";
+                       type, TEXT;
                        scale, 1;
                        description {
                                state, "default" 0.0;
                                rel1 {
-                                       to, "pad.require";
+                                       to, "pad.lock";
                                        relative, 1.0 1.0;
                                }
-                               rel2.to, "pad.require";
-                               min, 12 24;
+                               rel2.to, "pad.lock";
+                               min, 436 32;
                                fixed, 1 1;
                                align, 0.0 0.0;
-                               image.normal, "ic_user_require_02.png";
+                               text {
+                                       font, "TizenSans";
+                                       size, 32;
+                                       text, "Privacy lock";
+                                       align, 0.0 0.5;
+                               }
+                               color, 77 77 77 255;
                        }
                }
                part {
-                       name, "pad.require.text";
+                       name, "pad.lock.down";
                        type, RECT;
                        scale, 1;
                        description {
                                state, "default" 0.0;
                                rel1 {
-                                       to, "icon.require";
-                                       relative, 1.0 0.0;
+                                       to, "lock";
+                                       relative, 0.0 1.0;
                                }
                                rel2 {
-                                       to, "icon.require";
-                                       relative, 1.0 0.0;
+                                       to, "lock";
+                                       relative, 0.0 1.0;
                                }
-                               min, 6 0;
-                               align, 0.0 0.0;
+                               min, 0 22;
                                fixed, 1 1;
+                               align, 0.0 0.0;
                                visible, 0;
                        }
                }
                part {
-                       name, "require";
-                       type, TEXT;
+                       name, PART_USER_EDIT_CONTENTS_LOCK;
+                       type, SWALLOW;
                        scale, 1;
                        description {
                                state, "default" 0.0;
                                rel1 {
-                                       to, "pad.require.text";
-                                       relative, 1.0 1.0;
-                               }
-                               rel2 {
-                                       to, "pad.require.text";
+                                       to, "pad.lock.down";
                                        relative, 1.0 1.0;
                                }
-                               min, 294 24;
+                               rel2.to, "pad.lock.down";
+                               min, 104 54;
                                fixed, 1 1;
                                align, 0.0 0.0;
-                               text {
-                                       font, "TizenSans";
-                                       size, 24;
-                                       align, 0.0 0.5;
-                                       text, "Required fields";
-                               }
-                               color, 64 136 211 255;
                        }
                }
                part {
index 75bf69d..6bec529 100644 (file)
@@ -31,6 +31,8 @@
 #define CTXPOPUP_Y 310
 #define MAX_BUF 128
 #define MAX_PHOTO 160
+#define COUNT_PIN 4
+#define PADDING_PIN 14
 
 enum input_handler_type {
        INPUT_HANDLER_TYPE_PHOTO,
@@ -43,7 +45,8 @@ enum input_handler_type {
        INPUT_HANDLER_TYPE_DELETE_POPUP_BTN_DELETE,
        INPUT_HANDLER_TYPE_DELETE_POPUP_BTN_CANCEL,
        INPUT_HANDLER_TYPE_ENTRY,
-       INPUT_HANDLER_TYPE_LOCK
+       INPUT_HANDLER_TYPE_LOCK,
+       INPUT_HANDLER_TYPE_PIN
 };
 
 enum user_item_type {
@@ -74,6 +77,7 @@ struct _priv {
        Evas_Object *del;
        Evas_Object *popup;
        Evas_Object *lock;
+       Evas_Object *pin[COUNT_PIN];
 
        char *selected_photo;
 
@@ -94,6 +98,7 @@ static void _focused(int id, void *data, Evas_Object *obj,
                elm_object_signal_emit(obj, SIG_FOCUS, SRC_PROG);
                break;
        case INPUT_HANDLER_TYPE_ENTRY:
+       case INPUT_HANDLER_TYPE_PIN:
                elm_object_signal_emit(obj, SIG_SELECT, SRC_ELM);
                break;
        default:
@@ -112,6 +117,7 @@ static void _unfocused(int id, void *data, Evas_Object *obj,
                elm_object_signal_emit(obj, SIG_UNFOCUS, SRC_PROG);
                break;
        case INPUT_HANDLER_TYPE_ENTRY:
+       case INPUT_HANDLER_TYPE_PIN:
                elm_object_signal_emit(obj, SIG_UNSELECT, SRC_ELM);
                break;
        default:
@@ -377,6 +383,50 @@ static void _add_icon_list(struct _priv *priv)
        priv->ctxpopup = ctxpopup;
 }
 
+static bool _add_pin(Evas_Object *ly, struct _priv *priv)
+{
+       Evas_Object *pin, *box;
+
+       Elm_Entry_Filter_Limit_Size pin_size = {
+               .max_char_count = 1,
+       };
+       Elm_Entry_Filter_Accept_Set pin_char = {
+               .accepted = "0123456789",
+       };
+       int i;
+
+       box = utils_add_box(ly, true);
+       if (!box) {
+               _ERR("failed to add box");
+               return false;
+       }
+       elm_object_part_content_set(ly, PART_USER_EDIT_CONTENTS_PIN, box);
+       elm_box_padding_set(box, PADDING_PIN, 0);
+
+       for (i = 0; i < COUNT_PIN; i++) {
+               pin = utils_add_entry(box, true, false, NULL,
+                               STYLE_INPUT_PIN);
+               if (!pin) {
+                       _ERR("failed to add entry");
+                       memset(priv->pin, 0x00, sizeof(priv->pin));
+                       evas_object_del(box);
+                       return false;
+               }
+               elm_entry_markup_filter_append(pin, elm_entry_filter_limit_size,
+                               &pin_size);
+               elm_entry_markup_filter_append(pin, elm_entry_filter_accept_set,
+                               &pin_char);
+
+               elm_box_pack_end(box, pin);
+
+               inputmgr_add_callback(pin, INPUT_HANDLER_TYPE_PIN, &handler,
+                               priv);
+               priv->pin[i] = pin;
+       }
+
+       return true;
+}
+
 static Evas_Object *_add_layout(struct _priv *priv)
 {
        Evas_Object *ly, *photo, *name, *lock;
@@ -403,6 +453,11 @@ static Evas_Object *_add_layout(struct _priv *priv)
        if (!lock)
                goto err;
 
+       if (!_add_pin(ly, priv)) {
+               _ERR("failed to add pin");
+               goto err;
+       }
+
        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);