Replace big serie of if, with a cleaner switch.

SVN revision: 35943
This commit is contained in:
Cedric BAIL 2008-09-11 11:15:39 +00:00
parent 060f30aa6e
commit 35fca3f9dd
1 changed files with 118 additions and 102 deletions

View File

@ -418,63 +418,69 @@ _edje_part_recalc_single(Edje *ed,
break;
}
}
if (apref == EDJE_ASPECT_PREFER_NONE) /* keep botth dimensions in check */
switch (apref)
{
/* adjust for min aspect (width / height) */
if ((amin > 0.0) && (aspect < amin))
{
new_h = (params->w / amin);
new_w = (params->h * amin);
}
/* adjust for max aspect (width / height) */
if ((amax > 0.0) && (aspect > amax))
{
new_h = (params->w / amax);
new_w = (params->h * amax);
}
if ((amax > 0.0) && (new_w < params->w))
{
new_w = params->w;
new_h = params->w / amax;
}
if ((amax > 0.0) && (new_h < params->h))
{
new_w = params->h * amax;
new_h = params->h;
}
} /* prefer vertical size as determiner */
else if (apref == EDJE_ASPECT_PREFER_VERTICAL) /* keep both dimensions in check */
{
/* adjust for max aspect (width / height) */
if ((amax > 0.0) && (aspect > amax))
new_w = (params->h * amax);
/* adjust for min aspect (width / height) */
if ((amin > 0.0) && (aspect < amin))
new_w = (params->h * amin);
} /* prefer horizontal size as determiner */
else if (apref == EDJE_ASPECT_PREFER_HORIZONTAL) /* keep both dimensions in check */
{
/* adjust for max aspect (width / height) */
if ((amax > 0.0) && (aspect > amax))
new_h = (params->w / amax);
/* adjust for min aspect (width / height) */
if ((amin > 0.0) && (aspect < amin))
new_h = (params->w / amin);
}
else if (apref == EDJE_ASPECT_PREFER_BOTH) /* keep both dimensions in check */
{
/* adjust for max aspect (width / height) */
if ((amax > 0.0) && (aspect > amax))
{
new_w = (params->h * amax);
new_h = (params->w / amax);
}
/* adjust for min aspect (width / height) */
if ((amin > 0.0) && (aspect < amin))
{
new_w = (params->h * amin);
new_h = (params->w / amin);
}
case EDJE_ASPECT_PREFER_NONE:
/* keep botth dimensions in check */
/* adjust for min aspect (width / height) */
if ((amin > 0.0) && (aspect < amin))
{
new_h = (params->w / amin);
new_w = (params->h * amin);
}
/* adjust for max aspect (width / height) */
if ((amax > 0.0) && (aspect > amax))
{
new_h = (params->w / amax);
new_w = (params->h * amax);
}
if ((amax > 0.0) && (new_w < params->w))
{
new_w = params->w;
new_h = params->w / amax;
}
if ((amax > 0.0) && (new_h < params->h))
{
new_w = params->h * amax;
new_h = params->h;
}
break;
/* prefer vertical size as determiner */
case EDJE_ASPECT_PREFER_VERTICAL:
/* keep both dimensions in check */
/* adjust for max aspect (width / height) */
if ((amax > 0.0) && (aspect > amax))
new_w = (params->h * amax);
/* adjust for min aspect (width / height) */
if ((amin > 0.0) && (aspect < amin))
new_w = (params->h * amin);
break;
/* prefer horizontal size as determiner */
case EDJE_ASPECT_PREFER_HORIZONTAL:
/* keep both dimensions in check */
/* adjust for max aspect (width / height) */
if ((amax > 0.0) && (aspect > amax))
new_h = (params->w / amax);
/* adjust for min aspect (width / height) */
if ((amin > 0.0) && (aspect < amin))
new_h = (params->w / amin);
break;
case EDJE_ASPECT_PREFER_BOTH:
/* keep both dimensions in check */
/* adjust for max aspect (width / height) */
if ((amax > 0.0) && (aspect > amax))
{
new_w = (params->h * amax);
new_h = (params->w / amax);
}
/* adjust for min aspect (width / height) */
if ((amin > 0.0) && (aspect < amin))
{
new_w = (params->h * amin);
new_h = (params->w / amin);
}
break;
}
if (!((amin > 0.0) && (amax > 0.0) && (apref == EDJE_ASPECT_PREFER_NONE)))
@ -1294,18 +1300,27 @@ _edje_image_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3, Edj
printf("EDJE: Error loading image collection \"%s\" from "
"file \"%s\". Missing EET Evas loader module?\n",
buf, ed->file->path);
if (evas_object_image_load_error_get(ep->object) == EVAS_LOAD_ERROR_GENERIC)
printf("Error type: EVAS_LOAD_ERROR_GENERIC\n");
else if (evas_object_image_load_error_get(ep->object) == EVAS_LOAD_ERROR_DOES_NOT_EXIST)
printf("Error type: EVAS_LOAD_ERROR_DOES_NOT_EXIST\n");
else if (evas_object_image_load_error_get(ep->object) == EVAS_LOAD_ERROR_PERMISSION_DENIED)
printf("Error type: EVAS_LOAD_ERROR_PERMISSION_DENIED\n");
else if (evas_object_image_load_error_get(ep->object) == EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED)
printf("Error type: EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED\n");
else if (evas_object_image_load_error_get(ep->object) == EVAS_LOAD_ERROR_CORRUPT_FILE)
printf("Error type: EVAS_LOAD_ERROR_CORRUPT_FILE\n");
else if (evas_object_image_load_error_get(ep->object) == EVAS_LOAD_ERROR_UNKNOWN_FORMAT)
printf("Error type: EVAS_LOAD_ERROR_UNKNOWN_FORMAT\n");
switch (evas_object_image_load_error_get(ep->object))
{
case EVAS_LOAD_ERROR_GENERIC:
printf("Error type: EVAS_LOAD_ERROR_GENERIC\n");
break;
case EVAS_LOAD_ERROR_DOES_NOT_EXIST:
printf("Error type: EVAS_LOAD_ERROR_DOES_NOT_EXIST\n");
break;
case EVAS_LOAD_ERROR_PERMISSION_DENIED:
printf("Error type: EVAS_LOAD_ERROR_PERMISSION_DENIED\n");
break;
case EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED:
printf("Error type: EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED\n");
break;
case EVAS_LOAD_ERROR_CORRUPT_FILE:
printf("Error type: EVAS_LOAD_ERROR_CORRUPT_FILE\n");
break;
case EVAS_LOAD_ERROR_UNKNOWN_FORMAT:
printf("Error type: EVAS_LOAD_ERROR_UNKNOWN_FORMAT\n");
break;
}
}
}
}
@ -1430,43 +1445,44 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags)
p3.color.b = INTP(p1.color.b, p2.color.b, pos);
p3.color.a = INTP(p1.color.a, p2.color.a, pos);
if ((part_type == EDJE_PART_TYPE_IMAGE) ||
(part_type == EDJE_PART_TYPE_GRADIENT))
switch (part_type)
{
p3.fill.x = INTP(p1.fill.x, p2.fill.x, pos);
p3.fill.y = INTP(p1.fill.y, p2.fill.y, pos);
p3.fill.w = INTP(p1.fill.w, p2.fill.w, pos);
p3.fill.h = INTP(p1.fill.h, p2.fill.h, pos);
if (part_type == EDJE_PART_TYPE_GRADIENT)
{
p3.fill.angle = INTP(p1.fill.angle, p2.fill.angle, pos);
p3.fill.spread = (beginning_pos) ? p1.fill.spread : p2.fill.spread;
p3.gradient = (beginning_pos) ? p1.gradient : p2.gradient;
}
else
{
p3.border.l = INTP(p1.border.l, p2.border.l, pos);
p3.border.r = INTP(p1.border.r, p2.border.r, pos);
p3.border.t = INTP(p1.border.t, p2.border.t, pos);
p3.border.b = INTP(p1.border.b, p2.border.b, pos);
}
}
else if ((part_type == EDJE_PART_TYPE_TEXT) ||
(part_type == EDJE_PART_TYPE_TEXTBLOCK))
{
p3.color2.r = INTP(p1.color2.r, p2.color2.r, pos);
p3.color2.g = INTP(p1.color2.g, p2.color2.g, pos);
p3.color2.b = INTP(p1.color2.b, p2.color2.b, pos);
p3.color2.a = INTP(p1.color2.a, p2.color2.a, pos);
case EDJE_PART_TYPE_IMAGE:
case EDJE_PART_TYPE_GRADIENT:
p3.fill.x = INTP(p1.fill.x, p2.fill.x, pos);
p3.fill.y = INTP(p1.fill.y, p2.fill.y, pos);
p3.fill.w = INTP(p1.fill.w, p2.fill.w, pos);
p3.fill.h = INTP(p1.fill.h, p2.fill.h, pos);
if (part_type == EDJE_PART_TYPE_GRADIENT)
{
p3.fill.angle = INTP(p1.fill.angle, p2.fill.angle, pos);
p3.fill.spread = (beginning_pos) ? p1.fill.spread : p2.fill.spread;
p3.gradient = (beginning_pos) ? p1.gradient : p2.gradient;
}
else
{
p3.border.l = INTP(p1.border.l, p2.border.l, pos);
p3.border.r = INTP(p1.border.r, p2.border.r, pos);
p3.border.t = INTP(p1.border.t, p2.border.t, pos);
p3.border.b = INTP(p1.border.b, p2.border.b, pos);
}
break;
case EDJE_PART_TYPE_TEXT:
case EDJE_PART_TYPE_TEXTBLOCK:
p3.color2.r = INTP(p1.color2.r, p2.color2.r, pos);
p3.color2.g = INTP(p1.color2.g, p2.color2.g, pos);
p3.color2.b = INTP(p1.color2.b, p2.color2.b, pos);
p3.color2.a = INTP(p1.color2.a, p2.color2.a, pos);
p3.color3.r = INTP(p1.color3.r, p2.color3.r, pos);
p3.color3.g = INTP(p1.color3.g, p2.color3.g, pos);
p3.color3.b = INTP(p1.color3.b, p2.color3.b, pos);
p3.color3.a = INTP(p1.color3.a, p2.color3.a, pos);
p3.color3.r = INTP(p1.color3.r, p2.color3.r, pos);
p3.color3.g = INTP(p1.color3.g, p2.color3.g, pos);
p3.color3.b = INTP(p1.color3.b, p2.color3.b, pos);
p3.color3.a = INTP(p1.color3.a, p2.color3.a, pos);
p3.text.align.x = INTP(p1.text.align.x, p2.text.align.x, pos);
p3.text.align.y = INTP(p1.text.align.y, p2.text.align.y, pos);
p3.text.elipsis = INTP(p1.text.elipsis, p2.text.elipsis, pos);
p3.text.align.x = INTP(p1.text.align.x, p2.text.align.x, pos);
p3.text.align.y = INTP(p1.text.align.y, p2.text.align.y, pos);
p3.text.elipsis = INTP(p1.text.elipsis, p2.text.elipsis, pos);
break;
}
pf = &p3;