INPUT_HANDLER_TYPE_MENU_EMPTY,
INPUT_HANDLER_TYPE_POPUP_RESET,
INPUT_HANDLER_TYPE_POPUP_DISCARD,
+ INPUT_HANDLER_TYPE_POPUP_DELETE,
INPUT_HANDLER_TYPE_POPUP_CANCEL
};
+enum menu_type {
+ MENU_TYPE_ADD,
+ MENU_TYPE_EDIT,
+ MENU_TYPE_MAX
+};
+
struct _priv {
Evas_Object *win;
Evas_Object *base;
Eina_List *list;
bool edited;
+
+ enum menu_type mtype;
};
struct _menu_info {
Eina_Bool disable;
};
-static struct _menu_info menu_info[] = {
+static struct _menu_info add_menu_info[] = {
{
.style = STYLE_BTN_ACTION_MENU_RESET,
.title = TITLE_ACTION_MENU_RESET,
}
};
+static struct _menu_info edit_menu_info[] = {
+ {
+ .style = STYLE_BTN_ACTION_MENU_RESET,
+ .title = TITLE_ACTION_MENU_RESET,
+ .id = INPUT_HANDLER_TYPE_MENU_RESET,
+ .disable = EINA_FALSE
+ },
+ {
+ .style = STYLE_BTN_ACTION_MENU_DELETE,
+ .title = TITLE_ACTION_MENU_DELETE,
+ .id = INPUT_HANDLER_TYPE_MENU_DELETE,
+ .disable = EINA_FALSE
+
+ },
+ {
+ .style = STYLE_BTN_ACTION_MENU_EMPTY,
+ .title = NULL,
+ .id = INPUT_HANDLER_TYPE_MENU_EMPTY,
+ .disable = EINA_TRUE
+ },
+ {
+ .style = STYLE_BTN_ACTION_MENU_EMPTY,
+ .title = NULL,
+ .id = INPUT_HANDLER_TYPE_MENU_EMPTY,
+ .disable = EINA_TRUE
+ }
+};
+
static void _focused(int id, void *data, Evas_Object *obj,
Elm_Object_Item *item)
{
MESSAGE_CANCEL,
INPUT_HANDLER_TYPE_POPUP_CANCEL);
break;
+ case INPUT_HANDLER_TYPE_MENU_DELETE:
+ _add_popup(priv, MESSAGE_DELETE_USER, MESSAGE_DELETE_CONTENTS,
+ MESSAGE_DELETE,
+ INPUT_HANDLER_TYPE_POPUP_DELETE,
+ MESSAGE_CANCEL,
+ INPUT_HANDLER_TYPE_POPUP_CANCEL);
+ break;
case INPUT_HANDLER_TYPE_POPUP_DISCARD:
viewmgr_update_view(VIEW_USER_EDIT, UPDATE_TYPE_RESET, NULL);
viewmgr_hide_view(VIEW_ACTION_MENU);
viewmgr_hide_view(VIEW_ACTION_MENU);
_delete_popup(priv, obj);
break;
+ case INPUT_HANDLER_TYPE_POPUP_DELETE:
+ _delete_popup(priv, obj);
+ /* It should be implemented later */
+ break;
case INPUT_HANDLER_TYPE_POPUP_CANCEL:
_delete_popup(priv, obj);
break;
break;
case INPUT_HANDLER_TYPE_POPUP_RESET:
case INPUT_HANDLER_TYPE_POPUP_DISCARD:
+ case INPUT_HANDLER_TYPE_POPUP_DELETE:
case INPUT_HANDLER_TYPE_POPUP_CANCEL:
if (priv->popup)
_delete_popup(priv, obj);
{
Evas_Object *item;
int i;
+ struct _menu_info *menu_info;
+
+ switch (priv->mtype) {
+ case MENU_TYPE_ADD:
+ menu_info = add_menu_info;
+ break;
+ case MENU_TYPE_EDIT:
+ menu_info = edit_menu_info;
+ break;
+ default:
+ _ERR("Invalid type");
+ return false;
+ }
for (i = 0; i < COUNT_MENU_ITEM; i++) {
item = elm_button_add(priv->tbl);
priv = data;
+ /* FIXME: It will be fixed after getting value of editable state */
+ priv->mtype = MENU_TYPE_ADD;
+
if (!_add_menu_item(priv)) {
_ERR("failed to add item");
return;
enum input_handler_type {
INPUT_HANDLER_TYPE_PHOTO,
- INPUT_HANDLER_TYPE_DELETE,
INPUT_HANDLER_TYPE_EO,
INPUT_HANDLER_TYPE_BTN_DONE,
INPUT_HANDLER_TYPE_BTN_CANCEL,
INPUT_HANDLER_TYPE_POPUP_BTN_DISCARD,
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_LOCK,
INPUT_HANDLER_TYPE_PIN
Evas_Object *done;
Evas_Object *cancel;
Evas_Object *ctxpopup;
- Evas_Object *del;
Evas_Object *popup;
Evas_Object *lock;
Evas_Object *pin[COUNT_PIN];
{
switch (id) {
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);
{
switch (id) {
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);
return base;
}
-static void _add_delete_popup(struct _priv *priv)
-{
- Evas_Object *popup, *delete_btn, *cancel_btn;
- char buf[MAX_BUF];
-
- snprintf(buf, sizeof(buf), "%s %s?<br> %s", MESSAGE_DELETE,
- priv->di->title, MESSAGE_DELETE_CONTENTS);
-
- popup = utils_add_popup(priv->base, MESSAGE_DELETE_USER, buf);
- if (!popup) {
- _ERR("failed to add popup");
- return;
- }
- priv->popup = popup;
-
- delete_btn = utils_add_button(popup, MESSAGE_DELETE,
- PART_POPUP_BUTTON_1);
- if (!delete_btn) {
- _ERR("failed to add delete btn");
- evas_object_del(popup);
- return;
- }
- inputmgr_add_callback(delete_btn,
- INPUT_HANDLER_TYPE_DELETE_POPUP_BTN_DELETE,
- &handler, priv);
-
- cancel_btn = utils_add_button(popup, MESSAGE_CANCEL,
- PART_POPUP_BUTTON_2);
- if (!cancel_btn) {
- _ERR("failed to add cancel btn");
- evas_object_del(popup);
- return;
- }
- inputmgr_add_callback(cancel_btn,
- INPUT_HANDLER_TYPE_DELETE_POPUP_BTN_CANCEL,
- &handler, priv);
-
- elm_object_focus_allow_set(priv->del, EINA_FALSE);
- elm_object_focus_set(cancel_btn, EINA_TRUE);
-}
-
static void _select_eo(struct _priv *priv, Evas_Object *obj)
{
const char *file, *focus_file;
static void _select(struct _priv *priv, int id, Evas_Object *obj)
{
- char buf[MAX_BUF];
-
switch (id) {
case INPUT_HANDLER_TYPE_LOCK:
if (priv->locked) {
case INPUT_HANDLER_TYPE_PHOTO:
_add_icon_list(priv);
break;
- case INPUT_HANDLER_TYPE_DELETE:
- _add_delete_popup(priv);
- break;
case INPUT_HANDLER_TYPE_EO:
_select_eo(priv, obj);
break;
}
viewmgr_pop_view();
break;
- case INPUT_HANDLER_TYPE_DELETE_POPUP_BTN_DELETE:
- _delete_popup(priv, obj);
- elm_object_focus_allow_set(priv->del, EINA_TRUE);
- priv->di->action = ITEM_SELECT_ACTION_DELETE;
- if (datamgr_select_item(priv->dm, priv->di)) {
- snprintf(buf, sizeof(buf), "%s %s", priv->di->title,
- MESSAGE_USER_DELETE);
- utils_add_toast(priv->win, buf);
- }
- viewmgr_pop_view();
- break;
case INPUT_HANDLER_TYPE_POPUP_BTN_DISCARD:
_delete_popup(priv, obj);
viewmgr_pop_view();
break;
- case INPUT_HANDLER_TYPE_DELETE_POPUP_BTN_CANCEL:
- elm_object_focus_allow_set(priv->del, EINA_TRUE);
case INPUT_HANDLER_TYPE_POPUP_BTN_CANCEL:
_delete_popup(priv, obj);
break;
case INPUT_HANDLER_TYPE_PHOTO:
case INPUT_HANDLER_TYPE_BTN_DONE:
case INPUT_HANDLER_TYPE_BTN_CANCEL:
- case INPUT_HANDLER_TYPE_DELETE:
case INPUT_HANDLER_TYPE_ENTRY:
case INPUT_HANDLER_TYPE_PIN:
case INPUT_HANDLER_TYPE_LOCK:
priv->ctxpopup = NULL;
elm_object_focus_allow_set(priv->photo, EINA_TRUE);
break;
- case INPUT_HANDLER_TYPE_DELETE_POPUP_BTN_DELETE:
- _delete_popup(priv, obj);
- elm_object_focus_allow_set(priv->del, EINA_TRUE);
- break;
case INPUT_HANDLER_TYPE_POPUP_BTN_DISCARD:
_delete_popup(priv, obj);
break;
- case INPUT_HANDLER_TYPE_DELETE_POPUP_BTN_CANCEL:
- elm_object_focus_allow_set(priv->del, EINA_TRUE);
case INPUT_HANDLER_TYPE_POPUP_BTN_CANCEL:
_delete_popup(priv, obj);
break;
} else if (!strcmp(ev->keyname, KEY_ENTER) ||
!strcmp(ev->keyname, KEY_ENTER_REMOTE)) {
_select(priv, id, obj);
- } else if (!strcmp(ev->keyname, KEY_RIGHT)) {
- if (id == INPUT_HANDLER_TYPE_PHOTO && priv->del)
- elm_object_focus_set(priv->del, EINA_TRUE);
} else if (!strcmp(ev->keyname, KEY_MENU) ||
!strcmp(ev->keyname, KEY_MENU_REMOTE)) {
switch (id) {
case INPUT_HANDLER_TYPE_PHOTO:
case INPUT_HANDLER_TYPE_BTN_DONE:
case INPUT_HANDLER_TYPE_BTN_CANCEL:
- case INPUT_HANDLER_TYPE_DELETE:
case INPUT_HANDLER_TYPE_ENTRY:
case INPUT_HANDLER_TYPE_PIN:
case INPUT_HANDLER_TYPE_LOCK:
_select(priv, id, obj);
}
-static void _load_del_btn(struct _priv *priv)
-{
- Evas_Object *btn;
-
- btn = utils_add_layout(priv->ly, GRP_USER_EDIT_DELETE, true,
- PART_USER_EDIT_CONTENTS_DELETE);
- if (!btn) {
- _ERR("failed to add delete button");
- return;
- }
- inputmgr_add_callback(btn, INPUT_HANDLER_TYPE_DELETE, &handler, priv);
-
- priv->del = btn;
-}
-
static void _change_entry(Evas_Object *name, Eina_Bool disable, const char *text,
const char *signal)
{
elm_object_part_text_set(priv->base, PART_USER_EDIT_TITLE,
MESSAGE_EDIT_USER);
_change_entry(priv->name, EINA_FALSE, priv->di->title, SIG_DISABLE);
- 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);
}
priv = data;
- if (priv->del) {
- inputmgr_remove_callback(priv->del, &handler);
- evas_object_del(priv->del);
- priv->del = NULL;
- }
-
priv->selected_photo = NULL;
evas_object_hide(priv->base);
}