forked from enlightenment/efl
edje: limited support of proxy for edje inspector and edje edit.
SVN revision: 57727
This commit is contained in:
parent
5c9f3ae378
commit
c4bc2c6435
|
@ -187,6 +187,8 @@ part_type_name_get(Edje_Part_Type t)
|
|||
return "TEXT";
|
||||
case EDJE_PART_TYPE_IMAGE:
|
||||
return "IMAGE";
|
||||
case EDJE_PART_TYPE_PROXY:
|
||||
return "PROXY";
|
||||
case EDJE_PART_TYPE_SWALLOW:
|
||||
return "SWALLOW";
|
||||
case EDJE_PART_TYPE_TEXTBLOCK:
|
||||
|
@ -510,6 +512,82 @@ state_details(Evas_Object *ed, const char *part, const char *state, double value
|
|||
if (machine) puts("IMAGE-END");
|
||||
else if (detail > 1) puts(INDENT4 "}");
|
||||
}
|
||||
else if (t == EDJE_PART_TYPE_PROXY)
|
||||
{
|
||||
int x2, y2;
|
||||
double dx2, dy2;
|
||||
Eina_Bool has_orgin, has_size;
|
||||
|
||||
if (machine) puts("PROXY-BEGIN");
|
||||
else puts(INDENT4 "proxy {");
|
||||
// TODO Support source
|
||||
// TODO support proxy.fill.smooth
|
||||
|
||||
dx = edje_edit_state_fill_origin_relative_x_get
|
||||
(ed, part, state, value);
|
||||
dy = edje_edit_state_fill_origin_relative_y_get
|
||||
(ed, part, state, value);
|
||||
x = edje_edit_state_fill_origin_offset_x_get
|
||||
(ed, part, state, value);
|
||||
y = edje_edit_state_fill_origin_offset_y_get
|
||||
(ed, part, state, value);
|
||||
|
||||
dx2 = edje_edit_state_fill_size_relative_x_get
|
||||
(ed, part, state, value);
|
||||
dy2 = edje_edit_state_fill_size_relative_y_get
|
||||
(ed, part, state, value);
|
||||
x2 = edje_edit_state_fill_size_offset_x_get
|
||||
(ed, part, state, value);
|
||||
y2 = edje_edit_state_fill_size_offset_y_get
|
||||
(ed, part, state, value);
|
||||
|
||||
has_orgin = (FDIFF(dx, 0.0) || FDIFF(dy, 0.0) || (x) || (y));
|
||||
has_size = (FDIFF(dx2, 1.0) || FDIFF(dy2, 1.0) || (x2) || (y2));
|
||||
|
||||
if ((has_orgin) || (has_size))
|
||||
{
|
||||
if (machine) puts("PROXY-FILL-BEGIN");
|
||||
else puts(INDENT5 "fill {");
|
||||
|
||||
if (has_orgin)
|
||||
{
|
||||
if (machine)
|
||||
printf("ORIGIN-RELATIVE-X: %g\n"
|
||||
"ORIGIN-RELATIVE-Y: %g\n"
|
||||
"ORIGIN-OFFSET-X: %d\n"
|
||||
"ORIGIN-OFFSET-Y: %d\n",
|
||||
dx, dy, x, y);
|
||||
else
|
||||
printf(INDENT6 "origin {\n"
|
||||
INDENT7 "relative: %g %g;\n"
|
||||
INDENT7 "offset: %d %d;\n"
|
||||
INDENT6 "}\n",
|
||||
dx, dy, x, y);
|
||||
}
|
||||
|
||||
if (has_size)
|
||||
{
|
||||
if (machine)
|
||||
printf("SIZE-RELATIVE-X: %g\n"
|
||||
"SIZE-RELATIVE-Y: %g\n"
|
||||
"SIZE-OFFSET-X: %d\n"
|
||||
"SIZE-OFFSET-Y: %d\n",
|
||||
dx2, dy2, x2, y2);
|
||||
else
|
||||
printf(INDENT6 "size {\n"
|
||||
INDENT7 "relative: %g %g;\n"
|
||||
INDENT7 "offset: %d %d;\n"
|
||||
INDENT6 "}\n",
|
||||
dx2, dy2, x2, y2);
|
||||
}
|
||||
|
||||
if (machine) puts("PROXY-FILL-END");
|
||||
else puts(INDENT5 "}");
|
||||
}
|
||||
|
||||
if (machine) puts("PROXY-END");
|
||||
else puts(INDENT4 "}");
|
||||
}
|
||||
else if ((t == EDJE_PART_TYPE_TEXTBLOCK) || (t == EDJE_PART_TYPE_TEXT))
|
||||
{
|
||||
if (machine) puts("TEXT-BEGIN");
|
||||
|
|
|
@ -2139,7 +2139,7 @@ _edje_edit_real_part_add(Evas_Object *obj, const char *name, Edje_Part_Type type
|
|||
|
||||
if (ep->type == EDJE_PART_TYPE_RECTANGLE)
|
||||
rp->object = evas_object_rectangle_add(ed->evas);
|
||||
else if (ep->type == EDJE_PART_TYPE_IMAGE)
|
||||
else if (ep->type == EDJE_PART_TYPE_IMAGE || ep->type == EDJE_PART_TYPE_PROXY)
|
||||
rp->object = evas_object_image_add(ed->evas);
|
||||
else if (ep->type == EDJE_PART_TYPE_TEXT)
|
||||
{
|
||||
|
@ -3163,6 +3163,28 @@ edje_edit_state_add(Evas_Object *obj, const char *part, const char *name, double
|
|||
img->image.fill.spread = 0;
|
||||
img->image.fill.type = EDJE_FILL_TYPE_SCALE;
|
||||
}
|
||||
else if (rp->part->type == EDJE_PART_TYPE_PROXY)
|
||||
{
|
||||
Edje_Part_Description_Proxy *pro;
|
||||
|
||||
pro = (Edje_Part_Description_Proxy*) pd;
|
||||
|
||||
memset(&pro->proxy, 0, sizeof (pro->proxy));
|
||||
|
||||
pro->proxy.id = -1;
|
||||
pro->proxy.fill.smooth = 1;
|
||||
pro->proxy.fill.pos_rel_x = 0.0;
|
||||
pro->proxy.fill.pos_abs_x = 0;
|
||||
pro->proxy.fill.rel_x = 1.0;
|
||||
pro->proxy.fill.abs_x = 0;
|
||||
pro->proxy.fill.pos_rel_y = 0.0;
|
||||
pro->proxy.fill.pos_abs_y = 0;
|
||||
pro->proxy.fill.rel_y = 1.0;
|
||||
pro->proxy.fill.abs_y = 0;
|
||||
pro->proxy.fill.angle = 0;
|
||||
pro->proxy.fill.spread = 0;
|
||||
pro->proxy.fill.type = EDJE_FILL_TYPE_SCALE;
|
||||
}
|
||||
else if (rp->part->type == EDJE_PART_TYPE_EXTERNAL)
|
||||
{
|
||||
Edje_Part_Description_External *external;
|
||||
|
@ -3286,6 +3308,15 @@ edje_edit_state_copy(Evas_Object *obj, const char *part, const char *from, doubl
|
|||
|
||||
switch (rp->part->type)
|
||||
{
|
||||
case EDJE_PART_TYPE_PROXY:
|
||||
{
|
||||
Edje_Part_Description_Proxy *pro_to = (Edje_Part_Description_Proxy*) pdto;
|
||||
Edje_Part_Description_Proxy *pro_from = (Edje_Part_Description_Proxy*) pdfrom;
|
||||
|
||||
pro_to->proxy = pro_from->proxy;
|
||||
|
||||
break;
|
||||
}
|
||||
case EDJE_PART_TYPE_IMAGE:
|
||||
{
|
||||
Edje_Part_Description_Image *img_to = (Edje_Part_Description_Image*) pdto;
|
||||
|
@ -3615,34 +3646,65 @@ FUNC_STATE_DOUBLE(aspect, max);
|
|||
EAPI double \
|
||||
edje_edit_state_fill_##Type##_relative_##Value##_get(Evas_Object *obj, const char *part, const char *state, double value) \
|
||||
{ \
|
||||
Edje_Part_Description_Image *img; \
|
||||
\
|
||||
eina_error_set(0); \
|
||||
\
|
||||
GET_PD_OR_RETURN(0); \
|
||||
\
|
||||
if (rp->part->type != EDJE_PART_TYPE_IMAGE) \
|
||||
return 0; \
|
||||
switch (rp->part->type) \
|
||||
{ \
|
||||
case EDJE_PART_TYPE_IMAGE: \
|
||||
{ \
|
||||
Edje_Part_Description_Image *img; \
|
||||
\
|
||||
img = (Edje_Part_Description_Image*) pd; \
|
||||
\
|
||||
return TO_DOUBLE(img->image.fill.Class##rel_##Value); \
|
||||
} \
|
||||
case EDJE_PART_TYPE_PROXY: \
|
||||
{ \
|
||||
Edje_Part_Description_Proxy *pro; \
|
||||
\
|
||||
pro = (Edje_Part_Description_Proxy*) pd; \
|
||||
\
|
||||
return TO_DOUBLE(pro->proxy.fill.Class##rel_##Value); \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
return 0; \
|
||||
} \
|
||||
EAPI void \
|
||||
edje_edit_state_fill_##Type##_relative_##Value##_set(Evas_Object *obj, const char *part, const char *state, double value, double v) \
|
||||
{ \
|
||||
Edje_Part_Description_Image *img; \
|
||||
\
|
||||
eina_error_set(0); \
|
||||
\
|
||||
GET_PD_OR_RETURN(); \
|
||||
\
|
||||
if (rp->part->type != EDJE_PART_TYPE_IMAGE) \
|
||||
return; \
|
||||
switch (rp->part->type) \
|
||||
{ \
|
||||
case EDJE_PART_TYPE_IMAGE: \
|
||||
{ \
|
||||
Edje_Part_Description_Image *img; \
|
||||
\
|
||||
img = (Edje_Part_Description_Image*) pd; \
|
||||
\
|
||||
img->image.fill.Class##rel_##Value = FROM_DOUBLE(v); \
|
||||
\
|
||||
break; \
|
||||
} \
|
||||
case EDJE_PART_TYPE_PROXY: \
|
||||
{ \
|
||||
Edje_Part_Description_Proxy *pro; \
|
||||
\
|
||||
pro = (Edje_Part_Description_Proxy*) pd; \
|
||||
\
|
||||
pro->proxy.fill.Class##rel_##Value = FROM_DOUBLE(v); \
|
||||
\
|
||||
break; \
|
||||
} \
|
||||
default: \
|
||||
return; \
|
||||
} \
|
||||
\
|
||||
edje_object_calc_force(obj); \
|
||||
}
|
||||
|
||||
|
@ -3650,34 +3712,62 @@ FUNC_STATE_DOUBLE(aspect, max);
|
|||
EAPI int \
|
||||
edje_edit_state_fill_##Type##_offset_##Value##_get(Evas_Object *obj, const char *part, const char *state, double value) \
|
||||
{ \
|
||||
Edje_Part_Description_Image *img; \
|
||||
\
|
||||
eina_error_set(0); \
|
||||
\
|
||||
GET_PD_OR_RETURN(0); \
|
||||
\
|
||||
if (rp->part->type != EDJE_PART_TYPE_IMAGE) \
|
||||
return 0; \
|
||||
switch (rp->part->type) \
|
||||
{ \
|
||||
case EDJE_PART_TYPE_IMAGE: \
|
||||
{ \
|
||||
Edje_Part_Description_Image *img; \
|
||||
\
|
||||
img = (Edje_Part_Description_Image*) pd; \
|
||||
\
|
||||
return img->image.fill.Class##abs_##Value; \
|
||||
} \
|
||||
case EDJE_PART_TYPE_PROXY: \
|
||||
{ \
|
||||
Edje_Part_Description_Proxy *pro; \
|
||||
\
|
||||
pro = (Edje_Part_Description_Proxy*) pd; \
|
||||
\
|
||||
return pro->proxy.fill.Class##abs_##Value; \
|
||||
} \
|
||||
} \
|
||||
return 0; \
|
||||
} \
|
||||
EAPI void \
|
||||
edje_edit_state_fill_##Type##_offset_##Value##_set(Evas_Object *obj, const char *part, const char *state, double value, double v) \
|
||||
{ \
|
||||
Edje_Part_Description_Image *img; \
|
||||
\
|
||||
eina_error_set(0); \
|
||||
\
|
||||
GET_PD_OR_RETURN(); \
|
||||
\
|
||||
if (rp->part->type != EDJE_PART_TYPE_IMAGE) \
|
||||
return; \
|
||||
switch (rp->part->type) \
|
||||
{ \
|
||||
case EDJE_PART_TYPE_IMAGE: \
|
||||
{ \
|
||||
Edje_Part_Description_Image *img; \
|
||||
\
|
||||
img = (Edje_Part_Description_Image*) pd; \
|
||||
\
|
||||
img->image.fill.Class##abs_##Value = FROM_DOUBLE(v); \
|
||||
return; \
|
||||
} \
|
||||
case EDJE_PART_TYPE_PROXY: \
|
||||
{ \
|
||||
Edje_Part_Description_Proxy *pro; \
|
||||
\
|
||||
pro = (Edje_Part_Description_Proxy*) pd; \
|
||||
\
|
||||
pro->proxy.fill.Class##abs_##Value = FROM_DOUBLE(v); \
|
||||
return; \
|
||||
} \
|
||||
default: \
|
||||
return; \
|
||||
} \
|
||||
\
|
||||
edje_object_calc_force(obj); \
|
||||
}
|
||||
|
||||
|
@ -6875,7 +6965,7 @@ _edje_generate_source_of_state(Evas_Object *obj, const char *part, const char *s
|
|||
//Fill
|
||||
|
||||
BUF_APPEND(I5"fill {\n");
|
||||
if (rp->part->type == EDJE_PART_TYPE_IMAGE && !img->image.fill.smooth)
|
||||
if (!img->image.fill.smooth)
|
||||
BUF_APPEND(I6"smooth: 0;\n");
|
||||
//TODO Support spread
|
||||
|
||||
|
@ -6904,6 +6994,45 @@ _edje_generate_source_of_state(Evas_Object *obj, const char *part, const char *s
|
|||
BUF_APPEND(I5"}\n");
|
||||
}
|
||||
|
||||
if (rp->part->type == EDJE_PART_TYPE_PROXY)
|
||||
{
|
||||
Edje_Part_Description_Proxy *pro;
|
||||
|
||||
pro = (Edje_Part_Description_Proxy *) pd;
|
||||
|
||||
//Fill
|
||||
|
||||
BUF_APPEND(I5"fill {\n");
|
||||
if (!pro->proxy.fill.smooth)
|
||||
BUF_APPEND(I6"smooth: 0;\n");
|
||||
//TODO Support spread
|
||||
//TODO Support source
|
||||
|
||||
if (pro->proxy.fill.pos_rel_x || pro->proxy.fill.pos_rel_y ||
|
||||
pro->proxy.fill.pos_abs_x || pro->proxy.fill.pos_abs_y)
|
||||
{
|
||||
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));
|
||||
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");
|
||||
}
|
||||
|
||||
if (TO_DOUBLE(pro->proxy.fill.rel_x) != 1.0 || TO_DOUBLE(pro->proxy.fill.rel_y) != 1.0 ||
|
||||
pro->proxy.fill.abs_x || pro->proxy.fill.abs_y)
|
||||
{
|
||||
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));
|
||||
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");
|
||||
}
|
||||
|
||||
BUF_APPEND(I5"}\n");
|
||||
}
|
||||
|
||||
//Text
|
||||
if (rp->part->type == EDJE_PART_TYPE_TEXT)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue