summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVyacheslav Reutskiy <v.reutskiy@samsung.com>2016-10-11 14:38:34 +0300
committerVyacheslav Reutskiy <v.reutskiy@samsung.com>2016-10-12 15:03:20 +0300
commit49689708a6b3b1223c1b3b8e307eed5943aea84d (patch)
treedd8f62ec35442ab146e0f80cbac7cf75f6411505
parent0d9b168146f2b505d298a763d5bfaa6918074366 (diff)
downloadefl-49689708a6b3b1223c1b3b8e307eed5943aea84d.tar.gz
edje_edit: add API for generate group source code without 'collection'
-rw-r--r--src/lib/edje/Edje_Edit.h18
-rw-r--r--src/lib/edje/edje_edit.c24
2 files changed, 36 insertions, 6 deletions
diff --git a/src/lib/edje/Edje_Edit.h b/src/lib/edje/Edje_Edit.h
index b219bd5460..4727e0abd9 100644
--- a/src/lib/edje/Edje_Edit.h
+++ b/src/lib/edje/Edje_Edit.h
@@ -8131,6 +8131,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 5120bce60e..48bc7142b7 100644
--- a/src/lib/edje/edje_edit.c
+++ b/src/lib/edje/edje_edit.c
@@ -12459,8 +12459,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;
@@ -12588,7 +12588,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;
@@ -12706,7 +12706,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");
@@ -12719,7 +12719,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)
{
@@ -12764,7 +12764,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)
{
@@ -12779,6 +12779,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
static Eina_Bool