+static void _add_empty_item(struct _priv *priv, int len)
+{
+ int i;
+ Evas_Object *item;
+
+ for (i = 0; i < len; i++) {
+ item = utils_add_layout(priv->box, GRP_ACTION_MENU_TABLE_ITEM,
+ false, NULL);
+ if (!item) {
+ _ERR("failed to add item");
+ return;
+ }
+
+ evas_object_show(item);
+ elm_box_pack_end(priv->box, item);
+ priv->list = eina_list_append(priv->list, item);
+ }
+}
+
+static bool _add_item(struct _priv *priv)
+{
+ Evas_Object *item, *ic, *focus_ic, *lbl, *focus_lbl, *bg;
+ struct _btn_info btn_info[] = {
+ {
+ IMAGE_ACTION_MENU_ICON_RESET,
+ IMAGE_ACTION_MENU_ICON_RESET_FOCUS,
+ IMAGE_ACTION_MENU_ICON_RESET_DIS,
+ ACTION_MENU_TITLE_RESET,
+ INPUT_HANDLER_TYPE_ITEM_RESET
+ }
+ };
+ int i;
+
+ elm_box_clear(priv->box);
+
+ for (i = 0; i < sizeof(btn_info) / sizeof(*btn_info); i++) {
+ item = utils_add_layout(priv->box, GRP_ACTION_MENU_TABLE_ITEM,
+ priv->edited, NULL);
+ if (!item) {
+ _ERR("failed to add item");
+ return false;
+ }
+
+ ic = utils_add_icon(item, priv->edited ?
+ btn_info[i].icon : btn_info[i].dis_icon,
+ PART_ACTION_MENU_TABLE_ITEM_ICON);
+ if (!ic)
+ goto err;
+
+ lbl = utils_add_label(item, btn_info[i].title,
+ priv->edited ? STYLE_LABEL_ACTION_MENU_TITLE :
+ STYLE_LABEL_ACTION_MENU_TITLE_DIS,
+ PART_ACTION_MENU_TABLE_ITEM_TEXT);
+ if (!lbl)
+ goto err;
+
+ if (priv->edited) {
+ focus_ic = utils_add_icon(item, btn_info[i].focus_icon,
+ PART_ACTION_MENU_TABLE_ITEM_ICON_FOCUS);
+ if (!focus_ic)
+ goto err;
+
+ focus_lbl = utils_add_label(item, btn_info[i].title,
+ STYLE_LABEL_ACTION_MENU_TITLE_FOCUS,
+ PART_ACTION_MENU_TABLE_ITEM_TEXT_FOCUS);
+ if (!focus_lbl)
+ goto err;
+
+ bg = utils_add_bg(item, COLOR_DEFAULT_R,
+ COLOR_DEFAULT_G, COLOR_DEFAULT_B,
+ COLOR_DEFAULT_A,
+ PART_ACTION_MENU_TABLE_ITEM_BG);
+ if (!bg)
+ goto err;
+
+ inputmgr_add_callback(item, btn_info[i].handler_id,
+ &handler, priv);
+ }
+ evas_object_show(item);
+ elm_box_pack_end(priv->box, item);
+ priv->list = eina_list_append(priv->list, item);
+ }
+
+ _add_empty_item(priv, COUNT_MENU_ITEM -
+ sizeof(btn_info) / sizeof(*btn_info));
+
+ return true;
+err:
+ evas_object_del(item);
+ return false;
+}
+