#ifndef SHARED_WINACT_H #define SHARED_WINACT_H #include 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