edje_cc: Allow to set float position for anchors

This commit is contained in:
Jeeyong Um 2017-04-25 18:29:26 +09:00
parent 7a712411ee
commit 56b8d1f908
3 changed files with 9 additions and 1 deletions

View File

@ -166,6 +166,7 @@ struct _Edje_Part_Collection_Parser
typedef enum typedef enum
{ {
EDJE_PART_ANCHOR_LINE_RELATIVE = -1,
EDJE_PART_ANCHOR_LINE_NONE, EDJE_PART_ANCHOR_LINE_NONE,
EDJE_PART_ANCHOR_LINE_TOP, EDJE_PART_ANCHOR_LINE_TOP,
EDJE_PART_ANCHOR_LINE_BOTTOM, EDJE_PART_ANCHOR_LINE_BOTTOM,

View File

@ -9568,6 +9568,7 @@ parse_anchor_line(Edje_Part_Anchor *anchor, Edje_Part_Anchor_Line undefined)
"RIGHT", EDJE_PART_ANCHOR_LINE_RIGHT, "RIGHT", EDJE_PART_ANCHOR_LINE_RIGHT,
"VERTICAL_CENTER", EDJE_PART_ANCHOR_LINE_VERTICAL_CENTER, "VERTICAL_CENTER", EDJE_PART_ANCHOR_LINE_VERTICAL_CENTER,
"HORIZONTAL_CENTER", EDJE_PART_ANCHOR_LINE_HORIZONTAL_CENTER, "HORIZONTAL_CENTER", EDJE_PART_ANCHOR_LINE_HORIZONTAL_CENTER,
"*", EDJE_PART_ANCHOR_LINE_RELATIVE,
NULL); NULL);
else if (strcmp(name, "GROUP") || param_had_quote(0)) else if (strcmp(name, "GROUP") || param_had_quote(0))
anchor->base.line = undefined; anchor->base.line = undefined;
@ -9667,6 +9668,12 @@ anchor_adjust_relative(const Edje_Part_Anchor_Line *lines, FLOAT_T *rel, FLOAT_T
if (!counterpart_is_set) if (!counterpart_is_set)
*relc = FROM_DOUBLE(0.5); *relc = FROM_DOUBLE(0.5);
} }
else if (line == EDJE_PART_ANCHOR_LINE_RELATIVE)
{
*rel = FROM_DOUBLE(parse_float(1));
if (!counterpart_is_set)
*relc = FROM_DOUBLE(parse_float(1));
}
else else
{ {
ERR("parse error %s:%i. Edje part is anchored to wrong position.", ERR("parse error %s:%i. Edje part is anchored to wrong position.",

View File

@ -1263,7 +1263,7 @@ _parse_enum(char *str, va_list va)
} }
v = va_arg(va, int); v = va_arg(va, int);
if (!strcmp(s, str)) if (!strcmp(s, str) || !strcmp(s, "*"))
{ {
va_end(va2); va_end(va2);
va_end(va); va_end(va);