ctxpopup - support part candidates list.
This commit is contained in:
parent
a098df0ad7
commit
56cab4a95c
|
@ -141,7 +141,7 @@ ctxpopup_candidate_list_create(Evas_Object *parent, attr_value *attr,
|
|||
|
||||
//ctxpopup data
|
||||
ctxpopup_data *ctxdata = malloc(sizeof(ctxpopup_data));
|
||||
if (!ctxdata) return NULL;
|
||||
if (!ctxdata) goto err;
|
||||
ctxdata->selected_cb = ctxpopup_selected_cb;
|
||||
ctxdata->data = data;
|
||||
evas_object_data_set(ctxpopup, "ctxpopup_data", ctxdata);
|
||||
|
@ -167,6 +167,19 @@ ctxpopup_candidate_list_create(Evas_Object *parent, attr_value *attr,
|
|||
ctxpopup_it_cb, data);
|
||||
break;
|
||||
}
|
||||
case ATTR_VALUE_PART:
|
||||
{
|
||||
view_data *vd = edj_mgr_view_get(NULL);
|
||||
if (!vd) goto err;
|
||||
Eina_List *parts = view_parts_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_parts_list_free(parts);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_DEL, ctxpopup_del_cb,
|
||||
|
@ -174,6 +187,10 @@ ctxpopup_candidate_list_create(Evas_Object *parent, attr_value *attr,
|
|||
evas_object_smart_callback_add(ctxpopup, "dismissed", ctxpopup_dismiss_cb,
|
||||
data);
|
||||
return ctxpopup;
|
||||
|
||||
err:
|
||||
free(ctxdata);
|
||||
evas_object_del(ctxpopup);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -189,6 +189,24 @@ parser_type_init(parser_data *pd)
|
|||
attr->value.max = 1000;
|
||||
attr->value.type = ATTR_VALUE_INTEGER;
|
||||
pd->attrs = eina_inlist_append(pd->attrs, (Eina_Inlist *) attr);
|
||||
|
||||
attr = calloc(1, sizeof(parser_attr));
|
||||
attr->keyword = eina_stringshare_add("target");
|
||||
attr->instring = EINA_TRUE;
|
||||
attr->value.type = ATTR_VALUE_PART;
|
||||
pd->attrs = eina_inlist_append(pd->attrs, (Eina_Inlist *) attr);
|
||||
|
||||
attr = calloc(1, sizeof(parser_attr));
|
||||
attr->keyword = eina_stringshare_add("to");
|
||||
attr->instring = EINA_TRUE;
|
||||
attr->value.type = ATTR_VALUE_PART;
|
||||
pd->attrs = eina_inlist_append(pd->attrs, (Eina_Inlist *) attr);
|
||||
|
||||
attr = calloc(1, sizeof(parser_attr));
|
||||
attr->keyword = eina_stringshare_add("source");
|
||||
attr->instring = EINA_TRUE;
|
||||
attr->value.type = ATTR_VALUE_PART;
|
||||
pd->attrs = eina_inlist_append(pd->attrs, (Eina_Inlist *) attr);
|
||||
}
|
||||
|
||||
char *parser_name_get(parser_data *pd EINA_UNUSED, const char *cur)
|
||||
|
|
|
@ -397,3 +397,15 @@ view_scale_set(view_data *vd, double scale)
|
|||
evas_object_resize(vd->layout, 0, 0);
|
||||
evas_object_resize(vd->layout, w, h);
|
||||
}
|
||||
|
||||
Eina_List *
|
||||
view_parts_list_get(view_data *vd)
|
||||
{
|
||||
return edje_edit_parts_list_get(vd->layout);
|
||||
}
|
||||
|
||||
void
|
||||
view_parts_list_free(Eina_List *list)
|
||||
{
|
||||
edje_edit_string_list_free(list);
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ typedef enum attr_value_type
|
|||
ATTR_VALUE_INTEGER = 1,
|
||||
ATTR_VALUE_FLOAT = 2,
|
||||
ATTR_VALUE_CONSTANT = 4,
|
||||
ATTR_VALUE_PART = 8,
|
||||
} attr_value_type;
|
||||
|
||||
struct attr_value_s
|
||||
|
|
|
@ -9,3 +9,5 @@ void view_program_run(view_data *vd, const char *program);
|
|||
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);
|
||||
|
|
Loading…
Reference in New Issue