summaryrefslogtreecommitdiff
path: root/src/lib/evas/canvas/efl_input_interface.eo
blob: 68408a3281062373b004e210f4b5e84764b86f4b (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
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 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.]]
   }
}