group {
name, GRP_USER_EDIT_SWITCH;
- images {
- image, "btn_switch_on_nor.png" COMP;
- image, "btn_switch_off_nor.png" COMP;
- }
parts {
part {
name, "bg";
description {
state, "default" 0.0;
min, 104 54;
- visible, 0;
+ color, 0 119 246 255;
}
}
part {
- name, "icon";
- type, IMAGE;
+ name, "clip";
+ type, RECT;
scale, 1;
description {
state, "default" 0.0;
- image.normal, "btn_switch_on_nor.png";
fixed, 1 1;
}
description {
state, "focus" 0.0;
- image.normal, "btn_switch_off_nor.png";
+ rel1.relative, 0.5 0.5;
+ rel2.relative, 0.5 0.5;
+ min, 98 48;
+ fixed, 1 1;
+ }
+ }
+ part {
+ name, PART_USER_EDIT_SWITCH;
+ type, SWALLOW;
+ scale, 1;
+ clip_to, "clip";
+ description {
+ state, "default" 0.0;
fixed, 1 1;
}
}
signal, SIG_FOCUS;
source, SRC_PROG;
action, STATE_SET "focus" 0.0;
- transition, ACCEL 0.2;
- target, "icon";
+ transition, LINEAR 0.1;
+ target, "clip";
}
program {
name, "sig,unfocus";
signal, SIG_UNFOCUS;
source, SRC_PROG;
action, STATE_SET "default" 0.0;
- transition, ACCEL 0.2;
- target, "icon";
+ transition, LINEAR 0.1;
+ target, "clip";
}
}
}
#define PART_USER_EDIT_ICON_LIST "part.user.edit.icon.list"
#define PART_USER_EDIT_ICON_LIST_ITEM "part.user.edit.icon.list.item"
#define PART_USER_EDIT_ICON_LIST_ITEM_FOCUS "part.user.edit.icon.list.item.focus"
+#define PART_USER_EDIT_SWITCH "part.user.edit.switch"
#define PART_BAR_ITEM_BG "part.bar.item.bg"
#define PART_BAR_ITEM_ICON "part.bar.item.icon"
#define PART_BAR_ITEM_ICON_FOCUS "part.bar.item.icon.focus"
#define COLOR_DEFAULT_B 246
#define COLOR_DEFAULT_A 255
+#define IMAGE_SWITCH_ON IMAGEDIR"/btn_switch_on_nor.png"
+#define IMAGE_SWITCH_OFF IMAGEDIR"/btn_switch_off_nor.png"
#define IMAGE_BADGE IMAGEDIR"/badge_bg.png"
#define IMAGE_USER_ADD IMAGEDIR"/btn_user_add_nor.png"
#define IMAGE_USER_ADD_FOCUS IMAGEDIR"/btn_user_add_foc.png"
.key_down = _photo_key_down
};
+static void _load_lock_icon(struct _priv *priv, Evas_Object *ly)
+{
+ 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,
+ PART_USER_EDIT_SWITCH);
+ evas_object_del(priv->lock);
+ }
+
+ if (!file || !strcmp(file, IMAGE_SWITCH_OFF))
+ file = IMAGE_SWITCH_ON;
+ else
+ file = IMAGE_SWITCH_OFF;
+ lock = utils_add_icon(ly, file, PART_USER_EDIT_SWITCH);
+
+ priv->lock = lock;
+}
+
+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);
+}
+
+static input_handler lock_handler = {
+ .focused = _focused,
+ .unfocused = _unfocused,
+ .key_down = _lock_key_down
+};
+
static Evas_Object *_add_layout(struct _priv *priv)
{
Evas_Object *ly, *photo, *name, *pin, *account, *lock;
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->photo = photo;
priv->name = name;
priv->account = account;
priv->pin = pin;
- priv->lock = lock;
return ly;
err:
priv = data;
inputmgr_remove_callback(priv->photo, &photo_handler);
+ inputmgr_remove_callback(priv->photo, &lock_handler);
inputmgr_remove_callback(priv->done, &done_handler);
inputmgr_remove_callback(priv->cancel, &cancel_handler);
viewmgr_remove_view(VIEW_PHOTO);