From 669615475e1786047847d1412eb2c9abff2ffd6e Mon Sep 17 00:00:00 2001 From: ChunEon Park Date: Sun, 16 Mar 2014 12:43:25 +0900 Subject: [PATCH] ctxpopup - support program candidates list --- src/bin/ctxpopup.c | 13 +++++++++++++ src/bin/edc_parser.c | 7 +++++++ src/bin/edj_viewer.c | 6 ++++++ src/include/ctxpopup.h | 3 ++- src/include/edj_viewer.h | 1 + 5 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/bin/ctxpopup.c b/src/bin/ctxpopup.c index a778f2e..7444899 100644 --- a/src/bin/ctxpopup.c +++ b/src/bin/ctxpopup.c @@ -193,6 +193,19 @@ ctxpopup_candidate_list_create(Evas_Object *parent, attr_value *attr, view_string_list_free(parts); break; } + case ATTR_VALUE_PROGRAM: + { + view_data *vd = edj_mgr_view_get(NULL); + if (!vd) goto err; + Eina_List *parts = view_programs_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; + } } evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_DEL, ctxpopup_del_cb, diff --git a/src/bin/edc_parser.c b/src/bin/edc_parser.c index 24dbe3e..2e7710c 100644 --- a/src/bin/edc_parser.c +++ b/src/bin/edc_parser.c @@ -225,6 +225,13 @@ parser_type_init(parser_data *pd) attr->instring = EINA_TRUE; attr->value.type = ATTR_VALUE_IMAGE; pd->attrs = eina_inlist_append(pd->attrs, (Eina_Inlist *) attr); + + //Type: Program + attr = calloc(1, sizeof(parser_attr)); + attr->keyword = eina_stringshare_add("after"); + attr->instring = EINA_TRUE; + attr->value.type = ATTR_VALUE_PROGRAM; + pd->attrs = eina_inlist_append(pd->attrs, (Eina_Inlist *) attr); } char *parser_name_get(parser_data *pd EINA_UNUSED, const char *cur) diff --git a/src/bin/edj_viewer.c b/src/bin/edj_viewer.c index 91a75d2..4993211 100644 --- a/src/bin/edj_viewer.c +++ b/src/bin/edj_viewer.c @@ -415,3 +415,9 @@ view_images_list_get(view_data *vd) { edje_edit_images_list_get(vd->layout); } + +Eina_List * +view_programs_list_get(view_data *vd) +{ + edje_edit_programs_list_get(vd->layout); +} diff --git a/src/include/ctxpopup.h b/src/include/ctxpopup.h index 3ef7cfc..68791be 100644 --- a/src/include/ctxpopup.h +++ b/src/include/ctxpopup.h @@ -4,7 +4,8 @@ typedef enum attr_value_type ATTR_VALUE_FLOAT = 2, ATTR_VALUE_CONSTANT = 4, ATTR_VALUE_PART = 8, - ATTR_VALUE_IMAGE = 16 + ATTR_VALUE_IMAGE = 16, + ATTR_VALUE_PROGRAM = 32 } attr_value_type; struct attr_value_s diff --git a/src/include/edj_viewer.h b/src/include/edj_viewer.h index a734372..704f01d 100644 --- a/src/include/edj_viewer.h +++ b/src/include/edj_viewer.h @@ -11,4 +11,5 @@ 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); Eina_List *view_images_list_get(view_data *vd); +Eina_List *view_programs_list_get(view_data *vd); void view_string_list_free(Eina_List *list);