summaryrefslogtreecommitdiff
path: root/src/shared/include/winact.h
blob: 8b32d0023e528c393da7d0b80af6e17bd82020e8 (plain) (blame)
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
#ifndef SHARED_WINACT_H
#define SHARED_WINACT_H

#include <keypack.h>

struct window_action {
  enum {
    NOT_READY,
    KEY_DOWN,
    KEY_UP,
    FOCUS_ENTER,
    FOCUS_LEAVE,
    MOUSE_DOWN,
    MOUSE_UP
  } action_type;
  union {
    struct key_packet as_key;
    struct {
      //0, 0 is upper-left-most pixel not counting border
      //packets are also sent for the border pixels,
      //  so this may be a negative value in those cases
      int16_t y;
      int16_t x;
      enum mouse_button {LEFT, RIGHT, MIDDLE} which;
    } as_mouse;
  };
} __attribute__ ((__packed__));

#endif