Upgrade GDB from 7.4.1 to 7.6.1 on the vendor branch
[dragonfly.git] / contrib / gdb-7 / gdb / tui / tui.h
1 /* External/Public TUI Header File.
2
3    Copyright (C) 1998-2013 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 /* True if enabling the TUI is allowed.  Example, if the top level
68    interpreter is MI, enabling curses will certainly lose.  */
69 extern int tui_allowed_p (void);
70
71 /* Enter in the tui mode (curses).  */
72 extern void tui_enable (void);
73
74 /* Leave the tui mode.  */
75 extern void tui_disable (void);
76
77 enum tui_key_mode
78 {
79   /* Plain command mode to enter gdb commands.  */
80   TUI_COMMAND_MODE,
81
82   /* SingleKey mode with some keys bound to gdb commands.  */
83   TUI_SINGLE_KEY_MODE,
84
85   /* Read/edit one command and return to SingleKey after it's
86      processed.  */
87   TUI_ONE_COMMAND_MODE
88 };
89
90 extern enum tui_key_mode tui_current_key_mode;
91
92 /* Change the TUI key mode by installing the appropriate readline
93    keymap.  */
94 extern void tui_set_key_mode (enum tui_key_mode mode);
95
96 extern int tui_active;
97
98 extern void tui_show_source (const char *fullname, int line);
99
100 extern struct ui_out *tui_out_new (struct ui_file *stream);
101
102 /* tui-layout.c */
103 extern enum tui_status tui_set_layout_for_display_command (const char *);
104
105 #endif