1 /* TUI status line. 2 3 Copyright (C) 1998-2024 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 GDB_TUI_TUI_STATUS_H 23 #define GDB_TUI_TUI_STATUS_H 24 25 #include "tui/tui-data.h" 26 27 class frame_info_ptr; 28 29 /* Locator window class. */ 30 31 struct tui_status_window 32 : public tui_nofocus_window, tui_noscroll_window, tui_oneline_window, 33 tui_nobox_window 34 { 35 tui_status_window () = default; 36 37 const char *name () const override 38 { 39 return STATUS_NAME; 40 } 41 42 void rerender () override; 43 44 private: 45 46 /* Create the status line to display as much information as we can 47 on this single line: target name, process number, current 48 function, current line, current PC, SingleKey mode. */ 49 50 std::string make_status_line () const; 51 }; 52 53 /* Return the instance of the status window. */ 54 55 inline tui_status_window * 56 tui_status_win () 57 { 58 return dynamic_cast<tui_status_window *> (tui_win_list[STATUS_WIN]); 59 } 60 61 extern void tui_show_status_content (void); 62 extern void tui_show_frame_info (const frame_info_ptr &); 63 64 #endif /* GDB_TUI_TUI_STATUS_H */ 65