efl/src/lib/evas/canvas/efl_input_interface.eo

104 lines
4.9 KiB
Plaintext

interface Efl.Input.Interface ()
{
[[An object implementing this interface can send pointer events.
Windows and canvas objects may send input events.
A "pointer" refers to the main pointing device, which could be a mouse,
trackpad, finger, pen, etc... In other words, the finger id in any
pointer event will always be 0.
A "finger" refers to a single point of input, usually in an absolute
coordinates input device, and that can support more than one input
position at at time (think multi-touch screens). The first finger (id 0)
is sent along with a pointer event, so be careful to not handle those
events twice. Note that if the input device can support "hovering", it
is entirely possible to receive move events without down coming first.
A "key" is a key press from a keyboard or equivalent type of input device.
Long, repeated, key presses will always happen like this:
down...up,down...up,down...up (not down...up or down...down...down...up).
@since 1.19
]]
eo_prefix: efl_input;
event_prefix: efl;
methods {
@property pointer_xy {
get {
[[This function returns the current known pointer coordinates
This function returns the current known canvas unit
coordinates of the mouse pointer and sets the contents of
the Evas_Coords pointed to by $x and $y to contain these
coordinates.
]]
}
values {
x: int; [[The pointer to hold the return value of pointer's x position.]]
y: int; [[The pointer to hold the return value of pointer's y position.]]
}
}
@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;
}
}
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)>;
}
}
events {
pointer,move: Efl.Input.Pointer; [[Main pointer move (current and previous positions are known).]]
pointer,down: Efl.Input.Pointer; [[Main pointer button pressed (button id is known).]]
pointer,up: Efl.Input.Pointer; [[Main pointer button released (button id is known).]]
pointer,cancel: Efl.Input.Pointer; [[Main pointer button press was cancelled (button id is known).
This can happen in rare cases when the window manager passes
the focus to a more urgent window, for instance. You probably
don't need to listen to this event, as it will be accompanied
by an up event.]]
pointer,in: Efl.Input.Pointer; [[Pointer entered a window or a widget.]]
pointer,out: Efl.Input.Pointer; [[Pointer left a window or a widget.]]
pointer,wheel: Efl.Input.Pointer; [[Mouse wheel event.]]
pointer,axis: Efl.Input.Pointer; [[Pen or other axis event update.]]
finger,move: Efl.Input.Pointer; [[Finger moved (current and previous positions are known).]]
finger,down: Efl.Input.Pointer; [[Finger pressed (finger id is known).]]
finger,up: Efl.Input.Pointer; [[Finger released (finger id is known).]]
key,down: Efl.Input.Key; [[Keyboard key press.]]
key,up: Efl.Input.Key; [[Keyboard key release.]]
hold: Efl.Input.Hold; [[All input events are on hold or resumed.]]
}
}