* edje: start to split structure content.
authorcedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 16 Jul 2010 11:37:58 +0000 (11:37 +0000)
committercedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 16 Jul 2010 11:37:58 +0000 (11:37 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/edje@50279 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/bin/edje_cc_handlers.c
src/bin/edje_cc_out.c
src/lib/edje_calc.c
src/lib/edje_data.c
src/lib/edje_edit.c
src/lib/edje_embryo.c
src/lib/edje_load.c
src/lib/edje_private.h
src/lib/edje_program.c
src/lib/edje_util.c

index ac35f37..771e28a 100644 (file)
@@ -3244,27 +3244,27 @@ ob_collections_group_parts_part_description(void)
      ep->default_desc = ed;
    else
      ep->other_desc = eina_list_append(ep->other_desc, ed);
-   ed->visible = 1;
-   ed->align.x = FROM_DOUBLE(0.5);
-   ed->align.y = FROM_DOUBLE(0.5);
-   ed->min.w = 0;
-   ed->min.h = 0;
-   ed->fixed.w = 0;
-   ed->fixed.h = 0;
-   ed->max.w = -1;
-   ed->max.h = -1;
-   ed->rel1.relative_x = FROM_DOUBLE(0.0);
-   ed->rel1.relative_y = FROM_DOUBLE(0.0);
-   ed->rel1.offset_x = 0;
-   ed->rel1.offset_y = 0;
-   ed->rel1.id_x = -1;
-   ed->rel1.id_y = -1;
-   ed->rel2.relative_x = FROM_DOUBLE(1.0);
-   ed->rel2.relative_y = FROM_DOUBLE(1.0);
-   ed->rel2.offset_x = -1;
-   ed->rel2.offset_y = -1;
-   ed->rel2.id_x = -1;
-   ed->rel2.id_y = -1;
+   ed->common.visible = 1;
+   ed->common.align.x = FROM_DOUBLE(0.5);
+   ed->common.align.y = FROM_DOUBLE(0.5);
+   ed->common.min.w = 0;
+   ed->common.min.h = 0;
+   ed->common.fixed.w = 0;
+   ed->common.fixed.h = 0;
+   ed->common.max.w = -1;
+   ed->common.max.h = -1;
+   ed->common.rel1.relative_x = FROM_DOUBLE(0.0);
+   ed->common.rel1.relative_y = FROM_DOUBLE(0.0);
+   ed->common.rel1.offset_x = 0;
+   ed->common.rel1.offset_y = 0;
+   ed->common.rel1.id_x = -1;
+   ed->common.rel1.id_y = -1;
+   ed->common.rel2.relative_x = FROM_DOUBLE(1.0);
+   ed->common.rel2.relative_y = FROM_DOUBLE(1.0);
+   ed->common.rel2.offset_x = -1;
+   ed->common.rel2.offset_y = -1;
+   ed->common.rel2.id_x = -1;
+   ed->common.rel2.id_y = -1;
    ed->image.id = -1;
    ed->fill.smooth = 1;
    ed->fill.pos_rel_x = FROM_DOUBLE(0.0);
@@ -3306,19 +3306,19 @@ ob_collections_group_parts_part_description(void)
    ed->table.align.y = FROM_DOUBLE(0.5);
    ed->table.padding.x = 0;
    ed->table.padding.y = 0;
-   ed->map.id_persp = -1;
-   ed->map.id_light = -1;
-   ed->map.rot.id_center = -1;
-   ed->map.rot.x = FROM_DOUBLE(0.0);
-   ed->map.rot.y = FROM_DOUBLE(0.0);
-   ed->map.rot.z = FROM_DOUBLE(0.0);
-   ed->map.on = 0;
-   ed->map.smooth = 1;
-   ed->map.alpha = 1;
-   ed->map.backcull = 0;
-   ed->map.persp_on = 0;
-   ed->persp.zplane = 0;
-   ed->persp.focal = 1000;
+   ed->common.map.id_persp = -1;
+   ed->common.map.id_light = -1;
+   ed->common.map.rot.id_center = -1;
+   ed->common.map.rot.x = FROM_DOUBLE(0.0);
+   ed->common.map.rot.y = FROM_DOUBLE(0.0);
+   ed->common.map.rot.z = FROM_DOUBLE(0.0);
+   ed->common.map.on = 0;
+   ed->common.map.smooth = 1;
+   ed->common.map.alpha = 1;
+   ed->common.map.backcull = 0;
+   ed->common.map.persp_on = 0;
+   ed->common.persp.zplane = 0;
+   ed->common.persp.focal = 1000;
    ed->external_params = NULL;
 }
 
@@ -3363,7 +3363,7 @@ st_collections_group_parts_part_description_inherit(void)
 
    ed = eina_list_data_get(eina_list_last(ep->other_desc));
 
