ctxpopup - support image candidate list.

This commit is contained in:
ChunEon Park 2014-03-16 12:31:08 +09:00
parent d3ce44efe3
commit f61c99539a
5 changed files with 37 additions and 3 deletions

View File

@ -177,7 +177,20 @@ ctxpopup_candidate_list_create(Evas_Object *parent, attr_value *attr,
EINA_LIST_FOREACH(parts, l, part)
elm_ctxpopup_item_append(ctxpopup, part, NULL,
ctxpopup_it_cb, data);
view_parts_list_free(parts);
view_string_list_free(parts);
break;
}
case ATTR_VALUE_IMAGE:
{
view_data *vd = edj_mgr_view_get(NULL);
if (!vd) goto err;
Eina_List *parts = view_images_list_get(vd);
Eina_List *l;
char *part;
EINA_LIST_FOREACH(parts, l, part)
elm_ctxpopup_item_append(ctxpopup, part, NULL,
ctxpopup_it_cb, data);
view_string_list_free(parts);
break;
}
}

View File

@ -212,6 +212,19 @@ parser_type_init(parser_data *pd)
attr->instring = EINA_TRUE;
attr->value.type = ATTR_VALUE_PART;
pd->attrs = eina_inlist_append(pd->attrs, (Eina_Inlist *) attr);
//Type: Image
attr = calloc(1, sizeof(parser_attr));
attr->keyword = eina_stringshare_add("normal");
attr->instring = EINA_TRUE;
attr->value.type = ATTR_VALUE_IMAGE;
pd->attrs = eina_inlist_append(pd->attrs, (Eina_Inlist *) attr);
attr = calloc(1, sizeof(parser_attr));
attr->keyword = eina_stringshare_add("tween");
attr->instring = EINA_TRUE;
attr->value.type = ATTR_VALUE_IMAGE;
pd->attrs = eina_inlist_append(pd->attrs, (Eina_Inlist *) attr);
}
char *parser_name_get(parser_data *pd EINA_UNUSED, const char *cur)

View File

@ -405,7 +405,13 @@ view_parts_list_get(view_data *vd)
}
void
view_parts_list_free(Eina_List *list)
view_string_list_free(Eina_List *list)
{
edje_edit_string_list_free(list);
}
Eina_List *
view_images_list_get(view_data *vd)
{
edje_edit_images_list_get(vd->layout);
}

View File

@ -4,6 +4,7 @@ typedef enum attr_value_type
ATTR_VALUE_FLOAT = 2,
ATTR_VALUE_CONSTANT = 4,
ATTR_VALUE_PART = 8,
ATTR_VALUE_IMAGE = 16
} attr_value_type;
struct attr_value_s

View File

@ -10,4 +10,5 @@ Eina_Stringshare *view_group_name_get(view_data *vd);
void *view_data_get(view_data *vd);
void view_scale_set(view_data *vd, double scale);
Eina_List *view_parts_list_get(view_data *vd);
void view_parts_list_free(Eina_List *list);
Eina_List *view_images_list_get(view_data *vd);
void view_string_list_free(Eina_List *list);