* edje: start to split structure content.

SVN revision: 50279
This commit is contained in:
Cedric BAIL 2010-07-16 11:37:58 +00:00
parent 6f110efad1
commit 30d35eb1ba
10 changed files with 535 additions and 522 deletions

View 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);
}

View 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);
}
}

View 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);

View 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);

View 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
}

View 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:

View 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];

View 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) */
@ -652,6 +653,32 @@ struct _Edje_Part_Description
int id_y; /* -1 = whole part collection, or part ID */
} 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 */
@ -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 */
};

View 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)

View 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";
}
}