forked from enlightenment/efl
improve readability of image find in edje. :)
SVN revision: 79107
This commit is contained in:
parent
23f5f378fe
commit
121c87e091
|
@ -315,67 +315,63 @@ _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)
|
evas_object_geometry_get(obj, NULL, NULL, &w, &h);
|
||||||
return imid->id;
|
if (eps && *eps)
|
||||||
|
{
|
||||||
|
if ((*eps)->id == id) set = (*eps)->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))
|
||||||
|
{
|
||||||
|
return (*eps)->entry->id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (imid)
|
if (!set) set = ed->file->image_dir->sets + id;
|
||||||
id = imid->id;
|
|
||||||
else
|
|
||||||
id = st->image.id;
|
|
||||||
|
|
||||||
evas_object_geometry_get(obj, NULL, NULL, &w, &h);
|
EINA_LIST_FOREACH(set->entries, l, entry)
|
||||||
|
{
|
||||||
|
if ((entry->size.min.w <= w) && (w <= entry->size.max.w))
|
||||||
|
{
|
||||||
|
if ((entry->size.min.h <= h) && (h <= entry->size.max.h))
|
||||||
|
{
|
||||||
|
if (eps)
|
||||||
|
{
|
||||||
|
if (!*eps) *eps = calloc(1, sizeof(Edje_Real_Part_Set));
|
||||||
|
if (*eps)
|
||||||
|
{
|
||||||
|
(*eps)->entry = entry;
|
||||||
|
(*eps)->set = set;
|
||||||
|
(*eps)->id = id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return entry->id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (eps && *eps)
|
return -1;
|
||||||
{
|
|
||||||
if ((*eps)->id == id)
|
|
||||||
set = (*eps)->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)
|
|
||||||
return (*eps)->entry->id;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!set)
|
|
||||||
set = ed->file->image_dir->sets + id;
|
|
||||||
|
|
||||||
EINA_LIST_FOREACH(set->entries, l, entry)
|
|
||||||
{
|
|
||||||
if (entry->size.min.w <= w && w <= entry->size.max.w)
|
|
||||||
if (entry->size.min.h <= h && h <= entry->size.max.h)
|
|
||||||
{
|
|
||||||
if (eps)
|
|
||||||
{
|
|
||||||
if (!*eps)
|
|
||||||
*eps = calloc(1, sizeof (Edje_Real_Part_Set));
|
|
||||||
|
|
||||||
if (*eps)
|
|
||||||
{
|
|
||||||
(*eps)->entry = entry;
|
|
||||||
(*eps)->set = set;
|
|
||||||
(*eps)->id = id;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return entry->id;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Reference in New Issue