#ifndef EVENT_USER #define EVENT_USER #define DUMMY 0x80 /* * Structure containing informations about events. */ typedef struct { /* * XD0T 00ZZ * * Where: * * X = press (1) or release (0) * * D = dummy, ignore this event (1) * * T = keyboard (1) or mouse (0) * * ZZ (only for mouse events) = button * * left (01) * * right (10) * * middle (11) */ unsigned char infos; /* Key pressed (not use if mouse event) */ unsigned char key; /* X coordinate of click (not use if keyboard event) */ signed short x; /* Y coordinate of click (not use if keyboard event) */ signed short y; } event; typedef enum { M_NONE = 0, M_LEFT = 0x01, M_RIGHT = 0x02, M_MIDDLE = 0x03 } mouse_button; /* * Create a new event, the caller must free it after use. */ event * new_event(); /* * Put all fields at 0. */ void reset(event *event); /* * Init a basic event and set if the key/button is pressed or not. */ void init_event(event *event, char is_pressed); /* * Make a dummy event. */ void dummy_event(event *event); /* * Check if an event is dummy or not. */ int is_dummy(event *event); /* * Init a mouse event and set if the button is pressed or not. * The caller must indicate coordonates. */ void mouse_event(event *event, mouse_button button); /* * Init a mouse event and set if the button is pressed or not. * It sets also the coordinates. */ void mouse_event_coord(event *event, mouse_button button, signed short x, signed short y); /* * Init a keyboard event and set if the key is pressed or not. */ void kb_event(event *event, char key, char is_pressed); #endif