forked from enlightenment/efl
evas: add getter for devices by name
Make it possible to get the evas device given its name. It sounds useful for Edje since programs will reference seats by name.
This commit is contained in:
parent
25792d6416
commit
2958aba23a
|
@ -1239,6 +1239,22 @@ EAPI void evas_device_pop(Evas *e);
|
|||
*/
|
||||
EAPI const Eina_List *evas_device_list(Evas *e, const Evas_Device *dev);
|
||||
|
||||
/**
|
||||
* Get a device by its name
|
||||
*
|
||||
* @param e The canvas to create the device node for.
|
||||
* @param name The name of the device.
|
||||
*
|
||||
* Gets the first ocurrence of a device named as @p name
|
||||
* on Evas @p e list of devices.
|
||||
*
|
||||
* @return the device or NULL if an error occurred, no name was provided,
|
||||
* or no device with a matching name was found.
|
||||
*
|
||||
* @since 1.19
|
||||
*/
|
||||
EAPI Evas_Device *evas_device_get(Evas *e, const char *name);
|
||||
|
||||
/**
|
||||
* Set the name of a device as a string
|
||||
*
|
||||
|
|
|
@ -94,6 +94,32 @@ _del_cb(void *data, const Efl_Event *ev)
|
|||
ev->object);
|
||||
}
|
||||
|
||||
EAPI Evas_Device *
|
||||
evas_device_get(Evas *eo_e, const char *name)
|
||||
{
|
||||
const char *dev_name;
|
||||
Evas_Public_Data *e;
|
||||
Evas_Device *dev;
|
||||
Eina_List *l;
|
||||
|
||||
SAFETY_CHECK(eo_e, EVAS_CANVAS_CLASS, NULL);
|
||||
|
||||
if (!name)
|
||||
return NULL;
|
||||
|
||||
e = efl_data_scope_get(eo_e, EVAS_CANVAS_CLASS);
|
||||
|
||||
EINA_LIST_FOREACH(e->devices, l, dev)
|
||||
{
|
||||
dev_name = efl_input_device_name_get(dev);
|
||||
|
||||
if (eina_streq(dev_name, name))
|
||||
return dev;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
EAPI Evas_Device *
|
||||
evas_device_add(Evas *eo_e)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue