/*
-
* Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the License);
INPUT_HANDLER_TYPE_BUTTON
};
+enum user_item_type {
+ USER_ITEM_NONE = 0x00,
+ USER_ITEM_ADD = 0x01,
+ USER_ITEM_ADMIN = 0x02,
+ USER_ITEM_NORMAL = 0x08
+};
+
struct _priv {
Evas_Object *win;
Evas_Object *base;
struct datamgr *dm;
struct _bar_item *foc;
+
+ enum user_item_type user_type;
};
struct _bar_item {
struct _priv *priv;
};
+static bool _check_editable_user(struct _priv *priv)
+{
+ struct _bar_item *bi;
+ bool r = false;
+
+ switch (priv->user_type) {
+ case USER_ITEM_NORMAL:
+ bi = eina_list_data_get(priv->list);
+ if (priv->foc == bi)
+ r = true;
+ break;
+ case USER_ITEM_ADMIN:
+ r = true;
+ break;
+ default:
+ break;
+ }
+
+ return r;
+}
+
static void _focused(int id, void *data, Evas_Object *obj,
Elm_Object_Item *item)
{
priv->foc = bi;
elm_object_signal_emit(obj, SIG_FOCUS, SRC_PROG);
+
+ if (_check_editable_user(priv))
+ elm_object_signal_emit(obj, SIG_SHOW_ARROW, SRC_PROG);
}
static void _unfocused(int id, void *data, Evas_Object *obj,
return;
elm_object_signal_emit(obj, SIG_UNFOCUS, SRC_PROG);
+ elm_object_signal_emit(obj, SIG_HIDE_ARROW, SRC_PROG);
}
static void _key_down(int id, void *data, Evas *e, Evas_Object *obj,
!strcmp(ev->keyname, KEY_BACK_REMOTE)) {
elm_object_signal_emit(priv->base, SIG_HIDE, SRC_PROG);
} else if (!strcmp(ev->keyname, KEY_DOWN)) {
- if (priv->foc->di->action == ITEM_SELECT_ACTION_PUSH)
+ if (priv->foc->di->action == ITEM_SELECT_ACTION_PUSH ||
+ !_check_editable_user(priv))
return;
+ viewmgr_update_view(VIEW_USER_EDIT, UPDATE_TYPE_USER,
+ (void *)priv->user_type);
viewmgr_update_view(VIEW_USER_EDIT, UPDATE_TYPE_EDIT,
priv->foc->di);
viewmgr_push_view(VIEW_USER_EDIT);
if (priv->foc->di->action == ITEM_SELECT_ACTION_PUSH)
return;
+ viewmgr_update_view(VIEW_USER_EDIT, UPDATE_TYPE_USER, (void *)priv->user_type);
viewmgr_update_view(VIEW_USER_EDIT, UPDATE_TYPE_EDIT, priv->foc->di);
viewmgr_push_view(VIEW_USER_EDIT);
}
Evas_Object *scr, *box;
struct _bar_item *bi;
struct datamgr_item *di;
+ int i;
scr = utils_add_scroller(priv->base);
if (!scr) {
return;
}
+ i = 0;
EINA_LIST_FOREACH(list, l, di) {
bi = _pack_bar_item(priv, box, di);
if (!bi)
continue;
+ if (i == 0) {
+ priv->user_type = di->type;
+ i++;
+ }
priv->list = eina_list_append(priv->list, bi);
}
struct datamgr *dm;
struct datamgr_item *di;
+
+ enum user_item_type user_type;
};
static void _focused(int id, void *data, Evas_Object *obj,
{
Evas_Object *btn;
- if (priv->di->type == USER_ITEM_ADMIN) {
- btn = utils_add_layout(priv->ly, GRP_USER_EDIT_DELETE, false,
- PART_USER_EDIT_CONTENTS_DELETE);
- if (!btn) {
- _ERR("failed to add delete button");
- return;
- }
- elm_object_signal_emit(btn, SIG_DISABLE, SRC_PROG);
- return;
- }
-
-
btn = utils_add_layout(priv->ly, GRP_USER_EDIT_DELETE, true,
PART_USER_EDIT_CONTENTS_DELETE);
if (!btn) {
focus_photo = utils_get_focus_photo_from_photo(photo);
_load_user_icon(priv, photo, focus_photo);
}
- _load_del_btn(priv);
+ if (priv->user_type == USER_ITEM_ADMIN &&
+ priv->di->type !=USER_ITEM_ADMIN)
+ _load_del_btn(priv);
} else {
elm_object_part_text_set(priv->base, PART_USER_EDIT_TITLE,
MESSAGE_ADD_USER);
case UPDATE_TYPE_PHOTO:
priv->selected_photo = data;
break;
+ case UPDATE_TYPE_USER:
+ priv->user_type = (enum user_item_type) data;
+ break;
default:
_ERR("Invalid type");
return;