Enlightenment CVS committal

Author  : tsauerbeck
Project : e17
Module  : libs/edje

Dir     : e17/libs/edje/src/bin


Modified Files:
        edje_cc_out.c 


Log Message:
cleaned up edje_cc's sanity checking for parts and programs. image parts need to have 
valid image attributes now.
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/bin/edje_cc_out.c,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -3 -r1.37 -r1.38
--- edje_cc_out.c       22 Oct 2004 13:57:48 -0000      1.37
+++ edje_cc_out.c       23 Oct 2004 17:33:27 -0000      1.38
@@ -91,6 +91,76 @@
    edd_edje_part_image_id = _edje_edd_edje_part_image_id;
 }
 
+static void
+check_image_part_desc (Edje_Part *ep, Edje_Part_Description *epd, Eet_File *ef)
+{
+   Evas_List *l;
+
+   if (epd->image.id == -1)
+     {
+       fprintf(stderr, "%s: Error. image attributes missing "
+             "for part \"%s\", description \"%s\" %f\n",
+             progname, ep->name, epd->state.name, epd->state.value);
+       ABORT_WRITE(ef, file_out);
+     }
+
+   for (l = epd->image.tween_list; l; l = l->next)
+     {
+       Edje_Part_Image_Id *iid = l->data;
+
+       if (iid->id == -1)
+         {
+            fprintf(stderr, "%s: Error. tween image id missing "
+                  "for part \"%s\", description \"%s\" %f\n",
+                  progname, ep->name, epd->state.name,
+                  epd->state.value);
+            ABORT_WRITE(ef, file_out);
+         }
+     }
+}
+
+static void
+check_part (Edje_Part *ep, Eet_File *ef)
+{
+   Edje_Part_Description *epd = ep->default_desc;
+   Evas_List *l;
+
+   if (!epd)
+     {
+       fprintf(stderr, "%s: Error. default description missing "
+             "for part \"%s\"\n", progname, ep->name);
+       ABORT_WRITE(ef, file_out);
+     }
+
+   if (ep->type == EDJE_PART_TYPE_IMAGE)
+     {
+       check_image_part_desc (ep, epd, ef);
+
+       for (l = ep->other_desc; l; l = l->next)
+         check_image_part_desc (ep, l->data, ef);
+     }
+}
+
+static void
+check_program (Edje_Program *ep, Eet_File *ef)
+{
+   switch (ep->action) {
+      case EDJE_ACTION_TYPE_STATE_SET:
+      case EDJE_ACTION_TYPE_ACTION_STOP:
+      case EDJE_ACTION_TYPE_DRAG_VAL_SET:
+      case EDJE_ACTION_TYPE_DRAG_VAL_STEP:
+      case EDJE_ACTION_TYPE_DRAG_VAL_PAGE:
+        if (!ep->targets) {
+             fprintf(stderr, "%s: Error. Target missing in program %s\n",
+                   progname, ep->name);
+             ABORT_WRITE(ef, file_out);
+        }
+        break;
+      default:
+        break;
+   }
+}
+
 void
 data_write(void)
 {
@@ -406,6 +476,8 @@
          }
      }
 #endif
+
+   /* sanity checks for parts and programs */
    for (l = edje_collections; l; l = l->next)
      {
        Edje_Part_Collection *pc;
@@ -414,19 +486,12 @@
        pc = l->data;
        for (ll = pc->parts; ll; ll = ll->next)
          {
-            Edje_Part *ep;
-            Edje_Part_Description *epd;
-            
-            ep = ll->data;
-            epd = ep->default_desc;
+            check_part (ll->data, ef);
 
-            if (!epd)
-              {
-                 fprintf(stderr, "%s: Error. description missing for part \"%s\"\n",
-                         progname, ep->name);
-                 ABORT_WRITE(ef, file_out);
-              }
 /*
+            Edje_Part *ep = ll->data;
+            Edje_Part_Description *epd = ep->default_desc;
+
             if (epd->text.font)
               {
                  Evas_List *lll;
@@ -477,25 +542,7 @@
          }
 
        for (ll = pc->programs; ll; ll = ll->next)
-         {
-            Edje_Program *ep = ll->data;
-
-            switch (ep->action) {
-                 case EDJE_ACTION_TYPE_STATE_SET:
-                 case EDJE_ACTION_TYPE_ACTION_STOP:
-                 case EDJE_ACTION_TYPE_DRAG_VAL_SET:
-                 case EDJE_ACTION_TYPE_DRAG_VAL_STEP:
-                 case EDJE_ACTION_TYPE_DRAG_VAL_PAGE:
-                    if (!ep->targets) {
-                      fprintf(stderr, "%s: Error. Target missing in program %s\n",
-                            progname, ep->name);
-                      ABORT_WRITE(ef, file_out);
-                    }
-                    break;
-                 default:
-                    break;
-            }
-         }
+            check_program (ll->data, ef);
      }
    for (l = edje_collections; l; l = l->next)
      {




-------------------------------------------------------
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
Use IT products in your business? Tell us what you think of them. Give us
Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to