Efl: Add storage class Efl.Pointer.Event
This object is the data carried over in an event data pointer.
The private data should be accessible by Ecore and Evas, but
not externally. This means we should be able to easily extend
the feature set, adding more and more information, without
breaking API / ABI.
Also, this should allow applications to create fake input
events easily without exposing our internal structures, or
functions with more and more parameters (such as feed multi).
This is only a storage class, shouldn't contain any logic.
In the future, some logic may be added for gestures support
for instance, or input smoothing / resampling (eg. if input
frequency is 90Hz and screen refresh rate is 60Hz).
The aim is to replace:
- Evas_Event_Mouse_Xxx
- Evas_Event_Multi_Xxx
- Ecore_Event_Mouse_Xxx
We might want to also support Axis, Gestures, etc... with the
same model or even same storage class.
2016-04-28 01:31:46 -07:00
|
|
|
import efl_orientation;
|
2016-04-28 22:24:14 -07:00
|
|
|
import efl_event_types;
|
Efl: Add storage class Efl.Pointer.Event
This object is the data carried over in an event data pointer.
The private data should be accessible by Ecore and Evas, but
not externally. This means we should be able to easily extend
the feature set, adding more and more information, without
breaking API / ABI.
Also, this should allow applications to create fake input
events easily without exposing our internal structures, or
functions with more and more parameters (such as feed multi).
This is only a storage class, shouldn't contain any logic.
In the future, some logic may be added for gestures support
for instance, or input smoothing / resampling (eg. if input
frequency is 90Hz and screen refresh rate is 60Hz).
The aim is to replace:
- Evas_Event_Mouse_Xxx
- Evas_Event_Multi_Xxx
- Ecore_Event_Mouse_Xxx
We might want to also support Axis, Gestures, etc... with the
same model or even same storage class.
2016-04-28 01:31:46 -07:00
|
|
|
|
2016-05-29 23:34:31 -07:00
|
|
|
class Efl.Pointer.Event (Eo.Base, Efl.Event, Efl.Input.State)
|
Efl: Add storage class Efl.Pointer.Event
This object is the data carried over in an event data pointer.
The private data should be accessible by Ecore and Evas, but
not externally. This means we should be able to easily extend
the feature set, adding more and more information, without
breaking API / ABI.
Also, this should allow applications to create fake input
events easily without exposing our internal structures, or
functions with more and more parameters (such as feed multi).
This is only a storage class, shouldn't contain any logic.
In the future, some logic may be added for gestures support
for instance, or input smoothing / resampling (eg. if input
frequency is 90Hz and screen refresh rate is 60Hz).
The aim is to replace:
- Evas_Event_Mouse_Xxx
- Evas_Event_Multi_Xxx
- Ecore_Event_Mouse_Xxx
We might want to also support Axis, Gestures, etc... with the
same model or even same storage class.
2016-04-28 01:31:46 -07:00
|
|
|
{
|
|
|
|
[[Event data carried over with any pointer event (mouse, touch, ...)
|
|
|
|
|
|
|
|
@since 1.18
|
|
|
|
]]
|
|
|
|
methods {
|
|
|
|
@property action {
|
|
|
|
[[The action represented by this event.]]
|
|
|
|
values {
|
|
|
|
act: Efl.Pointer.Action;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@property button {
|
|
|
|
[[The mouse button that triggered the event.]]
|
|
|
|
values {
|
|
|
|
but: int; [[1 to 32, 0 if not a button event.]]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@property button_pressed {
|
|
|
|
[[Whether a mouse button is pressed at the moment of the event.]]
|
|
|
|
keys {
|
|
|
|
button: int;
|
|
|
|
}
|
|
|
|
values {
|
|
|
|
pressed: bool;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@property position {
|
|
|
|
[[Position where the event happened, relative to the window.]]
|
|
|
|
values {
|
|
|
|
x: int;
|
|
|
|
y: int;
|
2016-05-30 20:15:25 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
@property position_precise {
|
|
|
|
[[Position where the event happened, with subpixel precision
|
|
|
|
|
|
|
|
Note: Same value as @.position, relative to the window.
|
|
|
|
]]
|
|
|
|
values {
|
|
|
|
x: double;
|
|
|
|
y: double;
|
Efl: Add storage class Efl.Pointer.Event
This object is the data carried over in an event data pointer.
The private data should be accessible by Ecore and Evas, but
not externally. This means we should be able to easily extend
the feature set, adding more and more information, without
breaking API / ABI.
Also, this should allow applications to create fake input
events easily without exposing our internal structures, or
functions with more and more parameters (such as feed multi).
This is only a storage class, shouldn't contain any logic.
In the future, some logic may be added for gestures support
for instance, or input smoothing / resampling (eg. if input
frequency is 90Hz and screen refresh rate is 60Hz).
The aim is to replace:
- Evas_Event_Mouse_Xxx
- Evas_Event_Multi_Xxx
- Ecore_Event_Mouse_Xxx
We might want to also support Axis, Gestures, etc... with the
same model or even same storage class.
2016-04-28 01:31:46 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
@property previous_position {
|
|
|
|
[[Position of the previous event, valid for move events.
|
|
|
|
|
|
|
|
Relative to the window. May be equal to @.position.
|
|
|
|
]]
|
|
|
|
values {
|
|
|
|
x: int;
|
|
|
|
y: int;
|
|
|
|
}
|
|
|
|
}
|
2016-05-30 20:15:25 -07:00
|
|
|
@property previous_position_precise {
|
|
|
|
[[Position of the previous event, with subpixel precision.
|
|
|
|
|
|
|
|
Valid for move events, may not be valid for other events.
|
|
|
|
Relative to the window. May be equal to @.position_precise.
|
|
|
|
]]
|
|
|
|
values {
|
|
|
|
x: double;
|
|
|
|
y: double;
|
|
|
|
}
|
|
|
|
}
|
Efl: Add storage class Efl.Pointer.Event
This object is the data carried over in an event data pointer.
The private data should be accessible by Ecore and Evas, but
not externally. This means we should be able to easily extend
the feature set, adding more and more information, without
breaking API / ABI.
Also, this should allow applications to create fake input
events easily without exposing our internal structures, or
functions with more and more parameters (such as feed multi).
This is only a storage class, shouldn't contain any logic.
In the future, some logic may be added for gestures support
for instance, or input smoothing / resampling (eg. if input
frequency is 90Hz and screen refresh rate is 60Hz).
The aim is to replace:
- Evas_Event_Mouse_Xxx
- Evas_Event_Multi_Xxx
- Ecore_Event_Mouse_Xxx
We might want to also support Axis, Gestures, etc... with the
same model or even same storage class.
2016-04-28 01:31:46 -07:00
|
|
|
@property device {
|
|
|
|
[[Pointing device that originated this event.]]
|
|
|
|
values {
|
2016-04-28 02:43:18 -07:00
|
|
|
dev: Efl.Input.Device;
|
Efl: Add storage class Efl.Pointer.Event
This object is the data carried over in an event data pointer.
The private data should be accessible by Ecore and Evas, but
not externally. This means we should be able to easily extend
the feature set, adding more and more information, without
breaking API / ABI.
Also, this should allow applications to create fake input
events easily without exposing our internal structures, or
functions with more and more parameters (such as feed multi).
This is only a storage class, shouldn't contain any logic.
In the future, some logic may be added for gestures support
for instance, or input smoothing / resampling (eg. if input
frequency is 90Hz and screen refresh rate is 60Hz).
The aim is to replace:
- Evas_Event_Mouse_Xxx
- Evas_Event_Multi_Xxx
- Ecore_Event_Mouse_Xxx
We might want to also support Axis, Gestures, etc... with the
same model or even same storage class.
2016-04-28 01:31:46 -07:00
|
|
|
}
|
|
|
|
}
|
2016-05-10 05:26:07 -07:00
|
|
|
@property finger {
|
|
|
|
[[Finger ID in case of a multi touch event.]]
|
|
|
|
values {
|
|
|
|
id: int;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@property touch {
|
|
|
|
[[Touch information about a specific finger or pointer.]]
|
|
|
|
values {
|
|
|
|
radius: double;
|
|
|
|
rad_x: double;
|
|
|
|
rad_y: double;
|
|
|
|
pressure: double;
|
|
|
|
angle: double;
|
|
|
|
}
|
|
|
|
}
|
Efl: Add storage class Efl.Pointer.Event
This object is the data carried over in an event data pointer.
The private data should be accessible by Ecore and Evas, but
not externally. This means we should be able to easily extend
the feature set, adding more and more information, without
breaking API / ABI.
Also, this should allow applications to create fake input
events easily without exposing our internal structures, or
functions with more and more parameters (such as feed multi).
This is only a storage class, shouldn't contain any logic.
In the future, some logic may be added for gestures support
for instance, or input smoothing / resampling (eg. if input
frequency is 90Hz and screen refresh rate is 60Hz).
The aim is to replace:
- Evas_Event_Mouse_Xxx
- Evas_Event_Multi_Xxx
- Ecore_Event_Mouse_Xxx
We might want to also support Axis, Gestures, etc... with the
same model or even same storage class.
2016-04-28 01:31:46 -07:00
|
|
|
@property source {
|
|
|
|
[[The object where this event first originated, in case of
|
|
|
|
propagation or repetition of the event.
|
|
|
|
]]
|
|
|
|
values {
|
2016-05-12 00:48:54 -07:00
|
|
|
src: Eo.Base; [[Source object: $Efl.Gfx]]
|
Efl: Add storage class Efl.Pointer.Event
This object is the data carried over in an event data pointer.
The private data should be accessible by Ecore and Evas, but
not externally. This means we should be able to easily extend
the feature set, adding more and more information, without
breaking API / ABI.
Also, this should allow applications to create fake input
events easily without exposing our internal structures, or
functions with more and more parameters (such as feed multi).
This is only a storage class, shouldn't contain any logic.
In the future, some logic may be added for gestures support
for instance, or input smoothing / resampling (eg. if input
frequency is 90Hz and screen refresh rate is 60Hz).
The aim is to replace:
- Evas_Event_Mouse_Xxx
- Evas_Event_Multi_Xxx
- Ecore_Event_Mouse_Xxx
We might want to also support Axis, Gestures, etc... with the
same model or even same storage class.
2016-04-28 01:31:46 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
/* FIXME: why not double_click() and triple_click() */
|
|
|
|
@property button_flags {
|
|
|
|
[[Double or triple click information.]]
|
|
|
|
values {
|
|
|
|
flags: Efl.Pointer.Button_Flags;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@property event_flags {
|
|
|
|
[[Extra flags for this event, may be changed by the user.]]
|
|
|
|
values {
|
|
|
|
flags: Efl.Pointer.Event_Flags;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@property wheel_direction {
|
|
|
|
values {
|
|
|
|
dir: Efl.Orient; [[Horizontal or Vertical only.]]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@property wheel_distance {
|
|
|
|
values {
|
|
|
|
dist: int;
|
|
|
|
}
|
|
|
|
}
|
2016-05-10 05:26:07 -07:00
|
|
|
instance_get @class {
|
|
|
|
[[Creates an instance of this events or returns a fresh one from
|
|
|
|
a memory pool.
|
|
|
|
]]
|
|
|
|
params {
|
|
|
|
@in owner: Eo.Base; [[The parent object.]]
|
|
|
|
@out priv: void*; [[Pointer to the internal data of the object.]]
|
|
|
|
}
|
|
|
|
return: own(Efl.Pointer.Event);
|
|
|
|
}
|
Efl: Add storage class Efl.Pointer.Event
This object is the data carried over in an event data pointer.
The private data should be accessible by Ecore and Evas, but
not externally. This means we should be able to easily extend
the feature set, adding more and more information, without
breaking API / ABI.
Also, this should allow applications to create fake input
events easily without exposing our internal structures, or
functions with more and more parameters (such as feed multi).
This is only a storage class, shouldn't contain any logic.
In the future, some logic may be added for gestures support
for instance, or input smoothing / resampling (eg. if input
frequency is 90Hz and screen refresh rate is 60Hz).
The aim is to replace:
- Evas_Event_Mouse_Xxx
- Evas_Event_Multi_Xxx
- Ecore_Event_Mouse_Xxx
We might want to also support Axis, Gestures, etc... with the
same model or even same storage class.
2016-04-28 01:31:46 -07:00
|
|
|
}
|
|
|
|
implements {
|
|
|
|
Eo.Base.constructor;
|
2016-05-10 05:26:07 -07:00
|
|
|
class.destructor;
|
|
|
|
Efl.Event.reset;
|
2016-05-11 23:07:49 -07:00
|
|
|
Efl.Event.dup;
|
Efl: Add storage class Efl.Pointer.Event
This object is the data carried over in an event data pointer.
The private data should be accessible by Ecore and Evas, but
not externally. This means we should be able to easily extend
the feature set, adding more and more information, without
breaking API / ABI.
Also, this should allow applications to create fake input
events easily without exposing our internal structures, or
functions with more and more parameters (such as feed multi).
This is only a storage class, shouldn't contain any logic.
In the future, some logic may be added for gestures support
for instance, or input smoothing / resampling (eg. if input
frequency is 90Hz and screen refresh rate is 60Hz).
The aim is to replace:
- Evas_Event_Mouse_Xxx
- Evas_Event_Multi_Xxx
- Ecore_Event_Mouse_Xxx
We might want to also support Axis, Gestures, etc... with the
same model or even same storage class.
2016-04-28 01:31:46 -07:00
|
|
|
Efl.Event.timestamp.set;
|
|
|
|
Efl.Event.timestamp.get;
|
2016-05-29 23:34:31 -07:00
|
|
|
Efl.Input.State.modifier_enabled.get;
|
|
|
|
Efl.Input.State.lock_enabled.get;
|
Efl: Add storage class Efl.Pointer.Event
This object is the data carried over in an event data pointer.
The private data should be accessible by Ecore and Evas, but
not externally. This means we should be able to easily extend
the feature set, adding more and more information, without
breaking API / ABI.
Also, this should allow applications to create fake input
events easily without exposing our internal structures, or
functions with more and more parameters (such as feed multi).
This is only a storage class, shouldn't contain any logic.
In the future, some logic may be added for gestures support
for instance, or input smoothing / resampling (eg. if input
frequency is 90Hz and screen refresh rate is 60Hz).
The aim is to replace:
- Evas_Event_Mouse_Xxx
- Evas_Event_Multi_Xxx
- Ecore_Event_Mouse_Xxx
We might want to also support Axis, Gestures, etc... with the
same model or even same storage class.
2016-04-28 01:31:46 -07:00
|
|
|
}
|
|
|
|
}
|