edje_cc: add "id" toplevel property

this can be used by edje files to identify themselves
This commit is contained in:
Mike Blumenkrantz 2018-02-26 16:21:44 -05:00
parent 30378f26fa
commit 3a86768f3b
4 changed files with 29 additions and 0 deletions

View File

@ -202,6 +202,7 @@ static void *_part_free(Edje_Part_Collection *pc, Edje_Part *ep);
static void check_has_anchors(void);
static void st_id(void);
static void st_efl_version(void);
static void st_externals_external(void);
@ -701,6 +702,7 @@ static void _handle_vector_image(void);
New_Statement_Handler statement_handlers[] =
{
{"id", st_id},
{"efl_version", st_efl_version},
{"externals.external", st_externals_external},
IMAGE_STATEMENTS("")
@ -2223,6 +2225,30 @@ st_efl_version(void)
edje_file->efl_version.minor = parse_int(1);
}
/** @edcsubsection{toplevel_id,
* id} */
/**
@page edcref
@property
id
@parameters
[name]
@effect
A string which is used to identify the edje file.
@since 1.21
@endproperty
*/
static void
st_id(void)
{
check_arg_count(1);
free(edje_file->id);
edje_file->id = parse_str(0);
}
/** @edcsubsection{toplevel_externals,
* Externals} */

View File

@ -613,6 +613,7 @@ _edje_edd_init(void)
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_file, Edje_File, "efl_version.major", efl_version.major, EET_T_INT);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_file, Edje_File, "efl_version.minor", efl_version.minor, EET_T_INT);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_file, Edje_File, "base_scale", base_scale, EDJE_T_FLOAT);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_file, Edje_File, "id", id, EET_T_STRING);
EET_DATA_DESCRIPTOR_ADD_SUB(_edje_edd_edje_file, Edje_File, "external_dir", external_dir, _edje_edd_edje_external_directory);
EET_DATA_DESCRIPTOR_ADD_SUB(_edje_edd_edje_file, Edje_File, "image_dir", image_dir, _edje_edd_edje_image_directory);
EET_DATA_DESCRIPTOR_ADD_SUB(_edje_edd_edje_file, Edje_File, "model_dir", model_dir, _edje_edd_edje_model_directory);

View File

@ -2229,6 +2229,7 @@ _edje_file_free(Edje_File *edf)
if (edf->collection_patterns) edje_match_patterns_free(edf->collection_patterns);
if (edf->path) eina_stringshare_del(edf->path);
if (edf->free_strings && edf->compiler) eina_stringshare_del(edf->compiler);
if (edf->free_strings) eina_stringshare_del(edf->id);
_edje_textblock_style_cleanup(edf);
if (edf->ef) eet_close(edf->ef);
if (edf->f) eina_file_close(edf->f);

View File

@ -600,6 +600,7 @@ struct _Edje_File
int major;
int minor;
} efl_version;
Eina_Stringshare *id;
FLOAT_T base_scale;