micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 1 | /* $Id: curses.events,v 1.4 2024/01/19 09:24:17 tom Exp $ */ |
| 2 | /* |
| 3 | * vile:cmode: |
| 4 | * This file is part of ncurses, designed to be appended after curses.h.in |
| 5 | * (see that file for the relevant copyright). |
| 6 | */ |
| 7 | |
| 8 | /* |
| 9 | * This is an extension to support events... |
| 10 | */ |
| 11 | #ifdef NCURSES_WGETCH_EVENTS |
| 12 | #if !defined(__BEOS__) || defined(__HAIKU__) |
| 13 | /* Fix _nc_timed_wait() on BEOS... */ |
| 14 | # define NCURSES_EVENT_VERSION 1 |
| 15 | #endif /* !defined(__BEOS__) */ |
| 16 | |
| 17 | /* |
| 18 | * Bits to set in _nc_event.data.flags |
| 19 | */ |
| 20 | # define _NC_EVENT_TIMEOUT_MSEC 1 |
| 21 | # define _NC_EVENT_FILE 2 |
| 22 | # define _NC_EVENT_FILE_READABLE 2 |
| 23 | # if 0 /* Not supported yet... */ |
| 24 | # define _NC_EVENT_FILE_WRITABLE 4 |
| 25 | # define _NC_EVENT_FILE_EXCEPTION 8 |
| 26 | # endif |
| 27 | |
| 28 | typedef struct |
| 29 | { |
| 30 | int type; |
| 31 | union |
| 32 | { |
| 33 | long timeout_msec; /* _NC_EVENT_TIMEOUT_MSEC */ |
| 34 | struct |
| 35 | { |
| 36 | unsigned int flags; |
| 37 | int fd; |
| 38 | unsigned int result; |
| 39 | } fev; /* _NC_EVENT_FILE */ |
| 40 | } data; |
| 41 | } _nc_event; |
| 42 | |
| 43 | typedef struct |
| 44 | { |
| 45 | int count; |
| 46 | int result_flags; /* _NC_EVENT_TIMEOUT_MSEC or _NC_EVENT_FILE_READABLE */ |
| 47 | _nc_event *events[1]; |
| 48 | } _nc_eventlist; |
| 49 | |
| 50 | extern NCURSES_EXPORT(int) wgetch_events (WINDOW *, _nc_eventlist *) GCC_DEPRECATED(experimental option); /* experimental */ |
| 51 | extern NCURSES_EXPORT(int) wgetnstr_events (WINDOW *,char *,int,_nc_eventlist *) GCC_DEPRECATED(experimental option); /* experimental */ |
| 52 | |
| 53 | #define KEY_EVENT 0634 /* We were interrupted by an event */ |
| 54 | |
| 55 | #endif /* NCURSES_WGETCH_EVENTS */ |