1 /* Specific command window processing. 2 3 Copyright (C) 1998-2020 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 #include "defs.h" 23 #include "tui/tui.h" 24 #include "tui/tui-data.h" 25 #include "tui/tui-win.h" 26 #include "tui/tui-io.h" 27 #include "tui/tui-command.h" 28 #include "tui/tui-wingeneral.h" 29 30 #include "gdb_curses.h" 31 32 /* See tui-command.h. */ 33 34 int 35 tui_cmd_window::max_height () const 36 { 37 return tui_term_height () - 4; 38 } 39 40 void 41 tui_cmd_window::resize (int height_, int width_, int origin_x, int origin_y) 42 { 43 width = width_; 44 height = height_; 45 x = origin_x; 46 y = origin_y; 47 48 if (handle == nullptr) 49 make_window (); 50 else 51 { 52 /* Another reason we don't call the base class method here is 53 that for the command window in particular, we want to avoid 54 destroying the underlying handle. We don't currently track 55 the contents of this window, and so have no way to re-render 56 it. However we can at least move it and keep the old size if 57 wresize isn't available. */ 58 #ifdef HAVE_WRESIZE 59 wresize (handle.get (), height, width); 60 #endif 61 mvwin (handle.get (), y, x); 62 wmove (handle.get (), 0, 0); 63 } 64 } 65 66 /* See tui-command.h. */ 67 68 void 69 tui_refresh_cmd_win (void) 70 { 71 WINDOW *w = TUI_CMD_WIN->handle.get (); 72 73 tui_wrefresh (w); 74 75 /* FIXME: It's not clear why this is here. 76 It was present in the original tui_puts code and is kept in order to 77 not introduce some subtle breakage. */ 78 fflush (stdout); 79 } 80