improve readability of image find in edje. :)

SVN revision: 79107
This commit is contained in:
Carsten Haitzler 2012-11-11 08:26:25 +00:00
parent 23f5f378fe
commit 121c87e091
1 changed files with 56 additions and 60 deletions

View File

@ -315,55 +315,50 @@ _edje_part_description_find(Edje *ed, Edje_Real_Part *rp, const char *name,
} }
static int static int
_edje_image_find(Evas_Object *obj, Edje *ed, Edje_Real_Part_Set **eps, Edje_Part_Description_Image *st, Edje_Part_Image_Id *imid) _edje_image_find(Evas_Object *obj, Edje *ed, Edje_Real_Part_Set **eps,
Edje_Part_Description_Image *st, Edje_Part_Image_Id *imid)
{ {
Edje_Image_Directory_Set_Entry *entry; Edje_Image_Directory_Set_Entry *entry;
Edje_Image_Directory_Set *set = NULL; Edje_Image_Directory_Set *set = NULL;
Eina_List *l; Eina_List *l;
int w = 0; int w = 0, h = 0, id;
int h = 0;
int id;
if (!st && !imid) if (!st && !imid) return -1;
return -1; if (st && !st->image.set) return st->image.id;
if (imid && !imid->set) return imid->id;
if (st && !st->image.set) if (imid) id = imid->id;
return st->image.id; else id = st->image.id;
if (imid && !imid->set)
return imid->id;
if (imid)
id = imid->id;
else
id = st->image.id;
evas_object_geometry_get(obj, NULL, NULL, &w, &h); evas_object_geometry_get(obj, NULL, NULL, &w, &h);
if (eps && *eps) if (eps && *eps)
{ {
if ((*eps)->id == id) if ((*eps)->id == id) set = (*eps)->set;
set = (*eps)->set;
if (set) if (set)
if ((*eps)->entry->size.min.w <= w && w <= (*eps)->entry->size.max.w) {
if ((*eps)->entry->size.min.h <= h && h <= (*eps)->entry->size.max.h) if (((*eps)->entry->size.min.w <= w) &&
(w <= (*eps)->entry->size.max.w))
{
if (((*eps)->entry->size.min.h <= h) &&
(h <= (*eps)->entry->size.max.h))
{
return (*eps)->entry->id; return (*eps)->entry->id;
} }
}
}
}
if (!set) if (!set) set = ed->file->image_dir->sets + id;
set = ed->file->image_dir->sets + id;
EINA_LIST_FOREACH(set->entries, l, entry) EINA_LIST_FOREACH(set->entries, l, entry)
{ {
if (entry->size.min.w <= w && w <= entry->size.max.w) if ((entry->size.min.w <= w) && (w <= entry->size.max.w))
if (entry->size.min.h <= h && h <= entry->size.max.h) {
if ((entry->size.min.h <= h) && (h <= entry->size.max.h))
{ {
if (eps) if (eps)
{ {
if (!*eps) if (!*eps) *eps = calloc(1, sizeof(Edje_Real_Part_Set));
*eps = calloc(1, sizeof (Edje_Real_Part_Set));
if (*eps) if (*eps)
{ {
(*eps)->entry = entry; (*eps)->entry = entry;
@ -374,6 +369,7 @@ _edje_image_find(Evas_Object *obj, Edje *ed, Edje_Real_Part_Set **eps, Edje_Part
return entry->id; return entry->id;
} }
} }
}
return -1; return -1;
} }