From 7f0efd45e8946fa7ac215bb4602ac3be8e31fe13 Mon Sep 17 00:00:00 2001 From: Vyacheslav Reutskiy Date: Tue, 11 Oct 2016 14:38:34 +0300 Subject: [PATCH] edje_edit: add API for generate group source code without 'collection' Change-Id: I1b48b753de6d0a913a58c700aabb529e0ef6d9b0 Signed-off-by: Vyacheslav Reutskiy --- src/lib/edje/Edje_Edit.h | 18 ++++++++++++++++++ src/lib/edje/edje_edit.c | 24 ++++++++++++++++++------ 2 files changed, 36 insertions(+), 6 deletions(-) diff --git a/src/lib/edje/Edje_Edit.h b/src/lib/edje/Edje_Edit.h index 07e096e..f5fc884 100644 --- a/src/lib/edje/Edje_Edit.h +++ b/src/lib/edje/Edje_Edit.h @@ -7839,6 +7839,24 @@ EAPI const Eina_List *edje_edit_script_error_list_get(Evas_Object *obj); EAPI const char *edje_edit_source_generate(Evas_Object *obj); /** + * Return source code of the current edje edit object. + * + * Remember to free the string with edje_edit_string_free() + * + * This function will return source code of the whole group, loaded previously. + * This function also will collect all possible resources that is required and + * mentioned in description blocks. For example: all images, fonts, styles and + * color_classes. + * + * @note A source code will be top block 'collection'. + * + * @param obj The object being edited + * + * @return Source code containing all resources required by the object. + */ + +EAPI const char * edje_edit_object_source_generate(Evas_Object *obj); +/** * Return source code of all collections. * * Remember to free the string with free() diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c index 0482012..5bed61f 100644 --- a/src/lib/edje/edje_edit.c +++ b/src/lib/edje/edje_edit.c @@ -12133,8 +12133,8 @@ error: return NULL; } -EAPI const char * -edje_edit_source_generate(Evas_Object *obj) +static const char * +_edje_edit_source_generate(Evas_Object *obj, Eina_Bool without_global_data) { Edje_Part_Collection_Directory_Entry *ce; Edje_Part *part; @@ -12262,7 +12262,7 @@ edje_edit_source_generate(Evas_Object *obj) buf = eina_strbuf_new(); /* If data items exist, print them */ - if (ed->file->data) + if (!without_global_data && ed->file->data) { Edje_String *es; size_t data_len = 0; @@ -12382,7 +12382,7 @@ edje_edit_source_generate(Evas_Object *obj) eina_list_free(fonts); } /* if color_classes were found, print them */ - if (color_classes) + if (!without_global_data && color_classes) { BUF_APPEND(I0 "color_classes {\n"); @@ -12395,7 +12395,7 @@ edje_edit_source_generate(Evas_Object *obj) /* print the main code of group collections */ - BUF_APPEND(I0 "collections {\n"); + if (!without_global_data) BUF_APPEND(I0 "collections {\n"); /* if sounds were found, print them */ if (sounds) { @@ -12440,7 +12440,7 @@ edje_edit_source_generate(Evas_Object *obj) BUF_APPEND(I1 "}\n"); } _edje_generate_source_of_group(ed, ce, buf); - BUF_APPEND(I0 "}"); + if (!without_global_data) BUF_APPEND(I0 "}"); if (!ret) { @@ -12455,6 +12455,18 @@ edje_edit_source_generate(Evas_Object *obj) return str; } +EAPI const char * +edje_edit_source_generate(Evas_Object *obj) +{ + return _edje_edit_source_generate(obj, EINA_FALSE); +} + +EAPI const char * +edje_edit_object_source_generate(Evas_Object *obj) +{ + return _edje_edit_source_generate(obj, EINA_TRUE); +} + #undef COLLECT_RESOURCE /* -- 2.7.4