3 * \brief Header: %interface to the terminal controlling library
5 * This file is the %interface to the terminal controlling library:
6 * slang or ncurses. It provides an additional layer of abstraction
7 * above the "real" libraries to keep the number of ifdefs in the other
14 #include "lib/global.h" /* include <glib.h> */
17 #include "tty-slang.h"
19 #include "tty-ncurses.h"
22 /*** typedefs(not structures) and defined constants **********************************************/
24 #define KEY_KP_ADD 4001
25 #define KEY_KP_SUBTRACT 4002
26 #define KEY_KP_MULTIPLY 4003
28 /*** enums ***************************************************************************************/
37 MC_TTY_FRM_LEFTBOTTOM
,
38 MC_TTY_FRM_RIGHTBOTTOM
,
40 MC_TTY_FRM_BOTTOMMIDDLE
,
41 MC_TTY_FRM_LEFTMIDDLE
,
42 MC_TTY_FRM_RIGHTMIDDLE
,
50 MC_TTY_FRM_DLEFTBOTTOM
,
51 MC_TTY_FRM_DRIGHTBOTTOM
,
52 MC_TTY_FRM_DTOPMIDDLE
,
53 MC_TTY_FRM_DBOTTOMMIDDLE
,
54 MC_TTY_FRM_DLEFTMIDDLE
,
55 MC_TTY_FRM_DRIGHTMIDDLE
,
60 /*** structures declarations (and typedefs of structures)*****************************************/
62 /*** global variables defined in .c file *********************************************************/
64 extern int mc_tty_frm
[];
66 extern char *tty_tgetstr (const char *name
);
68 /*** declarations of public functions ************************************************************/
70 extern void tty_beep (void);
74 extern gboolean
tty_check_term (gboolean force_xterm
);
75 extern void tty_init (gboolean mouse_enable
, gboolean is_xterm
);
76 extern void tty_shutdown (void);
78 extern void tty_start_interrupt_key (void);
79 extern void tty_enable_interrupt_key (void);
80 extern void tty_disable_interrupt_key (void);
81 extern gboolean
tty_got_interrupt (void);
83 extern void tty_reset_prog_mode (void);
84 extern void tty_reset_shell_mode (void);
86 extern void tty_raw_mode (void);
87 extern void tty_noraw_mode (void);
89 extern void tty_noecho (void);
90 extern int tty_flush_input (void);
92 extern void tty_keypad (gboolean set
);
93 extern void tty_nodelay (gboolean set
);
94 extern int tty_baudrate (void);
99 The output functions do not check themselves for screen overflows,
100 so make sure that you never write more than what fits on the screen.
101 While SLang provides such a feature, ncurses does not.
104 extern int tty_reset_screen (void);
105 extern void tty_touch_screen (void);
107 extern void tty_gotoyx (int y
, int x
);
108 extern void tty_getyx (int *py
, int *px
);
110 extern void tty_set_alt_charset (gboolean alt_charset
);
112 extern void tty_display_8bit (gboolean what
);
113 extern void tty_print_char (int c
);
114 extern void tty_print_alt_char (int c
, gboolean single
);
115 extern void tty_print_anychar (int c
);
116 extern void tty_print_string (const char *s
);
118 extern void tty_printf (const char *s
, ...) G_GNUC_PRINTF (1, 2);
121 extern void tty_print_one_vline (gboolean single
);
122 extern void tty_print_one_hline (gboolean single
);
123 extern void tty_draw_hline (int y
, int x
, int ch
, int len
);
124 extern void tty_draw_vline (int y
, int x
, int ch
, int len
);
125 extern void tty_draw_box (int y
, int x
, int rows
, int cols
, gboolean single
);
126 extern void tty_fill_region (int y
, int x
, int rows
, int cols
, unsigned char ch
);
128 extern int tty_resize (int fd
);
129 extern void tty_refresh (void);
130 extern void tty_change_screen_size (void);
132 extern int mc_tty_normalize_lines_char (const char *);
134 extern void tty_enter_ca_mode (void);
135 extern void tty_exit_ca_mode (void);
137 /*** inline functions ****************************************************************************/
138 #endif /* MC_TTY_H */