xref: /netbsd-src/external/gpl3/gdb.old/dist/gdb/tui/tui-io.h (revision 8b657b0747480f8989760d71343d6dd33f8d4cf9)
1 /* TUI support I/O functions.
2 
3    Copyright (C) 1998-2023 Free Software Foundation, Inc.
4 
5    Contributed by Hewlett-Packard Company.
6 
7    This file is part of GDB.
8 
9    This program is free software; you can redistribute it and/or modify
10    it under the terms of the GNU General Public License as published by
11    the Free Software Foundation; either version 3 of the License, or
12    (at your option) any later version.
13 
14    This program is distributed in the hope that it will be useful,
15    but WITHOUT ANY WARRANTY; without even the implied warranty of
16    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17    GNU General Public License for more details.
18 
19    You should have received a copy of the GNU General Public License
20    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
21 
22 #ifndef TUI_TUI_IO_H
23 #define TUI_TUI_IO_H
24 
25 #include "gdb_curses.h"
26 
27 struct ui_out;
28 class cli_ui_out;
29 
30 /* Print the string in the given curses window.  If no window is
31    provided, the command window is used.  */
32 extern void tui_puts (const char *, WINDOW * = nullptr);
33 
34 /* Print LENGTH characters from the buffer pointed to by BUF to the
35    curses command window.  */
36 extern void tui_write (const char *buf, size_t length);
37 
38 /* Setup the IO for curses or non-curses mode.  */
39 extern void tui_setup_io (int mode);
40 
41 /* Initialize the IO for gdb in curses mode.  */
42 extern void tui_initialize_io (void);
43 
44 /* Readline callback.
45    Redisplay the command line with its prompt after readline has
46    changed the edited text.  */
47 extern void tui_redisplay_readline (void);
48 
49 /* Enter/leave reverse video mode.  */
50 extern void tui_set_reverse_mode (WINDOW *w, bool reverse);
51 
52 /* Apply STYLE to the window.  */
53 extern void tui_apply_style (WINDOW *w, ui_file_style style);
54 
55 extern struct ui_out *tui_out;
56 extern cli_ui_out *tui_old_uiout;
57 
58 /* This should be called when the user has entered a command line in tui
59    mode.  Inject the newline into the output and move the cursor to the
60    next line.  */
61 extern void tui_inject_newline_into_command_window ();
62 
63 #endif /* TUI_TUI_IO_H */
64