-   if (!ed->state.name)
+   if (!ed->common.state.name)
      {
         ERR("%s: Error. parse error %s:%i. "
            "inherit may only be used after state",
@@ -3385,16 +3385,16 @@ st_collections_group_parts_part_description_inherit(void)
        if (!strcmp(parent_name, "default"))
          {
             parent = ep->default_desc;
-            min_dst = ABS(ep->default_desc->state.value - parent_val);
+            min_dst = ABS(ep->default_desc->common.state.value - parent_val);
          }
 
        EINA_LIST_FOREACH(ep->other_desc, l, d)
          {
-            if (!strcmp (d->state.name, parent_name))
+            if (!strcmp (d->common.state.name, parent_name))
               {
                  double dst;
 
-                 dst = ABS(d->state.value - parent_val);
+                 dst = ABS(d->common.state.value - parent_val);
                  if (dst < min_dst)
                    {
                       parent = d;
@@ -3415,18 +3415,18 @@ st_collections_group_parts_part_description_inherit(void)
    free (parent_name);
 
    /* now do a full copy, only state info will be kept */
-   state_name = ed->state.name;
-   state_val = ed->state.value;
+   state_name = ed->common.state.name;
+   state_val = ed->common.state.value;
 
    *ed = *parent;
 
-   ed->state.name = state_name;
-   ed->state.value = state_val;
+   ed->common.state.name = state_name;
+   ed->common.state.value = state_val;
 
-   data_queue_part_slave_lookup(&parent->rel1.id_x, &ed->rel1.id_x);
-   data_queue_part_slave_lookup(&parent->rel1.id_y, &ed->rel1.id_y);
-   data_queue_part_slave_lookup(&parent->rel2.id_x, &ed->rel2.id_x);
-   data_queue_part_slave_lookup(&parent->rel2.id_y, &ed->rel2.id_y);
+   data_queue_part_slave_lookup(&parent->common.rel1.id_x, &ed->common.rel1.id_x);
+   data_queue_part_slave_lookup(&parent->common.rel1.id_y, &ed->common.rel1.id_y);
+   data_queue_part_slave_lookup(&parent->common.rel2.id_x, &ed->common.rel2.id_x);
+   data_queue_part_slave_lookup(&parent->common.rel2.id_y, &ed->common.rel2.id_y);
    data_queue_image_slave_lookup(&parent->image.id, &ed->image.id);
 
    /* make sure all the allocated memory is getting copied, not just
@@ -3507,8 +3507,8 @@ st_collections_group_parts_part_description_state(void)
        exit(-1);
      }
 
-   ed->state.name = s;
-   ed->state.value = parse_float_range(1, 0.0, 1.0);
+   ed->common.state.name = s;
+   ed->common.state.value = parse_float_range(1, 0.0, 1.0);
 }
 
 /**
@@ -3535,7 +3535,7 @@ st_collections_group_parts_part_description_visible(void)
    ep = eina_list_data_get(eina_list_last(pc->parts));
    ed = ep->default_desc;
    if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
-   ed->visible = parse_bool(0);
+   ed->common.visible = parse_bool(0);
 }
 
 /**
@@ -3563,8 +3563,8 @@ st_collections_group_parts_part_description_align(void)
    ep = eina_list_data_get(eina_list_last(pc->parts));
    ed = ep->default_desc;
    if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
-   ed->align.x = FROM_DOUBLE(parse_float_range(0, 0.0, 1.0));
-   ed->align.y = FROM_DOUBLE(parse_float_range(1, 0.0, 1.0));
+   ed->common.align.x = FROM_DOUBLE(parse_float_range(0, 0.0, 1.0));
+   ed->common.align.y = FROM_DOUBLE(parse_float_range(1, 0.0, 1.0));
 }
 
 /**
@@ -3594,8 +3594,8 @@ st_collections_group_parts_part_description_fixed(void)
    ep = eina_list_data_get(eina_list_last(pc->parts));
    ed = ep->default_desc;
    if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
-   ed->fixed.w = parse_float_range(0, 0, 1);
-   ed->fixed.h = parse_float_range(1, 0, 1);
+   ed->common.fixed.w = parse_float_range(0, 0, 1);
+   ed->common.fixed.h = parse_float_range(1, 0, 1);
 }
 
 /**
@@ -3621,8 +3621,8 @@ st_collections_group_parts_part_description_min(void)
    ep = eina_list_data_get(eina_list_last(pc->parts));
    ed = ep->default_desc;
    if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
-   ed->min.w = parse_float_range(0, 0, 0x7fffffff);
-   ed->min.h = parse_float_range(1, 0, 0x7fffffff);
+   ed->common.min.w = parse_float_range(0, 0, 0x7fffffff);
+   ed->common.min.h = parse_float_range(1, 0, 0x7fffffff);
 }
 
 /**
@@ -3648,8 +3648,8 @@ st_collections_group_parts_part_description_max(void)
    ep = eina_list_data_get(eina_list_last(pc->parts));
    ed = ep->default_desc;
    if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
-   ed->max.w = parse_float_range(0, 0, 0x7fffffff);
-   ed->max.h = parse_float_range(1, 0, 0x7fffffff);
+   ed->common.max.w = parse_float_range(0, 0, 0x7fffffff);
+   ed->common.max.h = parse_float_range(1, 0, 0x7fffffff);
 }
 
 /**
@@ -3677,8 +3677,8 @@ st_collections_group_parts_part_description_step(void)
    ep = eina_list_data_get(eina_list_last(pc->parts));
    ed = ep->default_desc;
    if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
-   ed->step.x = parse_float_range(0, 0, 0x7fffffff);
-   ed->step.y = parse_float_range(1, 0, 0x7fffffff);
+   ed->common.step.x = parse_float_range(0, 0, 0x7fffffff);
+   ed->common.step.y = parse_float_range(1, 0, 0x7fffffff);
 }
 
 /**
@@ -3708,8 +3708,8 @@ st_collections_group_parts_part_description_aspect(void)
    ep = eina_list_data_get(eina_list_last(pc->parts));
    ed = ep->default_desc;
    if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
-   ed->aspect.min = FROM_DOUBLE(parse_float_range(0, 0.0, 999999999.0));
-   ed->aspect.max = FROM_DOUBLE(parse_float_range(1, 0.0, 999999999.0));
+   ed->common.aspect.min = FROM_DOUBLE(parse_float_range(0, 0.0, 999999999.0));
+   ed->common.aspect.max = FROM_DOUBLE(parse_float_range(1, 0.0, 999999999.0));
 }
 
 /**
@@ -3736,12 +3736,12 @@ st_collections_group_parts_part_description_aspect_preference(void)
    ep = eina_list_data_get(eina_list_last(pc->parts));
    ed = ep->default_desc;
    if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
-   ed->aspect.prefer =  parse_enum(0,
-                                  "NONE", EDJE_ASPECT_PREFER_NONE,
-                                  "VERTICAL", EDJE_ASPECT_PREFER_VERTICAL,
-                                  "HORIZONTAL", EDJE_ASPECT_PREFER_HORIZONTAL,
-                                  "BOTH", EDJE_ASPECT_PREFER_BOTH,
-                                  NULL);
+   ed->common.aspect.prefer =  parse_enum(0,
+                                         "NONE", EDJE_ASPECT_PREFER_NONE,
+                                         "VERTICAL", EDJE_ASPECT_PREFER_VERTICAL,
+                                         "HORIZONTAL", EDJE_ASPECT_PREFER_HORIZONTAL,
+                                         "BOTH", EDJE_ASPECT_PREFER_BOTH,
+                                         NULL);
 }
 
 /**
@@ -3906,8 +3906,8 @@ st_collections_group_parts_part_description_rel1_relative(void)
    ep = eina_list_data_get(eina_list_last(pc->parts));
    ed = ep->default_desc;
    if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
-   ed->rel1.relative_x = FROM_DOUBLE(parse_float(0));
-   ed->rel1.relative_y = FROM_DOUBLE(parse_float(1));
+   ed->common.rel1.relative_x = FROM_DOUBLE(parse_float(0));
+   ed->common.rel1.relative_y = FROM_DOUBLE(parse_float(1));
 }
 
 /**
@@ -3933,8 +3933,8 @@ st_collections_group_parts_part_description_rel1_offset(void)
    ep = eina_list_data_get(eina_list_last(pc->parts));
    ed = ep->default_desc;
    if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
-   ed->rel1.offset_x = parse_int(0);
-   ed->rel1.offset_y = parse_int(1);
+   ed->common.rel1.offset_x = parse_int(0);
+   ed->common.rel1.offset_y = parse_int(1);
 }
 
 /**
@@ -3965,8 +3965,8 @@ st_collections_group_parts_part_description_rel1_to(void)
        char *name;
 
        name = parse_str(0);
-       data_queue_part_lookup(pc, name, &(ed->rel1.id_x));
-       data_queue_part_lookup(pc, name, &(ed->rel1.id_y));
+       data_queue_part_lookup(pc, name, &(ed->common.rel1.id_x));
+       data_queue_part_lookup(pc, name, &(ed->common.rel1.id_y));
        free(name);
      }
 }
@@ -3999,7 +3999,7 @@ st_collections_group_parts_part_description_rel1_to_x(void)
        char *name;
 
        name = parse_str(0);
-       data_queue_part_lookup(pc, name, &(ed->rel1.id_x));
+       data_queue_part_lookup(pc, name, &(ed->common.rel1.id_x));
        free(name);
      }
 }
@@ -4033,7 +4033,7 @@ st_collections_group_parts_part_description_rel1_to_y(void)
        char *name;
 
        name = parse_str(0);
-       data_queue_part_lookup(pc, name, &(ed->rel1.id_y));
+       data_queue_part_lookup(pc, name, &(ed->common.rel1.id_y));
        free(name);
      }
 }
@@ -4051,8 +4051,8 @@ st_collections_group_parts_part_description_rel2_relative(void)
    ep = eina_list_data_get(eina_list_last(pc->parts));
    ed = ep->default_desc;
    if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
-   ed->rel2.relative_x = FROM_DOUBLE(parse_float(0));
-   ed->rel2.relative_y = FROM_DOUBLE(parse_float(1));
+   ed->common.rel2.relative_x = FROM_DOUBLE(parse_float(0));
+   ed->common.rel2.relative_y = FROM_DOUBLE(parse_float(1));
 }
 
 static void
@@ -4068,8 +4068,8 @@ st_collections_group_parts_part_description_rel2_offset(void)
    ep = eina_list_data_get(eina_list_last(pc->parts));
    ed = ep->default_desc;
    if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
-   ed->rel2.offset_x = parse_int(0);
-   ed->rel2.offset_y = parse_int(1);
+   ed->common.rel2.offset_x = parse_int(0);
+   ed->common.rel2.offset_y = parse_int(1);
 }
 
 static void
@@ -4089,8 +4089,8 @@ st_collections_group_parts_part_description_rel2_to(void)
        char *name;
 
        name = parse_str(0);
-       data_queue_part_lookup(pc, name, &(ed->rel2.id_x));
-       data_queue_part_lookup(pc, name, &(ed->rel2.id_y));
+       data_queue_part_lookup(pc, name, &(ed->common.rel2.id_x));
+       data_queue_part_lookup(pc, name, &(ed->common.rel2.id_y));
        free(name);
      }
 }
@@ -4112,7 +4112,7 @@ st_collections_group_parts_part_description_rel2_to_x(void)
        char *name;
 
        name = parse_str(0);
-       data_queue_part_lookup(pc, name, &(ed->rel2.id_x));
+       data_queue_part_lookup(pc, name, &(ed->common.rel2.id_x));
        free(name);
      }
 }
@@ -4134,7 +4134,7 @@ st_collections_group_parts_part_description_rel2_to_y(void)
        char *name;
 
        name = parse_str(0);
-       data_queue_part_lookup(pc, name, &(ed->rel2.id_y));
+       data_queue_part_lookup(pc, name, &(ed->common.rel2.id_y));
        free(name);
      }
 }
@@ -5664,10 +5664,10 @@ st_collections_group_parts_part_description_map_perspective(void)
        char *name;
 
        name = parse_str(0);
-       data_queue_part_lookup(pc, name, &(ed->map.id_persp));
+       data_queue_part_lookup(pc, name, &(ed->common.map.id_persp));
        free(name);
      }
-   ed->map.persp_on = 1;
+   ed->common.map.persp_on = 1;
 }
 
 /**
@@ -5706,7 +5706,7 @@ st_collections_group_parts_part_description_map_light(void)
        char *name;
 
        name = parse_str(0);
-       data_queue_part_lookup(pc, name, &(ed->map.id_light));
+       data_queue_part_lookup(pc, name, &(ed->common.map.id_light));
        free(name);
      }
 }
@@ -5735,7 +5735,7 @@ st_collections_group_parts_part_description_map_on(void)
    
    ed = ep->default_desc;
    if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
-   ed->map.on = parse_bool(0);
+   ed->common.map.on = parse_bool(0);
 }
 
 /**
@@ -5765,7 +5765,7 @@ st_collections_group_parts_part_description_map_smooth(void)
    
    ed = ep->default_desc;
    if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
-   ed->map.smooth = parse_bool(0);
+   ed->common.map.smooth = parse_bool(0);
 }
 
 /**
@@ -5792,7 +5792,7 @@ st_collections_group_parts_part_description_map_alpha(void)
    
    ed = ep->default_desc;
    if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
-   ed->map.alpha = parse_bool(0);
+   ed->common.map.alpha = parse_bool(0);
 }
 
 /**
@@ -5821,7 +5821,7 @@ st_collections_group_parts_part_description_map_backface_cull(void)
    
    ed = ep->default_desc;
    if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
-   ed->map.backcull = parse_bool(0);
+   ed->common.map.backcull = parse_bool(0);
 }
 
 /**
@@ -5851,7 +5851,7 @@ st_collections_group_parts_part_description_map_perspective_on(void)
    
    ed = ep->default_desc;
    if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
-   ed->map.persp_on = parse_bool(0);
+   ed->common.map.persp_on = parse_bool(0);
 }
 /**
     @page edcref
@@ -5902,7 +5902,7 @@ st_collections_group_parts_part_description_map_rotation_center(void)
        char *name;
 
        name = parse_str(0);
-       data_queue_part_lookup(pc, name, &(ed->map.rot.id_center));
+       data_queue_part_lookup(pc, name, &(ed->common.map.rot.id_center));
        free(name);
      }
 }
@@ -5932,7 +5932,7 @@ st_collections_group_parts_part_description_map_rotation_x(void)
    
    ed = ep->default_desc;
    if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
-   ed->map.rot.x = FROM_DOUBLE(parse_float(0));
+   ed->common.map.rot.x = FROM_DOUBLE(parse_float(0));
 }
 
 /**
@@ -5960,7 +5960,7 @@ st_collections_group_parts_part_description_map_rotation_y(void)
    
    ed = ep->default_desc;
    if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
-   ed->map.rot.y = FROM_DOUBLE(parse_float(0));
+   ed->common.map.rot.y = FROM_DOUBLE(parse_float(0));
 }
 
 /**
@@ -5988,7 +5988,7 @@ st_collections_group_parts_part_description_map_rotation_z(void)
    
    ed = ep->default_desc;
    if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
-   ed->map.rot.z = FROM_DOUBLE(parse_float(0));
+   ed->common.map.rot.z = FROM_DOUBLE(parse_float(0));
 }
 
 /**
@@ -6032,7 +6032,7 @@ st_collections_group_parts_part_description_perspective_zplane(void)
    
    ed = ep->default_desc;
    if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
-   ed->persp.zplane = parse_int(0);
+   ed->common.persp.zplane = parse_int(0);
 }
 
 
@@ -6061,7 +6061,7 @@ st_collections_group_parts_part_description_perspective_focal(void)
    
    ed = ep->default_desc;
    if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
-   ed->persp.focal = parse_int_range(0, 1, 0x7fffffff);
+   ed->common.persp.focal = parse_int_range(0, 1, 0x7fffffff);
 }
 
 
index cb91c0b..dcd90ac 100644 (file)
@@ -170,14 +170,14 @@ check_image_part_desc (Edje_Part_Collection *pc, Edje_Part *ep,
    if (epd->image.id == -1)
      error_and_abort(ef, "Collection %i: image attributes missing for "
                     "part \"%s\", description \"%s\" %f\n",
-                    pc->id, ep->name, epd->state.name, epd->state.value);
+                    pc->id, ep->name, epd->common.state.name, epd->common.state.value);
 
    EINA_LIST_FOREACH(epd->image.tween_list, l, iid)
      {
        if (iid->id == -1)
          error_and_abort(ef, "Collection %i: tween image id missing for "
                          "part \"%s\", description \"%s\" %f\n",
-                         pc->id, ep->name, epd->state.name, epd->state.value);
+                         pc->id, ep->name, epd->common.state.name, epd->common.state.value);
     }
 }
 
index 1a4aaba..f4fdd07 100644 (file)
@@ -82,15 +82,15 @@ _edje_part_description_find(Edje *ed __UNUSED__, Edje_Real_Part *rp, const char
    if (!strcmp(name, "default"))
      {
        ret = ep->default_desc;
-       min_dst = ABS(ep->default_desc->state.value - val);
+       min_dst = ABS(ep->default_desc->common.state.value - val);
      }
    EINA_LIST_FOREACH(ep->other_desc, l, d)
      {
-       if (!strcmp(d->state.name, name))
+       if (!strcmp(d->common.state.name, name))
          {
             double dst;
 
-            dst = ABS(d->state.value - val);
+            dst = ABS(d->common.state.value - val);
             if (dst < min_dst)
               {
                  ret = d;
@@ -148,14 +148,14 @@ _edje_part_description_apply(Edje *ed, Edje_Real_Part *ep, const char *d1, doubl
    ep->param1.rel1_to_x = ep->param1.rel1_to_y = NULL;
    ep->param1.rel2_to_x = ep->param1.rel2_to_y = NULL;
 
-   if (ep->param1.description->rel1.id_x >= 0)
-     ep->param1.rel1_to_x = ed->table_parts[ep->param1.description->rel1.id_x % ed->table_parts_size];
-   if (ep->param1.description->rel1.id_y >= 0)
-     ep->param1.rel1_to_y = ed->table_parts[ep->param1.description->rel1.id_y % ed->table_parts_size];
-   if (ep->param1.description->rel2.id_x >= 0)
-     ep->param1.rel2_to_x = ed->table_parts[ep->param1.description->rel2.id_x % ed->table_parts_size];
-   if (ep->param1.description->rel2.id_y >= 0)
-     ep->param1.rel2_to_y = ed->table_parts[ep->param1.description->rel2.id_y % ed->table_parts_size];
+   if (ep->param1.description->common.rel1.id_x >= 0)
+     ep->param1.rel1_to_x = ed->table_parts[ep->param1.description->common.rel1.id_x % ed->table_parts_size];
+   if (ep->param1.description->common.rel1.id_y >= 0)
+     ep->param1.rel1_to_y = ed->table_parts[ep->param1.description->common.rel1.id_y % ed->table_parts_size];
+   if (ep->param1.description->common.rel2.id_x >= 0)
+     ep->param1.rel2_to_x = ed->table_parts[ep->param1.description->common.rel2.id_x % ed->table_parts_size];
+   if (ep->param1.description->common.rel2.id_y >= 0)
+     ep->param1.rel2_to_y = ed->table_parts[ep->param1.description->common.rel2.id_y % ed->table_parts_size];
 
    if (ep->part->type == EDJE_PART_TYPE_EXTERNAL)
      {
@@ -173,14 +173,14 @@ _edje_part_description_apply(Edje *ed, Edje_Real_Part *ep, const char *d1, doubl
 
        if (ep->param2->description)
          {
-            if (ep->param2->description->rel1.id_x >= 0)
-              ep->param2->rel1_to_x = ed->table_parts[ep->param2->description->rel1.id_x % ed->table_parts_size];
-            if (ep->param2->description->rel1.id_y >= 0)
-              ep->param2->rel1_to_y = ed->table_parts[ep->param2->description->rel1.id_y % ed->table_parts_size];
-            if (ep->param2->description->rel2.id_x >= 0)
-              ep->param2->rel2_to_x = ed->table_parts[ep->param2->description->rel2.id_x % ed->table_parts_size];
-            if (ep->param2->description->rel2.id_y >= 0)
-              ep->param2->rel2_to_y = ed->table_parts[ep->param2->description->rel2.id_y % ed->table_parts_size];
+            if (ep->param2->description->common.rel1.id_x >= 0)
+              ep->param2->rel1_to_x = ed->table_parts[ep->param2->description->common.rel1.id_x % ed->table_parts_size];
+            if (ep->param2->description->common.rel1.id_y >= 0)
+              ep->param2->rel1_to_y = ed->table_parts[ep->param2->description->common.rel1.id_y % ed->table_parts_size];
+            if (ep->param2->description->common.rel2.id_x >= 0)
+              ep->param2->rel2_to_x = ed->table_parts[ep->param2->description->common.rel2.id_x % ed->table_parts_size];
+            if (ep->param2->description->common.rel2.id_y >= 0)
+              ep->param2->rel2_to_y = ed->table_parts[ep->param2->description->common.rel2.id_y % ed->table_parts_size];
 
             if (ep->part->type == EDJE_PART_TYPE_EXTERNAL)
               ep->param2->external_params = _edje_external_params_parse(ep->swallowed_object, ep->param2->description->external_params);
@@ -344,7 +344,7 @@ _edje_dragable_pos_set(Edje *ed, Edje_Real_Part *ep, FLOAT_T x, FLOAT_T y)
 static void
 _edje_part_recalc_single_rel(Edje *ed,
                             Edje_Real_Part *ep __UNUSED__,
-                            Edje_Part_Description *desc,
+                            Edje_Part_Description_Common *desc,
                             Edje_Real_Part *rel1_to_x,
                             Edje_Real_Part *rel1_to_y,
                             Edje_Real_Part *rel2_to_x,
@@ -404,7 +404,7 @@ _edje_part_recalc_single_rel(Edje *ed,
 
 static void
 _edje_part_recalc_single_aspect(Edje_Real_Part *ep,
-                               Edje_Part_Description *desc,
+                               Edje_Part_Description_Common *desc,
                                Edje_Calc_Params *params,
                                int *minw, int *minh,
                                int *maxw, int *maxh)
@@ -602,7 +602,7 @@ _edje_part_recalc_single_aspect(Edje_Real_Part *ep,
 }
 
 static void
-_edje_part_recalc_single_step(Edje_Part_Description *desc,
+_edje_part_recalc_single_step(Edje_Part_Description_Common *desc,
                              Edje_Calc_Params *params,
                              int flags)
 {
@@ -930,7 +930,7 @@ _edje_part_recalc_single_text(FLOAT_T sc,
 }
 
 static void
-_edje_part_recalc_single_min(Edje_Part_Description *desc,
+_edje_part_recalc_single_min(Edje_Part_Description_Common *desc,
                             Edje_Calc_Params *params,
                             int minw, int minh,
                             int flags)
@@ -960,7 +960,7 @@ _edje_part_recalc_single_min(Edje_Part_Description *desc,
 }
 
 static void
-_edje_part_recalc_single_max(Edje_Part_Description *desc,
+_edje_part_recalc_single_max(Edje_Part_Description_Common *desc,
                             Edje_Calc_Params *params,
                             int maxw, int maxh,
                             int flags)
@@ -1139,7 +1139,7 @@ _edje_part_recalc_single_fill(Edje_Real_Part *ep,
 static void
 _edje_part_recalc_single_min_max(FLOAT_T sc,
                                 Edje_Real_Part *ep,
-                                Edje_Part_Description *desc,
+                                Edje_Part_Description_Common *desc,
                                 int *minw, int *minh,
                                 int *maxw, int *maxh,
                                 int flags __UNUSED__)
@@ -1245,17 +1245,17 @@ _edje_part_recalc_single(Edje *ed,
 
    sc = ed->scale;
    if (sc == 0.0) sc = _edje_scale;
-   _edje_part_recalc_single_min_max(sc, ep, desc, &minw, &minh, &maxw, &maxh, flags);
+   _edje_part_recalc_single_min_max(sc, ep, &desc->common, &minw, &minh, &maxw, &maxh, flags);
 
    /* relative coords of top left & bottom right */
-   _edje_part_recalc_single_rel(ed, ep, desc, rel1_to_x, rel1_to_y, rel2_to_x, rel2_to_y, params, flags);
+   _edje_part_recalc_single_rel(ed, ep, &desc->common, rel1_to_x, rel1_to_y, rel2_to_x, rel2_to_y, params, flags);
 
    /* aspect */
    if (((flags | ep->calculated) & FLAG_XY) == FLAG_XY)
-     _edje_part_recalc_single_aspect(ep, desc, params, &minw, &minh, &maxw, &maxh);
+     _edje_part_recalc_single_aspect(ep, &desc->common, params, &minw, &minh, &maxw, &maxh);
 
    /* size step */
-   _edje_part_recalc_single_step(desc, params, flags);
+   _edje_part_recalc_single_step(&desc->common, params, flags);
 
    /* if we have text that wants to make the min size the text size... */
    if (ep->part->type == EDJE_PART_TYPE_TEXTBLOCK)
@@ -1270,10 +1270,10 @@ _edje_part_recalc_single(Edje *ed,
    params->req.h = params->h;
 
    /* adjust for min size */
-   _edje_part_recalc_single_min(desc, params, minw, minh, flags);
+   _edje_part_recalc_single_min(&desc->common, params, minw, minh, flags);
 
    /* adjust for max size */
-   _edje_part_recalc_single_max(desc, params, maxw, maxh, flags);
+   _edje_part_recalc_single_max(&desc->common, params, maxw, maxh, flags);
 
    /* take care of dragable part */
    if (ep->drag)
@@ -1303,7 +1303,7 @@ _edje_part_recalc_single(Edje *ed,
      }
 
    /* visible */
-   params->visible = desc->visible;
+   params->visible = desc->common.visible;
 
    switch (ep->part->type)
      {
@@ -1562,8 +1562,8 @@ _edje_image_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3, Edj
             ERR("¨Part \"%s\" has description, "
                 "\"%s\" %3.3f with a missing image id!!!",
                 ep->part->name,
-                ep->param1.description->state.name,
-                ep->param1.description->state.value);
+                ep->param1.description->common.state.name,
+                ep->param1.description->common.state.value);
          }
        else
          {
@@ -2017,7 +2017,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags)
              mo = ep->swallowed_object;
          }
         else mo = ep->object;
-        if (chosen_desc->map.on)
+        if (chosen_desc->common.map.on)
           {
              Evas_Map *map;
              Evas_Coord cx, cy, cz;
@@ -2051,12 +2051,12 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags)
 
              // if another center is specified - find it and caculate it
              if ((desc1) &&
-                 (desc1->map.rot.id_center >= 0) &&
-                 (desc1->map.rot.id_center != ep->part->id))
+                 (desc1->common.map.rot.id_center >= 0) &&
+                 (desc1->common.map.rot.id_center != ep->part->id))
                {
                   Evas_Coord cx1, cy1, cz1, cx2, cy2, cz2;
                   Edje_Real_Part *ep2 =
-                    ed->table_parts[desc1->map.rot.id_center %
+                    ed->table_parts[desc1->common.map.rot.id_center %
                                     ed->table_parts_size];
                   // get center for desc1
                   if (ep2)
@@ -2068,10 +2068,10 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags)
                     }
                   // if we have a desc2 and are on a partiual position to it
                   if ((pos != ZERO) && (desc2) &&
-                      (desc2->map.rot.id_center >= 0) &&
-                      (desc2->map.rot.id_center != ep->part->id))
+                      (desc2->common.map.rot.id_center >= 0) &&
+                      (desc2->common.map.rot.id_center != ep->part->id))
                     {
-                       ep2 = ed->table_parts[desc2->map.rot.id_center %
+                       ep2 = ed->table_parts[desc2->common.map.rot.id_center %
                                              ed->table_parts_size];
                        // get 2nd center & merge with pos with center 1
                        if (ep2)
@@ -2093,32 +2093,32 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags)
              // rotation - interpolate wit pos, if appropriate
              if ((pos != ZERO) && (desc2))
                {
-                  rx = TO_DOUBLE(ADD(desc1->map.rot.x,
-                                     MUL(pos, SUB(desc2->map.rot.x,
-                                                  desc1->map.rot.x))));
-                  ry = TO_DOUBLE(ADD(desc1->map.rot.y,
-                                    MUL(pos, SUB(desc2->map.rot.y,
-                                                  desc1->map.rot.y))));
-                  rz = TO_DOUBLE(ADD(desc1->map.rot.z,
-                                    MUL(pos, SUB(desc2->map.rot.z,
-                                                  desc1->map.rot.z))));
+                  rx = TO_DOUBLE(ADD(desc1->common.map.rot.x,
+                                     MUL(pos, SUB(desc2->common.map.rot.x,
+                                                  desc1->common.map.rot.x))));
+                  ry = TO_DOUBLE(ADD(desc1->common.map.rot.y,
+                                    MUL(pos, SUB(desc2->common.map.rot.y,
+                                                  desc1->common.map.rot.y))));
+                  rz = TO_DOUBLE(ADD(desc1->common.map.rot.z,
+                                    MUL(pos, SUB(desc2->common.map.rot.z,
+                                                  desc1->common.map.rot.z))));
                }
              else
                {
                   // no 2 descriptions - just use rot
-                  rx = TO_DOUBLE(desc1->map.rot.x);
-                  ry = TO_DOUBLE(desc1->map.rot.y);
-                  rz = TO_DOUBLE(desc1->map.rot.z);
+                  rx = TO_DOUBLE(desc1->common.map.rot.x);
+                  ry = TO_DOUBLE(desc1->common.map.rot.y);
+                  rz = TO_DOUBLE(desc1->common.map.rot.z);
                }
              evas_map_util_3d_rotate(map, rx, ry, rz, cx, cy, cz);
 
              // calculate light color & position etc. if there is one
              if (((desc1) &&
-                  (desc1->map.id_light >= 0) &&
-                  (desc1->map.id_light != ep->part->id)) ||
+                  (desc1->common.map.id_light >= 0) &&
+                  (desc1->common.map.id_light != ep->part->id)) ||
                  ((desc2) &&
-                  (desc2->map.id_light >= 0) &&
-                  (desc2->map.id_light != ep->part->id)))
+                  (desc2->common.map.id_light >= 0) &&
+                  (desc2->common.map.id_light != ep->part->id)))
                {
                   Evas_Coord lx, ly, lz;
                   int lr, lg, lb, lar, lag, lab;
@@ -2130,11 +2130,11 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags)
                   do1 = do2 = 0;
 
                   if ((desc1) &&
-                      (desc1->map.id_light >= 0) &&
-                      (desc1->map.id_light != ep->part->id))
+                      (desc1->common.map.id_light >= 0) &&
+                      (desc1->common.map.id_light != ep->part->id))
                     {
                        Edje_Real_Part *ep2 =
-                         ed->table_parts[desc1->map.id_light %
+                         ed->table_parts[desc1->common.map.id_light %
                                          ed->table_parts_size];
                        // get light part
                        if (ep2)
@@ -2156,9 +2156,9 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags)
                             // if light is transitioning - interpolate it
                             if ((ep2pos != ZERO) && (ep2desc2))
                               {
-                                 lz1 = ep2desc1->persp.zplane + 
-                                   TO_INT(SCALE(ep2pos, ep2desc2->persp.zplane -
-                                                ep2desc1->persp.zplane));
+                                 lz1 = ep2desc1->common.persp.zplane +
+                                   TO_INT(SCALE(ep2pos, ep2desc2->common.persp.zplane -
+                                                ep2desc1->common.persp.zplane));
                                  lr1 = ep2desc1->color.r +
                                    TO_INT(SCALE(ep2pos, ep2desc2->color.r -
                                                 ep2desc1->color.r));
@@ -2180,7 +2180,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags)
                               }
                             else
                               {
-                                 lz1 = ep2desc1->persp.zplane;
+                                 lz1 = ep2desc1->common.persp.zplane;
                                  lr1 = ep2desc1->color.r;
                                  lg1 = ep2desc1->color.g;
                                  lb1 = ep2desc1->color.b;
@@ -2191,11 +2191,11 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags)
                          }
                     }
                   if ((desc2) &&
-                      (desc2->map.id_light >= 0) &&
-                      (desc2->map.id_light != ep->part->id))
+                      (desc2->common.map.id_light >= 0) &&
+                      (desc2->common.map.id_light != ep->part->id))
                     {
                        Edje_Real_Part *ep2 =
-                         ed->table_parts[desc2->map.id_light %
+                         ed->table_parts[desc2->common.map.id_light %
                                          ed->table_parts_size];
                        // get light part
                        if (ep2)
@@ -2217,9 +2217,9 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags)
                             // if light is transitioning - interpolate it
                             if ((ep2pos != ZERO) && (ep2desc2))
                               {
-                                 lz2 = ep2desc1->persp.zplane + 
-                                   TO_INT(SCALE(ep2pos, ep2desc2->persp.zplane -
-                                                ep2desc1->persp.zplane));
+                                 lz2 = ep2desc1->common.persp.zplane +
+                                   TO_INT(SCALE(ep2pos, ep2desc2->common.persp.zplane -
+                                                ep2desc1->common.persp.zplane));
                                  lr2 = ep2desc1->color.r +
                                    TO_INT(SCALE(ep2pos, ep2desc2->color.r -
                                                 ep2desc1->color.r));
@@ -2241,7 +2241,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags)
                               }
                             else
                               {
-                                 lz2 = ep2desc1->persp.zplane;
+                                 lz2 = ep2desc1->common.persp.zplane;
                                  lr2 = ep2desc1->color.r;
                                  lg2 = ep2desc1->color.g;
                                  lb2 = ep2desc1->color.b;
@@ -2282,7 +2282,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags)
                }
 
              // calculate perspective point
