add delete menu button in view of action menu 06/47106/1
authorSoohye Shin <soohye.shin@samsung.com>
Mon, 31 Aug 2015 01:50:08 +0000 (10:50 +0900)
committerSoohye Shin <soohye.shin@samsung.com>
Mon, 31 Aug 2015 01:50:08 +0000 (10:50 +0900)
Change-Id: I6d6a717431d6c7a3ca16785d854c523ca734e0fb
Signed-off-by: Soohye Shin <soohye.shin@samsung.com>
edje/view/useredit.edc
include/defs.h
src/view/view_action_menu.c
src/view/view_user_edit.c

index d9f3ddd..e07e775 100644 (file)
@@ -629,45 +629,6 @@ group {
                                align, 0.0 0.0;
                        }
                }
-               part {
-                       name, "pad.delete";
-                       type, RECT;
-                       scale, 1;
-                       description {
-                               state, "default" 0.0;
-                               rel1 {
-                                       to, PART_USER_EDIT_CONTENTS_NAME;
-                                       relative, 1.0 0.5;
-                               }
-                               rel2 {
-                                       to, PART_USER_EDIT_CONTENTS_NAME;
-                                       relative, 1.0 0.5;
-                               }
-                               min, 14 0;
-                               fixed, 1 1;
-                               align, 0.0 0.5;
-                               visible, 0;
-                       }
-               }
-               part {
-                       name, PART_USER_EDIT_CONTENTS_DELETE;
-                       type, SWALLOW;
-                       scale, 1;
-                       description {
-                               state, "default" 0.0;
-                               rel1 {
-                                       to, "pad.delete";
-                                       relative, 1.0 0.5;
-                               }
-                               rel2 {
-                                       to, "pad.delete";
-                                       relative, 1.0 0.5;
-                               }
-                               min, 174 64;
-                               fixed, 1 1;
-                               align, 0.0 0.5;
-                       }
-               }
        }
 }
 
@@ -954,59 +915,6 @@ group {
 }
 
 group {
-       name, GRP_USER_EDIT_DELETE;
-       parts {
-               part {
-                       name, "bg";
-                       type, RECT;
-                       scale, 1;
-                       description {
-                               state, "default" 0.0;
-                               min, 174 64;
-                               color, 126 145 172 255;
-                       }
-                       description {
-                               state, "focus" 0.0;
-                               inherit, "default" 0.0;
-                               color, 0 119 246 255;
-                       }
-               }
-               part {
-                       name, "text.delete";
-                       type, TEXT;
-                       scale, 1;
-                       description {
-                               state, "default" 0.0;
-                               fixed, 1 1;
-                               text {
-                                       text, "Delete user";
-                                       size, 28;
-                                       font, "TizenSans";
-                               }
-                       }
-               }
-       }
-       programs {
-               program {
-                       name, "sig,focus";
-                       signal, SIG_FOCUS;
-                       source, SRC_PROG;
-                       action, STATE_SET "focus" 0.0;
-                       transition, TRANSITION_LINEAR;
-                       target, "bg";
-               }
-               program {
-                       name, "sig,unfocus";
-                       signal, SIG_UNFOCUS;
-                       source, SRC_PROG;
-                       action, STATE_SET "default" 0.0;
-                       transition, TRANSITION_LINEAR;
-                       target, "bg";
-               }
-       }
-}
-
-group {
        name, GRP_USER_EDIT_ICON_LIST;
        parts {
                part {
index faf683a..8e4af2d 100644 (file)
@@ -45,7 +45,6 @@
 #define GRP_USER_EDIT_SWITCH "group.user.edit.switch"
 #define GRP_USER_EDIT_PHOTO "group.user.edit.photo"
 #define GRP_USER_EDIT_ENTRY "group.user.edit.entry"
-#define GRP_USER_EDIT_DELETE "group.user.edit.delete"
 #define GRP_USER_EDIT_ICON_LIST "group.user.edit.icon.list"
 #define GRP_USER_EDIT_ICON_LIST_ITEM "group.user.edit.icon.list.item"
 #define GRP_BAR_ITEM "group.bar.item"
@@ -78,7 +77,6 @@
 #define PART_USER_EDIT_CONTENTS_NAME "part.user.edit.contents.name"
 #define PART_USER_EDIT_CONTENTS_PIN "part.user.edit.contents.pin"
 #define PART_USER_EDIT_CONTENTS_LOCK "part.user.edit.contents.lock"
-#define PART_USER_EDIT_CONTENTS_DELETE "part.user.edit.contents.delete"
 #define PART_USER_EDIT_PHOTO "part.user.edit.photo"
 #define PART_USER_EDIT_PHOTO_FOCUS "part.user.edit.photo.focus"
 #define PART_USER_EDIT_ENTRY "part.user.edit.entry"
index 547ecdf..59861eb 100644 (file)
@@ -35,9 +35,16 @@ enum input_handler_type {
        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;
@@ -47,6 +54,8 @@ struct _priv {
        Eina_List *list;
 
        bool edited;
+
+       enum menu_type mtype;
 };
 
 struct _menu_info {
@@ -56,7 +65,7 @@ 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,
@@ -84,6 +93,34 @@ static struct _menu_info menu_info[] = {
        }
 };
 
+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)
 {
@@ -187,6 +224,13 @@ static void _select(int id, void *data, Evas_Object *obj)
                                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);
@@ -200,6 +244,10 @@ static void _select(int id, void *data, Evas_Object *obj)
                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;
@@ -229,6 +277,7 @@ static void _key_down(int id, void *data, Evas *e, Evas_Object *obj,
                        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);
@@ -339,6 +388,19 @@ static bool _add_menu_item(struct _priv *priv)
 {
        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);
@@ -377,6 +439,9 @@ static void _show(void *data)
 
        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;
index cc7442e..7ba1496 100644 (file)
 
 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
@@ -74,7 +71,6 @@ struct _priv {
        Evas_Object *done;
        Evas_Object *cancel;
        Evas_Object *ctxpopup;
-       Evas_Object *del;
        Evas_Object *popup;
        Evas_Object *lock;
        Evas_Object *pin[COUNT_PIN];
@@ -108,7 +104,6 @@ static void _focused(int id, void *data, Evas_Object *obj,
 {
        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);
@@ -127,7 +122,6 @@ static void _unfocused(int id, void *data, Evas_Object *obj,
 {
        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);
@@ -562,47 +556,6 @@ static Evas_Object *_create(Evas_Object *win, void *data)
        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;
@@ -664,8 +617,6 @@ static void _disable_pin(struct _priv *priv)
 
 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) {
@@ -682,9 +633,6 @@ static void _select(struct _priv *priv, int id, Evas_Object *obj)
        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;
@@ -701,23 +649,10 @@ static void _select(struct _priv *priv, int id, Evas_Object *obj)
                }
                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;
@@ -767,7 +702,6 @@ static void _key_down(int id, void *data, Evas *e, Evas_Object *obj,
                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:
@@ -782,15 +716,9 @@ static void _key_down(int id, void *data, Evas *e, Evas_Object *obj,
                        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;
@@ -800,16 +728,12 @@ static void _key_down(int id, void *data, Evas *e, Evas_Object *obj,
        } 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:
@@ -850,21 +774,6 @@ static void _mouse_up(int id, void *data, Evas *e, Evas_Object *obj,
        _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)
 {
@@ -914,9 +823,6 @@ static void _show(void *data)
                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);
@@ -939,12 +845,6 @@ static void _hide(void *data)
        }
 
        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);
 }