forked from enlightenment/efl
add new evas device api. it is a STARt right now, and liable to
change, thus no docs at this time, but ready for them. SVN revision: 76752
This commit is contained in:
parent
42e427e2c7
commit
2a06a94b1e
|
@ -1039,3 +1039,8 @@
|
||||||
2012-09-14 Carsten Haitzler (The Rasterman)
|
2012-09-14 Carsten Haitzler (The Rasterman)
|
||||||
|
|
||||||
* Add env EVAS_GL_NO_BLACKLIST to disable blacklisting.
|
* Add env EVAS_GL_NO_BLACKLIST to disable blacklisting.
|
||||||
|
|
||||||
|
2012-09-17 Carsten Haitzler (The Rasterman)
|
||||||
|
|
||||||
|
* Add evas_device API for being able to register devices, set
|
||||||
|
their names, descriptions, classes, parents, sources etc. etc.
|
||||||
|
|
|
@ -7,6 +7,7 @@ Additions:
|
||||||
|
|
||||||
* WEBP image loader support.
|
* WEBP image loader support.
|
||||||
* EVAS_CALLBACK_IMAGE_RESIZE.
|
* EVAS_CALLBACK_IMAGE_RESIZE.
|
||||||
|
* Evas_Device registration/manipulation/querying API
|
||||||
|
|
||||||
Improvements:
|
Improvements:
|
||||||
|
|
||||||
|
|
|
@ -446,6 +446,7 @@ typedef enum _Evas_Callback_Type
|
||||||
EVAS_CALLBACK_RENDER_POST, /**< Called just after rendering stops on the canvas target @since 1.2 */
|
EVAS_CALLBACK_RENDER_POST, /**< Called just after rendering stops on the canvas target @since 1.2 */
|
||||||
|
|
||||||
EVAS_CALLBACK_IMAGE_RESIZE, /**< Image size is changed @since 1.8 */
|
EVAS_CALLBACK_IMAGE_RESIZE, /**< Image size is changed @since 1.8 */
|
||||||
|
EVAS_CALLBACK_DEVICE_CHANGED, /**< Devices added, removed or changed on canvas @since 1.8 */
|
||||||
EVAS_CALLBACK_LAST /**< kept as last element/sentinel -- not really an event */
|
EVAS_CALLBACK_LAST /**< kept as last element/sentinel -- not really an event */
|
||||||
} Evas_Callback_Type; /**< The types of events triggering a callback */
|
} Evas_Callback_Type; /**< The types of events triggering a callback */
|
||||||
|
|
||||||
|
@ -880,6 +881,18 @@ typedef enum _Evas_Image_Content_Hint
|
||||||
EVAS_IMAGE_CONTENT_HINT_STATIC = 2 /**< The contents won't change over time */
|
EVAS_IMAGE_CONTENT_HINT_STATIC = 2 /**< The contents won't change over time */
|
||||||
} Evas_Image_Content_Hint; /**< How an image's data is to be treated by Evas, for optimization */
|
} Evas_Image_Content_Hint; /**< How an image's data is to be treated by Evas, for optimization */
|
||||||
|
|
||||||
|
typedef enum _Evas_Device_Class
|
||||||
|
{
|
||||||
|
EVAS_DEVICE_CLASS_NONE, /**< Not a device @since 1.8 */
|
||||||
|
EVAS_DEVICE_CLASS_SEAT, /**< The user/seat (the user themselves) @since 1.8 */
|
||||||
|
EVAS_DEVICE_CLASS_KEYBOARD, /**< A regular keyboard, numberpad or attached buttons @since 1.8 */
|
||||||
|
EVAS_DEVICE_CLASS_MOUSE, /**< A mouse, trackball or touchpad relative motion device @since 1.8 */
|
||||||
|
EVAS_DEVICE_CLASS_TOUCH, /**< A touchscreen with fingers or stylus @since 1.8 */
|
||||||
|
EVAS_DEVICE_CLASS_PEN, /**< A special pen device @since 1.8 */
|
||||||
|
EVAS_DEVICE_CLASS_POINTER, /**< A laser pointer, wii-style or "minority report" pointing device @since 1.8 */
|
||||||
|
EVAS_DEVICE_CLASS_GAMEPAD /**< A gamepad controller or joystick @since 1.8 */
|
||||||
|
} Evas_Device_Class;
|
||||||
|
|
||||||
struct _Evas_Engine_Info /** Generic engine information. Generic info is useless */
|
struct _Evas_Engine_Info /** Generic engine information. Generic info is useless */
|
||||||
{
|
{
|
||||||
int magic; /**< Magic number */
|
int magic; /**< Magic number */
|
||||||
|
@ -2162,6 +2175,7 @@ EAPI int evas_pointer_button_down_mask_get(const Evas *e) EINA_WAR
|
||||||
* @endcode
|
* @endcode
|
||||||
*/
|
*/
|
||||||
EAPI Eina_Bool evas_pointer_inside_get(const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
|
EAPI Eina_Bool evas_pointer_inside_get(const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
|
||||||
|
|
||||||
EAPI void evas_sync(Evas *e) EINA_ARG_NONNULL(1);
|
EAPI void evas_sync(Evas *e) EINA_ARG_NONNULL(1);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2544,6 +2558,81 @@ EAPI void evas_event_thaw_eval(Evas *e) EINA_ARG_NONNULL(1);
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
EAPI Evas_Device *evas_device_new(Evas *e);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
EAPI void evas_device_free(Evas_Device *dev);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
EAPI void evas_device_push(Evas *e, Evas_Device *dev);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
EAPI void evas_device_pop(Evas *e);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
EAPI const Eina_List *evas_device_list(Evas *e, const Evas_Device *dev);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
EAPI void evas_device_name_set(Evas_Device *dev, const char *name);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
EAPI const char *evas_device_name_get(const Evas_Device *dev);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
EAPI void evas_device_description_set(Evas_Device *dev, const char *desc);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
EAPI const char *evas_device_description_get(const Evas_Device *dev);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
EAPI void evas_device_parent_set(Evas_Device *dev, Evas_Device *parent);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
EAPI const Evas_Device *evas_device_parent_get(const Evas_Device *dev);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
EAPI void evas_device_class_set(Evas_Device *dev, Evas_Device_Class clas);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
EAPI Evas_Device_Class evas_device_class_get(const Evas_Device *dev);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
EAPI void evas_device_emulation_source_set(Evas_Device *dev, Evas_Device *src);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
EAPI const Evas_Device *evas_device_emulation_source_get(const Evas_Device *dev);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the number of mouse or multi presses currently active
|
* Get the number of mouse or multi presses currently active
|
||||||
*
|
*
|
||||||
|
|
|
@ -23,6 +23,7 @@ libevas_canvas_la_SOURCES = \
|
||||||
evas_callbacks.c \
|
evas_callbacks.c \
|
||||||
evas_clip.c \
|
evas_clip.c \
|
||||||
evas_data.c \
|
evas_data.c \
|
||||||
|
evas_device.c \
|
||||||
evas_events.c \
|
evas_events.c \
|
||||||
evas_filter.c \
|
evas_filter.c \
|
||||||
evas_focus.c \
|
evas_focus.c \
|
||||||
|
|
|
@ -0,0 +1,253 @@
|
||||||
|
#include "evas_common.h"
|
||||||
|
#include "evas_private.h"
|
||||||
|
|
||||||
|
EAPI Evas_Device *
|
||||||
|
evas_device_new(Evas *e)
|
||||||
|
{
|
||||||
|
Evas_Device *dev;
|
||||||
|
|
||||||
|
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
|
||||||
|
return NULL;
|
||||||
|
MAGIC_CHECK_END();
|
||||||
|
dev = calloc(1, sizeof(Evas_Device));
|
||||||
|
if (!dev) return NULL;
|
||||||
|
dev->magic = MAGIC_DEV;
|
||||||
|
dev->evas = e;
|
||||||
|
dev->ref = 1;
|
||||||
|
e->devices = eina_list_append(e->devices, dev);
|
||||||
|
evas_event_callback_call(e, EVAS_CALLBACK_DEVICE_CHANGED, dev);
|
||||||
|
return dev;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
evas_device_free(Evas_Device *dev)
|
||||||
|
{
|
||||||
|
MAGIC_CHECK(dev, Evas_Device, MAGIC_DEV);
|
||||||
|
return;
|
||||||
|
MAGIC_CHECK_END();
|
||||||
|
if (dev->ref == 1)
|
||||||
|
{
|
||||||
|
Evas_Device *dev2;
|
||||||
|
|
||||||
|
EINA_LIST_FREE(dev->children, dev2)
|
||||||
|
{
|
||||||
|
dev2->parent = NULL;
|
||||||
|
evas_device_free(dev2);
|
||||||
|
}
|
||||||
|
if (dev->src)
|
||||||
|
{
|
||||||
|
_evas_device_unref(dev->src);
|
||||||
|
dev->src = NULL;
|
||||||
|
}
|
||||||
|
dev->parent = NULL;
|
||||||
|
}
|
||||||
|
_evas_device_unref(dev);
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
evas_device_push(Evas *e, Evas_Device *dev)
|
||||||
|
{
|
||||||
|
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
|
||||||
|
return;
|
||||||
|
MAGIC_CHECK_END();
|
||||||
|
MAGIC_CHECK(dev, Evas_Device, MAGIC_DEV);
|
||||||
|
return;
|
||||||
|
MAGIC_CHECK_END();
|
||||||
|
if (!e->cur_device)
|
||||||
|
{
|
||||||
|
e->cur_device = eina_array_new(4);
|
||||||
|
if (!e->cur_device) return;
|
||||||
|
}
|
||||||
|
dev->ref++;
|
||||||
|
eina_array_push(e->cur_device, dev);
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
evas_device_pop(Evas *e)
|
||||||
|
{
|
||||||
|
Evas_Device *dev;
|
||||||
|
|
||||||
|
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
|
||||||
|
return;
|
||||||
|
MAGIC_CHECK_END();
|
||||||
|
dev = eina_array_pop(e->cur_device);
|
||||||
|
if (dev) _evas_device_unref(dev);
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI const Eina_List *
|
||||||
|
evas_device_list(Evas *e, const Evas_Device *dev)
|
||||||
|
{
|
||||||
|
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
|
||||||
|
return NULL;
|
||||||
|
MAGIC_CHECK_END();
|
||||||
|
if (dev)
|
||||||
|
{
|
||||||
|
MAGIC_CHECK(dev, Evas_Device, MAGIC_DEV);
|
||||||
|
return NULL;
|
||||||
|
MAGIC_CHECK_END();
|
||||||
|
}
|
||||||
|
if (dev) return dev->children;
|
||||||
|
return e->devices;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
evas_device_name_set(Evas_Device *dev, const char *name)
|
||||||
|
{
|
||||||
|
MAGIC_CHECK(dev, Evas_Device, MAGIC_DEV);
|
||||||
|
return;
|
||||||
|
MAGIC_CHECK_END();
|
||||||
|
eina_stringshare_replace(&(dev->name), name);
|
||||||
|
evas_event_callback_call(dev->evas, EVAS_CALLBACK_DEVICE_CHANGED, dev);
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI const char *
|
||||||
|
evas_device_name_get(const Evas_Device *dev)
|
||||||
|
{
|
||||||
|
MAGIC_CHECK(dev, Evas_Device, MAGIC_DEV);
|
||||||
|
return NULL;
|
||||||
|
MAGIC_CHECK_END();
|
||||||
|
return dev->name;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
evas_device_description_set(Evas_Device *dev, const char *desc)
|
||||||
|
{
|
||||||
|
MAGIC_CHECK(dev, Evas_Device, MAGIC_DEV);
|
||||||
|
return;
|
||||||
|
MAGIC_CHECK_END();
|
||||||
|
eina_stringshare_replace(&(dev->desc), desc);
|
||||||
|
evas_event_callback_call(dev->evas, EVAS_CALLBACK_DEVICE_CHANGED, dev);
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI const char *
|
||||||
|
evas_device_description_get(const Evas_Device *dev)
|
||||||
|
{
|
||||||
|
MAGIC_CHECK(dev, Evas_Device, MAGIC_DEV);
|
||||||
|
return NULL;
|
||||||
|
MAGIC_CHECK_END();
|
||||||
|
return dev->desc;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
evas_device_parent_set(Evas_Device *dev, Evas_Device *parent)
|
||||||
|
{
|
||||||
|
MAGIC_CHECK(dev, Evas_Device, MAGIC_DEV);
|
||||||
|
return;
|
||||||
|
MAGIC_CHECK_END();
|
||||||
|
if (parent)
|
||||||
|
{
|
||||||
|
MAGIC_CHECK(parent, Evas_Device, MAGIC_DEV);
|
||||||
|
return;
|
||||||
|
MAGIC_CHECK_END();
|
||||||
|
}
|
||||||
|
if (dev->parent == parent) return;
|
||||||
|
if (dev->parent)
|
||||||
|
dev->parent->children = eina_list_remove(dev->parent->children, dev);
|
||||||
|
dev->parent = parent;
|
||||||
|
if (parent)
|
||||||
|
parent->children = eina_list_append(parent->children, dev);
|
||||||
|
evas_event_callback_call(dev->evas, EVAS_CALLBACK_DEVICE_CHANGED, dev);
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI const Evas_Device *
|
||||||
|
evas_device_parent_get(const Evas_Device *dev)
|
||||||
|
{
|
||||||
|
MAGIC_CHECK(dev, Evas_Device, MAGIC_DEV);
|
||||||
|
return NULL;
|
||||||
|
MAGIC_CHECK_END();
|
||||||
|
return dev->parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
evas_device_class_set(Evas_Device *dev, Evas_Device_Class clas)
|
||||||
|
{
|
||||||
|
MAGIC_CHECK(dev, Evas_Device, MAGIC_DEV);
|
||||||
|
return;
|
||||||
|
MAGIC_CHECK_END();
|
||||||
|
dev->clas = clas;
|
||||||
|
evas_event_callback_call(dev->evas, EVAS_CALLBACK_DEVICE_CHANGED, dev);
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI Evas_Device_Class
|
||||||
|
evas_device_class_get(const Evas_Device *dev)
|
||||||
|
{
|
||||||
|
MAGIC_CHECK(dev, Evas_Device, MAGIC_DEV);
|
||||||
|
return EVAS_DEVICE_CLASS_NONE;
|
||||||
|
MAGIC_CHECK_END();
|
||||||
|
return dev->clas;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
evas_device_emulation_source_set(Evas_Device *dev, Evas_Device *src)
|
||||||
|
{
|
||||||
|
MAGIC_CHECK(dev, Evas_Device, MAGIC_DEV);
|
||||||
|
return;
|
||||||
|
MAGIC_CHECK_END();
|
||||||
|
if (src)
|
||||||
|
{
|
||||||
|
MAGIC_CHECK(src, Evas_Device, MAGIC_DEV);
|
||||||
|
return;
|
||||||
|
MAGIC_CHECK_END();
|
||||||
|
}
|
||||||
|
if (dev->src == src) return;
|
||||||
|
if (dev->src) _evas_device_unref(dev->src);
|
||||||
|
dev->src = src;
|
||||||
|
if (dev->src) dev->src->ref++;
|
||||||
|
evas_event_callback_call(dev->evas, EVAS_CALLBACK_DEVICE_CHANGED, dev);
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI const Evas_Device *
|
||||||
|
evas_device_emulation_source_get(const Evas_Device *dev)
|
||||||
|
{
|
||||||
|
MAGIC_CHECK(dev, Evas_Device, MAGIC_DEV);
|
||||||
|
return NULL;
|
||||||
|
MAGIC_CHECK_END();
|
||||||
|
return dev->src;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
_evas_device_cleanup(Evas *e)
|
||||||
|
{
|
||||||
|
Evas_Device *dev;
|
||||||
|
|
||||||
|
if (e->cur_device)
|
||||||
|
{
|
||||||
|
while ((dev = eina_array_pop(e->cur_device)))
|
||||||
|
_evas_device_unref(dev);
|
||||||
|
eina_array_free(e->cur_device);
|
||||||
|
e->cur_device = NULL;
|
||||||
|
}
|
||||||
|
EINA_LIST_FREE(e->devices, dev)
|
||||||
|
{
|
||||||
|
evas_device_free(dev);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Evas_Device *
|
||||||
|
_evas_device_top_get(const Evas *e)
|
||||||
|
{
|
||||||
|
int num;
|
||||||
|
|
||||||
|
if (!e->cur_device) return NULL;
|
||||||
|
num = eina_array_count(e->cur_device);
|
||||||
|
if (num < 1) return NULL;
|
||||||
|
return eina_array_data_get(e->cur_device, num - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
_evas_device_ref(Evas_Device *dev)
|
||||||
|
{
|
||||||
|
dev->ref++;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
_evas_device_unref(Evas_Device *dev)
|
||||||
|
{
|
||||||
|
dev->ref--;
|
||||||
|
if (dev->ref > 0) return;
|
||||||
|
if (dev->name) eina_stringshare_del(dev->name);
|
||||||
|
if (dev->desc) eina_stringshare_del(dev->desc);
|
||||||
|
dev->magic = 0;
|
||||||
|
free(dev);
|
||||||
|
}
|
||||||
|
|
|
@ -296,6 +296,8 @@ evas_event_feed_mouse_down(Evas *e, int b, Evas_Button_Flags flags, unsigned int
|
||||||
ev.flags = flags;
|
ev.flags = flags;
|
||||||
ev.timestamp = timestamp;
|
ev.timestamp = timestamp;
|
||||||
ev.event_flags = e->default_event_flags;
|
ev.event_flags = e->default_event_flags;
|
||||||
|
ev.dev = _evas_device_top_get(e);
|
||||||
|
if (ev.dev) _evas_device_ref(ev.dev);
|
||||||
|
|
||||||
_evas_walk(e);
|
_evas_walk(e);
|
||||||
/* append new touch point to the touch point list */
|
/* append new touch point to the touch point list */
|
||||||
|
@ -350,6 +352,7 @@ evas_event_feed_mouse_down(Evas *e, int b, Evas_Button_Flags flags, unsigned int
|
||||||
_evas_post_event_callback_call(e);
|
_evas_post_event_callback_call(e);
|
||||||
/* update touch point's state to EVAS_TOUCH_POINT_STILL */
|
/* update touch point's state to EVAS_TOUCH_POINT_STILL */
|
||||||
_evas_touch_point_update(e, 0, e->pointer.x, e->pointer.y, EVAS_TOUCH_POINT_STILL);
|
_evas_touch_point_update(e, 0, e->pointer.x, e->pointer.y, EVAS_TOUCH_POINT_STILL);
|
||||||
|
if (ev.dev) _evas_device_unref(ev.dev);
|
||||||
_evas_unwalk(e);
|
_evas_unwalk(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -375,6 +378,8 @@ _post_up_handle(Evas *e, unsigned int timestamp, const void *data)
|
||||||
ev.locks = &(e->locks);
|
ev.locks = &(e->locks);
|
||||||
ev.timestamp = timestamp;
|
ev.timestamp = timestamp;
|
||||||
ev.event_flags = e->default_event_flags;
|
ev.event_flags = e->default_event_flags;
|
||||||
|
ev.dev = _evas_device_top_get(e);
|
||||||
|
if (ev.dev) _evas_device_ref(ev.dev);
|
||||||
|
|
||||||
/* get new list of ins */
|
/* get new list of ins */
|
||||||
ins = evas_event_objects_event_list(e, NULL, e->pointer.x, e->pointer.y);
|
ins = evas_event_objects_event_list(e, NULL, e->pointer.x, e->pointer.y);
|
||||||
|
@ -459,6 +464,7 @@ _post_up_handle(Evas *e, unsigned int timestamp, const void *data)
|
||||||
}
|
}
|
||||||
if (e->pointer.inside)
|
if (e->pointer.inside)
|
||||||
evas_event_feed_mouse_move(e, e->pointer.x, e->pointer.y, timestamp, data);
|
evas_event_feed_mouse_move(e, e->pointer.x, e->pointer.y, timestamp, data);
|
||||||
|
if (ev.dev) _evas_device_unref(ev.dev);
|
||||||
return post_called;
|
return post_called;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -499,6 +505,8 @@ evas_event_feed_mouse_up(Evas *e, int b, Evas_Button_Flags flags, unsigned int t
|
||||||
ev.flags = flags;
|
ev.flags = flags;
|
||||||
ev.timestamp = timestamp;
|
ev.timestamp = timestamp;
|
||||||
ev.event_flags = e->default_event_flags;
|
ev.event_flags = e->default_event_flags;
|
||||||
|
ev.dev = _evas_device_top_get(e);
|
||||||
|
if (ev.dev) _evas_device_ref(ev.dev);
|
||||||
|
|
||||||
_evas_walk(e);
|
_evas_walk(e);
|
||||||
/* update released touch point */
|
/* update released touch point */
|
||||||
|
@ -532,6 +540,7 @@ evas_event_feed_mouse_up(Evas *e, int b, Evas_Button_Flags flags, unsigned int t
|
||||||
if (copy) copy = eina_list_free(copy);
|
if (copy) copy = eina_list_free(copy);
|
||||||
e->last_mouse_up_counter++;
|
e->last_mouse_up_counter++;
|
||||||
_evas_post_event_callback_call(e);
|
_evas_post_event_callback_call(e);
|
||||||
|
if (ev.dev) _evas_device_unref(ev.dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (e->pointer.mouse_grabbed == 0)
|
if (e->pointer.mouse_grabbed == 0)
|
||||||
|
@ -600,6 +609,8 @@ evas_event_feed_mouse_wheel(Evas *e, int direction, int z, unsigned int timestam
|
||||||
ev.locks = &(e->locks);
|
ev.locks = &(e->locks);
|
||||||
ev.timestamp = timestamp;
|
ev.timestamp = timestamp;
|
||||||
ev.event_flags = e->default_event_flags;
|
ev.event_flags = e->default_event_flags;
|
||||||
|
ev.dev = _evas_device_top_get(e);
|
||||||
|
if (ev.dev) _evas_device_ref(ev.dev);
|
||||||
|
|
||||||
_evas_walk(e);
|
_evas_walk(e);
|
||||||
copy = evas_event_list_copy(e->pointer.object.in);
|
copy = evas_event_list_copy(e->pointer.object.in);
|
||||||
|
@ -617,6 +628,7 @@ evas_event_feed_mouse_wheel(Evas *e, int direction, int z, unsigned int timestam
|
||||||
if (copy) copy = eina_list_free(copy);
|
if (copy) copy = eina_list_free(copy);
|
||||||
_evas_post_event_callback_call(e);
|
_evas_post_event_callback_call(e);
|
||||||
|
|
||||||
|
if (ev.dev) _evas_device_unref(ev.dev);
|
||||||
_evas_unwalk(e);
|
_evas_unwalk(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -679,6 +691,8 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
|
||||||
ev.locks = &(e->locks);
|
ev.locks = &(e->locks);
|
||||||
ev.timestamp = timestamp;
|
ev.timestamp = timestamp;
|
||||||
ev.event_flags = e->default_event_flags;
|
ev.event_flags = e->default_event_flags;
|
||||||
|
ev.dev = _evas_device_top_get(e);
|
||||||
|
if (ev.dev) _evas_device_ref(ev.dev);
|
||||||
copy = evas_event_list_copy(e->pointer.object.in);
|
copy = evas_event_list_copy(e->pointer.object.in);
|
||||||
EINA_LIST_FOREACH(copy, l, obj)
|
EINA_LIST_FOREACH(copy, l, obj)
|
||||||
{
|
{
|
||||||
|
@ -710,6 +724,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
|
||||||
if (e->delete_me) break;
|
if (e->delete_me) break;
|
||||||
}
|
}
|
||||||
_evas_post_event_callback_call(e);
|
_evas_post_event_callback_call(e);
|
||||||
|
if (ev.dev) _evas_device_unref(ev.dev);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
Evas_Event_Mouse_Out ev;
|
Evas_Event_Mouse_Out ev;
|
||||||
|
@ -728,6 +743,8 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
|
||||||
ev.locks = &(e->locks);
|
ev.locks = &(e->locks);
|
||||||
ev.timestamp = timestamp;
|
ev.timestamp = timestamp;
|
||||||
ev.event_flags = e->default_event_flags;
|
ev.event_flags = e->default_event_flags;
|
||||||
|
ev.dev = _evas_device_top_get(e);
|
||||||
|
if (ev.dev) _evas_device_ref(ev.dev);
|
||||||
|
|
||||||
if (copy) eina_list_free(copy);
|
if (copy) eina_list_free(copy);
|
||||||
while (outs)
|
while (outs)
|
||||||
|
@ -755,6 +772,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_evas_post_event_callback_call(e);
|
_evas_post_event_callback_call(e);
|
||||||
|
if (ev.dev) _evas_device_unref(ev.dev);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -784,6 +802,8 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
|
||||||
ev.locks = &(e->locks);
|
ev.locks = &(e->locks);
|
||||||
ev.timestamp = timestamp;
|
ev.timestamp = timestamp;
|
||||||
ev.event_flags = e->default_event_flags;
|
ev.event_flags = e->default_event_flags;
|
||||||
|
ev.dev = _evas_device_top_get(e);
|
||||||
|
if (ev.dev) _evas_device_ref(ev.dev);
|
||||||
|
|
||||||
ev2.buttons = e->pointer.button;
|
ev2.buttons = e->pointer.button;
|
||||||
ev2.output.x = e->pointer.x;
|
ev2.output.x = e->pointer.x;
|
||||||
|
@ -795,6 +815,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
|
||||||
ev2.locks = &(e->locks);
|
ev2.locks = &(e->locks);
|
||||||
ev2.timestamp = timestamp;
|
ev2.timestamp = timestamp;
|
||||||
ev2.event_flags = e->default_event_flags;
|
ev2.event_flags = e->default_event_flags;
|
||||||
|
ev2.dev = ev.dev;
|
||||||
|
|
||||||
ev3.buttons = e->pointer.button;
|
ev3.buttons = e->pointer.button;
|
||||||
ev3.output.x = e->pointer.x;
|
ev3.output.x = e->pointer.x;
|
||||||
|
@ -806,6 +827,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
|
||||||
ev3.locks = &(e->locks);
|
ev3.locks = &(e->locks);
|
||||||
ev3.timestamp = timestamp;
|
ev3.timestamp = timestamp;
|
||||||
ev3.event_flags = e->default_event_flags;
|
ev3.event_flags = e->default_event_flags;
|
||||||
|
ev3.dev = ev.dev;
|
||||||
|
|
||||||
/* get all new in objects */
|
/* get all new in objects */
|
||||||
ins = evas_event_objects_event_list(e, NULL, x, y);
|
ins = evas_event_objects_event_list(e, NULL, x, y);
|
||||||
|
@ -890,6 +912,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
|
||||||
eina_list_free(ins);
|
eina_list_free(ins);
|
||||||
}
|
}
|
||||||
_evas_post_event_callback_call(e);
|
_evas_post_event_callback_call(e);
|
||||||
|
if (ev.dev) _evas_device_unref(ev.dev);
|
||||||
}
|
}
|
||||||
_evas_unwalk(e);
|
_evas_unwalk(e);
|
||||||
return;
|
return;
|
||||||
|
@ -922,6 +945,8 @@ nogrep:
|
||||||
ev.locks = &(e->locks);
|
ev.locks = &(e->locks);
|
||||||
ev.timestamp = timestamp;
|
ev.timestamp = timestamp;
|
||||||
ev.event_flags = e->default_event_flags;
|
ev.event_flags = e->default_event_flags;
|
||||||
|
ev.dev = _evas_device_top_get(e);
|
||||||
|
if (ev.dev) _evas_device_ref(ev.dev);
|
||||||
|
|
||||||
ev2.buttons = e->pointer.button;
|
ev2.buttons = e->pointer.button;
|
||||||
ev2.output.x = e->pointer.x;
|
ev2.output.x = e->pointer.x;
|
||||||
|
@ -933,6 +958,7 @@ nogrep:
|
||||||
ev2.locks = &(e->locks);
|
ev2.locks = &(e->locks);
|
||||||
ev2.timestamp = timestamp;
|
ev2.timestamp = timestamp;
|
||||||
ev2.event_flags = e->default_event_flags;
|
ev2.event_flags = e->default_event_flags;
|
||||||
|
ev2.dev = ev.dev;
|
||||||
|
|
||||||
ev3.buttons = e->pointer.button;
|
ev3.buttons = e->pointer.button;
|
||||||
ev3.output.x = e->pointer.x;
|
ev3.output.x = e->pointer.x;
|
||||||
|
@ -944,6 +970,7 @@ nogrep:
|
||||||
ev3.locks = &(e->locks);
|
ev3.locks = &(e->locks);
|
||||||
ev3.timestamp = timestamp;
|
ev3.timestamp = timestamp;
|
||||||
ev3.event_flags = e->default_event_flags;
|
ev3.event_flags = e->default_event_flags;
|
||||||
|
ev3.dev = ev.dev;
|
||||||
|
|
||||||
/* go thru old list of in objects */
|
/* go thru old list of in objects */
|
||||||
copy = evas_event_list_copy(e->pointer.object.in);
|
copy = evas_event_list_copy(e->pointer.object.in);
|
||||||
|
@ -1047,6 +1074,7 @@ nogrep:
|
||||||
e->pointer.object.in = newin;
|
e->pointer.object.in = newin;
|
||||||
|
|
||||||
_evas_post_event_callback_call(e);
|
_evas_post_event_callback_call(e);
|
||||||
|
if (ev.dev) _evas_device_unref(ev.dev);
|
||||||
}
|
}
|
||||||
_evas_unwalk(e);
|
_evas_unwalk(e);
|
||||||
}
|
}
|
||||||
|
@ -1083,6 +1111,8 @@ evas_event_feed_mouse_in(Evas *e, unsigned int timestamp, const void *data)
|
||||||
ev.locks = &(e->locks);
|
ev.locks = &(e->locks);
|
||||||
ev.timestamp = timestamp;
|
ev.timestamp = timestamp;
|
||||||
ev.event_flags = e->default_event_flags;
|
ev.event_flags = e->default_event_flags;
|
||||||
|
ev.dev = _evas_device_top_get(e);
|
||||||
|
if (ev.dev) _evas_device_ref(ev.dev);
|
||||||
|
|
||||||
_evas_walk(e);
|
_evas_walk(e);
|
||||||
/* get new list of ins */
|
/* get new list of ins */
|
||||||
|
@ -1110,6 +1140,7 @@ evas_event_feed_mouse_in(Evas *e, unsigned int timestamp, const void *data)
|
||||||
e->pointer.object.in = ins;
|
e->pointer.object.in = ins;
|
||||||
_evas_post_event_callback_call(e);
|
_evas_post_event_callback_call(e);
|
||||||
evas_event_feed_mouse_move(e, e->pointer.x, e->pointer.y, timestamp, data);
|
evas_event_feed_mouse_move(e, e->pointer.x, e->pointer.y, timestamp, data);
|
||||||
|
if (ev.dev) _evas_device_unref(ev.dev);
|
||||||
_evas_unwalk(e);
|
_evas_unwalk(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1140,6 +1171,8 @@ evas_event_feed_mouse_out(Evas *e, unsigned int timestamp, const void *data)
|
||||||
ev.locks = &(e->locks);
|
ev.locks = &(e->locks);
|
||||||
ev.timestamp = timestamp;
|
ev.timestamp = timestamp;
|
||||||
ev.event_flags = e->default_event_flags;
|
ev.event_flags = e->default_event_flags;
|
||||||
|
ev.dev = _evas_device_top_get(e);
|
||||||
|
if (ev.dev) _evas_device_ref(ev.dev);
|
||||||
|
|
||||||
_evas_walk(e);
|
_evas_walk(e);
|
||||||
/* if our mouse button is inside any objects */
|
/* if our mouse button is inside any objects */
|
||||||
|
@ -1173,6 +1206,7 @@ evas_event_feed_mouse_out(Evas *e, unsigned int timestamp, const void *data)
|
||||||
e->pointer.mouse_grabbed = 0;
|
e->pointer.mouse_grabbed = 0;
|
||||||
_evas_post_event_callback_call(e);
|
_evas_post_event_callback_call(e);
|
||||||
}
|
}
|
||||||
|
if (ev.dev) _evas_device_unref(ev.dev);
|
||||||
_evas_unwalk(e);
|
_evas_unwalk(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1220,6 +1254,8 @@ evas_event_feed_multi_down(Evas *e,
|
||||||
ev.flags = flags;
|
ev.flags = flags;
|
||||||
ev.timestamp = timestamp;
|
ev.timestamp = timestamp;
|
||||||
ev.event_flags = e->default_event_flags;
|
ev.event_flags = e->default_event_flags;
|
||||||
|
ev.dev = _evas_device_top_get(e);
|
||||||
|
if (ev.dev) _evas_device_ref(ev.dev);
|
||||||
|
|
||||||
_evas_walk(e);
|
_evas_walk(e);
|
||||||
/* append new touch point to the touch point list */
|
/* append new touch point to the touch point list */
|
||||||
|
@ -1257,6 +1293,7 @@ evas_event_feed_multi_down(Evas *e,
|
||||||
_evas_post_event_callback_call(e);
|
_evas_post_event_callback_call(e);
|
||||||
/* update touch point's state to EVAS_TOUCH_POINT_STILL */
|
/* update touch point's state to EVAS_TOUCH_POINT_STILL */
|
||||||
_evas_touch_point_update(e, d, x, y, EVAS_TOUCH_POINT_STILL);
|
_evas_touch_point_update(e, d, x, y, EVAS_TOUCH_POINT_STILL);
|
||||||
|
if (ev.dev) _evas_device_unref(ev.dev);
|
||||||
_evas_unwalk(e);
|
_evas_unwalk(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1304,6 +1341,8 @@ evas_event_feed_multi_up(Evas *e,
|
||||||
ev.flags = flags;
|
ev.flags = flags;
|
||||||
ev.timestamp = timestamp;
|
ev.timestamp = timestamp;
|
||||||
ev.event_flags = e->default_event_flags;
|
ev.event_flags = e->default_event_flags;
|
||||||
|
ev.dev = _evas_device_top_get(e);
|
||||||
|
if (ev.dev) _evas_device_ref(ev.dev);
|
||||||
|
|
||||||
_evas_walk(e);
|
_evas_walk(e);
|
||||||
/* update released touch point */
|
/* update released touch point */
|
||||||
|
@ -1336,6 +1375,7 @@ evas_event_feed_multi_up(Evas *e,
|
||||||
_evas_post_event_callback_call(e);
|
_evas_post_event_callback_call(e);
|
||||||
/* remove released touch point from the touch point list */
|
/* remove released touch point from the touch point list */
|
||||||
_evas_touch_point_remove(e, d);
|
_evas_touch_point_remove(e, d);
|
||||||
|
if (ev.dev) _evas_device_unref(ev.dev);
|
||||||
_evas_unwalk(e);
|
_evas_unwalk(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1388,6 +1428,8 @@ evas_event_feed_multi_move(Evas *e,
|
||||||
ev.locks = &(e->locks);
|
ev.locks = &(e->locks);
|
||||||
ev.timestamp = timestamp;
|
ev.timestamp = timestamp;
|
||||||
ev.event_flags = e->default_event_flags;
|
ev.event_flags = e->default_event_flags;
|
||||||
|
ev.dev = _evas_device_top_get(e);
|
||||||
|
if (ev.dev) _evas_device_ref(ev.dev);
|
||||||
|
|
||||||
copy = evas_event_list_copy(e->pointer.object.in);
|
copy = evas_event_list_copy(e->pointer.object.in);
|
||||||
EINA_LIST_FOREACH(copy, l, obj)
|
EINA_LIST_FOREACH(copy, l, obj)
|
||||||
|
@ -1413,6 +1455,7 @@ evas_event_feed_multi_move(Evas *e,
|
||||||
if (e->delete_me) break;
|
if (e->delete_me) break;
|
||||||
}
|
}
|
||||||
_evas_post_event_callback_call(e);
|
_evas_post_event_callback_call(e);
|
||||||
|
if (ev.dev) _evas_device_unref(ev.dev);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1442,6 +1485,8 @@ evas_event_feed_multi_move(Evas *e,
|
||||||
ev.locks = &(e->locks);
|
ev.locks = &(e->locks);
|
||||||
ev.timestamp = timestamp;
|
ev.timestamp = timestamp;
|
||||||
ev.event_flags = e->default_event_flags;
|
ev.event_flags = e->default_event_flags;
|
||||||
|
ev.dev = _evas_device_top_get(e);
|
||||||
|
if (ev.dev) _evas_device_ref(ev.dev);
|
||||||
|
|
||||||
/* get all new in objects */
|
/* get all new in objects */
|
||||||
ins = evas_event_objects_event_list(e, NULL, x, y);
|
ins = evas_event_objects_event_list(e, NULL, x, y);
|
||||||
|
@ -1492,6 +1537,7 @@ evas_event_feed_multi_move(Evas *e,
|
||||||
eina_list_free(ins);
|
eina_list_free(ins);
|
||||||
}
|
}
|
||||||
_evas_post_event_callback_call(e);
|
_evas_post_event_callback_call(e);
|
||||||
|
if (ev.dev) _evas_device_unref(ev.dev);
|
||||||
}
|
}
|
||||||
_evas_unwalk(e);
|
_evas_unwalk(e);
|
||||||
}
|
}
|
||||||
|
@ -1525,6 +1571,8 @@ evas_event_feed_key_down(Evas *e, const char *keyname, const char *key, const ch
|
||||||
ev.compose = compose;
|
ev.compose = compose;
|
||||||
ev.timestamp = timestamp;
|
ev.timestamp = timestamp;
|
||||||
ev.event_flags = e->default_event_flags;
|
ev.event_flags = e->default_event_flags;
|
||||||
|
ev.dev = _evas_device_top_get(e);
|
||||||
|
if (ev.dev) _evas_device_ref(ev.dev);
|
||||||
|
|
||||||
if (e->grabs)
|
if (e->grabs)
|
||||||
{
|
{
|
||||||
|
@ -1580,6 +1628,7 @@ evas_event_feed_key_down(Evas *e, const char *keyname, const char *key, const ch
|
||||||
&ev, event_id);
|
&ev, event_id);
|
||||||
}
|
}
|
||||||
_evas_post_event_callback_call(e);
|
_evas_post_event_callback_call(e);
|
||||||
|
if (ev.dev) _evas_device_unref(ev.dev);
|
||||||
_evas_unwalk(e);
|
_evas_unwalk(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1611,6 +1660,8 @@ evas_event_feed_key_up(Evas *e, const char *keyname, const char *key, const char
|
||||||
ev.compose = compose;
|
ev.compose = compose;
|
||||||
ev.timestamp = timestamp;
|
ev.timestamp = timestamp;
|
||||||
ev.event_flags = e->default_event_flags;
|
ev.event_flags = e->default_event_flags;
|
||||||
|
ev.dev = _evas_device_top_get(e);
|
||||||
|
if (ev.dev) _evas_device_ref(ev.dev);
|
||||||
|
|
||||||
if (e->grabs)
|
if (e->grabs)
|
||||||
{
|
{
|
||||||
|
@ -1665,6 +1716,7 @@ evas_event_feed_key_up(Evas *e, const char *keyname, const char *key, const char
|
||||||
&ev, event_id);
|
&ev, event_id);
|
||||||
}
|
}
|
||||||
_evas_post_event_callback_call(e);
|
_evas_post_event_callback_call(e);
|
||||||
|
if (ev.dev) _evas_device_unref(ev.dev);
|
||||||
_evas_unwalk(e);
|
_evas_unwalk(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1690,6 +1742,8 @@ evas_event_feed_hold(Evas *e, int hold, unsigned int timestamp, const void *data
|
||||||
ev.data = (void *)data;
|
ev.data = (void *)data;
|
||||||
ev.timestamp = timestamp;
|
ev.timestamp = timestamp;
|
||||||
ev.event_flags = e->default_event_flags;
|
ev.event_flags = e->default_event_flags;
|
||||||
|
ev.dev = _evas_device_top_get(e);
|
||||||
|
if (ev.dev) _evas_device_ref(ev.dev);
|
||||||
|
|
||||||
_evas_walk(e);
|
_evas_walk(e);
|
||||||
copy = evas_event_list_copy(e->pointer.object.in);
|
copy = evas_event_list_copy(e->pointer.object.in);
|
||||||
|
@ -1701,6 +1755,7 @@ evas_event_feed_hold(Evas *e, int hold, unsigned int timestamp, const void *data
|
||||||
}
|
}
|
||||||
if (copy) copy = eina_list_free(copy);
|
if (copy) copy = eina_list_free(copy);
|
||||||
_evas_post_event_callback_call(e);
|
_evas_post_event_callback_call(e);
|
||||||
|
if (ev.dev) _evas_device_unref(ev.dev);
|
||||||
_evas_unwalk(e);
|
_evas_unwalk(e);
|
||||||
_evas_object_event_new();
|
_evas_object_event_new();
|
||||||
}
|
}
|
||||||
|
|
|
@ -242,6 +242,8 @@ evas_free(Evas *e)
|
||||||
EINA_LIST_FREE(e->touch_points, touch_point)
|
EINA_LIST_FREE(e->touch_points, touch_point)
|
||||||
free(touch_point);
|
free(touch_point);
|
||||||
|
|
||||||
|
_evas_device_cleanup(e);
|
||||||
|
|
||||||
e->magic = 0;
|
e->magic = 0;
|
||||||
free(e);
|
free(e);
|
||||||
}
|
}
|
||||||
|
|
|
@ -107,21 +107,22 @@ OPAQUE_TYPE(Evas_Font_Instance); /* General type for RGBA_Font_Int */
|
||||||
/* End of general types */
|
/* End of general types */
|
||||||
|
|
||||||
#define MAGIC_EVAS 0x70777770
|
#define MAGIC_EVAS 0x70777770
|
||||||
#define MAGIC_OBJ 0x71777770
|
#define MAGIC_OBJ 0x71737723
|
||||||
#define MAGIC_OBJ_RECTANGLE 0x71777771
|
#define MAGIC_OBJ_RECTANGLE 0x76748772
|
||||||
#define MAGIC_OBJ_LINE 0x71777772
|
#define MAGIC_OBJ_LINE 0x7a27f839
|
||||||
#define MAGIC_OBJ_POLYGON 0x71777774
|
#define MAGIC_OBJ_POLYGON 0x7bb7577e
|
||||||
#define MAGIC_OBJ_IMAGE 0x71777775
|
#define MAGIC_OBJ_IMAGE 0x747ad76c
|
||||||
#define MAGIC_OBJ_TEXT 0x71777776
|
#define MAGIC_OBJ_TEXT 0x77757721
|
||||||
#define MAGIC_OBJ_SMART 0x71777777
|
#define MAGIC_OBJ_SMART 0x78c7c73f
|
||||||
#define MAGIC_OBJ_TEXTBLOCK 0x71777778
|
#define MAGIC_OBJ_TEXTBLOCK 0x71737744
|
||||||
#define MAGIC_OBJ_TEXTGRID 0x7177777A
|
#define MAGIC_OBJ_TEXTGRID 0x7377a7ca
|
||||||
#define MAGIC_SMART 0x72777770
|
#define MAGIC_SMART 0x7c6977c5
|
||||||
#define MAGIC_OBJ_SHAPE 0x72777773
|
#define MAGIC_OBJ_SHAPE 0x747297f7
|
||||||
#define MAGIC_OBJ_CONTAINER 0x72777774
|
#define MAGIC_OBJ_CONTAINER 0x71877776
|
||||||
#define MAGIC_OBJ_CUSTOM 0x72777775
|
#define MAGIC_OBJ_CUSTOM 0x7b7857ab
|
||||||
#define MAGIC_EVAS_GL 0x72777776
|
#define MAGIC_EVAS_GL 0x77976718
|
||||||
#define MAGIC_MAP 0x72777777
|
#define MAGIC_MAP 0x7575177d
|
||||||
|
#define MAGIC_DEV 0x7d773738
|
||||||
|
|
||||||
#ifdef MAGIC_DEBUG
|
#ifdef MAGIC_DEBUG
|
||||||
# define MAGIC_CHECK_FAILED(o, t, m) \
|
# define MAGIC_CHECK_FAILED(o, t, m) \
|
||||||
|
@ -408,6 +409,8 @@ struct _Evas
|
||||||
unsigned char focus : 1;
|
unsigned char focus : 1;
|
||||||
|
|
||||||
Eina_List *touch_points;
|
Eina_List *touch_points;
|
||||||
|
Eina_List *devices;
|
||||||
|
Eina_Array *cur_device;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _Evas_Layer
|
struct _Evas_Layer
|
||||||
|
@ -711,6 +714,19 @@ struct _Evas_Font_Description
|
||||||
Eina_Bool is_new : 1;
|
Eina_Bool is_new : 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct _Evas_Device
|
||||||
|
{
|
||||||
|
DATA32 magic;
|
||||||
|
Evas *evas;
|
||||||
|
Evas_Device *parent;
|
||||||
|
Evas_Device *src;
|
||||||
|
Eina_List *children;
|
||||||
|
const char *name;
|
||||||
|
const char *desc;
|
||||||
|
int ref;
|
||||||
|
Evas_Device_Class clas;
|
||||||
|
};
|
||||||
|
|
||||||
struct _Evas_Object_Func
|
struct _Evas_Object_Func
|
||||||
{
|
{
|
||||||
void (*free) (Evas_Object *obj);
|
void (*free) (Evas_Object *obj);
|
||||||
|
@ -1093,6 +1109,11 @@ void _evas_touch_point_append(Evas *e, int id, Evas_Coord x, Evas_Coord y);
|
||||||
void _evas_touch_point_update(Evas *e, int id, Evas_Coord x, Evas_Coord y, Evas_Touch_Point_State state);
|
void _evas_touch_point_update(Evas *e, int id, Evas_Coord x, Evas_Coord y, Evas_Touch_Point_State state);
|
||||||
void _evas_touch_point_remove(Evas *e, int id);
|
void _evas_touch_point_remove(Evas *e, int id);
|
||||||
|
|
||||||
|
void _evas_device_cleanup(Evas *e);
|
||||||
|
Evas_Device *_evas_device_top_get(const Evas *e);
|
||||||
|
void _evas_device_ref(Evas_Device *dev);
|
||||||
|
void _evas_device_unref(Evas_Device *dev);
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
/*****************************************/
|
/*****************************************/
|
||||||
/********************/
|
/********************/
|
||||||
|
|
Loading…
Reference in New Issue