-             if (chosen_desc->map.persp_on)
+             if (chosen_desc->common.map.persp_on)
                {
                   Evas_Coord px, py, zplane, foc;
                   Evas_Coord px1, py1, zplane1, foc1;
@@ -2298,10 +2298,10 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags)
                   foc = 1000;
 
                   if ((desc1) &&
-                      (desc1->map.id_persp >= 0) &&
-                      (desc1->map.id_persp != ep->part->id))
+                      (desc1->common.map.id_persp >= 0) &&
+                      (desc1->common.map.id_persp != ep->part->id))
                     {
-                       Edje_Real_Part *ep2 = ed->table_parts[desc1->map.id_persp %
+                       Edje_Real_Part *ep2 = ed->table_parts[desc1->common.map.id_persp %
                                                              ed->table_parts_size];
                        if (ep2)
                          {
@@ -2320,26 +2320,26 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags)
                             py1 = ed->y + ep2->y + (ep2->h / 2);
                             if ((ep2pos != ZERO) && (ep2desc2))
                               {
-                                 zplane1 = ep2desc1->persp.zplane + 
-                                   TO_INT(SCALE(ep2pos, ep2desc2->persp.zplane -
-                                                ep2desc1->persp.zplane));
-                                 foc1 = ep2desc1->persp.focal + 
-                                   TO_INT(SCALE(ep2pos, ep2desc2->persp.focal -
-                                                ep2desc1->persp.focal));
+                                 zplane1 = ep2desc1->common.persp.zplane +
+                                   TO_INT(SCALE(ep2pos, ep2desc2->common.persp.zplane -
+                                                ep2desc1->common.persp.zplane));
+                                 foc1 = ep2desc1->common.persp.focal +
+                                   TO_INT(SCALE(ep2pos, ep2desc2->common.persp.focal -
+                                                ep2desc1->common.persp.focal));
                               }
                             else
                               {
-                                 zplane1 = ep2desc1->persp.zplane;
-                                 foc1 = ep2desc1->persp.focal;
+                                 zplane1 = ep2desc1->common.persp.zplane;
+                                 foc1 = ep2desc1->common.persp.focal;
                               }
                          }
                     }
 
                   if ((desc2) &&
-                      (desc2->map.id_persp >= 0) &&
-                      (desc2->map.id_persp != ep->part->id))
+                      (desc2->common.map.id_persp >= 0) &&
+                      (desc2->common.map.id_persp != ep->part->id))
                     {
-                       Edje_Real_Part *ep2 = ed->table_parts[desc2->map.id_persp %
+                       Edje_Real_Part *ep2 = ed->table_parts[desc2->common.map.id_persp %
                                                              ed->table_parts_size];
                        if (ep2)
                          {
@@ -2358,17 +2358,17 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags)
                             py2 = ed->y + ep2->y + (ep2->h / 2);
                             if ((ep2pos != ZERO) && (ep2desc2))
                               {
-                                 zplane2 = ep2desc1->persp.zplane + 
-                                   TO_INT(SCALE(ep2pos, ep2desc2->persp.zplane -
-                                                ep2desc1->persp.zplane));
-                                 foc2 = ep2desc1->persp.focal + 
-                                   TO_INT(SCALE(ep2pos, ep2desc2->persp.focal -
-                                                ep2desc1->persp.focal));
+                                 zplane2 = ep2desc1->common.persp.zplane +
+                                   TO_INT(SCALE(ep2pos, ep2desc2->common.persp.zplane -
+                                                ep2desc1->common.persp.zplane));
+                                 foc2 = ep2desc1->common.persp.focal +
+                                   TO_INT(SCALE(ep2pos, ep2desc2->common.persp.focal -
+                                                ep2desc1->common.persp.focal));
                               }
                             else
                               {
-                                 zplane2 = ep2desc1->persp.zplane;
-                                 foc2 = ep2desc1->persp.focal;
+                                 zplane2 = ep2desc1->common.persp.zplane;
+                                 foc2 = ep2desc1->common.persp.focal;
                               }
                          }
                     }
@@ -2412,7 +2412,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags)
                }
 
              // handle backface culling (object is facing away from view
-             if (chosen_desc->map.backcull)
+             if (chosen_desc->common.map.backcull)
                {
                   if (pf->visible)
                     {
@@ -2423,10 +2423,10 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags)
                }
 
              // handle smooth
-             if (chosen_desc->map.smooth) evas_map_smooth_set(map, 1);
+             if (chosen_desc->common.map.smooth) evas_map_smooth_set(map, 1);
              else evas_map_smooth_set(map, 0);
              // handle alpha
-             if (chosen_desc->map.alpha) evas_map_alpha_set(map, 1);
+             if (chosen_desc->common.map.alpha) evas_map_alpha_set(map, 1);
              else evas_map_alpha_set(map, 0);
 
              evas_object_map_set(mo, map);
index 4ed93bf..b3089ff 100644 (file)
@@ -247,34 +247,34 @@ _edje_edd_init(void)
    EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_Part_Description);
    _edje_edd_edje_part_description =
      eet_data_descriptor_file_new(&eddc);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "state.name", state.name, EET_T_STRING);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "state.value", state.value, EET_T_DOUBLE);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "visible", visible, EET_T_CHAR);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "align.x", align.x, EDJE_T_FLOAT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "align.y", align.y, EDJE_T_FLOAT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fixed.w", fixed.w, EET_T_UCHAR);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fixed.h", fixed.h, EET_T_UCHAR);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "min.w", min.w, EET_T_INT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "min.h", min.h, EET_T_INT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "max.w", max.w, EET_T_INT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "max.h", max.h, EET_T_INT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "step.x", step.x, EET_T_INT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "step.y", step.y, EET_T_INT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "aspect.min", aspect.min, EDJE_T_FLOAT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "aspect.max", aspect.max, EDJE_T_FLOAT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "aspect.prefer", aspect.prefer, EET_T_CHAR);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.relative_x", rel1.relative_x, EDJE_T_FLOAT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.relative_y", rel1.relative_y, EDJE_T_FLOAT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.offset_x", rel1.offset_x, EET_T_INT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.offset_y", rel1.offset_y, EET_T_INT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.id_x", rel1.id_x, EET_T_INT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.id_y", rel1.id_y, EET_T_INT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.relative_x", rel2.relative_x, EDJE_T_FLOAT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.relative_y", rel2.relative_y, EDJE_T_FLOAT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.offset_x", rel2.offset_x, EET_T_INT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.offset_y", rel2.offset_y, EET_T_INT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.id_x", rel2.id_x, EET_T_INT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.id_y", rel2.id_y, EET_T_INT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "state.name", common.state.name, EET_T_STRING);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "state.value", common.state.value, EET_T_DOUBLE);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "visible", common.visible, EET_T_CHAR);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "align.x", common.align.x, EDJE_T_FLOAT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "align.y", common.align.y, EDJE_T_FLOAT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fixed.w", common.fixed.w, EET_T_UCHAR);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fixed.h", common.fixed.h, EET_T_UCHAR);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "min.w", common.min.w, EET_T_INT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "min.h", common.min.h, EET_T_INT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "max.w", common.max.w, EET_T_INT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "max.h", common.max.h, EET_T_INT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "step.x", common.step.x, EET_T_INT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "step.y", common.step.y, EET_T_INT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "aspect.min", common.aspect.min, EDJE_T_FLOAT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "aspect.max", common.aspect.max, EDJE_T_FLOAT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "aspect.prefer", common.aspect.prefer, EET_T_CHAR);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.relative_x", common.rel1.relative_x, EDJE_T_FLOAT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.relative_y", common.rel1.relative_y, EDJE_T_FLOAT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.offset_x", common.rel1.offset_x, EET_T_INT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.offset_y", common.rel1.offset_y, EET_T_INT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.id_x", common.rel1.id_x, EET_T_INT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.id_y", common.rel1.id_y, EET_T_INT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.relative_x", common.rel2.relative_x, EDJE_T_FLOAT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.relative_y", common.rel2.relative_y, EDJE_T_FLOAT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.offset_x", common.rel2.offset_x, EET_T_INT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.offset_y", common.rel2.offset_y, EET_T_INT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.id_x", common.rel2.id_x, EET_T_INT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.id_y", common.rel2.id_y, EET_T_INT);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "image.id", image.id, EET_T_INT);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "image.set", image.set, EET_T_UCHAR);
    EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part_description, Edje_Part_Description, "image.tween_list", image.tween_list, _edje_edd_edje_part_image_id);
@@ -340,19 +340,19 @@ _edje_edd_init(void)
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "table.align.y", table.align.y, EDJE_T_FLOAT);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "table.padding.x", table.padding.x, EET_T_INT);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "table.padding.y", table.padding.y, EET_T_INT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.id_persp", map.id_persp, EET_T_INT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.id_light", map.id_light, EET_T_INT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.rot.id_center", map.rot.id_center, EET_T_INT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.rot.x", map.rot.x, EDJE_T_FLOAT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.rot.y", map.rot.y, EDJE_T_FLOAT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.rot.z", map.rot.z, EDJE_T_FLOAT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.on", map.on, EET_T_UCHAR);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.smooth", map.smooth, EET_T_UCHAR);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.alpha", map.alpha, EET_T_UCHAR);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.persp_on", map.persp_on, EET_T_UCHAR);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.backcull", map.backcull, EET_T_UCHAR);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "persp.zplane", persp.zplane, EET_T_INT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "persp.focal", persp.focal, EET_T_INT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.id_persp", common.map.id_persp, EET_T_INT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.id_light", common.map.id_light, EET_T_INT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.rot.id_center", common.map.rot.id_center, EET_T_INT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.rot.x", common.map.rot.x, EDJE_T_FLOAT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.rot.y", common.map.rot.y, EDJE_T_FLOAT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.rot.z", common.map.rot.z, EDJE_T_FLOAT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.on", common.map.on, EET_T_UCHAR);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.smooth", common.map.smooth, EET_T_UCHAR);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.alpha", common.map.alpha, EET_T_UCHAR);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.persp_on", common.map.persp_on, EET_T_UCHAR);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.backcull", common.map.backcull, EET_T_UCHAR);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "persp.zplane", common.persp.zplane, EET_T_INT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "persp.focal", common.persp.focal, EET_T_INT);
    EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part_description, Edje_Part_Description, "external_params", external_params, _edje_edd_edje_external_param);
 
    EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_Pack_Element);
