1*21817992SBaptiste Daroussin/* $Id: curses.events,v 1.4 2024/01/19 09:24:17 tom Exp $ */ 27a656419SBaptiste Daroussin/* 37a656419SBaptiste Daroussin * vile:cmode: 47a656419SBaptiste Daroussin * This file is part of ncurses, designed to be appended after curses.h.in 57a656419SBaptiste Daroussin * (see that file for the relevant copyright). 67a656419SBaptiste Daroussin */ 77a656419SBaptiste Daroussin 87a656419SBaptiste Daroussin/* 97a656419SBaptiste Daroussin * This is an extension to support events... 107a656419SBaptiste Daroussin */ 117a656419SBaptiste Daroussin#ifdef NCURSES_WGETCH_EVENTS 127a656419SBaptiste Daroussin#if !defined(__BEOS__) || defined(__HAIKU__) 137a656419SBaptiste Daroussin /* Fix _nc_timed_wait() on BEOS... */ 147a656419SBaptiste Daroussin# define NCURSES_EVENT_VERSION 1 157a656419SBaptiste Daroussin#endif /* !defined(__BEOS__) */ 167a656419SBaptiste Daroussin 177a656419SBaptiste Daroussin/* 187a656419SBaptiste Daroussin * Bits to set in _nc_event.data.flags 197a656419SBaptiste Daroussin */ 207a656419SBaptiste Daroussin# define _NC_EVENT_TIMEOUT_MSEC 1 217a656419SBaptiste Daroussin# define _NC_EVENT_FILE 2 227a656419SBaptiste Daroussin# define _NC_EVENT_FILE_READABLE 2 237a656419SBaptiste Daroussin# if 0 /* Not supported yet... */ 247a656419SBaptiste Daroussin# define _NC_EVENT_FILE_WRITABLE 4 257a656419SBaptiste Daroussin# define _NC_EVENT_FILE_EXCEPTION 8 267a656419SBaptiste Daroussin# endif 277a656419SBaptiste Daroussin 287a656419SBaptiste Daroussintypedef struct 297a656419SBaptiste Daroussin{ 307a656419SBaptiste Daroussin int type; 317a656419SBaptiste Daroussin union 327a656419SBaptiste Daroussin { 337a656419SBaptiste Daroussin long timeout_msec; /* _NC_EVENT_TIMEOUT_MSEC */ 347a656419SBaptiste Daroussin struct 357a656419SBaptiste Daroussin { 367a656419SBaptiste Daroussin unsigned int flags; 377a656419SBaptiste Daroussin int fd; 387a656419SBaptiste Daroussin unsigned int result; 397a656419SBaptiste Daroussin } fev; /* _NC_EVENT_FILE */ 407a656419SBaptiste Daroussin } data; 417a656419SBaptiste Daroussin} _nc_event; 427a656419SBaptiste Daroussin 437a656419SBaptiste Daroussintypedef struct 447a656419SBaptiste Daroussin{ 457a656419SBaptiste Daroussin int count; 467a656419SBaptiste Daroussin int result_flags; /* _NC_EVENT_TIMEOUT_MSEC or _NC_EVENT_FILE_READABLE */ 477a656419SBaptiste Daroussin _nc_event *events[1]; 487a656419SBaptiste Daroussin} _nc_eventlist; 497a656419SBaptiste Daroussin 507a656419SBaptiste Daroussinextern NCURSES_EXPORT(int) wgetch_events (WINDOW *, _nc_eventlist *) GCC_DEPRECATED(experimental option); /* experimental */ 517a656419SBaptiste Daroussinextern NCURSES_EXPORT(int) wgetnstr_events (WINDOW *,char *,int,_nc_eventlist *) GCC_DEPRECATED(experimental option); /* experimental */ 527a656419SBaptiste Daroussin 53*21817992SBaptiste Daroussin#define KEY_EVENT 0634 /* We were interrupted by an event */ 547a656419SBaptiste Daroussin 557a656419SBaptiste Daroussin#endif /* NCURSES_WGETCH_EVENTS */ 56