seat: Efl.Input.Device; [[The seat or $null if not found.]]
}
}
+ @property pointer_position {
+ get {
+ [[This function returns the current known pointer coordinates
+
+ This function returns the current position of the main input
+ pointer (mouse, pen, etc...).
+ ]]
+ }
+ /* FIXME: missing keys { seat } */
+ values {
+ pos: Eina.Position2D; [[The pointer position in pixels.]]
+ }
+ }
+ @property pointer_inside {
+ get {
+ [[Returns whether the mouse pointer is logically inside the
+ canvas.
+
+ When this function is called it will return a value of either
+ $false or $true, depending on whether a pointer,in or pointer,out
+ event has been called previously.
+
+ A return value of $true indicates the mouse is logically
+ inside the canvas, and $false implies it is logically
+ outside the canvas.
+
+ A canvas begins with the mouse being assumed outside ($false).
+ ]]
+ }
+ /* FIXME: missing keys { seat } */
+ values {
+ inside: bool; [[$true if the mouse pointer is inside the canvas,
+ $false otherwise]]
+ }
+ }
+ /* FIXME: maybe not necessary if gesture supports this */
+ pointer_iterate @const {
+ [[Returns an iterator over the current known pointer positions.
+
+ This is used to iterate over the current known multi-touch positions,
+ including the first finger. Each pointer position is represented by
+ an object of type @Efl.Input.Pointer.
+
+ Each finger in a multi touch environment can then be identified
+ by the @Efl.Input.Pointer.tool property. The order of the pointers
+ in this iterator is not defined.
+
+ Note: If the input surface supports hovering input, some pointers
+ may not be in a "down" state. To retrieve the list of such pointers,
+ set the $hover value to $true. Remember though that most devices
+ currently don't support this.
+ ]]
+ params {
+ /* FIXME: missing seat. hover is not useful */
+ hover: bool @optional; [[$false by default, $true means to include
+ fingers that are currently hovering.]]
+ }
+ return: iterator<const(Efl.Input.Pointer)>; [[Iterator to pointer positions]]
+ }
}
events {
focus,in: Efl.Input.Focus; [[Called when canvas got focus]]
}
EOLIAN static Eina_Position2D
-_efl_ui_win_efl_input_interface_pointer_position_get(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *sd)
+_efl_ui_win_efl_canvas_pointer_position_get(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *sd)
{
Eina_Position2D pos;
evas_pointer_canvas_xy_get(sd->evas, &pos.x, &pos.y);
}
EOLIAN static Eina_Bool
-_efl_ui_win_efl_input_interface_pointer_inside_get(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *sd)
+_efl_ui_win_efl_canvas_pointer_inside_get(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *sd)
{
return evas_pointer_inside_get(sd->evas);
}
}
EOLIAN static Eina_Iterator *
-_efl_ui_win_efl_input_interface_pointer_iterate(const Eo *obj, Efl_Ui_Win_Data *sd,
- Eina_Bool hover EINA_UNUSED)
+_efl_ui_win_efl_canvas_pointer_iterate(const Eo *obj, Efl_Ui_Win_Data *sd,
+ Eina_Bool hover EINA_UNUSED)
{
Input_Pointer_Iterator *it;
Eina_List *list = NULL;
Efl.Gfx.Size.Hint.hint_aspect { set; }
Efl.Gfx.Size.Hint.hint_max { set; }
Efl.Text.text { get; set; }
- Efl.Input.Interface.pointer_position { get; }
- Efl.Input.Interface.pointer_inside { get; }
- Efl.Input.Interface.pointer_iterate;
+ Efl.Canvas.pointer_position { get; }
+ Efl.Canvas.pointer_inside { get; }
+ Efl.Canvas.pointer_iterate;
Efl.Canvas.image_max_size { get; }
Efl.Canvas.smart_objects_calculate;
Efl.Canvas.objects_at_xy_get;
eo_prefix: efl_input;
event_prefix: efl;
methods {
- @property pointer_position {
- get {
- [[This function returns the current known pointer coordinates
-
- This function returns the current position of the main input
- pointer (mouse, pen, etc...).
- ]]
- }
- values {
- pos: Eina.Position2D; [[The pointer position in pixels.]]
- }
- }
- @property pointer_inside {
- get {
- [[Returns whether the mouse pointer is logically inside the
- canvas.
-
- When this function is called it will return a value of either
- $false or $true, depending on whether a pointer,in or pointer,out
- event has been called previously.
-
- A return value of $true indicates the mouse is logically
- inside the canvas, and $false implies it is logically
- outside the canvas.
-
- A canvas begins with the mouse being assumed outside ($false).
- ]]
- return: bool; [[$true if the mouse pointer is inside the canvas, $false otherwise]]
- }
- }
- pointer_iterate @const {
- [[Returns an iterator over the current known pointer positions.
-
- This is used to iterate over the current known multi-touch positions,
- including the first finger. Each pointer position is represented by
- an object of type @Efl.Input.Pointer.
-
- Each finger in a multi touch environment can then be identified
- by the @Efl.Input.Pointer.tool property. The order of the pointers
- in this iterator is not defined.
-
- Note: If the input surface supports hovering input, some pointers
- may not be in a "down" state. To retrieve the list of such pointers,
- set the $hover value to $true. Remember though that most devices
- currently don't support this.
- ]]
- params {
- hover: bool @optional; [[$false by default, $true means to include
- fingers that are currently hovering.]]
- }
- return: iterator<const(Efl.Input.Pointer)>; [[Iterator to pointer positions]]
- }
@property seat_event_filter {
set {
[[Add or remove a given seat to the filter list. If the filter list is empty this object
size_t cnt = 0;
int i = 0;
- it = efl_input_pointer_iterate(win, 0);
+ it = efl_canvas_pointer_iterate(win, 0);
EINA_ITERATOR_FOREACH(it, ptr)
{
double x, y;
_inputs_timer3_cb(void *data)
{
Efl_Input_Pointer *ptr;
+ Eina_Position2D pos;
Eina_Iterator *it;
Eo *win = data;
size_t cnt = 0;
int i = 0;
- it = efl_input_pointer_iterate(win, 0);
+ it = efl_canvas_pointer_iterate(win, 0);
EINA_ITERATOR_FOREACH(it, ptr)
{
int tool, ok = 0;
eina_iterator_free(it);
fail_if(cnt != 2); // 2 moves (in the list), 2 ups (gone)
+ fail_if(!efl_canvas_pointer_inside_get(win));
+ pos = efl_canvas_pointer_position_get(win);
+ ck_assert_int_eq(pos.x, points[1][0].x);
+ ck_assert_int_eq(pos.y, points[1][0].y);
+
elm_exit();
return ECORE_CALLBACK_DONE;