From d01355b1399151c6feb0ae8bf4eacd8161f786eb Mon Sep 17 00:00:00 2001 From: rephorm Date: Sat, 2 Sep 2006 05:10:17 +0000 Subject: [PATCH] convenience function for testing if groups are in an edje SVN revision: 25327 --- legacy/edje/src/lib/Edje.h | 1 + legacy/edje/src/lib/edje_load.c | 35 +++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/legacy/edje/src/lib/Edje.h b/legacy/edje/src/lib/Edje.h index 1604dd3166..c548150632 100644 --- a/legacy/edje/src/lib/Edje.h +++ b/legacy/edje/src/lib/Edje.h @@ -169,6 +169,7 @@ extern "C" { /* edje_load.c */ EAPI Evas_List *edje_file_collection_list (const char *file); EAPI void edje_file_collection_list_free (Evas_List *lst); + EAPI int edje_file_group_exists (const char *file, const char *glob); EAPI char *edje_file_data_get (const char *file, const char *key); EAPI void edje_file_cache_set (int count); EAPI int edje_file_cache_get (void); diff --git a/legacy/edje/src/lib/edje_load.c b/legacy/edje/src/lib/edje_load.c index 6ad9ad397c..4425fbd6ae 100644 --- a/legacy/edje/src/lib/edje_load.c +++ b/legacy/edje/src/lib/edje_load.c @@ -433,6 +433,41 @@ edje_file_collection_list_free(Evas_List *lst) } } +/** Determine whether a group matching glob exists in an edje file. + * @param file The file path + * @param glob A glob to match on + * + * @return 1 if a match is found, 0 otherwise + */ +EAPI int +edje_file_group_exists(const char *file, const char *glob) +{ + Evas_List *lst = NULL; + Edje_File *edf; + int error_ret = 0; + + if ((!file) || (!*file)) return NULL; + edf = _edje_cache_file_coll_open(file, NULL, &error_ret, NULL); + if (edf != NULL) + { + if (edf->collection_dir) + { + Evas_List *l; + + for (l = edf->collection_dir->entries; l; l = l->next) + { + Edje_Part_Collection_Directory_Entry *ce; + + ce = l->data; + if (_edje_glob_match(ce->entry, glob)) return 1; + } + } + _edje_cache_file_unref(edf); + } + return 0; +} + + /* FIXDOC: Verify/Expand */ /** Get edje file data * @param file The file