]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - include/curses.tail
ncurses 5.3
[ncurses.git] / include / curses.tail
diff --git a/include/curses.tail b/include/curses.tail
new file mode 100644 (file)
index 0000000..b3991cd
--- /dev/null
@@ -0,0 +1,140 @@
+/* $Id: curses.tail,v 1.7 2002/10/12 15:46:02 tom Exp $ */
+
+/* mouse interface */
+#define NCURSES_MOUSE_VERSION  1
+
+/* event masks */
+#define        BUTTON1_RELEASED        000000000001L
+#define        BUTTON1_PRESSED         000000000002L
+#define        BUTTON1_CLICKED         000000000004L
+#define        BUTTON1_DOUBLE_CLICKED  000000000010L
+#define        BUTTON1_TRIPLE_CLICKED  000000000020L
+#define BUTTON1_RESERVED_EVENT 000000000040L
+#define        BUTTON2_RELEASED        000000000100L
+#define        BUTTON2_PRESSED         000000000200L
+#define        BUTTON2_CLICKED         000000000400L
+#define        BUTTON2_DOUBLE_CLICKED  000000001000L
+#define        BUTTON2_TRIPLE_CLICKED  000000002000L
+#define BUTTON2_RESERVED_EVENT 000000004000L
+#define        BUTTON3_RELEASED        000000010000L
+#define        BUTTON3_PRESSED         000000020000L
+#define        BUTTON3_CLICKED         000000040000L
+#define        BUTTON3_DOUBLE_CLICKED  000000100000L
+#define        BUTTON3_TRIPLE_CLICKED  000000200000L
+#define BUTTON3_RESERVED_EVENT 000000400000L
+#define        BUTTON4_RELEASED        000001000000L
+#define        BUTTON4_PRESSED         000002000000L
+#define        BUTTON4_CLICKED         000004000000L
+#define        BUTTON4_DOUBLE_CLICKED  000010000000L
+#define        BUTTON4_TRIPLE_CLICKED  000020000000L
+#define BUTTON4_RESERVED_EVENT 000040000000L
+#define BUTTON_CTRL            000100000000L
+#define BUTTON_SHIFT           000200000000L
+#define BUTTON_ALT             000400000000L
+#define        ALL_MOUSE_EVENTS        000777777777L
+#define        REPORT_MOUSE_POSITION   001000000000L
+
+/* macros to extract single event-bits from masks */
+#define        BUTTON_RELEASE(e, x)            ((e) & (001 << (6 * ((x) - 1))))
+#define        BUTTON_PRESS(e, x)              ((e) & (002 << (6 * ((x) - 1))))
+#define        BUTTON_CLICK(e, x)              ((e) & (004 << (6 * ((x) - 1))))
+#define        BUTTON_DOUBLE_CLICK(e, x)       ((e) & (010 << (6 * ((x) - 1))))
+#define        BUTTON_TRIPLE_CLICK(e, x)       ((e) & (020 << (6 * ((x) - 1))))
+#define        BUTTON_RESERVED_EVENT(e, x)     ((e) & (040 << (6 * ((x) - 1))))
+
+typedef unsigned long mmask_t;
+
+typedef struct
+{
+    short id;          /* ID to distinguish multiple devices */
+    int x, y, z;       /* event coordinates (character-cell) */
+    mmask_t bstate;    /* button state bits */
+}
+MEVENT;
+
+extern NCURSES_EXPORT(int) getmouse (MEVENT *);
+extern NCURSES_EXPORT(int) ungetmouse (MEVENT *);
+extern NCURSES_EXPORT(mmask_t) mousemask (mmask_t, mmask_t *);
+extern NCURSES_EXPORT(bool) wenclose (const WINDOW *, int, int);
+extern NCURSES_EXPORT(int) mouseinterval (int);
+extern NCURSES_EXPORT(bool) wmouse_trafo (const WINDOW* win,int* y, int* x, bool to_screen);
+extern NCURSES_EXPORT(bool) mouse_trafo (int*, int*, bool);              /* generated */
+
+#define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen)
+
+/* other non-XSI functions */
+
+extern NCURSES_EXPORT(int) mcprint (char *, int);      /* direct data to printer */
+extern NCURSES_EXPORT(int) has_key (int);              /* do we have given key? */
+
+/* Debugging : use with libncurses_g.a */
+
+extern NCURSES_EXPORT(void) _tracef (const char *, ...) GCC_PRINTFLIKE(1,2);
+extern NCURSES_EXPORT(void) _tracedump (const char *, WINDOW *);
+extern NCURSES_EXPORT(char *) _traceattr (attr_t);
+extern NCURSES_EXPORT(char *) _traceattr2 (int, chtype);
+extern NCURSES_EXPORT(char *) _nc_tracebits (void);
+extern NCURSES_EXPORT(char *) _tracechar (int);
+extern NCURSES_EXPORT(char *) _tracechtype (chtype);
+extern NCURSES_EXPORT(char *) _tracechtype2 (int, chtype);
+#ifdef _XOPEN_SOURCE_EXTENDED
+#define _tracech_t             _tracecchar_t
+extern NCURSES_EXPORT(char *) _tracecchar_t (const cchar_t *);
+#define _tracech_t2            _tracecchar_t2
+extern NCURSES_EXPORT(char *) _tracecchar_t2 (int, const cchar_t *);
+#else
+#define _tracech_t             _tracechtype
+#define _tracech_t2            _tracechtype2
+#endif
+extern NCURSES_EXPORT(char *) _tracemouse (const MEVENT *);
+extern NCURSES_EXPORT(void) trace (const unsigned int);
+
+/* trace masks */
+#define TRACE_DISABLE  0x0000  /* turn off tracing */
+#define TRACE_TIMES    0x0001  /* trace user and system times of updates */
+#define TRACE_TPUTS    0x0002  /* trace tputs calls */
+#define TRACE_UPDATE   0x0004  /* trace update actions, old & new screens */
+#define TRACE_MOVE     0x0008  /* trace cursor moves and scrolls */
+#define TRACE_CHARPUT  0x0010  /* trace all character outputs */
+#define TRACE_ORDINARY 0x001F  /* trace all update actions */
+#define TRACE_CALLS    0x0020  /* trace all curses calls */
+#define TRACE_VIRTPUT  0x0040  /* trace virtual character puts */
+#define TRACE_IEVENT   0x0080  /* trace low-level input processing */
+#define TRACE_BITS     0x0100  /* trace state of TTY control bits */
+#define TRACE_ICALLS   0x0200  /* trace internal/nested calls */
+#define TRACE_CCALLS   0x0400  /* trace per-character calls */
+#define TRACE_DATABASE 0x0800  /* trace read/write of terminfo/termcap data */
+#define TRACE_ATTRS    0x1000  /* trace attribute updates */
+
+#define TRACE_SHIFT    13      /* number of bits in the trace masks */
+#define TRACE_MAXIMUM  ((1 << TRACE_SHIFT) - 1) /* maximum trace level */
+
+#if defined(TRACE) || defined(NCURSES_TEST)
+extern NCURSES_EXPORT_VAR(int) _nc_optimize_enable;            /* enable optimizations */
+#ifdef _XOPEN_SOURCE_EXTENDED
+extern NCURSES_EXPORT(const char *) _nc_viswbuf(const wchar_t *);
+#endif
+extern NCURSES_EXPORT(const char *) _nc_visbuf (const char *);
+#define OPTIMIZE_MVCUR         0x01    /* cursor movement optimization */
+#define OPTIMIZE_HASHMAP       0x02    /* diff hashing to detect scrolls */
+#define OPTIMIZE_SCROLL                0x04    /* scroll optimization */
+#define OPTIMIZE_ALL           0xff    /* enable all optimizations (dflt) */
+#endif
+
+#ifndef NCURSES_WGETCH_EVENTS
+#undef KEY_EVENT
+#endif
+
+#ifdef __cplusplus
+
+/* these names conflict with STL */
+#undef box
+#undef clear
+#undef erase
+#undef move
+#undef refresh
+
+}
+#endif
+
+#endif /* __NCURSES_H */