}
}
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;
}
}
part {
- name, "pad.lock";
+ name, "pad.pin";
type, RECT;
scale, 1;
description {
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;
}
}
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 {
#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,
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 {
Evas_Object *del;
Evas_Object *popup;
Evas_Object *lock;
+ Evas_Object *pin[COUNT_PIN];
char *selected_photo;
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:
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:
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;
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);