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 */

-- 


Reply via email to