From 35fca3f9dd0f341d90dc293fe02be8f939866fb6 Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Thu, 11 Sep 2008 11:15:39 +0000 Subject: [PATCH] Replace big serie of if, with a cleaner switch. SVN revision: 35943 --- legacy/edje/src/lib/edje_calc.c | 220 +++++++++++++++++--------------- 1 file changed, 118 insertions(+), 102 deletions(-) diff --git a/legacy/edje/src/lib/edje_calc.c b/legacy/edje/src/lib/edje_calc.c index 4e3ba520a6..8d7de69bcb 100644 --- a/legacy/edje/src/lib/edje_calc.c +++ b/legacy/edje/src/lib/edje_calc.c @@ -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;