2009-02-05 20:28:18 +02:00
|
|
|
|
|
|
|
/** \file tty.h
|
2009-02-06 16:46:15 +02:00
|
|
|
* \brief Header: %interface to the terminal controlling library
|
|
|
|
*
|
|
|
|
* This file is the %interface to the terminal controlling library:
|
|
|
|
* ncurses, slang or the built-in slang. It provides an additional
|
|
|
|
* layer of abstraction above the "real" libraries to keep the number
|
|
|
|
* of ifdefs in the other files small.
|
2009-02-05 20:28:18 +02:00
|
|
|
*/
|
|
|
|
|
2004-12-03 19:17:46 +00:00
|
|
|
#ifndef MC_TTY_H
|
|
|
|
#define MC_TTY_H
|
2001-09-03 03:07:46 +00:00
|
|
|
|
1998-02-27 04:54:42 +00:00
|
|
|
|
|
|
|
#ifdef HAVE_SLANG
|
|
|
|
# include "myslang.h"
|
|
|
|
#endif
|
|
|
|
|
2001-09-03 03:07:46 +00:00
|
|
|
#ifdef USE_NCURSES
|
2002-07-13 05:13:07 +00:00
|
|
|
# ifdef HAVE_NCURSES_CURSES_H
|
|
|
|
# include <ncurses/curses.h>
|
2008-12-29 01:59:52 +02:00
|
|
|
# elif HAVE_NCURSESW_CURSES_H
|
|
|
|
# include <ncursesw/curses.h>
|
2002-07-13 05:13:07 +00:00
|
|
|
# elif HAVE_NCURSES_H
|
1998-02-27 04:54:42 +00:00
|
|
|
# include <ncurses.h>
|
2002-07-13 05:13:07 +00:00
|
|
|
# else
|
|
|
|
# include <curses.h>
|
1998-02-27 04:54:42 +00:00
|
|
|
# endif
|
2006-05-15 13:26:18 +00:00
|
|
|
#ifdef WANT_TERM_H
|
|
|
|
# include <term.h>
|
|
|
|
#endif /* WANT_TERM_H */
|
2001-09-03 03:07:46 +00:00
|
|
|
#endif /* USE_NCURSES */
|
1998-02-27 04:54:42 +00:00
|
|
|
|
2008-12-29 02:01:53 +02:00
|
|
|
#ifdef USE_NCURSESW
|
|
|
|
# include <ncursesw/curses.h>
|
|
|
|
#ifdef WANT_TERM_H
|
|
|
|
# include <term.h>
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
2005-09-01 17:06:38 +00:00
|
|
|
/* {{{ Input }}} */
|
|
|
|
|
2005-08-29 08:45:28 +00:00
|
|
|
extern void tty_enable_interrupt_key(void);
|
|
|
|
extern void tty_disable_interrupt_key(void);
|
2009-02-05 23:46:07 +01:00
|
|
|
extern gboolean tty_got_interrupt(void);
|
2005-08-29 08:45:28 +00:00
|
|
|
|
2005-09-01 17:06:38 +00:00
|
|
|
/* {{{ Output }}} */
|
2005-09-01 17:04:05 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
The output functions do not check themselves for screen overflows,
|
|
|
|
so make sure that you never write more than what fits on the screen.
|
|
|
|
While SLang provides such a feature, ncurses does not.
|
|
|
|
*/
|
|
|
|
|
2005-08-29 08:45:28 +00:00
|
|
|
extern void tty_gotoyx(int, int);
|
|
|
|
extern void tty_getyx(int *, int *);
|
2006-02-03 03:55:37 +00:00
|
|
|
|
|
|
|
extern void tty_setcolor(int);
|
|
|
|
|
2005-08-29 08:45:28 +00:00
|
|
|
extern void tty_print_char(int);
|
|
|
|
extern void tty_print_alt_char(int);
|
|
|
|
extern void tty_print_string(const char *);
|
|
|
|
extern void tty_print_one_vline(void);
|
|
|
|
extern void tty_print_one_hline(void);
|
2005-08-29 09:03:10 +00:00
|
|
|
extern void tty_print_vline(int top, int left, int length);
|
|
|
|
extern void tty_print_hline(int top, int left, int length);
|
2005-09-04 22:02:25 +00:00
|
|
|
extern void tty_printf(const char *, ...);
|
2005-08-29 08:45:28 +00:00
|
|
|
|
2006-05-15 13:26:18 +00:00
|
|
|
extern char *tty_tgetstr (const char *name);
|
|
|
|
|
2005-08-29 08:45:28 +00:00
|
|
|
/* legacy interface */
|
|
|
|
|
|
|
|
#define enable_interrupt_key() tty_enable_interrupt_key()
|
|
|
|
#define disable_interrupt_key() tty_disable_interrupt_key()
|
|
|
|
#define got_interrupt() tty_got_interrupt()
|
2005-08-29 10:02:35 +00:00
|
|
|
#define one_hline() tty_print_one_hline()
|
|
|
|
#define one_vline() tty_print_one_vline()
|
2005-08-29 08:45:28 +00:00
|
|
|
|
|
|
|
#ifndef HAVE_SLANG
|
|
|
|
# define acs()
|
|
|
|
# define noacs()
|
|
|
|
#endif
|
|
|
|
|
1998-02-27 04:54:42 +00:00
|
|
|
#define KEY_KP_ADD 4001
|
|
|
|
#define KEY_KP_SUBTRACT 4002
|
|
|
|
#define KEY_KP_MULTIPLY 4003
|
|
|
|
|
2001-06-15 00:24:14 +00:00
|
|
|
void mc_refresh (void);
|
|
|
|
|
2004-12-03 19:17:46 +00:00
|
|
|
#endif
|