Import gdb-7.10.1
[dragonfly.git] / contrib / gdb-7 / gdb / tui / tui.h
1 /* External/Public TUI Header File.
2
3    Copyright (C) 1998-2015 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_H
23 #define TUI_H
24
25 struct ui_file;
26
27 extern void strcat_to_buf (char *, int, const char *);
28
29 /* Types of error returns.  */
30 enum tui_status
31 {
32   TUI_SUCCESS,
33   TUI_FAILURE
34 };
35
36 /* Types of windows.  */
37 enum tui_win_type
38 {
39   SRC_WIN = 0,
40   DISASSEM_WIN,
41   DATA_WIN,
42   CMD_WIN,
43   /* This must ALWAYS be AFTER the major windows last.  */
44   MAX_MAJOR_WINDOWS,
45   /* Auxillary windows.  */
46   LOCATOR_WIN,
47   EXEC_INFO_WIN,
48   DATA_ITEM_WIN,
49   /* This must ALWAYS be next to last.  */
50   MAX_WINDOWS,
51   UNDEFINED_WIN         /* LAST */
52 };
53
54 /* GENERAL TUI FUNCTIONS */
55 /* tui.c */
56 extern CORE_ADDR tui_get_low_disassembly_address (struct gdbarch *,
57                                                   CORE_ADDR, CORE_ADDR);
58 extern void tui_show_assembly (struct gdbarch *gdbarch, CORE_ADDR addr);
59 extern int tui_is_window_visible (enum tui_win_type type);
60 extern int tui_get_command_dimension (unsigned int *width,
61                                       unsigned int *height);
62
63 /* Initialize readline and configure the keymap for the switching
64    key shortcut.  */
65 extern void tui_initialize_readline (void);
66
67 /* Enter in the tui mode (curses).  */
68 extern void tui_enable (void);
69
70 /* Leave the tui mode.  */
71 extern void tui_disable (void);
72
73 enum tui_key_mode
74 {
75   /* Plain command mode to enter gdb commands.  */
76   TUI_COMMAND_MODE,
77
78   /* SingleKey mode with some keys bound to gdb commands.  */
79   TUI_SINGLE_KEY_MODE,
80
81   /* Read/edit one command and return to SingleKey after it's
82      processed.  */
83   TUI_ONE_COMMAND_MODE
84 };
85
86 extern enum tui_key_mode tui_current_key_mode;
87
88 /* Change the TUI key mode by installing the appropriate readline
89    keymap.  */
90 extern void tui_set_key_mode (enum tui_key_mode mode);
91
92 extern int tui_active;
93
94 extern void tui_show_source (const char *fullname, int line);
95
96 extern struct ui_out *tui_out_new (struct ui_file *stream);
97
98 /* tui-layout.c */
99 extern enum tui_status tui_set_layout_by_name (const char *);
100
101 #endif