rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=10bee7160c9991d1197b3e61f46eab2836d77df6
commit 10bee7160c9991d1197b3e61f46eab2836d77df6 Author: Andrii Kroitor <[email protected]> Date: Fri May 27 10:18:59 2016 +0300 group_manager: add group_data api --- src/bin/project_manager/group_manager.c | 58 +++++++++++++++++++++++++++++++++ src/bin/project_manager/group_manager.h | 8 +++++ 2 files changed, 66 insertions(+) diff --git a/src/bin/project_manager/group_manager.c b/src/bin/project_manager/group_manager.c index 6174543..22eb97d 100644 --- a/src/bin/project_manager/group_manager.c +++ b/src/bin/project_manager/group_manager.c @@ -803,6 +803,64 @@ gm_program_del(Project *pro, Group *group, Eina_Stringshare *program_name) free(program); } +void +gm_group_data_add(Project *pro, Group *group, Eina_Stringshare *group_data_name) +{ + Resource *group_data; + + assert(pro != NULL); + assert(group_data_name != NULL); + assert(group != NULL); + + group_data = mem_calloc(1, sizeof(Program)); + group_data->name = eina_stringshare_add(group_data_name); + group->data_items = eina_list_sorted_insert(group->data_items, (Eina_Compare_Cb)resource_cmp, group_data); +} + +void +gm_group_data_del(Project *pro, Group *group, Eina_Stringshare *group_data_name) +{ + Eina_List *l; + Resource *group_data; + + assert(pro != NULL); + assert(group_data_name != NULL); + assert(group != NULL); + + group_data = pm_resource_get(group->data_items, group_data_name); + + assert(group_data != NULL); + + l = eina_list_data_find_list(group->data_items, group_data); + + assert(l != NULL); + + group->data_items = eina_list_remove_list(group->data_items, l); + eina_stringshare_del(group_data->name); + eina_list_free(group_data->used_in); + free(group_data); +} + +void +gm_group_data_rename(Project *pro, Group *group, Resource* group_data, const char *new_data_name) +{ + Eina_List *l; + + assert(pro != NULL); + assert(group != NULL); + assert(group_data != NULL); + assert(new_data_name != NULL); + + l = eina_list_data_find_list(group->data_items, group_data); + + assert(l != NULL); + + group->data_items = eina_list_remove_list(group->data_items, l); + eina_stringshare_del(group_data->name); + group_data->name = eina_stringshare_add(new_data_name); + group->data_items = eina_list_sorted_insert(group->data_items, (Eina_Compare_Cb)resource_cmp, group_data); +} + /** * ref http://docs.enlightenment.org/auto/edje/group__Edje__Object__Part.html */ diff --git a/src/bin/project_manager/group_manager.h b/src/bin/project_manager/group_manager.h index 7942b4b..66f19d4 100644 --- a/src/bin/project_manager/group_manager.h +++ b/src/bin/project_manager/group_manager.h @@ -68,6 +68,7 @@ struct _Group Eina_List *aliases; /**< list of pointers to aliases. NULL if group is an alias */ Eina_List *parts; /**< list of parts */ Eina_List *programs; /**< list of programs */ + Eina_List *data_items; /**< list of data */ Evas_Object *edit_object; /**< object needed to access group with edje_edit functions. Should be NULL if group is not open */ Part *current_part; /**< pointer to selected part */ @@ -130,6 +131,13 @@ gm_program_add(Project *pro, Group *group, Eina_Stringshare *program); void gm_program_del(Project *pro, Group *group, Eina_Stringshare *program); +void +gm_group_data_add(Project *pro, Group *group, Eina_Stringshare *group_data_name); +void +gm_group_data_del(Project *pro, Group *group, Eina_Stringshare *group_data_name); +void +gm_group_data_rename(Project *pro, Group *group, Resource* group_data, const char *new_data_name); + const char * gm_part_type_text_get(Edje_Part_Type part_type); #endif /* GROUP_MANAGER_H */ --
