Efl_Ecore_Input_Device was introduced wrongly in merging upstream efl.
First, conceptually, efl interface should not allow Ecore.
This is totally wrong in interface design.
Second, Efl_Ecore_Input_Device conceptually same with Efl_Input_Device.
We don't need both interfaces. Even their bodies are perfectly same.
Third, EFl_Ecore_Input_Device is not compatible with Efl_Input_Device,
Whole Events in efl will be passing through with Efl_Input_Device interface,
but their classes are different, Eo will fault in type checking,
Efl_Ecore_Input_Device(or Ecore_Device) won't be passed properly.
All in all, current Efl_Ecore_Input_Device just breaks system and useless.
Change-Id: I276761e67d598457087bd2e3e06f44e58161427f
lib/efl/interfaces/efl_gfx_image.eo \
lib/efl/interfaces/efl_gfx_image_animation_controller.eo \
lib/efl/interfaces/efl_input_device.eo \
- lib/efl/interfaces/efl_ecore_input_device.eo \
lib/efl/interfaces/efl_ui_draggable.eo \
lib/efl/interfaces/efl_ui_clickable.eo \
lib/efl/interfaces/efl_ui_scrollable.eo \
lib/efl/interfaces/efl_gfx_path.c \
lib/efl/interfaces/efl_gfx_shape.c \
lib/efl/interfaces/efl_input_device.c \
-lib/efl/interfaces/efl_ecore_input_device.c \
lib/efl/interfaces/efl_io_closer.c \
lib/efl/interfaces/efl_io_positioner.c \
lib/efl/interfaces/efl_io_reader.c \
* @typedef Ecore_Device_Class
* An enum of Device Classes.
*/
-typedef Efl_Ecore_Input_Device_Type Ecore_Device_Class;
+typedef Efl_Input_Device_Type Ecore_Device_Class;
-#define ECORE_DEVICE_CLASS_NONE EFL_ECORE_INPUT_DEVICE_TYPE_NONE /**< Not a device @since 1.8 */
-#define ECORE_DEVICE_CLASS_SEAT EFL_ECORE_INPUT_DEVICE_TYPE_SEAT /**< The user/seat (the user themselves) @since 1.8 */
-#define ECORE_DEVICE_CLASS_KEYBOARD EFL_ECORE_INPUT_DEVICE_TYPE_KEYBOARD /**< A regular keyboard, numberpad or attached buttons @since 1.8 */
-#define ECORE_DEVICE_CLASS_MOUSE EFL_ECORE_INPUT_DEVICE_TYPE_MOUSE /**< A mouse, trackball or touchpad relative motion device @since 1.8 */
-#define ECORE_DEVICE_CLASS_TOUCH EFL_ECORE_INPUT_DEVICE_TYPE_TOUCH /**< A touchscreen with fingers or stylus @since 1.8 */
-#define ECORE_DEVICE_CLASS_PEN EFL_ECORE_INPUT_DEVICE_TYPE_PEN /**< A special pen device @since 1.8 */
-#define ECORE_DEVICE_CLASS_POINTER EFL_ECORE_INPUT_DEVICE_TYPE_WAND /**< A laser pointer, wii-style or "minority report" pointing device @since 1.8 */
-#define ECORE_DEVICE_CLASS_WAND EFL_ECORE_INPUT_DEVICE_TYPE_WAND /**< A synonym for ECORE_DEVICE_CLASS_POINTER @since 1.18 */
-#define ECORE_DEVICE_CLASS_GAMEPAD EFL_ECORE_INPUT_DEVICE_TYPE_GAMEPAD /**< A gamepad controller or joystick @since 1.8 */
+#define ECORE_DEVICE_CLASS_NONE EFL_INPUT_DEVICE_TYPE_NONE /**< Not a device @since 1.8 */
+#define ECORE_DEVICE_CLASS_SEAT EFL_INPUT_DEVICE_TYPE_SEAT /**< The user/seat (the user themselves) @since 1.8 */
+#define ECORE_DEVICE_CLASS_KEYBOARD EFL_INPUT_DEVICE_TYPE_KEYBOARD /**< A regular keyboard, numberpad or attached buttons @since 1.8 */
+#define ECORE_DEVICE_CLASS_MOUSE EFL_INPUT_DEVICE_TYPE_MOUSE /**< A mouse, trackball or touchpad relative motion device @since 1.8 */
+#define ECORE_DEVICE_CLASS_TOUCH EFL_INPUT_DEVICE_TYPE_TOUCH /**< A touchscreen with fingers or stylus @since 1.8 */
+#define ECORE_DEVICE_CLASS_PEN EFL_INPUT_DEVICE_TYPE_PEN /**< A special pen device @since 1.8 */
+#define ECORE_DEVICE_CLASS_POINTER EFL_INPUT_DEVICE_TYPE_WAND /**< A laser pointer, wii-style or "minority report" pointing device @since 1.8 */
+#define ECORE_DEVICE_CLASS_WAND EFL_INPUT_DEVICE_TYPE_WAND /**< A synonym for ECORE_DEVICE_CLASS_POINTER @since 1.18 */
+#define ECORE_DEVICE_CLASS_GAMEPAD EFL_INPUT_DEVICE_TYPE_GAMEPAD /**< A gamepad controller or joystick @since 1.8 */
/**
* @typedef Ecore_Device_Subclass
* An enum of Device Subclasses.
*/
-typedef Efl_Ecore_Input_Device_Subtype Ecore_Device_Subclass;
-
-#define ECORE_DEVICE_SUBCLASS_NONE EFL_ECORE_INPUT_DEVICE_SUBTYPE_NONE /**< Not a device @since 1.18 */
-#define ECORE_DEVICE_SUBCLASS_FINGER EFL_ECORE_INPUT_DEVICE_SUBTYPE_FINGER /**< The normal flat of your finger @since 1.18 */
-#define ECORE_DEVICE_SUBCLASS_FINGERNAIL EFL_ECORE_INPUT_DEVICE_SUBTYPE_FINGERNAIL /**< A fingernail @since 1.18 */
-#define ECORE_DEVICE_SUBCLASS_KNUCKLE EFL_ECORE_INPUT_DEVICE_SUBTYPE_KNUCKLE /**< A Knuckle @since 1.18 */
-#define ECORE_DEVICE_SUBCLASS_PALM EFL_ECORE_INPUT_DEVICE_SUBTYPE_PALM /**< The palm of a users hand @since 1.18 */
-#define ECORE_DEVICE_SUBCLASS_HAND_SIZE EFL_ECORE_INPUT_DEVICE_SUBTYPE_HAND_SIZE /**< The side of your hand @since 1.18 */
-#define ECORE_DEVICE_SUBCLASS_HAND_FLAT EFL_ECORE_INPUT_DEVICE_SUBTYPE_HAND_FLAT /**< The flat of your hand @since 1.18 */
-#define ECORE_DEVICE_SUBCLASS_PEN_TIP EFL_ECORE_INPUT_DEVICE_SUBTYPE_PEN_TIP /**< The tip of a pen @since 1.18 */
-#define ECORE_DEVICE_SUBCLASS_TRACKPAD EFL_ECORE_INPUT_DEVICE_SUBTYPE_TRACKPAD /**< A trackpad style mouse @since 1.18 */
-#define ECORE_DEVICE_SUBCLASS_TRACKPOINT EFL_ECORE_INPUT_DEVICE_SUBTYPE_TRACKPOINT /**< A trackpoint style mouse @since 1.18 */
-#define ECORE_DEVICE_SUBCLASS_TRACKBALL EFL_ECORE_INPUT_DEVICE_SUBTYPE_TRACKBALL /**< A trackball style mouse @since 1.18 */
-#define ECORE_DEVICE_SUBCLASS_REMOCON EFL_ECORE_INPUT_DEVICE_SUBTYPE_REMOCON /**< A remote controller @since_tizen 4.0 */
-#define ECORE_DEVICE_SUBCLASS_VIRTUAL_KEYBOARD EFL_ECORE_INPUT_DEVICE_SUBTYPE_VIRTUAL_KEYBOARD /**< A virtual keyboard @since_tizen 4.0*/
+typedef Efl_Input_Device_Subtype Ecore_Device_Subclass;
+
+#define ECORE_DEVICE_SUBCLASS_NONE EFL_INPUT_DEVICE_SUBTYPE_NONE /**< Not a device @since 1.18 */
+#define ECORE_DEVICE_SUBCLASS_FINGER EFL_INPUT_DEVICE_SUBTYPE_FINGER /**< The normal flat of your finger @since 1.18 */
+#define ECORE_DEVICE_SUBCLASS_FINGERNAIL EFL_INPUT_DEVICE_SUBTYPE_FINGERNAIL /**< A fingernail @since 1.18 */
+#define ECORE_DEVICE_SUBCLASS_KNUCKLE EFL_INPUT_DEVICE_SUBTYPE_KNUCKLE /**< A Knuckle @since 1.18 */
+#define ECORE_DEVICE_SUBCLASS_PALM EFL_INPUT_DEVICE_SUBTYPE_PALM /**< The palm of a users hand @since 1.18 */
+#define ECORE_DEVICE_SUBCLASS_HAND_SIZE EFL_INPUT_DEVICE_SUBTYPE_HAND_SIZE /**< The side of your hand @since 1.18 */
+#define ECORE_DEVICE_SUBCLASS_HAND_FLAT EFL_INPUT_DEVICE_SUBTYPE_HAND_FLAT /**< The flat of your hand @since 1.18 */
+#define ECORE_DEVICE_SUBCLASS_PEN_TIP EFL_INPUT_DEVICE_SUBTYPE_PEN_TIP /**< The tip of a pen @since 1.18 */
+#define ECORE_DEVICE_SUBCLASS_TRACKPAD EFL_INPUT_DEVICE_SUBTYPE_TRACKPAD /**< A trackpad style mouse @since 1.18 */
+#define ECORE_DEVICE_SUBCLASS_TRACKPOINT EFL_INPUT_DEVICE_SUBTYPE_TRACKPOINT /**< A trackpoint style mouse @since 1.18 */
+#define ECORE_DEVICE_SUBCLASS_TRACKBALL EFL_INPUT_DEVICE_SUBTYPE_TRACKBALL /**< A trackball style mouse @since 1.18 */
+#define ECORE_DEVICE_SUBCLASS_REMOCON EFL_INPUT_DEVICE_SUBTYPE_REMOCON /**< A remote controller @since_tizen 4.0 */
+#define ECORE_DEVICE_SUBCLASS_VIRTUAL_KEYBOARD EFL_INPUT_DEVICE_SUBTYPE_VIRTUAL_KEYBOARD /**< A virtual keyboard @since_tizen 4.0*/
typedef struct _Ecore_Device_Event_Info Ecore_Device_Event_Info; /**< @since 1.18 */
#ifdef DEBUG_UNTESTED_
// booh
#define SAFETY_CHECK(obj, klass, ...) \
- do { MAGIC_CHECK(dev, Ecore_Device, 1); \
+ do { MAGIC_CHECK(obj, klass, 1); \
return __VA_ARGS__; \
MAGIC_CHECK_END(); \
} while (0)
ecore_device_add()
{
Ecore_Device *dev;
- Efl_Ecore_Input_Device_Data *d;
+ Efl_Input_Device_Data *d;
- dev = efl_add_ref(EFL_ECORE_INPUT_DEVICE_CLASS, NULL,
+ dev = efl_add(EFL_INPUT_DEVICE_CLASS, NULL,
efl_name_set(efl_added, NULL),
efl_comment_set(efl_added, NULL),
- efl_ecore_input_device_type_set(efl_added, EFL_ECORE_INPUT_DEVICE_TYPE_NONE),
- efl_ecore_input_device_source_set(efl_added, NULL));
+ efl_input_device_type_set(efl_added, EFL_INPUT_DEVICE_TYPE_NONE),
+ efl_input_device_source_set(efl_added, NULL));
- d = efl_data_scope_get(dev, EFL_ECORE_INPUT_DEVICE_CLASS);
- d->subclass = EFL_ECORE_INPUT_DEVICE_SUBTYPE_NONE;
+ d = efl_data_scope_get(dev, EFL_INPUT_DEVICE_CLASS);
+ d->subclass = EFL_INPUT_DEVICE_SUBTYPE_NONE;
_ecore_devices = eina_list_append(_ecore_devices, dev);
devices_num++;
Eina_List *l, *l_next;
Ecore_Device *data;
- SAFETY_CHECK(dev, EFL_ECORE_INPUT_DEVICE_CLASS);
+ SAFETY_CHECK(dev, EFL_INPUT_DEVICE_CLASS);
EINA_LIST_FOREACH_SAFE(_ecore_devices, l, l_next, data)
{
EAPI Ecore_Device *
ecore_device_ref(Ecore_Device *dev)
{
- SAFETY_CHECK(dev, EFL_ECORE_INPUT_DEVICE_CLASS, NULL);
+ SAFETY_CHECK(dev, EFL_INPUT_DEVICE_CLASS, NULL);
return efl_ref(dev);
}
EAPI void
ecore_device_unref(Ecore_Device *dev)
{
- SAFETY_CHECK(dev, EFL_ECORE_INPUT_DEVICE_CLASS);
+ SAFETY_CHECK(dev, EFL_INPUT_DEVICE_CLASS);
efl_unref(dev);
}
EAPI void
ecore_device_name_set(Ecore_Device *dev, const char *name)
{
- SAFETY_CHECK(dev, EFL_ECORE_INPUT_DEVICE_CLASS);
+ SAFETY_CHECK(dev, EFL_INPUT_DEVICE_CLASS);
efl_name_set(dev, name);
}
EAPI const char *
ecore_device_name_get(const Ecore_Device *dev)
{
- SAFETY_CHECK(dev, EFL_ECORE_INPUT_DEVICE_CLASS, NULL);
+ SAFETY_CHECK(dev, EFL_INPUT_DEVICE_CLASS, NULL);
return efl_name_get(dev);
}
EAPI void
ecore_device_description_set(Ecore_Device *dev, const char *desc)
{
- SAFETY_CHECK(dev, EFL_ECORE_INPUT_DEVICE_CLASS);
+ SAFETY_CHECK(dev, EFL_INPUT_DEVICE_CLASS);
efl_comment_set(dev, desc);
}
EAPI const char *
ecore_device_description_get(const Ecore_Device *dev)
{
- SAFETY_CHECK(dev, EFL_ECORE_INPUT_DEVICE_CLASS, NULL);
+ SAFETY_CHECK(dev, EFL_INPUT_DEVICE_CLASS, NULL);
return efl_comment_get(dev);
}
EAPI void
ecore_device_identifier_set(Ecore_Device *dev, const char *identifier)
{
- SAFETY_CHECK(dev, EFL_ECORE_INPUT_DEVICE_CLASS);
+ SAFETY_CHECK(dev, EFL_INPUT_DEVICE_CLASS);
efl_comment_set(dev, identifier);
}
EAPI const char *
ecore_device_identifier_get(const Ecore_Device *dev)
{
- SAFETY_CHECK(dev, EFL_ECORE_INPUT_DEVICE_CLASS, NULL);
+ SAFETY_CHECK(dev, EFL_INPUT_DEVICE_CLASS, NULL);
return efl_comment_get(dev);
}
EAPI void
ecore_device_class_set(Ecore_Device *dev, Ecore_Device_Class clas)
{
- SAFETY_CHECK(dev, EFL_ECORE_INPUT_DEVICE_CLASS);
+ SAFETY_CHECK(dev, EFL_INPUT_DEVICE_CLASS);
- efl_ecore_input_device_type_set(dev, clas);
+ efl_input_device_type_set(dev, clas);
}
EAPI Ecore_Device_Class
ecore_device_class_get(const Ecore_Device *dev)
{
- SAFETY_CHECK(dev, EFL_ECORE_INPUT_DEVICE_CLASS, EFL_ECORE_INPUT_DEVICE_TYPE_NONE);
+ SAFETY_CHECK(dev, EFL_INPUT_DEVICE_CLASS, EFL_INPUT_DEVICE_TYPE_NONE);
- return efl_ecore_input_device_type_get(dev);
+ return efl_input_device_type_get(dev);
}
EAPI void
ecore_device_subclass_set(Ecore_Device *dev, Ecore_Device_Subclass subclas)
{
- Efl_Ecore_Input_Device_Data *d;
- SAFETY_CHECK(dev, EFL_ECORE_INPUT_DEVICE_CLASS);
+ Efl_Input_Device_Data *d;
+ SAFETY_CHECK(dev, EFL_INPUT_DEVICE_CLASS);
- d = efl_data_scope_get(dev, EFL_ECORE_INPUT_DEVICE_CLASS);
+ d = efl_data_scope_get(dev, EFL_INPUT_DEVICE_CLASS);
if (!d) return;
d->subclass = subclas;
EAPI Ecore_Device_Subclass
ecore_device_subclass_get(const Ecore_Device *dev)
{
- Efl_Ecore_Input_Device_Data *d;
- SAFETY_CHECK(dev, EFL_ECORE_INPUT_DEVICE_CLASS, EFL_ECORE_INPUT_DEVICE_SUBTYPE_NONE);
+ Efl_Input_Device_Data *d;
+ SAFETY_CHECK(dev, EFL_INPUT_DEVICE_CLASS, EFL_INPUT_DEVICE_SUBTYPE_NONE);
- d = efl_data_scope_get(dev, EFL_ECORE_INPUT_DEVICE_CLASS);
+ d = efl_data_scope_get(dev, EFL_INPUT_DEVICE_CLASS);
if (!d) return 0;
return d->subclass;
Efl_Input_Device *dev = NULL;
Eina_List *list, *l;
- if (efl_class_get(ecore_dev) != EFL_ECORE_INPUT_DEVICE_CLASS) return NULL;
+ if (efl_class_get(ecore_dev) != EFL_INPUT_DEVICE_CLASS) return NULL;
list = (Eina_List *)evas_device_list(evas, NULL);
EINA_LIST_FOREACH(list, l, dev)
{
Evas_Device *evas_device = NULL;
- if (!dev || efl_class_get(dev) != EFL_ECORE_INPUT_DEVICE_CLASS) return NULL;
+ if (!dev || efl_class_get(dev) != EFL_INPUT_DEVICE_CLASS) return NULL;
if (dev) evas_device = _ecore_event_evas_device_find(eo_e, dev);
if (!evas_device)
{
- WRN("Failed to found evas device for %s (identifier: %s, class: %d)\n", efl_name_get(dev), efl_comment_get(dev), efl_ecore_input_device_type_get(dev));
+ WRN("Failed to found evas device for %s (identifier: %s, class: %d)\n", efl_name_get(dev), efl_comment_get(dev), efl_input_device_type_get(dev));
if (type == ECORE_EVENT_KEY_DOWN || type == ECORE_EVENT_KEY_UP)
evas_device = evas_device_default_get(eo_e, EVAS_DEVICE_CLASS_KEYBOARD);
else
interfaces/efl_image_animated.eo
interfaces/efl_image_load.eo
interfaces/efl_input_device.eo
- interfaces/efl_ecore_input_device.eo
interfaces/efl_input_types.eot
interfaces/efl_io_buffer.eo
interfaces/efl_io_closer.eo
interfaces/efl_vpath_core.c
interfaces/efl_vpath_file_core.c
interfaces/efl_input_device.c
- interfaces/efl_ecore_input_device.c
interfaces/efl_io_closer.c
interfaces/efl_io_positioner.c
interfaces/efl_io_reader.c
/* Input events */
#include "interfaces/efl_input_types.eot.h"
#include "interfaces/efl_input_device.eo.h"
-#include "interfaces/efl_ecore_input_device.eo.h"
/* Canvas & UI */
#include "interfaces/efl_canvas_scene.eo.h"
#include "interfaces/efl_gfx_image.eo.legacy.h"
#include "interfaces/efl_gfx_image_animation_controller.eo.legacy.h"
#include "interfaces/efl_input_device.eo.legacy.h"
-#include "interfaces/efl_ecore_input_device.eo.legacy.h"
#include "interfaces/efl_text_types.eot.h"
#endif
typedef struct _Efl_Input_Pointer_Data Efl_Input_Pointer_Data;
typedef struct _Efl_Input_Key_Data Efl_Input_Key_Data;
typedef struct _Efl_Input_Device_Data Efl_Input_Device_Data;
-// TIZEN_ONLY(20180118): support a Ecore_Device
-typedef struct _Efl_Ecore_Input_Device_Data Efl_Ecore_Input_Device_Data;
-//
typedef struct _Efl_Input_Hold_Data Efl_Input_Hold_Data;
typedef struct _Efl_Input_Focus_Data Efl_Input_Focus_Data;
unsigned int pointer_count;
};
-// TIZEN_ONLY(20180118): support a Ecore_Device
-struct _Efl_Ecore_Input_Device_Data
-{
- Eo *eo;
- Efl_Ecore_Input_Device *source; /* ref */
- Eina_List *children; /* ref'ed by efl_parent, not by this list */
- unsigned int id;
- Efl_Ecore_Input_Device_Type klass;
- unsigned int subclass; // Evas_Device_Subclass (unused)
- unsigned int pointer_count;
-};
-//
-
struct _Efl_Input_Hold_Data
{
Eo *eo;
+++ /dev/null
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <Efl.h>
-
-#define EFL_INTERNAL_UNSTABLE
-#include "efl_common_internal.h"
-
-#define MY_CLASS EFL_ECORE_INPUT_DEVICE_CLASS
-
-/* Efl Input Device = Evas Device */
-
-typedef struct _Child_Device_Iterator Child_Device_Iterator;
-
-struct _Child_Device_Iterator
-{
- Eina_Iterator iterator;
- Eina_List *list;
- Eina_Iterator *real_iterator;
- Eo *object;
-};
-
-static Eina_Bool
-_is_pointer(Efl_Ecore_Input_Device_Data *pd)
-{
- return (pd->klass == EFL_ECORE_INPUT_DEVICE_TYPE_MOUSE ||
- pd->klass == EFL_ECORE_INPUT_DEVICE_TYPE_TOUCH ||
- pd->klass == EFL_ECORE_INPUT_DEVICE_TYPE_PEN ||
- pd->klass == EFL_ECORE_INPUT_DEVICE_TYPE_WAND);
-}
-
-static void
-_seat_pointers_update(Efl_Ecore_Input_Device_Data *seat, Efl_Ecore_Input_Device_Data *dev)
-{
- if (seat && _is_pointer(dev))
- seat->pointer_count++;
-}
-
-EOLIAN static Efl_Object *
-_efl_ecore_input_device_efl_object_constructor(Eo *obj, Efl_Ecore_Input_Device_Data *pd)
-{
- obj = efl_constructor(efl_super(obj, MY_CLASS));
- pd->eo = obj;
- return obj;
-}
-
-EOLIAN static void
-_efl_ecore_input_device_efl_object_destructor(Eo *obj, Efl_Ecore_Input_Device_Data *pd)
-{
- pd->children = eina_list_free(pd->children);
- if (pd->klass != EFL_ECORE_INPUT_DEVICE_TYPE_SEAT)
- {
- Efl_Ecore_Input_Device_Data *p;
- Eo *seat;
-
- seat = efl_ecore_input_device_seat_get(obj);
- p = efl_data_scope_get(seat, MY_CLASS);
- if (p) p->children = eina_list_remove(p->children, obj);
- }
- efl_unref(pd->source);
-
- return efl_destructor(efl_super(obj, MY_CLASS));
-}
-
-EOLIAN static void
-_efl_ecore_input_device_efl_object_parent_set(Eo *obj, Efl_Ecore_Input_Device_Data *pd EINA_UNUSED, Eo *parent)
-{
- Efl_Ecore_Input_Device_Data *p;
-
- if (parent)
- {
- if (efl_isa(parent, MY_CLASS))
- {
- p = efl_data_scope_get(parent, MY_CLASS);
- EINA_SAFETY_ON_FALSE_RETURN(p->klass == EFL_ECORE_INPUT_DEVICE_TYPE_SEAT);
- if (!eina_list_data_find(p->children, obj))
- {
- p->children = eina_list_append(p->children, obj);
- _seat_pointers_update(p, pd);
- }
- }
- else if(!efl_isa(parent, EFL_CANVAS_SCENE_INTERFACE))
- {
- EINA_SAFETY_ERROR("The parent of a device must be a seat or the canvas");
- return;
- }
- }
- else
- {
- Eo *old_parent = efl_parent_get(obj);
- if (old_parent && efl_isa(old_parent, MY_CLASS))
- {
- p = efl_data_scope_get(old_parent, MY_CLASS);
- p->children = eina_list_remove(p->children, obj);
- if (_is_pointer(pd))
- p->pointer_count--;
- }
- }
-
- efl_parent_set(efl_super(obj, MY_CLASS), parent);
-}
-
-EOLIAN static void
-_efl_ecore_input_device_device_type_set(Eo *obj, Efl_Ecore_Input_Device_Data *pd, Efl_Ecore_Input_Device_Type klass)
-{
- EINA_SAFETY_ON_TRUE_RETURN(pd->klass);
- pd->klass = klass;
- if (klass != EFL_ECORE_INPUT_DEVICE_TYPE_SEAT)
- {
- Efl_Ecore_Input_Device_Data *seat = efl_data_scope_get(efl_ecore_input_device_seat_get(obj), MY_CLASS);
- _seat_pointers_update(seat, pd);
- }
-}
-
-EOLIAN static Efl_Ecore_Input_Device_Type
-_efl_ecore_input_device_device_type_get(const Eo *obj EINA_UNUSED, Efl_Ecore_Input_Device_Data *pd)
-{
- return pd->klass;
-}
-
-EOLIAN static void
-_efl_ecore_input_device_source_set(Eo *obj EINA_UNUSED, Efl_Ecore_Input_Device_Data *pd, Efl_Ecore_Input_Device *src)
-{
- if (pd->source == src) return;
- efl_unref(pd->source);
- pd->source = efl_ref(src);
-}
-
-EOLIAN static Efl_Ecore_Input_Device *
-_efl_ecore_input_device_source_get(const Eo *obj EINA_UNUSED, Efl_Ecore_Input_Device_Data *pd)
-{
- return pd->source;
-}
-
-EOLIAN static void
-_efl_ecore_input_device_seat_id_set(Eo *obj EINA_UNUSED, Efl_Ecore_Input_Device_Data *pd, unsigned int id)
-{
- EINA_SAFETY_ON_TRUE_RETURN(pd->klass != EFL_ECORE_INPUT_DEVICE_TYPE_SEAT);
- pd->id = id;
-}
-
-EOLIAN static unsigned int
-_efl_ecore_input_device_seat_id_get(const Eo *obj, Efl_Ecore_Input_Device_Data *pd)
-{
- if (pd->klass == EFL_ECORE_INPUT_DEVICE_TYPE_SEAT)
- return pd->id;
- return efl_ecore_input_device_seat_id_get(efl_ecore_input_device_seat_get(obj));
-}
-
-EOLIAN static Efl_Ecore_Input_Device *
-_efl_ecore_input_device_seat_get(const Eo *obj, Efl_Ecore_Input_Device_Data *pd)
-{
- for (; obj; obj = efl_parent_get(obj))
- {
- if (pd->klass == EFL_ECORE_INPUT_DEVICE_TYPE_SEAT)
- return pd->eo;
-
- if (!efl_isa(obj, MY_CLASS)) break;
- pd = efl_data_scope_get(obj, MY_CLASS);
- }
-
- return NULL;
-}
-
-static Eina_Bool
-_child_device_iterator_next(Child_Device_Iterator *it, void **data)
-{
- Eo *sub;
-
- if (!eina_iterator_next(it->real_iterator, (void **) &sub))
- return EINA_FALSE;
-
- if (data) *data = sub;
- return EINA_TRUE;
-}
-
-static Eo *
-_child_device_iterator_get_container(Child_Device_Iterator *it)
-{
- return it->object;
-}
-
-static void
-_child_device_iterator_free(Child_Device_Iterator *it)
-{
- eina_iterator_free(it->real_iterator);
- free(it);
-}
-
-EOLIAN static Eina_Iterator *
-_efl_ecore_input_device_children_iterate(Eo *obj, Efl_Ecore_Input_Device_Data *pd)
-{
- Child_Device_Iterator *it;
-
- it = calloc(1, sizeof(*it));
- if (!it) return NULL;
-
- EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR);
-
- it->list = pd->children;
- it->real_iterator = eina_list_iterator_new(it->list);
- it->iterator.version = EINA_ITERATOR_VERSION;
- it->iterator.next = FUNC_ITERATOR_NEXT(_child_device_iterator_next);
- it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER(_child_device_iterator_get_container);
- it->iterator.free = FUNC_ITERATOR_FREE(_child_device_iterator_free);
- it->object = obj;
-
- return &it->iterator;
-}
-
-EOLIAN static unsigned int
-_efl_ecore_input_device_has_pointer_caps(Eo *obj EINA_UNUSED, Efl_Ecore_Input_Device_Data *pd)
-{
- if (pd->klass == EFL_ECORE_INPUT_DEVICE_TYPE_SEAT)
- return pd->pointer_count;
- return _is_pointer(pd);
-}
-
-#include "interfaces/efl_ecore_input_device.eo.c"
+++ /dev/null
-enum Efl.Ecore.Input.Device.Type
-{
- [[General type of input device.
-
- Legacy support since 1.8 as $Evas_Device_Class.
- ]]
- none, [[Not a device.]]
- seat, [[The user/seat (the user themselves).]]
- keyboard, [[A regular keyboard, numberpad or attached buttons.]]
- mouse, [[A mouse, trackball or touchpad relative motion device.]]
- touch, [[A touchscreen with fingers or stylus.]]
- pen, [[A special pen device.]]
- wand, [[A laser pointer, wii-style or "Minority Report" pointing device.]]
- gamepad, [[A gamepad controller or joystick.]]
-}
-
-// TIZEN_ONLY(20171109): support a tizen_input_device_manager interface
-enum Efl.Ecore.Input.Device.Subtype
-{
- [[General type of input device.
-
- Legacy support since 1.8 as $Evas_Device_Subclass.
- ]]
- none, [[Not a device.]]
- finger, [[The normal flat of your finger.]]
- fingernail, [[A fingernai.]]
- knuckle, [[A Knuckle.]]
- palm, [[The palm of a users hand.]]
- hand_size, [[The side of your hand.]]
- hand_flat, [[The flat of your hand.]]
- pen_tip, [[The tip of a pen.]]
- trackpad, [[A trackpad style mouse.]]
- trackpoint, [[A trackpoint style mouse.]]
- trackball, [[A trackball style mouse.]]
-// TIZEN_ONLY(20170620): Add new device subclasses.
- remocon, [[A remote controller.]]
- virtual_keyboard, [[A virtual keyboard.]]
-//
-}
-//
-
-/* TODO: Add canvas property. Current problem is we need to return
- Efl.Ui.Win and not Evas:
- @property canvas { values { canvas: Efl.Canvas; } }
-*/
-
-class Efl.Ecore.Input.Device (Efl.Object)
-{
- [[Represents a pointing device such as a touch finger, pen or mouse.
-
- @since 1.18
- ]]
- methods {
- @property device_type {
- [[Device type property]]
- values {
- klass: Efl.Ecore.Input.Device.Type; [[Input device class]]
- }
- }
- @property source {
- [[Device source property]]
- values {
- src: Efl.Ecore.Input.Device; [[Input device]]
- }
- }
- @property seat {
- [[Get the @Efl.Ecore.Input.Device that represents a seat.
-
- This method will find the seat the device belongs to.
-
- For this, it walk through device's parents looking for a device
- with @Efl.Ecore.Input.Device.Type.seat. It may be
- the device itself.
-
- In case no seat is found, $null is returned.
- ]]
- get {}
- values {
- seat: Efl.Ecore.Input.Device; [[The seat this device belongs to.]]
- }
- }
- @property seat_id {
- [[Seat id number
-
- @since 1.20
- ]]
- values {
- id: uint; [[The id of the seat]]
- }
- }
- children_iterate {
- [[Lists the children attached to this device.
-
- This is only meaningful with seat devices, as they are groups of
- real input devices.
-
- @since 1.20
- ]]
- return: iterator<const(Efl.Ecore.Input.Device)> @owned; [[List of device children]]
- }
- has_pointer_caps {
- [[Determine whether a device has pointer capabilities.
-
- Returns 1 for Mouse, Touch, Pen, Pointer, and Wand type devices.
-
- If a seat device is passed returns the number of pointer devices in the seat.
-
- @since 1.20
- ]]
- return: uint; [[Pointer caps]]
- }
- }
- implements {
- Efl.Object.constructor;
- Efl.Object.destructor;
- Efl.Object.parent { set; }
- }
-}