void tree_populate(void) { Eina_List *parts, *pp; Eina_List *progs; etk_tree_freeze(ETK_TREE(UI_PartsTree)); etk_tree_clear(ETK_TREE(UI_PartsTree)); parts = pp = edje_edit_parts_list_get(edje_o); while(pp) { printf(" P: %s\n", (char*)pp->data); tree_part_add((char*)pp->data, NULL); pp = pp->next; } edje_edit_string_list_free(parts); progs = pp = edje_edit_programs_list_get(edje_o); while(pp) { tree_program_add((char*)pp->data); pp = pp->next; } edje_edit_string_list_free(progs); etk_tree_row_select(etk_tree_first_row_get (ETK_TREE(UI_PartsTree))); etk_tree_thaw(ETK_TREE(UI_PartsTree)); }
static Eina_Bool _parts_parse(Evas_Object *ed) { Eina_List *parts, *l; const char *name, *description; char *apiname; Edje_Part_Type type; Eina_Bool ret = EINA_TRUE; parts = edje_edit_parts_list_get(ed); EINA_LIST_FOREACH(parts, l, name) { if (!(apiname = _part_api_name_get(ed, name))) { DBG("filter out part '%s': not API.", name); continue; } type = edje_edit_part_type_get(ed, name); if ((type != EDJE_PART_TYPE_SWALLOW) && (type != EDJE_PART_TYPE_TEXT) && (type != EDJE_PART_TYPE_BOX) && (type != EDJE_PART_TYPE_TABLE)) { free(apiname); continue; } description = edje_edit_part_api_description_get(ed, name); if (!_part_write(apiname, name, description, type)) { ret = EINA_FALSE; edje_edit_string_free(description); free(apiname); break; } edje_edit_string_free(description); free(apiname); } edje_edit_string_list_free(parts); return ret; }