xref: /dragonfly/contrib/gdb-7/gdb/tui/tui.h (revision cfd1aba3)
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
106