summaryrefslogtreecommitdiff
path: root/src/lib/efl/interfaces/efl_input_types.eot
blob: eb5f8edeb7160d3d882122b464e78a477fd82fd4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
enum @beta Efl.Pointer.Action
{
   [[Pointer event type. Represents which kind of event this is.

     @since 1.19
   ]]
   none,   [[Not a valid event, or nothing new happened (eg. when querying
             current state of touch points).]]
   move,   [[Mouse or equivalent pointer moved.]]
   down,   [[Mouse button or equivalent pointer pressed down.
             Always followed by up or cancel.]]
   up,     [[Mouse button or equivalent pointer released. See also cancel.]]
   cancel, [[Special event happening after a down if the up counterpart
             can not happen (eg. another window forcibly stole the focus).]]
   in,     [[Mouse or pointer entered the object.]]
   out,    [[Mouse or pointer exited the object.]]
   wheel,  [[Mouse wheel scroll, horizontally or vertically.]]
   axis,   [[Axis event (pen, stick, ...).]]
}

enum @beta Efl.Pointer.Flags
{
   [[Pointer flags indicating whether a double or triple click is under way.

     @since 1.19
   ]]
   none = 0,                [[No extra mouse button data]]
   double_click = (1 << 0), [[This mouse button press was the 2nd press of a double click]]
   triple_click = (1 << 1), [[This mouse button press was the 3rd press of a triple click]]
}

enum @beta Efl.Input.Flags
{
   [[Special flags set during an input event propagation.

     @since 1.19
   ]]
   none = 0,             [[No fancy flags set]]
   processed = (1 << 0), [[This event is being delivered and has been processed,
                           so it should be put "on hold" until the flag is unset.
                           The event should be used for informational purposes
                           and maybe some indications visually, but not
                           actually perform anything.]]
   scrolling = (1 << 1), [[This event flag indicates the event occurs while
                           scrolling; for example, DOWN event occurs during
                           scrolling. The event should be used for informational
                           purposes and maybe some indications visually, but not
                           actually perform anything.]]
}

enum @beta Efl.Input.Object_Pointer_Mode {
   [[How the mouse pointer should be handled by EFL.

     In the mode $autograb, when a mouse button is pressed down over an
     object and held down, with the mouse pointer being moved outside of it,
     the pointer still behaves as being bound to that object, albeit out
     of its drawing region. When the button is released, the event will
     be fed to the object, that may check if the final position is over it
     or not and do something about it.

     In the mode $nograb, the pointer will always be bound to the object
     right below it.

     @since 1.19
   ]]
   auto_grab, [[Default, X11-like.]]
   no_grab,   [[Pointer always bound to the object right below it.]]
   no_grab_no_repeat_updown [[Useful on object with "repeat events" enabled,
                              where mouse/touch up and down events WON'T be
                              repeated to objects and these objects wont be
                              auto-grabbed.

                              @since 1.2
                            ]]
}