index d0e2629..3b9dd7e 100644 (file)
@@ -483,6 +483,7 @@ _edje_part_id_set(Edje *ed, Edje_Real_Part *rp, int new_id)
    EINA_LIST_FOREACH(ed->collection->parts, l, p)
      {
        Edje_Part_Description *d;
+       Edje_Part_Description_Common *c;
 
        //printf("   search id: %d in %s\n", old_id, p->name);
        if (p->clip_to_id == old_id) p->clip_to_id = new_id;
@@ -490,21 +491,24 @@ _edje_part_id_set(Edje *ed, Edje_Real_Part *rp, int new_id)
 
        /* ...in default description */
        d = p->default_desc;
+       c = &d->common;
        //printf("      search in %s (%s)\n", p->name, d->state.name);
-       if (d->rel1.id_x == old_id) d->rel1.id_x = new_id;
-       if (d->rel1.id_y == old_id) d->rel1.id_y = new_id;
-       if (d->rel2.id_x == old_id) d->rel2.id_x = new_id;
-       if (d->rel2.id_y == old_id) d->rel2.id_y = new_id;
+       if (c->rel1.id_x == old_id) c->rel1.id_x = new_id;
+       if (c->rel1.id_y == old_id) c->rel1.id_y = new_id;
+       if (c->rel2.id_x == old_id) c->rel2.id_x = new_id;
+       if (c->rel2.id_y == old_id) c->rel2.id_y = new_id;
        if (d->text.id_source == old_id) d->text.id_source = new_id;
        if (d->text.id_text_source == old_id) d->text.id_text_source = new_id;
        /* ...and in all other descriptions */
        EINA_LIST_FOREACH(p->other_desc, ll, d)
          {
+            c = &d->common;
+
             //printf("      search in %s (%s)\n", p->name, d->state.name);
-            if (d->rel1.id_x == old_id) d->rel1.id_x = new_id;
-            if (d->rel1.id_y == old_id) d->rel1.id_y = new_id;
-            if (d->rel2.id_x == old_id) d->rel2.id_x = new_id;
-            if (d->rel2.id_y == old_id) d->rel2.id_y = new_id;
+            if (c->rel1.id_x == old_id) c->rel1.id_x = new_id;
+            if (c->rel1.id_y == old_id) c->rel1.id_y = new_id;
+            if (c->rel2.id_x == old_id) c->rel2.id_x = new_id;
+            if (c->rel2.id_y == old_id) c->rel2.id_y = new_id;
             if (d->text.id_source == old_id) d->text.id_source = new_id;
             if (d->text.id_text_source == old_id) d->text.id_text_source = new_id;
          }
@@ -570,6 +574,7 @@ _edje_parts_id_switch(Edje *ed, Edje_Real_Part *rp1, Edje_Real_Part *rp2)
      {
        Eina_List *ll;
        Edje_Part_Description *d;
+       Edje_Part_Description_Common *c;
 
        //printf("   search id: %d in %s\n", old_id, p->name);
        if (p->clip_to_id == id1) p->clip_to_id = id2;
@@ -579,15 +584,16 @@ _edje_parts_id_switch(Edje *ed, Edje_Real_Part *rp1, Edje_Real_Part *rp2)
 
        // ...in default description
        d = p->default_desc;
+       c = &d->common;
        // printf("      search in %s (%s)\n", p->name, d->state.name);
-       if (d->rel1.id_x == id1) d->rel1.id_x = id2;
-       else if (d->rel1.id_x == id2) d->rel1.id_x = id1;
-       if (d->rel1.id_y == id1) d->rel1.id_y = id2;
-       else if (d->rel1.id_y == id2) d->rel1.id_y = id1;
-       if (d->rel2.id_x == id1) d->rel2.id_x = id2;
-       else if (d->rel2.id_x == id2) d->rel2.id_x = id1;
-       if (d->rel2.id_y == id1) d->rel2.id_y = id2;
-       else if (d->rel2.id_y == id2) d->rel2.id_y = id1;
+       if (c->rel1.id_x == id1) c->rel1.id_x = id2;
+       else if (c->rel1.id_x == id2) c->rel1.id_x = id1;
+       if (c->rel1.id_y == id1) c->rel1.id_y = id2;
+       else if (c->rel1.id_y == id2) c->rel1.id_y = id1;
+       if (c->rel2.id_x == id1) c->rel2.id_x = id2;
+       else if (c->rel2.id_x == id2) c->rel2.id_x = id1;
+       if (c->rel2.id_y == id1) c->rel2.id_y = id2;
+       else if (c->rel2.id_y == id2) c->rel2.id_y = id1;
        if (d->text.id_source == id1) d->text.id_source = id2;
        else if (d->text.id_source == id2) d->text.id_source = id1;
        if (d->text.id_text_source == id1) d->text.id_text_source = id2;
@@ -595,15 +601,16 @@ _edje_parts_id_switch(Edje *ed, Edje_Real_Part *rp1, Edje_Real_Part *rp2)
        // ...and in all other descriptions
        EINA_LIST_FOREACH(p->other_desc, ll, d)
          {
+            c = &d->common;
             //printf("      search in %s (%s)\n", p->name, d->state.name);
-            if (d->rel1.id_x == id1) d->rel1.id_x = id2;
-            else if (d->rel1.id_x == id2) d->rel1.id_x = id1;
-            if (d->rel1.id_y == id1) d->rel1.id_y = id2;
-            else if (d->rel1.id_y == id2) d->rel1.id_y = id1;
-            if (d->rel2.id_x == id1) d->rel2.id_x = id2;
-            else if (d->rel2.id_x == id2) d->rel2.id_x = id1;
-            if (d->rel2.id_y == id1) d->rel2.id_y = id2;
-            else if (d->rel2.id_y == id2) d->rel2.id_y = id1;
+            if (c->rel1.id_x == id1) c->rel1.id_x = id2;
+            else if (c->rel1.id_x == id2) c->rel1.id_x = id1;
+            if (c->rel1.id_y == id1) c->rel1.id_y = id2;
+            else if (c->rel1.id_y == id2) c->rel1.id_y = id1;
+            if (c->rel2.id_x == id1) c->rel2.id_x = id2;
+            else if (c->rel2.id_x == id2) c->rel2.id_x = id1;
+            if (c->rel2.id_y == id1) c->rel2.id_y = id2;
+            else if (c->rel2.id_y == id2) c->rel2.id_y = id1;
             if (d->text.id_source == id1) d->text.id_source = id2;
             else if (d->text.id_source == id2) d->text.id_source = id1;
             if (d->text.id_text_source == id1) d->text.id_text_source = id2;
@@ -2211,8 +2218,8 @@ edje_edit_part_selected_state_get(Evas_Object *obj, const char *part, double *va
        return eina_stringshare_add("default");
      }
 
-   if (value) *value = rp->chosen_description->state.value;
-   return eina_stringshare_add(rp->chosen_description->state.name);
+   if (value) *value = rp->chosen_description->common.state.value;
+   return eina_stringshare_add(rp->chosen_description->common.state.name);
 }
 
 EAPI Eina_Bool
@@ -2226,7 +2233,7 @@ edje_edit_part_selected_state_set(Evas_Object *obj, const char *part, const char
    if (!pd) return EINA_FALSE;
 
    //printf("EDJE: Set state: %s %f\n", pd->state.name, pd->state.value);
-   _edje_part_description_apply(ed, rp, pd->state.name, pd->state.value, NULL, 0.0);
+   _edje_part_description_apply(ed, rp, pd->common.state.name, pd->common.state.value, NULL, 0.0);
 
    edje_object_calc_force(obj);
    return EINA_TRUE;
@@ -2653,7 +2660,7 @@ edje_edit_part_states_list_get(Evas_Object *obj, const char *part)
    //append default state
    state = rp->part->default_desc;
    snprintf(state_name, PATH_MAX,
-            "%s %.2f", state->state.name, state->state.value);
+            "%s %.2f", state->common.state.name, state->common.state.value);
    states = eina_list_append(states, eina_stringshare_add(state_name));
    //printf("NEW STATE def: %s\n", state->state.name);
 
@@ -2661,7 +2668,7 @@ edje_edit_part_states_list_get(Evas_Object *obj, const char *part)
    EINA_LIST_FOREACH(rp->part->other_desc, l, state)
      {
        snprintf(state_name, sizeof(state_name),
-                "%s %.2f", state->state.name, state->state.value);
+                "%s %.2f", state->common.state.name, state->common.state.value);
        states = eina_list_append(states, eina_stringshare_add(state_name));
        //printf("NEW STATE: %s\n", state_name);
      }
@@ -2693,8 +2700,8 @@ edje_edit_state_name_set(Evas_Object *obj, const char *part, const char *state,
             Edje_Program_Target *t = eina_list_data_get(epr->targets);
 
             if (t->id == part_id &&
-                !strcmp(epr->state, pd->state.name) &&
-                pd->state.value == epr->value)
+                !strcmp(epr->state, pd->common.state.name) &&
+                pd->common.state.value == epr->value)
               {
                  _edje_if_string_free(ed, epr->state);
                  epr->state = eina_stringshare_add(new_name);
@@ -2704,10 +2711,10 @@ edje_edit_state_name_set(Evas_Object *obj, const char *part, const char *state,
      }
 
    /* set name */
-   _edje_if_string_free(ed, pd->state.name);
-   pd->state.name = (char *)eina_stringshare_add(new_name);
+   _edje_if_string_free(ed, pd->common.state.name);
+   pd->common.state.name = (char *)eina_stringshare_add(new_name);
    /* set value */
-   pd->state.value = new_value;
+   pd->common.state.value = new_value;
 
    return EINA_TRUE;
 }
@@ -2752,29 +2759,29 @@ edje_edit_state_add(Evas_Object *obj, const char *part, const char *name, double
    else
      rp->part->other_desc = eina_list_append(rp->part->other_desc, pd);
 
-   pd->state.name = eina_stringshare_add(name);
-   pd->state.value = value;
-   pd->visible = 1;
-   pd->align.x = 0.5;
-   pd->align.y = 0.5;
-   pd->min.w = 0;
-   pd->min.h = 0;
-   pd->fixed.w = 0;
-   pd->fixed.h = 0;
-   pd->max.w = -1;
-   pd->max.h = -1;
-   pd->rel1.relative_x = 0.0;
-   pd->rel1.relative_y = 0.0;
-   pd->rel1.offset_x = 0;
-   pd->rel1.offset_y = 0;
-   pd->rel1.id_x = -1;
-   pd->rel1.id_y = -1;
-   pd->rel2.relative_x = 1.0;
-   pd->rel2.relative_y = 1.0;
-   pd->rel2.offset_x = -1;
-   pd->rel2.offset_y = -1;
-   pd->rel2.id_x = -1;
-   pd->rel2.id_y = -1;
+   pd->common.state.name = eina_stringshare_add(name);
+   pd->common.state.value = value;
+   pd->common.visible = 1;
+   pd->common.align.x = 0.5;
+   pd->common.align.y = 0.5;
+   pd->common.min.w = 0;
+   pd->common.min.h = 0;
+   pd->common.fixed.w = 0;
+   pd->common.fixed.h = 0;
+   pd->common.max.w = -1;
+   pd->common.max.h = -1;
+   pd->common.rel1.relative_x = 0.0;
+   pd->common.rel1.relative_y = 0.0;
+   pd->common.rel1.offset_x = 0;
+   pd->common.rel1.offset_y = 0;
+   pd->common.rel1.id_x = -1;
+   pd->common.rel1.id_y = -1;
+   pd->common.rel2.relative_x = 1.0;
+   pd->common.rel2.relative_y = 1.0;
+   pd->common.rel2.offset_x = -1;
+   pd->common.rel2.offset_y = -1;
+   pd->common.rel2.id_x = -1;
+   pd->common.rel2.id_y = -1;
    pd->image.id = -1;
    pd->fill.smooth = 1;
    pd->fill.pos_rel_x = 0.0;
@@ -2876,36 +2883,36 @@ edje_edit_state_copy(Evas_Object *obj, const char *part, const char *from, doubl
          return EINA_FALSE;
        /* No need to check for default desc, at this point it must exist */
        rp->part->other_desc = eina_list_append(rp->part->other_desc, pdto);
-       pdto->state.name = eina_stringshare_add(to);
-       pdto->state.value = val_to;
+       pdto->common.state.name = eina_stringshare_add(to);
+       pdto->common.state.value = val_to;
      }
 
 #define PD_COPY(_x) pdto->_x = pdfrom->_x
 #define PD_STRING_COPY(_x) _edje_if_string_free(ed, pdto->_x); \
                           pdto->_x = (char *)eina_stringshare_add(pdfrom->_x)
-   PD_COPY(align.x);
-   PD_COPY(align.y);
-   PD_COPY(fixed.w);
-   PD_COPY(fixed.h);
-   PD_COPY(min.w);
-   PD_COPY(min.h);
-   PD_COPY(max.w);
-   PD_COPY(max.h);
-   PD_COPY(aspect.min);
-   PD_COPY(aspect.max);
-   PD_COPY(aspect.prefer);
-   PD_COPY(rel1.relative_x);
-   PD_COPY(rel1.relative_y);
-   PD_COPY(rel1.offset_x);
-   PD_COPY(rel1.offset_y);
-   PD_COPY(rel1.id_x);
-   PD_COPY(rel1.id_y);
-   PD_COPY(rel2.relative_x);
-   PD_COPY(rel2.relative_y);
-   PD_COPY(rel2.offset_x);
-   PD_COPY(rel2.offset_y);
-   PD_COPY(rel2.id_x);
-   PD_COPY(rel2.id_y);
+   PD_COPY(common.align.x);
+   PD_COPY(common.align.y);
+   PD_COPY(common.fixed.w);
+   PD_COPY(common.fixed.h);
+   PD_COPY(common.min.w);
+   PD_COPY(common.min.h);
+   PD_COPY(common.max.w);
+   PD_COPY(common.max.h);
+   PD_COPY(common.aspect.min);
+   PD_COPY(common.aspect.max);
+   PD_COPY(common.aspect.prefer);
+   PD_COPY(common.rel1.relative_x);
+   PD_COPY(common.rel1.relative_y);
+   PD_COPY(common.rel1.offset_x);
+   PD_COPY(common.rel1.offset_y);
+   PD_COPY(common.rel1.id_x);
+   PD_COPY(common.rel1.id_y);
+   PD_COPY(common.rel2.relative_x);
+   PD_COPY(common.rel2.relative_y);
+   PD_COPY(common.rel2.offset_x);
+   PD_COPY(common.rel2.offset_y);
+   PD_COPY(common.rel2.id_x);
+   PD_COPY(common.rel2.id_y);
    PD_COPY(image.id);
    EINA_LIST_FREE(pdto->image.tween_list, i)
       free(i);
@@ -3008,7 +3015,7 @@ edje_edit_state_copy(Evas_Object *obj, const char *part, const char *from, doubl
          }
        pdto->external_params = eina_list_append(pdto->external_params, new_p);
      }
-   PD_COPY(visible);
+   PD_COPY(common.visible);
 #undef PD_STRING_COPY
 #undef PD_COPY
 
@@ -3021,7 +3028,7 @@ edje_edit_state_rel1_relative_x_get(Evas_Object *obj, const char *part, const ch
 {
    GET_PD_OR_RETURN(0);
    //printf("Get rel1 rel of part: %s state: %s [%f]\n", part, state, pd->rel1.relative_x);
-   return TO_DOUBLE(pd->rel1.relative_x);
+   return TO_DOUBLE(pd->common.rel1.relative_x);
 }
 
 EAPI double
@@ -3029,7 +3036,7 @@ edje_edit_state_rel1_relative_y_get(Evas_Object *obj, const char *part, const ch
 {
    GET_PD_OR_RETURN(0);
    //printf("Get rel1 rel of part: %s state: %s\n", part, state);
-   return TO_DOUBLE(pd->rel1.relative_y);
+   return TO_DOUBLE(pd->common.rel1.relative_y);
 }
 
 EAPI double
@@ -3037,7 +3044,7 @@ edje_edit_state_rel2_relative_x_get(Evas_Object *obj, const char *part, const ch
 {
    GET_PD_OR_RETURN(0);
    //printf("Get rel2 rel of part: %s state: %s\n", part, state);
-   return TO_DOUBLE(pd->rel2.relative_x);
+   return TO_DOUBLE(pd->common.rel2.relative_x);
 }
 
 EAPI double
@@ -3045,7 +3052,7 @@ edje_edit_state_rel2_relative_y_get(Evas_Object *obj, const char *part, const ch
 {
    GET_PD_OR_RETURN(0);
    //printf("Get rel2 rel of part: %s state: %s\n", part, state);
-   return TO_DOUBLE(pd->rel2.relative_y);
+   return TO_DOUBLE(pd->common.rel2.relative_y);
 }
 
 EAPI void
@@ -3054,7 +3061,7 @@ edje_edit_state_rel1_relative_x_set(Evas_Object *obj, const char *part, const ch
    GET_PD_OR_RETURN();
    //printf("Set rel1x of part: %s state: %s to: %f\n", part, state, x);
    //TODO check boudaries
-   pd->rel1.relative_x = FROM_DOUBLE(x);
+   pd->common.rel1.relative_x = FROM_DOUBLE(x);
    edje_object_calc_force(obj);
 }
 
@@ -3064,7 +3071,7 @@ edje_edit_state_rel1_relative_y_set(Evas_Object *obj, const char *part, const ch
    GET_PD_OR_RETURN();
    //printf("Set rel1y of part: %s state: %s to: %f\n", part, state, y);
    //TODO check boudaries
-   pd->rel1.relative_y = FROM_DOUBLE(y);
+   pd->common.rel1.relative_y = FROM_DOUBLE(y);
    edje_object_calc_force(obj);
 }
 
@@ -3074,7 +3081,7 @@ edje_edit_state_rel2_relative_x_set(Evas_Object *obj, const char *part, const ch
    GET_PD_OR_RETURN();
    //printf("Set rel2x of part: %s state: %s to: %f\n", part, state, x);
    //TODO check boudaries
-   pd->rel2.relative_x = FROM_DOUBLE(x);
+   pd->common.rel2.relative_x = FROM_DOUBLE(x);
    edje_object_calc_force(obj);
 }
 
@@ -3085,7 +3092,7 @@ edje_edit_state_rel2_relative_y_set(Evas_Object *obj, const char *part, const ch
    //printf("Set rel2y of part: %s state: %s to: %f\n", part, state, y);
    pd = _edje_part_description_find_byname(eed, part, state, value);
    //TODO check boudaries
-   pd->rel2.relative_y = FROM_DOUBLE(y);
+   pd->common.rel2.relative_y = FROM_DOUBLE(y);
    edje_object_calc_force(obj);
 }
 
@@ -3095,7 +3102,7 @@ edje_edit_state_rel1_offset_x_get(Evas_Object *obj, const char *part, const char
 {
    GET_PD_OR_RETURN(0);
    //printf("Get rel1 offset of part: %s state: %s\n", part, state);
-   return pd->rel1.offset_x;
+   return pd->common.rel1.offset_x;
 }
 
 EAPI int
@@ -3103,7 +3110,7 @@ edje_edit_state_rel1_offset_y_get(Evas_Object *obj, const char *part, const char
 {
    GET_PD_OR_RETURN(0);
    //printf("Get rel1 offset of part: %s state: %s\n", part, state);
-   return pd->rel1.offset_y;
+   return pd->common.rel1.offset_y;
 }
 
 EAPI int
@@ -3111,7 +3118,7 @@ edje_edit_state_rel2_offset_x_get(Evas_Object *obj, const char *part, const char
 {
    GET_PD_OR_RETURN(0);
    //printf("Get rel2 offset of part: %s state: %s\n", part, state);
-   return pd->rel2.offset_x;
+   return pd->common.rel2.offset_x;
 }
 
 EAPI int
@@ -3119,7 +3126,7 @@ edje_edit_state_rel2_offset_y_get(Evas_Object *obj, const char *part, const char
 {
    GET_PD_OR_RETURN(0);
    //printf("Get rel2 offset of part: %s state: %s\n", part, state);
-   return pd->rel2.offset_y;
+   return pd->common.rel2.offset_y;
 }
 
 EAPI void
@@ -3128,7 +3135,7 @@ edje_edit_state_rel1_offset_x_set(Evas_Object *obj, const char *part, const char
    GET_PD_OR_RETURN();
    //printf("Set rel1x offset of part: %s state: %s to: %f\n", part, state, x);
    //TODO check boudaries
-   pd->rel1.offset_x = TO_INT(FROM_DOUBLE(x));
+   pd->common.rel1.offset_x = TO_INT(FROM_DOUBLE(x));
    edje_object_calc_force(obj);
 }
 
@@ -3138,7 +3145,7 @@ edje_edit_state_rel1_offset_y_set(Evas_Object *obj, const char *part, const char
    GET_PD_OR_RETURN();
    //printf("Set rel1y offset of part: %s state: %s to: %f\n", part, state, y);
    //TODO check boudaries
-   pd->rel1.offset_y = TO_INT(FROM_DOUBLE(y));
+   pd->common.rel1.offset_y = TO_INT(FROM_DOUBLE(y));
    edje_object_calc_force(obj);
 }
 
@@ -3148,7 +3155,7 @@ edje_edit_state_rel2_offset_x_set(Evas_Object *obj, const char *part, const char
    GET_PD_OR_RETURN();
    //printf("Set rel2x offset of part: %s state: %s to: %f\n", part, state, x);
    //TODO check boudaries
-   pd->rel2.offset_x = TO_INT(FROM_DOUBLE(x));
+   pd->common.rel2.offset_x = TO_INT(FROM_DOUBLE(x));
    edje_object_calc_force(obj);
 }
 
@@ -3158,7 +3165,7 @@ edje_edit_state_rel2_offset_y_set(Evas_Object *obj, const char *part, const char
    GET_PD_OR_RETURN();
    //printf("Set rel2y offset of part: %s state: %s to: %f\n", part, state, y);
    //TODO check boudaries
-   pd->rel2.offset_y = TO_INT(FROM_DOUBLE(y));
+   pd->common.rel2.offset_y = TO_INT(FROM_DOUBLE(y));
    edje_object_calc_force(obj);
 }
 
@@ -3172,9 +3179,9 @@ edje_edit_state_rel1_to_x_get(Evas_Object *obj, const char *part, const char *st
 
    //printf("Get rel1x TO of part: %s state: %s\n", part, state);
 
-   if (pd->rel1.id_x == -1) return NULL;
+   if (pd->common.rel1.id_x == -1) return NULL;
 
-   rel = ed->table_parts[pd->rel1.id_x % ed->table_parts_size];
+   rel = ed->table_parts[pd->common.rel1.id_x % ed->table_parts_size];
 
    if (rel->part->name)
      return eina_stringshare_add(rel->part->name);
@@ -3191,9 +3198,9 @@ edje_edit_state_rel1_to_y_get(Evas_Object *obj, const char *part, const char *st
 
    //printf("Get rel1y TO of part: %s state: %s\n", part, state);
 
-   if (pd->rel1.id_y == -1) return NULL;
+   if (pd->common.rel1.id_y == -1) return NULL;
 
-   rel = ed->table_parts[pd->rel1.id_y % ed->table_parts_size];
+   rel = ed->table_parts[pd->common.rel1.id_y % ed->table_parts_size];
 
    if (rel->part->name)
      return eina_stringshare_add(rel->part->name);
@@ -3210,9 +3217,9 @@ edje_edit_state_rel2_to_x_get(Evas_Object *obj, const char *part, const char *st
 
    //printf("Get rel2x TO of part: %s state: %s\n", part, state);
 
-   if (pd->rel2.id_x == -1) return NULL;
+   if (pd->common.rel2.id_x == -1) return NULL;
 
-   rel = ed->table_parts[pd->rel2.id_x % ed->table_parts_size];
+   rel = ed->table_parts[pd->common.rel2.id_x % ed->table_parts_size];
 
    if (rel->part->name)
      return eina_stringshare_add(rel->part->name);
@@ -3229,9 +3236,9 @@ edje_edit_state_rel2_to_y_get(Evas_Object *obj, const char *part, const char *st
 
    //printf("Get rel2y TO of part: %s state: %s\n", part, state);
 
-   if (pd->rel2.id_y == -1) return NULL;
+   if (pd->common.rel2.id_y == -1) return NULL;
 
-   rel = ed->table_parts[pd->rel2.id_y % ed->table_parts_size];
+   rel = ed->table_parts[pd->common.rel2.id_y % ed->table_parts_size];
 
    if (rel->part->name)
      return eina_stringshare_add(rel->part->name);
@@ -3253,10 +3260,10 @@ edje_edit_state_rel1_to_x_set(Evas_Object *obj, const char *part, const char *st
      {
        relp = _edje_real_part_get(ed, rel_to);
        if (!relp) return;
-       pd->rel1.id_x = relp->part->id;
+       pd->common.rel1.id_x = relp->part->id;
      }
    else
-     pd->rel1.id_x = -1;
+     pd->common.rel1.id_x = -1;
 
    //_edje_part_description_apply(ed, rp, pd->state.name, pd->state.value, "state", 0.1); //Why segfault??
    // edje_object_calc_force(obj);//don't work for redraw
@@ -3276,10 +3283,10 @@ edje_edit_state_rel1_to_y_set(Evas_Object *obj, const char *part, const char *st
      {
        relp = _edje_real_part_get(ed, rel_to);
        if (!relp) return;
-       pd->rel1.id_y = relp->part->id;
+       pd->common.rel1.id_y = relp->part->id;
      }
    else
-     pd->rel1.id_y = -1;
+     pd->common.rel1.id_y = -1;
 
    //_edje_part_description_apply(ed, rp, pd->state.name, pd->state.value, "state", 0.1); //Why segfault??
    // edje_object_calc_force(obj);//don't work for redraw
@@ -3299,10 +3306,10 @@ edje_edit_state_rel2_to_x_set(Evas_Object *obj, const char *part, const char *st
      {
        relp = _edje_real_part_get(ed, rel_to);
        if (!relp) return;
-       pd->rel2.id_x = relp->part->id;
+       pd->common.rel2.id_x = relp->part->id;
      }
    else
-     pd->rel2.id_x = -1;
+     pd->common.rel2.id_x = -1;
 
    //_edje_part_description_apply(ed, rp, pd->state.name, pd->state.value, "state", 0.1); //Why segfault??
    // edje_object_calc_force(obj);//don't work for redraw
@@ -3322,10 +3329,10 @@ edje_edit_state_rel2_to_y_set(Evas_Object *obj, const char *part, const char *st
      {
        relp = _edje_real_part_get(ed, rel_to);
        if (!relp) return;
-       pd->rel2.id_y = relp->part->id;
+       pd->common.rel2.id_y = relp->part->id;
      }
    else
-      pd->rel2.id_y = -1;
+      pd->common.rel2.id_y = -1;
 
    //_edje_part_description_apply(ed, rp, pd->state.name, pd->state.value, "state", 0.1); //Why segfault??
    // edje_object_calc_force(obj);//don't work for redraw
@@ -3424,7 +3431,7 @@ edje_edit_state_align_x_get(Evas_Object *obj, const char *part, const char *stat
 
    //printf("GET ALIGN_X of state '%s' [%f]\n", state, pd->align.x);
 
-   return TO_DOUBLE(pd->align.x);
+   return TO_DOUBLE(pd->common.align.x);
 }
 
 EAPI double
@@ -3434,7 +3441,7 @@ edje_edit_state_align_y_get(Evas_Object *obj, const char *part, const char *stat
 
    //printf("GET ALIGN_Y of state '%s' [%f]\n", state, pd->align.y);
 
-   return TO_DOUBLE(pd->align.y);
+   return TO_DOUBLE(pd->common.align.y);
 }
 
 EAPI void
@@ -3442,7 +3449,7 @@ edje_edit_state_align_x_set(Evas_Object *obj, const char *part, const char *stat
 {
    GET_PD_OR_RETURN();
    //printf("SET ALIGN_X of state '%s' [to: %f]\n", state, align);
-   pd->align.x = FROM_DOUBLE(align);
+   pd->common.align.x = FROM_DOUBLE(align);
 }
 
 EAPI void
@@ -3451,7 +3458,7 @@ edje_edit_state_align_y_set(Evas_Object *obj, const char *part, const char *stat
    GET_PD_OR_RETURN();
 
    //printf("SET ALIGN_Y of state '%s' [to: %f]\n", state, align);
-   pd->align.y = FROM_DOUBLE(align);
+   pd->common.align.y = FROM_DOUBLE(align);
 }
 
 //min & max
@@ -3461,7 +3468,7 @@ edje_edit_state_min_w_get(Evas_Object *obj, const char *part, const char *state,
    GET_PD_OR_RETURN(0);
 
    //printf("GET MIN_W of state '%s' [%d]\n", state, pd->min.w);
-   return pd->min.w;
+   return pd->common.min.w;
 }
 
 EAPI void
@@ -3470,7 +3477,7 @@ edje_edit_state_min_w_set(Evas_Object *obj, const char *part, const char *state,
    GET_PD_OR_RETURN();
 
    //printf("SET MIN_W of state '%s' [to: %d]\n", state, min_w);
-   pd->min.w = min_w;
+   pd->common.min.w = min_w;
 }
 
 EAPI int
@@ -3479,7 +3486,7 @@ edje_edit_state_min_h_get(Evas_Object *obj, const char *part, const char *state,
    GET_PD_OR_RETURN(0);
 
    //printf("GET MIN_H of state '%s' [%d]\n", state, pd->min.h);
-   return pd->min.h;
+   return pd->common.min.h;
 }
 
 EAPI void
@@ -3488,7 +3495,7 @@ edje_edit_state_min_h_set(Evas_Object *obj, const char *part, const char *state,
    GET_PD_OR_RETURN();
 
    //printf("SET MIN_H of state '%s' [to: %d]\n", state, min_h);
-   pd->min.h = min_h;
+   pd->common.min.h = min_h;
 }
 
 EAPI int
@@ -3497,7 +3504,7 @@ edje_edit_state_max_w_get(Evas_Object *obj, const char *part, const char *state,
    GET_PD_OR_RETURN(0);
 
    //printf("GET MAX_W of state '%s' [%d]\n", state, pd->max.w);
-   return pd->max.w;
+   return pd->common.max.w;
 }
 
 EAPI void
@@ -3506,7 +3513,7 @@ edje_edit_state_max_w_set(Evas_Object *obj, const char *part, const char *state,
    GET_PD_OR_RETURN();
 
    //printf("SET MAX_W of state '%s' [to: %d]\n", state, max_w);
-   pd->max.w = max_w;
+   pd->common.max.w = max_w;
 }
 
 EAPI int
@@ -3515,7 +3522,7 @@ edje_edit_state_max_h_get(Evas_Object *obj, const char *part, const char *state,
    GET_PD_OR_RETURN(0);
 
    //printf("GET MAX_H of state '%s' [%d]\n", state, pd->max.h);
-   return pd->max.h;
+   return pd->common.max.h;
 }
 
 EAPI void
@@ -3524,7 +3531,7 @@ edje_edit_state_max_h_set(Evas_Object *obj, const char *part, const char *state,
    GET_PD_OR_RETURN();
 
    //printf("SET MAX_H of state '%s' [to: %d]\n", state, max_h);
-   pd->max.h = max_h;
+   pd->common.max.h = max_h;
 }
 
 //aspect
@@ -3534,7 +3541,7 @@ edje_edit_state_aspect_min_get(Evas_Object *obj, const char *part, const char *s
    GET_PD_OR_RETURN(0);
 
    //printf("GET ASPECT_MIN of state '%s' [%f]\n", state, pd->aspect.min);
-   return TO_DOUBLE(pd->aspect.min);
+   return TO_DOUBLE(pd->common.aspect.min);
 }
 
 EAPI double
@@ -3543,7 +3550,7 @@ edje_edit_state_aspect_max_get(Evas_Object *obj, const char *part, const char *s
    GET_PD_OR_RETURN(0);
 
    //printf("GET ASPECT_MAX of state '%s' [%f]\n", state, pd->aspect.max);
-   return TO_DOUBLE(pd->aspect.max);
+   return TO_DOUBLE(pd->common.aspect.max);
 }
 
 EAPI void
@@ -3552,7 +3559,7 @@ edje_edit_state_aspect_min_set(Evas_Object *obj, const char *part, const char *s
    GET_PD_OR_RETURN();
 
    //printf("SET ASPECT_MIN of state '%s' [to: %f]\n", state, aspect);
-   pd->aspect.min = FROM_DOUBLE(aspect);
+   pd->common.aspect.min = FROM_DOUBLE(aspect);
 }
 
 EAPI void
@@ -3561,7 +3568,7 @@ edje_edit_state_aspect_max_set(Evas_Object *obj, const char *part, const char *s
    GET_PD_OR_RETURN();
 
    //printf("SET ASPECT_MAX of state '%s' [to: %f]\n", state, aspect);
-   pd->aspect.max = FROM_DOUBLE(aspect);
+   pd->common.aspect.max = FROM_DOUBLE(aspect);
 }
 
 EAPI unsigned char
@@ -3570,7 +3577,7 @@ edje_edit_state_aspect_pref_get(Evas_Object *obj, const char *part, const char *
    GET_PD_OR_RETURN(0);
 
    //printf("GET ASPECT_PREF of state '%s' [%d]\n", state, pd->aspect.prefer);
-   return pd->aspect.prefer;
+   return pd->common.aspect.prefer;
 }
 
 EAPI void
@@ -3579,7 +3586,7 @@ edje_edit_state_aspect_pref_set(Evas_Object *obj, const char *part, const char *
    GET_PD_OR_RETURN();
 
    //printf("SET ASPECT_PREF of state '%s' [to: %d]\n", state, pref);
-   pd->aspect.prefer = pref;
+   pd->common.aspect.prefer = pref;
 }
 
 //fill
@@ -3725,7 +3732,7 @@ edje_edit_state_visible_get(Evas_Object *obj, const char *part, const char *stat
 {
    GET_PD_OR_RETURN(EINA_FALSE);
    //printf("Get state visible flag of part: %s state: %s\n", part, state);
-   return pd->visible;
+   return pd->common.visible;
 }
 
 EAPI void
@@ -3733,8 +3740,8 @@ edje_edit_state_visible_set(Evas_Object *obj, const char *part, const char *stat
 {
    GET_PD_OR_RETURN();
    //printf("Set state visible flag of part: %s state: %s to: %d\n", part, state, visible);
-   if (visible) pd->visible = 1;
-   else         pd->visible = 0;
+   if (visible) pd->common.visible = 1;
+   else         pd->common.visible = 0;
    edje_object_calc_force(obj);
 }
 
@@ -5783,28 +5790,28 @@ _edje_generate_source_of_state(Evas_Object *obj, const char *part, const char *s
    rp = _edje_real_part_get(ed, part);
    if (!rp) return EINA_FALSE;
 
-   BUF_APPENDF(I4"description { state: \"%s\" %g;\n", pd->state.name, pd->state.value);
+   BUF_APPENDF(I4"description { state: \"%s\" %g;\n", pd->common.state.name, pd->common.state.value);
    //TODO Support inherit
 
-   if (!pd->visible)
+   if (!pd->common.visible)
      BUF_APPEND(I5"visible: 0;\n");
 
-   if (pd->align.x != 0.5 || pd->align.y != 0.5)
-     BUF_APPENDF(I5"align: %g %g;\n", TO_DOUBLE(pd->align.x), TO_DOUBLE(pd->align.y));
+   if (pd->common.align.x != 0.5 || pd->common.align.y != 0.5)
+     BUF_APPENDF(I5"align: %g %g;\n", TO_DOUBLE(pd->common.align.x), TO_DOUBLE(pd->common.align.y));
 
    //TODO Support fixed
 
-   if (pd->min.w || pd->min.h)
-     BUF_APPENDF(I5"min: %d %d;\n", pd->min.w, pd->min.h);
-   if (pd->max.w != -1 || pd->max.h != -1)
-     BUF_APPENDF(I5"max: %d %d;\n", pd->max.w, pd->max.h);
+   if (pd->common.min.w || pd->common.min.h)
+     BUF_APPENDF(I5"min: %d %d;\n", pd->common.min.w, pd->common.min.h);
+   if (pd->common.max.w != -1 || pd->common.max.h != -1)
+     BUF_APPENDF(I5"max: %d %d;\n", pd->common.max.w, pd->common.max.h);
 
    //TODO Support step
 
-   if (pd->aspect.min || pd->aspect.max)
-      BUF_APPENDF(I5"aspect: %g %g;\n", TO_DOUBLE(pd->aspect.min), TO_DOUBLE(pd->aspect.max));
-   if (pd->aspect.prefer)
-      BUF_APPENDF(I5"aspect_preference: %s;\n", prefers[pd->aspect.prefer]);
+   if (pd->common.aspect.min || pd->common.aspect.max)
+      BUF_APPENDF(I5"aspect: %g %g;\n", TO_DOUBLE(pd->common.aspect.min), TO_DOUBLE(pd->common.aspect.max));
+   if (pd->common.aspect.prefer)
+      BUF_APPENDF(I5"aspect_preference: %s;\n", prefers[pd->common.aspect.prefer]);
 
    if (pd->color_class)
       BUF_APPENDF(I5"color_class: \"%s\";\n", pd->color_class);
@@ -5823,44 +5830,44 @@ _edje_generate_source_of_state(Evas_Object *obj, const char *part, const char *s
               pd->color3.r, pd->color3.g, pd->color3.b, pd->color3.a);
 
    //Rel1
-   if (pd->rel1.relative_x || pd->rel1.relative_y || pd->rel1.offset_x ||
-       pd->rel1.offset_y || pd->rel1.id_x != -1 || pd->rel1.id_y != -1)
+   if (pd->common.rel1.relative_x || pd->common.rel1.relative_y || pd->common.rel1.offset_x ||
+       pd->common.rel1.offset_y || pd->common.rel1.id_x != -1 || pd->common.rel1.id_y != -1)
      {
        BUF_APPEND(I5"rel1 {\n");
-       if (pd->rel1.relative_x || pd->rel1.relative_y)
-         BUF_APPENDF(I6"relative: %g %g;\n", TO_DOUBLE(pd->rel1.relative_x), TO_DOUBLE(pd->rel1.relative_y));
-       if (pd->rel1.offset_x || pd->rel1.offset_y)
-         BUF_APPENDF(I6"offset: %d %d;\n", pd->rel1.offset_x, pd->rel1.offset_y);
-       if (pd->rel1.id_x != -1 && pd->rel1.id_x == pd->rel1.id_y)
-         BUF_APPENDF(I6"to: \"%s\";\n", ed->table_parts[pd->rel1.id_x]->part->name);
+       if (pd->common.rel1.relative_x || pd->common.rel1.relative_y)
+         BUF_APPENDF(I6"relative: %g %g;\n", TO_DOUBLE(pd->common.rel1.relative_x), TO_DOUBLE(pd->common.rel1.relative_y));
+       if (pd->common.rel1.offset_x || pd->common.rel1.offset_y)
+         BUF_APPENDF(I6"offset: %d %d;\n", pd->common.rel1.offset_x, pd->common.rel1.offset_y);
+       if (pd->common.rel1.id_x != -1 && pd->common.rel1.id_x == pd->common.rel1.id_y)
+         BUF_APPENDF(I6"to: \"%s\";\n", ed->table_parts[pd->common.rel1.id_x]->part->name);
        else
          {
-               if (pd->rel1.id_x != -1)
-                 BUF_APPENDF(I6"to_x: \"%s\";\n", ed->table_parts[pd->rel1.id_x]->part->name);
-               if (pd->rel1.id_y != -1)
-                 BUF_APPENDF(I6"to_y: \"%s\";\n", ed->table_parts[pd->rel1.id_y]->part->name);
+               if (pd->common.rel1.id_x != -1)
+                 BUF_APPENDF(I6"to_x: \"%s\";\n", ed->table_parts[pd->common.rel1.id_x]->part->name);
+               if (pd->common.rel1.id_y != -1)
+                 BUF_APPENDF(I6"to_y: \"%s\";\n", ed->table_parts[pd->common.rel1.id_y]->part->name);
          }
        BUF_APPEND(I5"}\n");//rel1
      }
 
    //Rel2
-   if (pd->rel2.relative_x != 1.0 || pd->rel2.relative_y != 1.0 ||
-       pd->rel2.offset_x != -1 || pd->rel2.offset_y != -1 ||
-       pd->rel2.id_x != -1 || pd->rel2.id_y != -1)
+   if (pd->common.rel2.relative_x != 1.0 || pd->common.rel2.relative_y != 1.0 ||
+       pd->common.rel2.offset_x != -1 || pd->common.rel2.offset_y != -1 ||
+       pd->common.rel2.id_x != -1 || pd->common.rel2.id_y != -1)
      {
        BUF_APPEND(I5"rel2 {\n");
-       if (TO_DOUBLE(pd->rel2.relative_x) != 1.0 || TO_DOUBLE(pd->rel2.relative_y) != 1.0)
-         BUF_APPENDF(I6"relative: %g %g;\n", TO_DOUBLE(pd->rel2.relative_x), TO_DOUBLE(pd->rel2.relative_y));
-       if (pd->rel2.offset_x != -1 || pd->rel2.offset_y != -1)
-         BUF_APPENDF(I6"offset: %d %d;\n", pd->rel2.offset_x, pd->rel2.offset_y);
-       if (pd->rel2.id_x != -1 && pd->rel2.id_x == pd->rel2.id_y)
-         BUF_APPENDF(I6"to: \"%s\";\n", ed->table_parts[pd->rel2.id_x]->part->name);
+       if (TO_DOUBLE(pd->common.rel2.relative_x) != 1.0 || TO_DOUBLE(pd->common.rel2.relative_y) != 1.0)
+         BUF_APPENDF(I6"relative: %g %g;\n", TO_DOUBLE(pd->common.rel2.relative_x), TO_DOUBLE(pd->common.rel2.relative_y));
+       if (pd->common.rel2.offset_x != -1 || pd->common.rel2.offset_y != -1)
+         BUF_APPENDF(I6"offset: %d %d;\n", pd->common.rel2.offset_x, pd->common.rel2.offset_y);
+       if (pd->common.rel2.id_x != -1 && pd->common.rel2.id_x == pd->common.rel2.id_y)
+         BUF_APPENDF(I6"to: \"%s\";\n", ed->table_parts[pd->common.rel2.id_x]->part->name);
        else
          {
-               if (pd->rel2.id_x != -1)
-                 BUF_APPENDF(I6"to_x: \"%s\";\n", ed->table_parts[pd->rel2.id_x]->part->name);
-               if (pd->rel2.id_y != -1)
-                 BUF_APPENDF(I6"to_y: \"%s\";\n", ed->table_parts[pd->rel2.id_y]->part->name);
+               if (pd->common.rel2.id_x != -1)
+                 BUF_APPENDF(I6"to_x: \"%s\";\n", ed->table_parts[pd->common.rel2.id_x]->part->name);
+               if (pd->common.rel2.id_y != -1)
+                 BUF_APPENDF(I6"to_y: \"%s\";\n", ed->table_parts[pd->common.rel2.id_y]->part->name);
          }
        BUF_APPEND(I5"}\n");//rel2
      }
index b90bc11..65e7a61 100644 (file)
@@ -871,8 +871,8 @@ _edje_embryo_fn_get_state(Embryo_Program *ep, Embryo_Cell *params)
    rp = ed->table_parts[part_id % ed->table_parts_size];
    if (rp->chosen_description)
      {
-       SETFLOAT(rp->chosen_description->state.value, params[4]);
-       s = rp->chosen_description->state.name;
+       SETFLOAT(rp->chosen_description->common.state.value, params[4]);
+       s = rp->chosen_description->common.state.name;
        if (s)
          {
             if ((int) strlen(s) < params[3])
@@ -1599,8 +1599,8 @@ _edje_embryo_fn_custom_state(Embryo_Program *ep, Embryo_Cell *params)
 
    *d = *parent;
 
-   d->state.name = (char *)eina_stringshare_add("custom");
-   d->state.value = 0.0;
+   d->common.state.name = (char *)eina_stringshare_add("custom");
+   d->common.state.value = 0.0;
 
    /* make sure all the allocated memory is getting copied,
     * not just referenced
@@ -1659,42 +1659,42 @@ _edje_embryo_fn_set_state_val(Embryo_Program *ep, Embryo_Cell *params)
       case EDJE_STATE_PARAM_ALIGNMENT:
         CHKPARAM(4);
 
-        GETFLOAT_T(rp->custom->description->align.x, params[3]);
-        GETFLOAT_T(rp->custom->description->align.y, params[4]);
+        GETFLOAT_T(rp->custom->description->common.align.x, params[3]);
+        GETFLOAT_T(rp->custom->description->common.align.y, params[4]);
 
         break;
       case EDJE_STATE_PARAM_MIN:
         CHKPARAM(4);
 
-        GETINT(rp->custom->description->min.w, params[3]);
-        GETINT(rp->custom->description->min.h, params[4]);
+        GETINT(rp->custom->description->common.min.w, params[3]);
+        GETINT(rp->custom->description->common.min.h, params[4]);
 
         break;
       case EDJE_STATE_PARAM_MAX:
         CHKPARAM(4);
 
-        GETINT(rp->custom->description->max.w, params[3]);
-        GETINT(rp->custom->description->max.h, params[4]);
+        GETINT(rp->custom->description->common.max.w, params[3]);
+        GETINT(rp->custom->description->common.max.h, params[4]);
 
         break;
       case EDJE_STATE_PARAM_STEP:
         CHKPARAM(4);
 
-        GETINT(rp->custom->description->step.x, params[3]);
-        GETINT(rp->custom->description->step.y, params[4]);
+        GETINT(rp->custom->description->common.step.x, params[3]);
+        GETINT(rp->custom->description->common.step.y, params[4]);
 
         break;
       case EDJE_STATE_PARAM_ASPECT:
         CHKPARAM(4);
 
-        GETFLOAT_T(rp->custom->description->aspect.min, params[3]);
-        GETFLOAT_T(rp->custom->description->aspect.max, params[4]);
+        GETFLOAT_T(rp->custom->description->common.aspect.min, params[3]);
+        GETFLOAT_T(rp->custom->description->common.aspect.max, params[4]);
 
         break;
       case EDJE_STATE_PARAM_ASPECT_PREF:
         CHKPARAM(3);
 
-        GETINT(rp->custom->description->aspect.prefer, params[3]);
+        GETINT(rp->custom->description->common.aspect.prefer, params[3]);
 
         break;
       case EDJE_STATE_PARAM_COLOR:
@@ -1734,53 +1734,53 @@ _edje_embryo_fn_set_state_val(Embryo_Program *ep, Embryo_Cell *params)
       case EDJE_STATE_PARAM_REL1:
         CHKPARAM(4);
 
-        GETFLOAT_T(rp->custom->description->rel1.relative_x, params[3]);
-        GETFLOAT_T(rp->custom->description->rel1.relative_y, params[4]);
+        GETFLOAT_T(rp->custom->description->common.rel1.relative_x, params[3]);
+        GETFLOAT_T(rp->custom->description->common.rel1.relative_y, params[4]);
 
         break;
       case EDJE_STATE_PARAM_REL1_TO:
         CHKPARAM(4);
 
-        GETINT(rp->custom->description->rel1.id_x, params[3]);
-        GETINT(rp->custom->description->rel1.id_y, params[4]);
+        GETINT(rp->custom->description->common.rel1.id_x, params[3]);
+        GETINT(rp->custom->description->common.rel1.id_y, params[4]);
 
-        if (rp->param1.description->rel1.id_x >= 0)
-          rp->param1.rel1_to_x = ed->table_parts[rp->param1.description->rel1.id_x % ed->table_parts_size];
-        if (rp->param1.description->rel1.id_y >= 0)
-          rp->param1.rel1_to_y = ed->table_parts[rp->param1.description->rel1.id_y % ed->table_parts_size];
+        if (rp->param1.description->common.rel1.id_x >= 0)
+          rp->param1.rel1_to_x = ed->table_parts[rp->param1.description->common.rel1.id_x % ed->table_parts_size];
+        if (rp->param1.description->common.rel1.id_y >= 0)
+          rp->param1.rel1_to_y = ed->table_parts[rp->param1.description->common.rel1.id_y % ed->table_parts_size];
 
         break;
       case EDJE_STATE_PARAM_REL1_OFFSET:
         CHKPARAM(4);
 
-        GETINT(rp->custom->description->rel1.offset_x, params[3]);
-        GETINT(rp->custom->description->rel1.offset_y, params[4]);
+        GETINT(rp->custom->description->common.rel1.offset_x, params[3]);
+        GETINT(rp->custom->description->common.rel1.offset_y, params[4]);
 
         break;
       case EDJE_STATE_PARAM_REL2:
         CHKPARAM(4);
 
-        GETFLOAT_T(rp->custom->description->rel2.relative_x, params[3]);
-        GETFLOAT_T(rp->custom->description->rel2.relative_y, params[4]);
+        GETFLOAT_T(rp->custom->description->common.rel2.relative_x, params[3]);
+        GETFLOAT_T(rp->custom->description->common.rel2.relative_y, params[4]);
 
         break;
       case EDJE_STATE_PARAM_REL2_TO:
         CHKPARAM(4);
 
-        GETINT(rp->custom->description->rel2.id_x, params[3]);
-        GETINT(rp->custom->description->rel2.id_y, params[4]);
+        GETINT(rp->custom->description->common.rel2.id_x, params[3]);
+        GETINT(rp->custom->description->common.rel2.id_y, params[4]);
 
-        if (rp->param1.description->rel2.id_x >= 0)
-          rp->param1.rel2_to_x = ed->table_parts[rp->param1.description->rel2.id_x % ed->table_parts_size];
-        if (rp->param1.description->rel2.id_y >= 0)
-          rp->param1.rel2_to_y = ed->table_parts[rp->param1.description->rel2.id_y % ed->table_parts_size];
+        if (rp->param1.description->common.rel2.id_x >= 0)
+          rp->param1.rel2_to_x = ed->table_parts[rp->param1.description->common.rel2.id_x % ed->table_parts_size];
+        if (rp->param1.description->common.rel2.id_y >= 0)
+          rp->param1.rel2_to_y = ed->table_parts[rp->param1.description->common.rel2.id_y % ed->table_parts_size];
 
         break;
       case EDJE_STATE_PARAM_REL2_OFFSET:
         CHKPARAM(4);
 
-        GETINT(rp->custom->description->rel2.offset_x, params[3]);
-        GETINT(rp->custom->description->rel2.offset_y, params[4]);
+        GETINT(rp->custom->description->common.rel2.offset_x, params[3]);
+        GETINT(rp->custom->description->common.rel2.offset_y, params[4]);
 
         break;
       case EDJE_STATE_PARAM_IMAGE:
@@ -1909,73 +1909,73 @@ _edje_embryo_fn_set_state_val(Embryo_Program *ep, Embryo_Cell *params)
       case EDJE_STATE_PARAM_VISIBLE:
         CHKPARAM(3);
 
-        GETINT(rp->custom->description->visible, params[3]);
+        GETINT(rp->custom->description->common.visible, params[3]);
 
         break;
       case EDJE_STATE_PARAM_MAP_OM:
         CHKPARAM(3);
         
-        GETINT(rp->custom->description->map.on, params[3]);
+        GETINT(rp->custom->description->common.map.on, params[3]);
         
         break;
       case EDJE_STATE_PARAM_MAP_PERSP:
         CHKPARAM(3);
         
-        GETINT(rp->custom->description->map.id_persp, params[3]);
+        GETINT(rp->custom->description->common.map.id_persp, params[3]);
         
         break;
       case EDJE_STATE_PARAM_MAP_LIGNT:
         CHKPARAM(3);
         
-        GETINT(rp->custom->description->map.id_light, params[3]);
+        GETINT(rp->custom->description->common.map.id_light, params[3]);
         
         break;
       case EDJE_STATE_PARAM_MAP_ROT_CENTER:
         CHKPARAM(3);
         
-        GETINT(rp->custom->description->map.rot.id_center, params[3]);
+        GETINT(rp->custom->description->common.map.rot.id_center, params[3]);
         
         break;
       case EDJE_STATE_PARAM_MAP_ROT_X:
         CHKPARAM(3);
 
-        GETFLOAT_T(rp->custom->description->map.rot.x, params[3]);
+        GETFLOAT_T(rp->custom->description->common.map.rot.x, params[3]);
 
         break;
       case EDJE_STATE_PARAM_MAP_ROT_Y:
         CHKPARAM(3);
         
-        GETFLOAT_T(rp->custom->description->map.rot.y, params[3]);
+        GETFLOAT_T(rp->custom->description->common.map.rot.y, params[3]);
         
         break;
       case EDJE_STATE_PARAM_MAP_ROT_Z:
         CHKPARAM(3);
         
-        GETFLOAT_T(rp->custom->description->map.rot.z, params[3]);
+        GETFLOAT_T(rp->custom->description->common.map.rot.z, params[3]);
 
         break;
       case EDJE_STATE_PARAM_MAP_BACK_CULL:
         CHKPARAM(3);
         
-        GETINT(rp->custom->description->map.backcull, params[3]);
+        GETINT(rp->custom->description->common.map.backcull, params[3]);
         
         break;
       case EDJE_STATE_PARAM_MAP_PERSP_ON:
         CHKPARAM(3);
         
-        GETINT(rp->custom->description->map.persp_on, params[3]);
+        GETINT(rp->custom->description->common.map.persp_on, params[3]);
         
         break;
       case EDJE_STATE_PARAM_PERSP_ZPLANE:
         CHKPARAM(3);
         
-        GETINT(rp->custom->description->persp.zplane, params[3]);
+        GETINT(rp->custom->description->common.persp.zplane, params[3]);
         
         break;
       case EDJE_STATE_PARAM_PERSP_FOCAL:
         CHKPARAM(3);
         
-        GETINT(rp->custom->description->persp.focal, params[3]);
+        GETINT(rp->custom->description->common.persp.focal, params[3]);
         
         break;
       default:
@@ -2016,42 +2016,42 @@ _edje_embryo_fn_get_state_val(Embryo_Program *ep, Embryo_Cell *params)
       case EDJE_STATE_PARAM_ALIGNMENT:
         CHKPARAM(4);
 
-        SETFLOAT_T(rp->custom->description->align.x, params[3]);
-        SETFLOAT_T(rp->custom->description->align.y, params[4]);
+        SETFLOAT_T(rp->custom->description->common.align.x, params[3]);
+        SETFLOAT_T(rp->custom->description->common.align.y, params[4]);
 
         break;
       case EDJE_STATE_PARAM_MIN:
         CHKPARAM(4);
 
-        SETINT(rp->custom->description->min.w, params[3]);
-        SETINT(rp->custom->description->min.h, params[4]);
+        SETINT(rp->custom->description->common.min.w, params[3]);
+        SETINT(rp->custom->description->common.min.h, params[4]);
 
         break;
       case EDJE_STATE_PARAM_MAX:
         CHKPARAM(4);
 
-        SETINT(rp->custom->description->max.w, params[3]);
-        SETINT(rp->custom->description->max.h, params[4]);
+        SETINT(rp->custom->description->common.max.w, params[3]);
+        SETINT(rp->custom->description->common.max.h, params[4]);
 
         break;
       case EDJE_STATE_PARAM_STEP:
         CHKPARAM(4);
 
-        SETINT(rp->custom->description->step.x, params[3]);
-        SETINT(rp->custom->description->step.y, params[4]);
+        SETINT(rp->custom->description->common.step.x, params[3]);
+        SETINT(rp->custom->description->common.step.y, params[4]);
 
         break;
       case EDJE_STATE_PARAM_ASPECT:
         CHKPARAM(4);
 
-        SETFLOAT_T(rp->custom->description->aspect.min, params[3]);
-        SETFLOAT_T(rp->custom->description->aspect.max, params[4]);
+        SETFLOAT_T(rp->custom->description->common.aspect.min, params[3]);
+        SETFLOAT_T(rp->custom->description->common.aspect.max, params[4]);
 
         break;
       case EDJE_STATE_PARAM_ASPECT_PREF:
         CHKPARAM(3);
 
-        SETINT(rp->custom->description->aspect.prefer, params[3]);
+        SETINT(rp->custom->description->common.aspect.prefer, params[3]);
 
         break;
       case EDJE_STATE_PARAM_COLOR:
@@ -2091,43 +2091,43 @@ _edje_embryo_fn_get_state_val(Embryo_Program *ep, Embryo_Cell *params)
       case EDJE_STATE_PARAM_REL1:
         CHKPARAM(4);
 
-        SETFLOAT_T(rp->custom->description->rel1.relative_x, params[3]);
-        SETFLOAT_T(rp->custom->description->rel1.relative_y, params[4]);
+        SETFLOAT_T(rp->custom->description->common.rel1.relative_x, params[3]);
+        SETFLOAT_T(rp->custom->description->common.rel1.relative_y, params[4]);
 
         break;
       case EDJE_STATE_PARAM_REL1_TO:
         CHKPARAM(4);
 
-        SETINT(rp->custom->description->rel1.id_x, params[3]);
-        SETINT(rp->custom->description->rel1.id_y, params[4]);
+        SETINT(rp->custom->description->common.rel1.id_x, params[3]);
+        SETINT(rp->custom->description->common.rel1.id_y, params[4]);
 
         break;
       case EDJE_STATE_PARAM_REL1_OFFSET:
         CHKPARAM(4);
 
-        SETINT(rp->custom->description->rel1.offset_x, params[3]);
-        SETINT(rp->custom->description->rel1.offset_y, params[4]);
+        SETINT(rp->custom->description->common.rel1.offset_x, params[3]);
+        SETINT(rp->custom->description->common.rel1.offset_y, params[4]);
 
         break;
       case EDJE_STATE_PARAM_REL2:
         CHKPARAM(4);
 
-        SETFLOAT_T(rp->custom->description->rel2.relative_x, params[3]);
-        SETFLOAT_T(rp->custom->description->rel2.relative_y, params[4]);
+        SETFLOAT_T(rp->custom->description->common.rel2.relative_x, params[3]);
+        SETFLOAT_T(rp->custom->description->common.rel2.relative_y, params[4]);
 
         break;
       case EDJE_STATE_PARAM_REL2_TO:
         CHKPARAM(4);
 
-        SETINT(rp->custom->description->rel2.id_x, params[3]);
-        SETINT(rp->custom->description->rel2.id_y, params[4]);
+        SETINT(rp->custom->description->common.rel2.id_x, params[3]);
+        SETINT(rp->custom->description->common.rel2.id_y, params[4]);
 
         break;
       case EDJE_STATE_PARAM_REL2_OFFSET:
         CHKPARAM(4);
 
-        SETINT(rp->custom->description->rel2.offset_x, params[3]);
-        SETINT(rp->custom->description->rel2.offset_y, params[4]);
+        SETINT(rp->custom->description->common.rel2.offset_x, params[3]);
+        SETINT(rp->custom->description->common.rel2.offset_y, params[4]);
 
         break;
       case EDJE_STATE_PARAM_IMAGE:
@@ -2256,7 +2256,7 @@ _edje_embryo_fn_get_state_val(Embryo_Program *ep, Embryo_Cell *params)
       case EDJE_STATE_PARAM_VISIBLE:
         CHKPARAM(3);
 
-        SETINT(rp->custom->description->visible, params[3]);
+        SETINT(rp->custom->description->common.visible, params[3]);
 
         break;
       default:
index 2de5c12..4ef0b75 100644 (file)
@@ -490,14 +490,14 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
                  for (i = 0; i < ed->table_parts_size; i++)
                    {
                       rp = ed->table_parts[i];
-                      if (rp->param1.description->rel1.id_x >= 0)
-                        rp->param1.rel1_to_x = ed->table_parts[rp->param1.description->rel1.id_x % ed->table_parts_size];
-                      if (rp->param1.description->rel1.id_y >= 0)
-                        rp->param1.rel1_to_y = ed->table_parts[rp->param1.description->rel1.id_y % ed->table_parts_size];
-                      if (rp->param1.description->rel2.id_x >= 0)
-                        rp->param1.rel2_to_x = ed->table_parts[rp->param1.description->rel2.id_x % ed->table_parts_size];
-                      if (rp->param1.description->rel2.id_y >= 0)
-                        rp->param1.rel2_to_y = ed->table_parts[rp->param1.description->rel2.id_y % ed->table_parts_size];
+                      if (rp->param1.description->common.rel1.id_x >= 0)
+                        rp->param1.rel1_to_x = ed->table_parts[rp->param1.description->common.rel1.id_x % ed->table_parts_size];
+                      if (rp->param1.description->common.rel1.id_y >= 0)
+                        rp->param1.rel1_to_y = ed->table_parts[rp->param1.description->common.rel1.id_y % ed->table_parts_size];
+                      if (rp->param1.description->common.rel2.id_x >= 0)
+                        rp->param1.rel2_to_x = ed->table_parts[rp->param1.description->common.rel2.id_x % ed->table_parts_size];
+                      if (rp->param1.description->common.rel2.id_y >= 0)
+                        rp->param1.rel2_to_y = ed->table_parts[rp->param1.description->common.rel2.id_y % ed->table_parts_size];
                       if (rp->part->clip_to_id >= 0)
                         {
                            rp->clip_to = ed->table_parts[rp->part->clip_to_id % ed->table_parts_size];
index 08d8ee8..32e2631 100644 (file)
@@ -231,6 +231,7 @@ typedef struct _Edje_Part_Collection                 Edje_Part_Collection;
 typedef struct _Edje_Part                            Edje_Part;
 typedef struct _Edje_Part_Image_Id                   Edje_Part_Image_Id;
 typedef struct _Edje_Part_Description                Edje_Part_Description;
+typedef struct _Edje_Part_Description_Common         Edje_Part_Description_Common;
 typedef struct _Edje_Patterns                        Edje_Patterns;
 
 typedef struct _Old_Edje_File                       Old_Edje_File;
@@ -626,7 +627,7 @@ struct _Edje_Part_Image_Id
    Eina_Bool set;
 };
 
-struct _Edje_Part_Description
+struct _Edje_Part_Description_Common
 {
    struct {
       double         value; /* the value of the state (for ranges) */
@@ -653,6 +654,32 @@ struct _Edje_Part_Description
    } rel1, rel2;
 
    struct {
+      int id_persp;
+      int id_light;
+      struct {
+         int id_center;
+         FLOAT_T x, y, z;
+      } rot;
+      unsigned char backcull;
+      unsigned char on;
+      unsigned char persp_on;
+      unsigned char smooth;
+      unsigned char alpha;
+   } map;
+
+   struct {
+      int zplane;
+      int focal;
+   } persp;
+
+   unsigned char     visible; /* is it shown */
+};
+
+struct _Edje_Part_Description
+{
+   Edje_Part_Description_Common common;
+
+   struct {
       Eina_List     *tween_list; /* list of Edje_Part_Image_Id */
       int            id; /* the image id to use */
       int            scale_hint; /* evas scale hint */
@@ -723,29 +750,8 @@ struct _Edje_Part_Description
       } padding;
    } table;
    
-   struct {
-      int id_persp;
-      int id_light;
-      struct {
-         int id_center;
-         FLOAT_T x, y, z;
-      } rot;
-      unsigned char backcull;
-      unsigned char on;
-      unsigned char persp_on;
-      unsigned char smooth;
-      unsigned char alpha;
-   } map;
-   
-   struct {
-      int zplane;
-      int focal;
-   } persp;
-   
    Edje_Color color, color2, color3;  /* color for rect or text, shadow etc. */
    Eina_List *external_params; /* parameters for external objects */
-
-   unsigned char     visible; /* is it shown */
 };
 
 
index 4356e00..7913719 100644 (file)
@@ -644,8 +644,8 @@ _edje_program_run(Edje *ed, Edje_Program *pr, Eina_Bool force, const char *ssig,
                            if (rp->program)
                              _edje_program_end(ed, rp->program);
                            _edje_part_description_apply(ed, rp,
-                                                        rp->param1.description->state.name,
-                                                        rp->param1.description->state.value,
+                                                        rp->param1.description->common.state.name,
+                                                        rp->param1.description->common.state.value,
                                                         pr->state,
                                                         pr->value);
                            _edje_part_pos_set(ed, rp, pr->tween.mode, ZERO);
@@ -1136,7 +1136,7 @@ static Eina_Bool _edje_glob_callback(Edje_Program *pr, void *dt)
      {
        rp = _edje_real_part_get(data->ed, pr->filter.part ? pr->filter.part : data->source);
        if (rp)
-         exec = (rp->chosen_description->state.name == pr->filter.state);
+         exec = (rp->chosen_description->common.state.name == pr->filter.state);
      }
 
    if (exec)
index 593e887..27edf02 100644 (file)
@@ -2855,7 +2855,7 @@ edje_object_size_min_restricted_calc(Evas_Object *obj, Evas_Coord *minw, Evas_Co
             didw = 0;
             if (ep->chosen_description)
               {
-                 if (!ep->chosen_description->fixed.w)
+                 if (!ep->chosen_description->common.fixed.w)
                    {
                       if (w > maxw)
                         {
@@ -2869,7 +2869,7 @@ edje_object_size_min_restricted_calc(Evas_Object *obj, Evas_Coord *minw, Evas_Co
                            /* FIXME: do something */
                         }
                    }
-                 if (!ep->chosen_description->fixed.h)
+                 if (!ep->chosen_description->common.fixed.h)
                    {
                       if (!((ep->part->type == EDJE_PART_TYPE_TEXTBLOCK) &&
                             (!ep->chosen_description->text.min_x) &&
@@ -2959,18 +2959,18 @@ edje_object_part_state_get(const Evas_Object *obj, const char *part, double *val
      }
    if (rp->chosen_description)
      {
-       if (val_ret) *val_ret = rp->chosen_description->state.value;
-       if (rp->chosen_description->state.name)
-         return rp->chosen_description->state.name;
+       if (val_ret) *val_ret = rp->chosen_description->common.state.value;
+       if (rp->chosen_description->common.state.name)
+         return rp->chosen_description->common.state.name;
        return "default";
      }
    else
      {
        if (rp->param1.description)
          {
-            if (val_ret) *val_ret = rp->param1.description->state.value;
-            if (rp->param1.description->state.name)
-              return rp->param1.description->state.name;
+            if (val_ret) *val_ret = rp->param1.description->common.state.value;
+            if (rp->param1.description->common.state.name)
+              return rp->param1.description->common.state.name;
             return "default";
          }
      }