forked from enlightenment/efl
121 lines
5.6 KiB
Plaintext
121 lines
5.6 KiB
Plaintext
import eina_types;
|
|
|
|
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_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
|
|
will report mouse, keyboard and focus events from any seat, otherwise those events will
|
|
only be reported if the event comes from a seat that is in the list.]]
|
|
}
|
|
get {
|
|
[[Check if input events from a given seat is enabled.]]
|
|
}
|
|
keys {
|
|
seat: Efl.Input.Device; [[The seat to act on.]]
|
|
}
|
|
values {
|
|
enable: bool; [[$true to enable events for a seat or $false otherwise.]]
|
|
}
|
|
}
|
|
}
|
|
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.]]
|
|
focus,in: Efl.Input.Focus; [[A focus in event.]]
|
|
focus,out: Efl.Input.Focus; [[A focus out event.]]
|
|
}
|
|
}
|