Replace big serie of if, with a cleaner switch.
authorcedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 11 Sep 2008 11:15:39 +0000 (11:15 +0000)
committercedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 11 Sep 2008 11:15:39 +0000 (11:15 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/edje@35943 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/edje_calc.c

index 4e3ba52..8d7de69 100644 (file)
@@ -418,63 +418,69 @@ _edje_part_recalc_single(Edje *ed,
                  break;
               }
          }
-       if (apref == 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;
-              }
-         } /* 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 */
+
+       switch (apref)
          {
-            /* 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))
-         {
-            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))
+       switch (part_type)
          {
-            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.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);
+          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.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;