enum @beta Efl.Input.Value {
   [[Keys for the generic values of all events.

     @since 1.19
   ]]
   none,       [[Not a valid value type.]]
   timestamp,  [[Timestamp of this event in seconds.]]
   button,     [[ID of the button that triggered this event (unsigned int).
                 Prefer the method $button to read this value. Default: 0.]]
   buttons_pressed, [[32-bit bit mask (unsigned int). Prefer the
                      method $buttons_pressed to read this value. Default: 0.]]
   tool,       [[ID of the finger or tool (eg. pen) that triggered this event.
                 Prefer the property $tool to read this value. Default: 0.]]
   x,          [[Absolute X position where this event occurred, in pixels.
                 Relative to the window. Default: last known position.
                 This value may be smoothed out or even extrapolated by EFL.]]
   y,          [[Absolute Y position where this event occurred, in pixels.
                 Relative to the window. Default: last known position.
                 This value may be smoothed out or even extrapolated by EFL.]]
   dx,         [[Relative X movement, in pixels. Range: unbounded. Default: 0.]]
   dy,         [[Relative Y movement, in pixels. Range: unbounded. Default: 0.]]
   previous_x, [[Previous X position of the pointer, in pixels.
                 Default: last known position, may be equal to x.]]
   previous_y, [[Previous Y position of the pointer, in pixels.
                 Default: last known position, may be equal to y.]]
   raw_x,      [[Absolute X position where this event occurred. Default: 0.
                 This value will be set from the hardware input without any
                 smoothing or extrapolation. For an axis input event, this is
                 the raw value set by the driver (undefined range and unit).]]
   raw_y,      [[Absolute X position where this event occurred. Default: 0.
                 This value will be set from the hardware input without any
                 smoothing or extrapolation. For an axis input event, this is
                 the raw value set by the driver (undefined range and unit).]]
   radius,     [[Average radius of the pressed area under a finger or tool,
                 in pixels. Default is 1.]]
   radius_x,   [[Spread over X of the pressed area under a finger or tool,
                 in pixels. Default is 1.]]
   radius_y,   [[Spread over Y of the pressed area under a finger or tool,
                 in pixels. Default is 1.]]
   pressure,   [[Pressure applied to the button, touch or pen tip.
                 Range: [0, 1]. Default is 1.]]
   distance,   [[Relative distance along physical Z axis. Range: [0, 1].
                 Default is 0.]]
   azimuth,    [[Angle of tool about the Z axis from positive X axis.
                 Range: [-PI, PI]. Unit: Radians.]]
   tilt,       [[Angle of tool about plane of sensor from positive Z axis.
                 Range: [0.0, PI]. Unit: Radians.]]
   tilt_x,     [[Current tilt along the X axis of the tablet's current logical
                 orientation, in radians off the tablet's Z axis.
                 Range: [-PI, PI]. Unit: Radians.]]
   tilt_y,     [[Current tilt along the Y axis of the tablet's current logical
                 orientation, in radians off the tablet's Z axis.
                 Range: [-PI, PI]. Unit: Radians.]]
   twist,      [[Rotation of tool about its major axis from its "natural"
                 position. Range: [-PI, PI] Unit: Radians.]]
   wheel_delta, [[Delta movement of the wheel in discrete steps (int).
                  Default: 0.]]
   wheel_angle, [[Delta movement of the wheel in radians. Default: 0.]]
   wheel_horizontal, [[Direction of the wheel (horizontal = 1 or vertical = 0).
                       Default: 0. Prefer the property $wheel_horizontal to read.]]
   slider,     [[Current position of the slider on the tool. Range: [-1, 1].
                 Default: 0.]]
}

enum Efl.Input.Modifier {
   [[Key modifiers such as Control, Alt, etc...

     This enum may be used as a bitmask with OR operations, depending on the
     API.

     The available keys may vary depending on the physical keyboard layout, or
     language and keyboard settings, or depending on the platform.

     @since 1.20
   ]]
   none    = 0,      [[No key modifier]]
   alt     = 1 << 0, [[Alt key modifier]]
   control = 1 << 1, [[Control key modifier ("Ctrl" key)]]
   shift   = 1 << 2, [[Shift key modifier]]
   meta    = 1 << 3, [[Meta key modifier (often the "Windows" key)]]
   altgr   = 1 << 4, [[AltGr key modifier (not present on all keyboards)]]
   hyper   = 1 << 5, [[Hyper key modifier (may be "Windows" key)]]
   super   = 1 << 6, [[Super key modifier (may be "Windows" key)]]
}

enum Efl.Input.Lock {
   [[Key locks such as Num Lock, Scroll Lock and Caps Lock.

     This enum may be used as a bitmask with OR operations, depending on the
     API.

     The available keys may vary depending on the physical keyboard layout, or
     language and keyboard settings, or depending on the platform.

     @since 1.20
   ]]
   none    = 0,      [[No key modifier]]
   num     = 1 << 0, [[Num Lock for numeric key pad use]]
   caps    = 1 << 1, [[Caps Lock for writing in all caps]]
   scroll  = 1 << 2, [[Scroll Lock]]
   shift   = 1 << 3, [[Shift Lock]]
}