could be passed to it easily.
]]
}
- @property id {
- [[ The id/name of the object.
+ @property name {
+ [[ The name of the object.
Every object can have a string name. Names may not contain
the following charactors:
/ ? * [ ] ! \ :
They are illegal. Using it in a name will result in undefined
behavior later on. An empty string is considered the same as a
- NULL string or no string for the name/id at all.
+ NULL string or no string for the name at all.
]]
set {
}
get {
}
values {
- id: const(char)* @nullable; [[the id/name]]
+ name: const(char)* @nullable; [[the name]]
}
}
@property comment {
[[Called at the end of #eo_add. Should not be called, just overridden.]]
return: Eo.Base *; [[The new object created, can be NULL if aborting]]
}
- id_find {
- [[Find a child object with the given name/id and return it.
+ name_find {
+ [[Find a child object with the given name and return it.
The search string can be a glob (shell style). It can also
specify class name in the format of "class:name" where ":"
separates class and name. Both class and name can be globs.
the search will match any object of that class.
]]
params {
- @in search: const(char)*; [[the name/id search string]]
+ @in search: const(char)*; [[the name search string]]
}
return: Eo.Base *; [[the first object found]]
}
typedef struct
{
- const char *id;
+ const char *name;
const char *comment;
Eo *composite_parent;
Eina_Inlist *generic_data;
_eo_base_extension_noneed(Eo_Base_Data *pd)
{
Eo_Base_Extension *ext = pd->ext;
- if ((!ext) || (ext->id) || (ext->comment) || (ext->generic_data) ||
+ if ((!ext) || (ext->name) || (ext->comment) || (ext->generic_data) ||
(ext->wrefs) || (ext->composite_parent)) return;
_eo_base_extension_free(pd->ext);
pd->ext = NULL;
}
EOLIAN static void
-_eo_base_id_set(Eo *obj EINA_UNUSED, Eo_Base_Data *pd, const char *id)
+_eo_base_name_set(Eo *obj EINA_UNUSED, Eo_Base_Data *pd, const char *name)
{
- if ((id) && (!id[0])) id = NULL;
- if (id)
+ if ((name) && (!name[0])) name = NULL;
+ if (name)
{
_eo_base_extension_need(pd);
- if (pd->ext) eina_stringshare_replace(&(pd->ext->id), id);
+ if (pd->ext) eina_stringshare_replace(&(pd->ext->name), name);
}
else
{
if (!pd->ext) return;
- if (pd->ext->id)
+ if (pd->ext->name)
{
- eina_stringshare_replace(&(pd->ext->id), id);
+ eina_stringshare_replace(&(pd->ext->name), name);
_eo_base_extension_noneed(pd);
}
}
}
EOLIAN static const char *
-_eo_base_id_get(Eo *obj EINA_UNUSED, Eo_Base_Data *pd)
+_eo_base_name_get(Eo *obj EINA_UNUSED, Eo_Base_Data *pd)
{
if (!pd->ext) return NULL;
- return pd->ext->id;
+ return pd->ext->name;
}
static inline Eina_Bool
-_idmatch(const char *match, Eina_Bool is_glob, const char *str)
+_name_match(const char *match, Eina_Bool is_glob, const char *str)
{
if (str)
{
}
EOLIAN static Eo_Base *
-_eo_base_id_find(Eo *obj EINA_UNUSED, Eo_Base_Data *pd, const char *search)
+_eo_base_name_find(Eo *obj EINA_UNUSED, Eo_Base_Data *pd, const char *search)
{
Eo *child;
_Eo_Object *child_eo;
- const char *id, *p, *klass_name;
+ const char *name, *p, *klass_name;
// notes:
// if search contains NO "/" char, then its just a name search.
{
// "class:name"
char *klass;
- char *name;
+ char *search_name;
size_t colon_location = p - search;
Eina_Bool klass_glob = EINA_FALSE;
Eina_Bool name_glob = EINA_FALSE;
klass = alloca(strlen(search) + 1);
strcpy(klass, search);
klass[colon_location] = '\0';
- name = klass + colon_location + 1;
+ search_name = klass + colon_location + 1;
// figure out if class or name are globs
klass_glob = _hasglob(klass);
- name_glob = _hasglob(name);
+ name_glob = _hasglob(search_name);
EINA_INLIST_FOREACH(pd->children, child_eo)
{
child = _eo_obj_id_get(child_eo);
- id = eo_id_get(child);
+ name = eo_name_get(child);
klass_name = eo_class_name_get(eo_class_get(child));
- if (_idmatch(klass, klass_glob, klass_name) &&
- (((!_matchall(klass)) && (!id) && (_matchall(name))) ||
- ((id) && _idmatch(name, name_glob, id))))
+ if (_name_match(klass, klass_glob, klass_name) &&
+ (((!_matchall(klass)) && (!name) && (_matchall(search_name))) ||
+ ((name) && _name_match(search_name, name_glob, name))))
return child;
- child = eo_id_find(child, search);
+ child = eo_name_find(child, search);
if (child) return child;
}
}
EINA_INLIST_FOREACH(pd->children, child_eo)
{
child = _eo_obj_id_get(child_eo);
- id = eo_id_get(child);
- if ((id) && (_idmatch(search, EINA_TRUE, id)))
+ name = eo_name_get(child);
+ if ((name) && (_name_match(search, EINA_TRUE, name)))
return child;
- child = eo_id_find(child, search);
+ child = eo_name_find(child, search);
if (child) return child;
}
}
EINA_INLIST_FOREACH(pd->children, child_eo)
{
child = _eo_obj_id_get(child_eo);
- id = eo_id_get(child);
- if ((id) && (_idmatch(search, EINA_FALSE, id)))
+ name = eo_name_get(child);
+ if ((name) && (_name_match(search, EINA_FALSE, name)))
return child;
- child = eo_id_find(child, search);
+ child = eo_name_find(child, search);
if (child) return child;
}
}
ext = pd->ext;
if (ext)
{
- eina_stringshare_del(ext->id);
- ext->id = NULL;
+ eina_stringshare_del(ext->name);
+ ext->name = NULL;
eina_stringshare_del(ext->comment);
ext->comment = NULL;
_eo_base_extension_free(ext);
Eo *objtmp;
const char *id;
- id = eo_id_get(obj);
+ id = eo_name_get(obj);
fail_if(NULL != id);
- eo_id_set(obj, "Hello");
- id = eo_id_get(obj);
+ eo_name_set(obj, "Hello");
+ id = eo_name_get(obj);
fail_if(NULL == id);
fail_if(!!strcmp(id, "Hello"));
- eo_id_set(obj, "Hello");
- eo_id_set(obj, "");
- id = eo_id_get(obj);
+ eo_name_set(obj, "Hello");
+ eo_name_set(obj, "");
+ id = eo_name_get(obj);
fail_if(NULL != id);
- eo_id_set(obj, "Hello");
- eo_id_set(obj, NULL);
- id = eo_id_get(obj);
+ eo_name_set(obj, "Hello");
+ eo_name_set(obj, NULL);
+ id = eo_name_get(obj);
fail_if(NULL != id);
- eo_id_set(obj2, "joe");
- eo_id_set(obj3, "bob");
+ eo_name_set(obj2, "joe");
+ eo_name_set(obj3, "bob");
eo_parent_set(obj2, obj);
eo_parent_set(obj3, obj2);
- objtmp = eo_id_find(obj, "bob");
+ objtmp = eo_name_find(obj, "bob");
fail_if(objtmp != obj3);
- objtmp = eo_id_find(obj, "joe");
+ objtmp = eo_name_find(obj, "joe");
fail_if(objtmp != obj2);
- objtmp = eo_id_find(obj, "bo*");
+ objtmp = eo_name_find(obj, "bo*");
fail_if(objtmp != obj3);
- objtmp = eo_id_find(obj, "*oe");
+ objtmp = eo_name_find(obj, "*oe");
fail_if(objtmp != obj2);
- objtmp = eo_id_find(obj, "Simple:*oe");
+ objtmp = eo_name_find(obj, "Simple:*oe");
fail_if(objtmp != obj2);
- objtmp = eo_id_find(obj, "*mple:joe");
+ objtmp = eo_name_find(obj, "*mple:joe");
fail_if(objtmp != obj2);
eo_del(obj);