1*b725ae77Skettenis /* External/Public TUI Header File. 2*b725ae77Skettenis 3*b725ae77Skettenis Copyright 1998, 1999, 2000, 2001, 2004 Free Software Foundation, 4*b725ae77Skettenis Inc. 5*b725ae77Skettenis 6*b725ae77Skettenis Contributed by Hewlett-Packard Company. 7*b725ae77Skettenis 8*b725ae77Skettenis This file is part of GDB. 9*b725ae77Skettenis 10*b725ae77Skettenis This program is free software; you can redistribute it and/or modify 11*b725ae77Skettenis it under the terms of the GNU General Public License as published by 12*b725ae77Skettenis the Free Software Foundation; either version 2 of the License, or 13*b725ae77Skettenis (at your option) any later version. 14*b725ae77Skettenis 15*b725ae77Skettenis This program is distributed in the hope that it will be useful, 16*b725ae77Skettenis but WITHOUT ANY WARRANTY; without even the implied warranty of 17*b725ae77Skettenis MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*b725ae77Skettenis GNU General Public License for more details. 19*b725ae77Skettenis 20*b725ae77Skettenis You should have received a copy of the GNU General Public License 21*b725ae77Skettenis along with this program; if not, write to the Free Software 22*b725ae77Skettenis Foundation, Inc., 59 Temple Place - Suite 330, 23*b725ae77Skettenis Boston, MA 02111-1307, USA. */ 24*b725ae77Skettenis 25*b725ae77Skettenis #ifndef TUI_H 26*b725ae77Skettenis #define TUI_H 27*b725ae77Skettenis 28*b725ae77Skettenis struct ui_file; 29*b725ae77Skettenis 30*b725ae77Skettenis extern void strcat_to_buf (char *, int, const char *); 31*b725ae77Skettenis 32*b725ae77Skettenis /* Types of error returns. */ 33*b725ae77Skettenis enum tui_status 34*b725ae77Skettenis { 35*b725ae77Skettenis TUI_SUCCESS, 36*b725ae77Skettenis TUI_FAILURE 37*b725ae77Skettenis }; 38*b725ae77Skettenis 39*b725ae77Skettenis /* Types of windows */ 40*b725ae77Skettenis enum tui_win_type 41*b725ae77Skettenis { 42*b725ae77Skettenis SRC_WIN = 0, 43*b725ae77Skettenis DISASSEM_WIN, 44*b725ae77Skettenis DATA_WIN, 45*b725ae77Skettenis CMD_WIN, 46*b725ae77Skettenis /* This must ALWAYS be AFTER the major windows last. */ 47*b725ae77Skettenis MAX_MAJOR_WINDOWS, 48*b725ae77Skettenis /* Auxillary windows. */ 49*b725ae77Skettenis LOCATOR_WIN, 50*b725ae77Skettenis EXEC_INFO_WIN, 51*b725ae77Skettenis DATA_ITEM_WIN, 52*b725ae77Skettenis /* This must ALWAYS be next to last. */ 53*b725ae77Skettenis MAX_WINDOWS, 54*b725ae77Skettenis UNDEFINED_WIN /* LAST */ 55*b725ae77Skettenis }; 56*b725ae77Skettenis 57*b725ae77Skettenis /* GENERAL TUI FUNCTIONS */ 58*b725ae77Skettenis /* tui.c */ 59*b725ae77Skettenis extern CORE_ADDR tui_get_low_disassembly_address (CORE_ADDR, CORE_ADDR); 60*b725ae77Skettenis extern void tui_show_assembly (CORE_ADDR addr); 61*b725ae77Skettenis extern int tui_is_window_visible (enum tui_win_type type); 62*b725ae77Skettenis extern int tui_get_command_dimension (int *width, int *height); 63*b725ae77Skettenis 64*b725ae77Skettenis /* Initialize readline and configure the keymap for the switching 65*b725ae77Skettenis key shortcut. */ 66*b725ae77Skettenis extern void tui_initialize_readline (void); 67*b725ae77Skettenis 68*b725ae77Skettenis /* Enter in the tui mode (curses). */ 69*b725ae77Skettenis extern void tui_enable (void); 70*b725ae77Skettenis 71*b725ae77Skettenis /* Leave the tui mode. */ 72*b725ae77Skettenis extern void tui_disable (void); 73*b725ae77Skettenis 74*b725ae77Skettenis enum tui_key_mode 75*b725ae77Skettenis { 76*b725ae77Skettenis /* Plain command mode to enter gdb commands. */ 77*b725ae77Skettenis TUI_COMMAND_MODE, 78*b725ae77Skettenis 79*b725ae77Skettenis /* SingleKey mode with some keys bound to gdb commands. */ 80*b725ae77Skettenis TUI_SINGLE_KEY_MODE, 81*b725ae77Skettenis 82*b725ae77Skettenis /* Read/edit one command and return to SingleKey after it's processed. */ 83*b725ae77Skettenis TUI_ONE_COMMAND_MODE 84*b725ae77Skettenis }; 85*b725ae77Skettenis 86*b725ae77Skettenis extern enum tui_key_mode tui_current_key_mode; 87*b725ae77Skettenis 88*b725ae77Skettenis /* Change the TUI key mode by installing the appropriate readline keymap. */ 89*b725ae77Skettenis extern void tui_set_key_mode (enum tui_key_mode mode); 90*b725ae77Skettenis 91*b725ae77Skettenis extern int tui_active; 92*b725ae77Skettenis 93*b725ae77Skettenis extern void tui_show_source (const char *file, int line); 94*b725ae77Skettenis 95*b725ae77Skettenis extern struct ui_out *tui_out_new (struct ui_file *stream); 96*b725ae77Skettenis 97*b725ae77Skettenis /* tui-layout.c */ 98*b725ae77Skettenis extern enum tui_status tui_set_layout_for_display_command (const char *name); 99*b725ae77Skettenis 100*b725ae77Skettenis #endif 101