summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKateryna Fesyna <k.fesyna@samsung.com>2014-11-14 07:01:52 +0100
committerCedric BAIL <cedric@osg.samsung.com>2014-11-14 07:03:25 +0100
commitcccd1b25d42c47d6adc36dcde542908b4460a5b6 (patch)
tree8dc2587a43a7bbce2c05557a1431f7fa8e426650
parent35ac38e880f2bdb180d260c9e35037883b97ec1c (diff)
downloadefl-cccd1b25d42c47d6adc36dcde542908b4460a5b6.tar.gz
edje: add formating for floating point numbers in EDC.
Summary: this commit contains calculation of format string for floating point numbers in order to print them with at least one symbol after point. (For example: 'relateve: 1.0 0.45;') @fix Reviewers: cedric, Hermet, raster, reutskiy.v.v Reviewed By: reutskiy.v.v Subscribers: cedric, reutskiy.v.v Differential Revision: https://phab.enlightenment.org/D1653 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
-rw-r--r--src/lib/edje/edje_edit.c103
1 files changed, 87 insertions, 16 deletions
diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c
index 987266393f..0ba19055dc 100644
--- a/src/lib/edje/edje_edit.c
+++ b/src/lib/edje/edje_edit.c
@@ -10046,6 +10046,35 @@ _edje_generate_source_of_program(Evas_Object *obj, const char *program, Eina_Str
return ret;
}
+static void
+_edje_source_with_double_values_append(const char *param_name, char val_num, double val1, double val2, Eina_Strbuf *buf, Eina_Bool *ret_value)
+{
+ Eina_Strbuf *string;
+ Eina_Bool ret = EINA_TRUE;
+
+ if ((val_num != 1) && (val_num != 2))
+ {
+ *ret_value = EINA_FALSE;
+ return;
+ }
+
+ string = eina_strbuf_new();
+ if (param_name)
+ eina_strbuf_append_printf(string, "%s:", param_name);
+ eina_strbuf_append_printf(string,
+ (val1 == (int)val1) ? " %.1f" : " %g",
+ val1);
+ if (val_num == 2)
+ eina_strbuf_append_printf(string,
+ (val2 == (int)val2) ? " %.1f" : " %g",
+ val2);
+ eina_strbuf_append(string, ";\n");
+ BUF_APPEND(eina_strbuf_string_get(string));
+
+ *ret_value = ret;
+ eina_strbuf_free(string);
+}
+
static Eina_Bool
_edje_generate_source_of_state(Evas_Object *obj, const char *part, const char *state, double value, Eina_Strbuf *buf)
{
@@ -10055,7 +10084,8 @@ _edje_generate_source_of_state(Evas_Object *obj, const char *part, const char *s
GET_PD_OR_RETURN(EINA_FALSE);
- BUF_APPENDF(I4"description { state: \"%s\" %g;\n", pd->state.name, pd->state.value);
+ BUF_APPENDF(I4"description { state: \"%s\"", pd->state.name);
+ _edje_source_with_double_values_append(NULL, 1, pd->state.value, 0, buf, &ret);
//TODO Support inherit
if (!pd->visible)
@@ -10084,7 +10114,10 @@ _edje_generate_source_of_state(Evas_Object *obj, const char *part, const char *s
}
if (pd->align.x != 0.5 || pd->align.y != 0.5)
- BUF_APPENDF(I5"align: %g %g;\n", TO_DOUBLE(pd->align.x), TO_DOUBLE(pd->align.y));
+ _edje_source_with_double_values_append(I5"align", 2,
+ TO_DOUBLE(pd->align.x),
+ TO_DOUBLE(pd->align.y),
+ buf, &ret);
//TODO Support fixed
@@ -10093,13 +10126,19 @@ _edje_generate_source_of_state(Evas_Object *obj, const char *part, const char *s
if (pd->max.w != -1 || pd->max.h != -1)
BUF_APPENDF(I5"max: %d %d;\n", pd->max.w, pd->max.h);
if ((pd->minmul.have) && (pd->minmul.w != 1 || pd->minmul.h != 1))
- BUF_APPENDF(I5"minmul: %g %g;\n", TO_DOUBLE(pd->minmul.w), TO_DOUBLE(pd->minmul.h));
+ _edje_source_with_double_values_append(I5"minmul", 2,
+ TO_DOUBLE(pd->minmul.w),
+ TO_DOUBLE(pd->minmul.h),
+ buf, &ret);
if (pd->step.x && pd->step.y)
BUF_APPENDF(I5"step: %d %d;\n", TO_INT(pd->step.x), TO_INT(pd->step.y));
if (pd->aspect.min || pd->aspect.max)
- BUF_APPENDF(I5"aspect: %g %g;\n", TO_DOUBLE(pd->aspect.min), TO_DOUBLE(pd->aspect.max));
+ _edje_source_with_double_values_append(I5"aspect", 2,
+ TO_DOUBLE(pd->aspect.min),
+ TO_DOUBLE(pd->aspect.max),
+ buf, &ret);
if (pd->aspect.prefer)
BUF_APPENDF(I5"aspect_preference: %s;\n", prefers[(int) pd->aspect.prefer]);
@@ -10134,7 +10173,10 @@ _edje_generate_source_of_state(Evas_Object *obj, const char *part, const char *s
{
BUF_APPEND(I5"rel1 {\n");
if (pd->rel1.relative_x || pd->rel1.relative_y)
- BUF_APPENDF(I6"relative: %g %g;\n", TO_DOUBLE(pd->rel1.relative_x), TO_DOUBLE(pd->rel1.relative_y));
+ _edje_source_with_double_values_append(I6"relative", 2,
+ TO_DOUBLE(pd->rel1.relative_x),
+ TO_DOUBLE(pd->rel1.relative_y),
+ buf, &ret);
if (pd->rel1.offset_x || pd->rel1.offset_y)
BUF_APPENDF(I6"offset: %d %d;\n", pd->rel1.offset_x, pd->rel1.offset_y);
if (pd->rel1.id_x != -1 && pd->rel1.id_x == pd->rel1.id_y)
@@ -10156,7 +10198,10 @@ _edje_generate_source_of_state(Evas_Object *obj, const char *part, const char *s
{
BUF_APPEND(I5"rel2 {\n");
if (TO_DOUBLE(pd->rel2.relative_x) != 1.0 || TO_DOUBLE(pd->rel2.relative_y) != 1.0)
- BUF_APPENDF(I6"relative: %g %g;\n", TO_DOUBLE(pd->rel2.relative_x), TO_DOUBLE(pd->rel2.relative_y));
+ _edje_source_with_double_values_append(I6"relative", 2,
+ TO_DOUBLE(pd->rel2.relative_x),
+ TO_DOUBLE(pd->rel2.relative_y),
+ buf, &ret);
if (pd->rel2.offset_x != -1 || pd->rel2.offset_y != -1)
BUF_APPENDF(I6"offset: %d %d;\n", pd->rel2.offset_x, pd->rel2.offset_y);
if (pd->rel2.id_x != -1 && pd->rel2.id_x == pd->rel2.id_y)
@@ -10216,11 +10261,17 @@ _edje_generate_source_of_state(Evas_Object *obj, const char *part, const char *s
if (pd->map.rot.id_center != -1)
BUF_APPENDF(I7"center: \"%s\";\n", _edje_part_name_find(ed, pd->map.rot.id_center));
if (TO_DOUBLE(pd->map.rot.x) != 0.0)
- BUF_APPENDF(I7"x: %g;\n", TO_DOUBLE(pd->map.rot.x));
+ _edje_source_with_double_values_append(I7"x", 1,
+ TO_DOUBLE(pd->map.rot.x),
+ 0.0, buf, &ret);
if (TO_DOUBLE(pd->map.rot.y) != 0.0)
- BUF_APPENDF(I7"y: %g;\n", TO_DOUBLE(pd->map.rot.y));
+ _edje_source_with_double_values_append(I7"y", 1,
+ TO_DOUBLE(pd->map.rot.y),
+ 0.0, buf, &ret);
if (TO_DOUBLE(pd->map.rot.z) != 0.0)
- BUF_APPENDF(I7"z: %g;\n", TO_DOUBLE(pd->map.rot.z));
+ _edje_source_with_double_values_append(I7"z", 1,
+ TO_DOUBLE(pd->map.rot.z),
+ 0.0, buf, &ret);
BUF_APPEND(I6"}\n");
}
@@ -10281,7 +10332,10 @@ _edje_generate_source_of_state(Evas_Object *obj, const char *part, const char *s
{
BUF_APPEND(I6"origin {\n");
if (img->image.fill.pos_rel_x || img->image.fill.pos_rel_y)
- BUF_APPENDF(I7"relative: %g %g;\n", TO_DOUBLE(img->image.fill.pos_rel_x), TO_DOUBLE(img->image.fill.pos_rel_y));
+ _edje_source_with_double_values_append(I7"relative", 2,
+ TO_DOUBLE(img->image.fill.pos_rel_x),
+ TO_DOUBLE(img->image.fill.pos_rel_y),
+ buf, &ret);
if (img->image.fill.pos_abs_x || img->image.fill.pos_abs_y)
BUF_APPENDF(I7"offset: %d %d;\n", img->image.fill.pos_abs_x, img->image.fill.pos_abs_y);
BUF_APPEND(I6"}\n");
@@ -10292,7 +10346,10 @@ _edje_generate_source_of_state(Evas_Object *obj, const char *part, const char *s
{
BUF_APPEND(I6"size {\n");
if (img->image.fill.rel_x != 1.0 || img->image.fill.rel_y != 1.0)
- BUF_APPENDF(I7"relative: %g %g;\n", TO_DOUBLE(img->image.fill.rel_x), TO_DOUBLE(img->image.fill.rel_y));
+ _edje_source_with_double_values_append(I7"relative", 2,
+ TO_DOUBLE(img->image.fill.rel_x),
+ TO_DOUBLE(img->image.fill.rel_y),
+ buf, &ret);
if (img->image.fill.abs_x || img->image.fill.abs_y)
BUF_APPENDF(I7"offset: %d %d;\n", img->image.fill.abs_x, img->image.fill.abs_y);
BUF_APPEND(I6"}\n");
@@ -10331,7 +10388,10 @@ _edje_generate_source_of_state(Evas_Object *obj, const char *part, const char *s
{
BUF_APPEND(I6"origin {\n");
if (pro->proxy.fill.pos_rel_x || pro->proxy.fill.pos_rel_y)
- BUF_APPENDF(I7"relative: %g %g;\n", TO_DOUBLE(pro->proxy.fill.pos_rel_x), TO_DOUBLE(pro->proxy.fill.pos_rel_y));
+ _edje_source_with_double_values_append(I7"relative", 2,
+ TO_DOUBLE(pro->proxy.fill.pos_rel_x),
+ TO_DOUBLE(pro->proxy.fill.pos_rel_y),
+ buf, &ret);
if (pro->proxy.fill.pos_abs_x || pro->proxy.fill.pos_abs_y)
BUF_APPENDF(I7"offset: %d %d;\n", pro->proxy.fill.pos_abs_x, pro->proxy.fill.pos_abs_y);
BUF_APPEND(I6"}\n");
@@ -10342,7 +10402,10 @@ _edje_generate_source_of_state(Evas_Object *obj, const char *part, const char *s
{
BUF_APPEND(I6"size {\n");
if (pro->proxy.fill.rel_x != 1.0 || pro->proxy.fill.rel_y != 1.0)
- BUF_APPENDF(I7"relative: %g %g;\n", TO_DOUBLE(pro->proxy.fill.rel_x), TO_DOUBLE(pro->proxy.fill.rel_y));
+ _edje_source_with_double_values_append(I7"relative", 2,
+ TO_DOUBLE(pro->proxy.fill.rel_x),
+ TO_DOUBLE(pro->proxy.fill.rel_y),
+ buf, &ret);
if (pro->proxy.fill.abs_x || pro->proxy.fill.abs_y)
BUF_APPENDF(I7"offset: %d %d;\n", pro->proxy.fill.abs_x, pro->proxy.fill.abs_y);
BUF_APPEND(I6"}\n");
@@ -10386,11 +10449,16 @@ _edje_generate_source_of_state(Evas_Object *obj, const char *part, const char *s
if (txt->text.max_x || txt->text.max_y)
BUF_APPENDF(I6"max: %d %d;\n", txt->text.max_x, txt->text.max_y);
if (TO_DOUBLE(txt->text.align.x) != 0.5 || TO_DOUBLE(txt->text.align.y) != 0.5)
- BUF_APPENDF(I6"align: %g %g;\n", TO_DOUBLE(txt->text.align.x), TO_DOUBLE(txt->text.align.y));
+ _edje_source_with_double_values_append(I6"align", 2,
+ TO_DOUBLE(txt->text.align.x),
+ TO_DOUBLE(txt->text.align.y),
+ buf, &ret);
//TODO Support source
//TODO Support text_source
if (txt->text.ellipsis)
- BUF_APPENDF(I6"ellipsis: %g;\n", txt->text.ellipsis);
+ _edje_source_with_double_values_append(I6"ellipsis", 1,
+ txt->text.ellipsis,
+ 0.0, buf, &ret);
BUF_APPEND(I5"}\n");
}
@@ -10576,7 +10644,10 @@ _edje_generate_source_of_part(Evas_Object *obj, Edje_Part *ep, Eina_Strbuf *buf)
item->padding.t, item->padding.b);
if (TO_DOUBLE(item->align.x) != 0.5 || TO_DOUBLE(item->align.y) != 0.5)
- BUF_APPENDF(I7"align: %g %g;\n", TO_DOUBLE(item->align.x), TO_DOUBLE(item->align.y));
+ _edje_source_with_double_values_append(I7"align", 2,
+ TO_DOUBLE(item->align.x),
+ TO_DOUBLE(item->align.y),
+ buf, &ret);
if (edje_edit_part_type_get(obj, part) == EDJE_PART_TYPE_TABLE)
BUF_APPENDF(I7"position: %d %d;\n", item->col, item->row);