Derive tui_win_info from tui_gen_win_info
This changes tui_win_info to derive from tui_gen_win_info, rather than having a tui_gen_win_info as a member. This removes a layer of member access from the entire TUI, which is why this patch is so large. This change will enable further removal of switches based on window type. gdb/ChangeLog 2019-06-25 Tom Tromey <tom@tromey.com> * tui/tui.c (tui_rl_other_window, tui_enable) (tui_is_window_visible, tui_get_command_dimension): Update. * tui/tui-winsource.c (tui_update_source_window_as_is) (tui_clear_source_content, tui_erase_source_content) (tui_show_source_line, tui_source_window_base::refill) (tui_source_window_base::do_scroll_horizontal) (tui_source_window_base::set_is_exec_point_at) (tui_update_breakpoint_info, tui_set_exec_info_content) (tui_alloc_source_buffer, tui_line_is_displayed) (tui_addr_is_displayed): Update. * tui/tui-wingeneral.c (tui_unhighlight_win, tui_highlight_win) (tui_check_and_display_highlight_if_needed) (tui_win_info::make_visible, tui_win_info::refresh) (tui_refresh_all): Update. * tui/tui-windata.c (tui_first_data_item_displayed) (tui_delete_data_content_windows, tui_erase_data_content) (tui_display_all_data, tui_data_window::refresh_all) (tui_check_data_values): Update. * tui/tui-win.c (window_name_completer, tui_update_gdb_sizes) (tui_set_win_focus_to, tui_win_info::forward_scroll) (tui_win_info::backward_scroll, tui_refresh_all_win) (tui_resize_all, tui_set_focus, tui_all_windows_info) (update_tab_width, tui_set_win_height, tui_adjust_win_heights) (tui_source_window_base::set_new_height) (tui_data_window::set_new_height) (make_invisible_and_set_new_height) (make_visible_with_new_height, new_height_ok) (parse_scrolling_args): Update. * tui/tui-stack.c (tui_show_frame_info): Update. * tui/tui-source.c (tui_set_source_content) (tui_set_source_content_nil, tui_source_is_displayed) (tui_source_window::do_scroll_vertical): Update. * tui/tui-regs.c (tui_show_registers, tui_show_register_group) (tui_display_registers_from, tui_display_reg_element_at_line) (tui_check_register_values, tui_reg_command): Update. * tui/tui-layout.c (tui_default_win_height) (show_source_disasm_command, show_data, init_and_make_win) (show_source_or_disasm_and_command): Update. * tui/tui-io.c (update_cmdwin_start_line, tui_putc, tui_puts) (tui_redisplay_readline, tui_mld_flush) (tui_mld_erase_entire_line, tui_mld_getc, tui_cont_sig) (tui_getc): Update. * tui/tui-disasm.c (tui_set_disassem_content) (tui_disasm_window::do_scroll_vertical): Update. * tui/tui-data.h (struct tui_gen_win_info) <~tui_gen_win_info>: Now virtual. (struct tui_win_info): Derive from tui_gen_win_info. <~tui_win_info>: Mark as override. <generic>: Remove member. * tui/tui-data.c (tui_cmd_window::clear_detail, tui_next_win) (tui_prev_win, tui_partial_win_by_name, tui_win_info) (~tui_data_window, ~tui_win_info) (tui_free_all_source_wins_content): Update. * tui/tui-command.c (tui_refresh_cmd_win): Update.
This commit is contained in:
parent
ab313b35e5
commit
cb2ce89305
15 changed files with 366 additions and 317 deletions
|
@ -1,3 +1,60 @@
|
|||
2019-06-25 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* tui/tui.c (tui_rl_other_window, tui_enable)
|
||||
(tui_is_window_visible, tui_get_command_dimension): Update.
|
||||
* tui/tui-winsource.c (tui_update_source_window_as_is)
|
||||
(tui_clear_source_content, tui_erase_source_content)
|
||||
(tui_show_source_line, tui_source_window_base::refill)
|
||||
(tui_source_window_base::do_scroll_horizontal)
|
||||
(tui_source_window_base::set_is_exec_point_at)
|
||||
(tui_update_breakpoint_info, tui_set_exec_info_content)
|
||||
(tui_alloc_source_buffer, tui_line_is_displayed)
|
||||
(tui_addr_is_displayed): Update.
|
||||
* tui/tui-wingeneral.c (tui_unhighlight_win, tui_highlight_win)
|
||||
(tui_check_and_display_highlight_if_needed)
|
||||
(tui_win_info::make_visible, tui_win_info::refresh)
|
||||
(tui_refresh_all): Update.
|
||||
* tui/tui-windata.c (tui_first_data_item_displayed)
|
||||
(tui_delete_data_content_windows, tui_erase_data_content)
|
||||
(tui_display_all_data, tui_data_window::refresh_all)
|
||||
(tui_check_data_values): Update.
|
||||
* tui/tui-win.c (window_name_completer, tui_update_gdb_sizes)
|
||||
(tui_set_win_focus_to, tui_win_info::forward_scroll)
|
||||
(tui_win_info::backward_scroll, tui_refresh_all_win)
|
||||
(tui_resize_all, tui_set_focus, tui_all_windows_info)
|
||||
(update_tab_width, tui_set_win_height, tui_adjust_win_heights)
|
||||
(tui_source_window_base::set_new_height)
|
||||
(tui_data_window::set_new_height)
|
||||
(make_invisible_and_set_new_height)
|
||||
(make_visible_with_new_height, new_height_ok)
|
||||
(parse_scrolling_args): Update.
|
||||
* tui/tui-stack.c (tui_show_frame_info): Update.
|
||||
* tui/tui-source.c (tui_set_source_content)
|
||||
(tui_set_source_content_nil, tui_source_is_displayed)
|
||||
(tui_source_window::do_scroll_vertical): Update.
|
||||
* tui/tui-regs.c (tui_show_registers, tui_show_register_group)
|
||||
(tui_display_registers_from, tui_display_reg_element_at_line)
|
||||
(tui_check_register_values, tui_reg_command): Update.
|
||||
* tui/tui-layout.c (tui_default_win_height)
|
||||
(show_source_disasm_command, show_data, init_and_make_win)
|
||||
(show_source_or_disasm_and_command): Update.
|
||||
* tui/tui-io.c (update_cmdwin_start_line, tui_putc, tui_puts)
|
||||
(tui_redisplay_readline, tui_mld_flush)
|
||||
(tui_mld_erase_entire_line, tui_mld_getc, tui_cont_sig)
|
||||
(tui_getc): Update.
|
||||
* tui/tui-disasm.c (tui_set_disassem_content)
|
||||
(tui_disasm_window::do_scroll_vertical): Update.
|
||||
* tui/tui-data.h (struct tui_gen_win_info) <~tui_gen_win_info>:
|
||||
Now virtual.
|
||||
(struct tui_win_info): Derive from tui_gen_win_info.
|
||||
<~tui_win_info>: Mark as override.
|
||||
<generic>: Remove member.
|
||||
* tui/tui-data.c (tui_cmd_window::clear_detail, tui_next_win)
|
||||
(tui_prev_win, tui_partial_win_by_name, tui_win_info)
|
||||
(~tui_data_window, ~tui_win_info)
|
||||
(tui_free_all_source_wins_content): Update.
|
||||
* tui/tui-command.c (tui_refresh_cmd_win): Update.
|
||||
|
||||
2019-06-25 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* tui/tui-layout.c (init_and_make_win): Use new.
|
||||
|
|
|
@ -94,7 +94,7 @@ tui_dispatch_ctrl_char (unsigned int ch)
|
|||
void
|
||||
tui_refresh_cmd_win (void)
|
||||
{
|
||||
WINDOW *w = TUI_CMD_WIN->generic.handle;
|
||||
WINDOW *w = TUI_CMD_WIN->handle;
|
||||
|
||||
wrefresh (w);
|
||||
|
||||
|
|
|
@ -169,7 +169,7 @@ tui_source_window_base::clear_detail ()
|
|||
void
|
||||
tui_cmd_window::clear_detail ()
|
||||
{
|
||||
wmove (generic.handle, 0, 0);
|
||||
wmove (handle, 0, 0);
|
||||
}
|
||||
|
||||
/* See tui-data.h. */
|
||||
|
@ -268,17 +268,17 @@ tui_set_current_layout_to (enum tui_layout_type new_layout)
|
|||
struct tui_win_info *
|
||||
tui_next_win (struct tui_win_info *cur_win)
|
||||
{
|
||||
int type = cur_win->generic.type;
|
||||
int type = cur_win->type;
|
||||
struct tui_win_info *next_win = NULL;
|
||||
|
||||
if (cur_win->generic.type == CMD_WIN)
|
||||
if (cur_win->type == CMD_WIN)
|
||||
type = SRC_WIN;
|
||||
else
|
||||
type = cur_win->generic.type + 1;
|
||||
while (type != cur_win->generic.type && (next_win == NULL))
|
||||
type = cur_win->type + 1;
|
||||
while (type != cur_win->type && (next_win == NULL))
|
||||
{
|
||||
if (tui_win_list[type]
|
||||
&& tui_win_list[type]->generic.is_visible)
|
||||
&& tui_win_list[type]->is_visible)
|
||||
next_win = tui_win_list[type];
|
||||
else
|
||||
{
|
||||
|
@ -298,17 +298,17 @@ tui_next_win (struct tui_win_info *cur_win)
|
|||
struct tui_win_info *
|
||||
tui_prev_win (struct tui_win_info *cur_win)
|
||||
{
|
||||
int type = cur_win->generic.type;
|
||||
int type = cur_win->type;
|
||||
struct tui_win_info *prev = NULL;
|
||||
|
||||
if (cur_win->generic.type == SRC_WIN)
|
||||
if (cur_win->type == SRC_WIN)
|
||||
type = CMD_WIN;
|
||||
else
|
||||
type = cur_win->generic.type - 1;
|
||||
while (type != cur_win->generic.type && (prev == NULL))
|
||||
type = cur_win->type - 1;
|
||||
while (type != cur_win->type && (prev == NULL))
|
||||
{
|
||||
if (tui_win_list[type]
|
||||
&& tui_win_list[type]->generic.is_visible)
|
||||
&& tui_win_list[type]->is_visible)
|
||||
prev = tui_win_list[type];
|
||||
else
|
||||
{
|
||||
|
@ -337,8 +337,7 @@ tui_partial_win_by_name (const char *name)
|
|||
{
|
||||
if (tui_win_list[i] != 0)
|
||||
{
|
||||
const char *cur_name =
|
||||
tui_win_name (&tui_win_list[i]->generic);
|
||||
const char *cur_name = tui_win_name (tui_win_list[i]);
|
||||
|
||||
if (strlen (name) <= strlen (cur_name)
|
||||
&& startswith (cur_name, name))
|
||||
|
@ -457,7 +456,7 @@ init_content_element (struct tui_win_element *element,
|
|||
}
|
||||
|
||||
tui_win_info::tui_win_info (enum tui_win_type type)
|
||||
: generic (type)
|
||||
: tui_gen_win_info (type)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -569,7 +568,7 @@ tui_source_window_base::~tui_source_window_base ()
|
|||
|
||||
tui_data_window::~tui_data_window ()
|
||||
{
|
||||
if (generic.content != NULL)
|
||||
if (content != NULL)
|
||||
{
|
||||
tui_free_data_content (regs_content, regs_content_count);
|
||||
regs_content = NULL;
|
||||
|
@ -579,21 +578,21 @@ tui_data_window::~tui_data_window ()
|
|||
data_content_count = 0;
|
||||
regs_column_count = 1;
|
||||
display_regs = false;
|
||||
generic.content = NULL;
|
||||
generic.content_size = 0;
|
||||
content = NULL;
|
||||
content_size = 0;
|
||||
}
|
||||
}
|
||||
|
||||
tui_win_info::~tui_win_info ()
|
||||
{
|
||||
if (generic.handle != NULL)
|
||||
if (handle != NULL)
|
||||
{
|
||||
tui_delete_win (generic.handle);
|
||||
generic.handle = NULL;
|
||||
tui_free_win_content (&generic);
|
||||
tui_delete_win (handle);
|
||||
handle = NULL;
|
||||
tui_free_win_content (this);
|
||||
}
|
||||
if (generic.title)
|
||||
xfree (generic.title);
|
||||
if (title)
|
||||
xfree (title);
|
||||
}
|
||||
|
||||
|
||||
|
@ -602,7 +601,7 @@ tui_free_all_source_wins_content ()
|
|||
{
|
||||
for (tui_source_window_base *win_info : tui_source_windows ())
|
||||
{
|
||||
tui_free_win_content (&(win_info->generic));
|
||||
tui_free_win_content (win_info);
|
||||
tui_free_win_content (win_info->execution_info);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,7 +44,7 @@ struct tui_gen_win_info
|
|||
{
|
||||
}
|
||||
|
||||
~tui_gen_win_info ()
|
||||
virtual ~tui_gen_win_info ()
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -246,7 +246,7 @@ struct tui_win_element
|
|||
};
|
||||
|
||||
/* This defines information about each logical window. */
|
||||
struct tui_win_info
|
||||
struct tui_win_info : public tui_gen_win_info
|
||||
{
|
||||
protected:
|
||||
|
||||
|
@ -265,7 +265,7 @@ protected:
|
|||
|
||||
public:
|
||||
|
||||
virtual ~tui_win_info ();
|
||||
~tui_win_info () override;
|
||||
|
||||
/* Clear the pertinent detail in the window. */
|
||||
virtual void clear_detail () = 0;
|
||||
|
@ -311,8 +311,6 @@ public:
|
|||
void left_scroll (int num_to_scroll);
|
||||
void right_scroll (int num_to_scroll);
|
||||
|
||||
struct tui_gen_win_info generic; /* General window information. */
|
||||
|
||||
/* Can this window ever be highlighted? */
|
||||
bool can_highlight = false;
|
||||
|
||||
|
|
|
@ -191,8 +191,8 @@ tui_set_disassem_content (struct gdbarch *gdbarch, CORE_ADDR pc)
|
|||
cur_pc = locator->content[0]->which_element.locator.addr;
|
||||
|
||||
/* Window size, excluding highlight box. */
|
||||
max_lines = TUI_DISASM_WIN->generic.height - 2;
|
||||
line_width = TUI_DISASM_WIN->generic.width - 2;
|
||||
max_lines = TUI_DISASM_WIN->height - 2;
|
||||
line_width = TUI_DISASM_WIN->width - 2;
|
||||
|
||||
/* Get temporary table that will hold all strings (addr & insn). */
|
||||
asm_lines = XALLOCAVEC (struct tui_asm_line, max_lines);
|
||||
|
@ -228,7 +228,7 @@ tui_set_disassem_content (struct gdbarch *gdbarch, CORE_ADDR pc)
|
|||
struct tui_source_element *src;
|
||||
int cur_len;
|
||||
|
||||
element = TUI_DISASM_WIN->generic.content[i];
|
||||
element = TUI_DISASM_WIN->content[i];
|
||||
src = &element->which_element.source;
|
||||
strcpy (line, asm_lines[i].addr_string);
|
||||
cur_len = strlen (line);
|
||||
|
@ -257,7 +257,7 @@ tui_set_disassem_content (struct gdbarch *gdbarch, CORE_ADDR pc)
|
|||
xfree (asm_lines[i].addr_string);
|
||||
xfree (asm_lines[i].insn);
|
||||
}
|
||||
TUI_DISASM_WIN->generic.content_size = i;
|
||||
TUI_DISASM_WIN->content_size = i;
|
||||
return TUI_SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -377,15 +377,12 @@ void
|
|||
tui_disasm_window::do_scroll_vertical
|
||||
(enum tui_scroll_direction scroll_direction, int num_to_scroll)
|
||||
{
|
||||
if (generic.content != NULL)
|
||||
if (content != NULL)
|
||||
{
|
||||
CORE_ADDR pc;
|
||||
tui_win_content content;
|
||||
struct tui_line_or_address val;
|
||||
int dir;
|
||||
|
||||
content = generic.content;
|
||||
|
||||
pc = content[0]->which_element.source.line_or_addr.u.addr;
|
||||
num_to_scroll++;
|
||||
dir = (scroll_direction == FORWARD_SCROLL)
|
||||
|
|
|
@ -180,7 +180,7 @@ static void
|
|||
update_cmdwin_start_line ()
|
||||
{
|
||||
TUI_CMD_WIN->start_line
|
||||
= getcury (TUI_CMD_WIN->generic.handle);
|
||||
= getcury (TUI_CMD_WIN->handle);
|
||||
}
|
||||
|
||||
/* Print a character in the curses command window. The output is
|
||||
|
@ -190,7 +190,7 @@ update_cmdwin_start_line ()
|
|||
static void
|
||||
tui_putc (char c)
|
||||
{
|
||||
WINDOW *w = TUI_CMD_WIN->generic.handle;
|
||||
WINDOW *w = TUI_CMD_WIN->handle;
|
||||
|
||||
do_tui_putc (w, c);
|
||||
update_cmdwin_start_line ();
|
||||
|
@ -502,7 +502,7 @@ void
|
|||
tui_puts (const char *string, WINDOW *w)
|
||||
{
|
||||
if (w == nullptr)
|
||||
w = TUI_CMD_WIN->generic.handle;
|
||||
w = TUI_CMD_WIN->handle;
|
||||
tui_puts_internal (w, string, nullptr);
|
||||
}
|
||||
|
||||
|
@ -538,13 +538,13 @@ tui_redisplay_readline (void)
|
|||
|
||||
c_pos = -1;
|
||||
c_line = -1;
|
||||
w = TUI_CMD_WIN->generic.handle;
|
||||
w = TUI_CMD_WIN->handle;
|
||||
start_line = TUI_CMD_WIN->start_line;
|
||||
wmove (w, start_line, 0);
|
||||
prev_col = 0;
|
||||
height = 1;
|
||||
if (prompt != nullptr)
|
||||
tui_puts_internal (TUI_CMD_WIN->generic.handle, prompt, &height);
|
||||
tui_puts_internal (TUI_CMD_WIN->handle, prompt, &height);
|
||||
|
||||
prev_col = getcurx (w);
|
||||
for (in = 0; in <= rl_end; in++)
|
||||
|
@ -663,7 +663,7 @@ tui_mld_puts (const struct match_list_displayer *displayer, const char *s)
|
|||
static void
|
||||
tui_mld_flush (const struct match_list_displayer *displayer)
|
||||
{
|
||||
wrefresh (TUI_CMD_WIN->generic.handle);
|
||||
wrefresh (TUI_CMD_WIN->handle);
|
||||
}
|
||||
|
||||
/* TUI version of displayer.erase_entire_line. */
|
||||
|
@ -671,7 +671,7 @@ tui_mld_flush (const struct match_list_displayer *displayer)
|
|||
static void
|
||||
tui_mld_erase_entire_line (const struct match_list_displayer *displayer)
|
||||
{
|
||||
WINDOW *w = TUI_CMD_WIN->generic.handle;
|
||||
WINDOW *w = TUI_CMD_WIN->handle;
|
||||
int cur_y = getcury (w);
|
||||
|
||||
wmove (w, cur_y, 0);
|
||||
|
@ -709,7 +709,7 @@ gdb_wgetch (WINDOW *win)
|
|||
static int
|
||||
tui_mld_getc (FILE *fp)
|
||||
{
|
||||
WINDOW *w = TUI_CMD_WIN->generic.handle;
|
||||
WINDOW *w = TUI_CMD_WIN->handle;
|
||||
int c = gdb_wgetch (w);
|
||||
|
||||
return c;
|
||||
|
@ -845,7 +845,7 @@ tui_cont_sig (int sig)
|
|||
/* Force a refresh of the screen. */
|
||||
tui_refresh_all_win ();
|
||||
|
||||
wrefresh (TUI_CMD_WIN->generic.handle);
|
||||
wrefresh (TUI_CMD_WIN->handle);
|
||||
}
|
||||
signal (sig, tui_cont_sig);
|
||||
}
|
||||
|
@ -914,7 +914,7 @@ tui_getc (FILE *fp)
|
|||
int ch;
|
||||
WINDOW *w;
|
||||
|
||||
w = TUI_CMD_WIN->generic.handle;
|
||||
w = TUI_CMD_WIN->handle;
|
||||
|
||||
#ifdef TUI_USE_PIPE_FOR_READLINE
|
||||
/* Flush readline output. */
|
||||
|
@ -950,8 +950,8 @@ tui_getc (FILE *fp)
|
|||
int px, py;
|
||||
getyx (w, py, px);
|
||||
px += rl_end - rl_point;
|
||||
py += px / TUI_CMD_WIN->generic.width;
|
||||
px %= TUI_CMD_WIN->generic.width;
|
||||
py += px / TUI_CMD_WIN->width;
|
||||
px %= TUI_CMD_WIN->width;
|
||||
wmove (w, py, px);
|
||||
tui_putc ('\n');
|
||||
}
|
||||
|
|
|
@ -296,7 +296,7 @@ tui_default_win_height (enum tui_win_type type,
|
|||
int h;
|
||||
|
||||
if (tui_win_list[type] != NULL)
|
||||
h = tui_win_list[type]->generic.height;
|
||||
h = tui_win_list[type]->height;
|
||||
else
|
||||
{
|
||||
switch (layout)
|
||||
|
@ -306,7 +306,7 @@ tui_default_win_height (enum tui_win_type type,
|
|||
if (TUI_CMD_WIN == NULL)
|
||||
h = tui_term_height () / 2;
|
||||
else
|
||||
h = tui_term_height () - TUI_CMD_WIN->generic.height;
|
||||
h = tui_term_height () - TUI_CMD_WIN->height;
|
||||
break;
|
||||
case SRC_DISASSEM_COMMAND:
|
||||
case SRC_DATA_COMMAND:
|
||||
|
@ -314,7 +314,7 @@ tui_default_win_height (enum tui_win_type type,
|
|||
if (TUI_CMD_WIN == NULL)
|
||||
h = tui_term_height () / 3;
|
||||
else
|
||||
h = (tui_term_height () - TUI_CMD_WIN->generic.height) / 2;
|
||||
h = (tui_term_height () - TUI_CMD_WIN->height) / 2;
|
||||
break;
|
||||
default:
|
||||
h = 0;
|
||||
|
@ -610,7 +610,7 @@ show_source_disasm_command (void)
|
|||
int cmd_height, src_height, asm_height;
|
||||
|
||||
if (TUI_CMD_WIN != NULL)
|
||||
cmd_height = TUI_CMD_WIN->generic.height;
|
||||
cmd_height = TUI_CMD_WIN->height;
|
||||
else
|
||||
cmd_height = tui_term_height () / 3;
|
||||
|
||||
|
@ -621,10 +621,10 @@ show_source_disasm_command (void)
|
|||
tui_win_list[SRC_WIN] = make_source_window (src_height, 0);
|
||||
else
|
||||
{
|
||||
init_gen_win_info (&TUI_SRC_WIN->generic,
|
||||
TUI_SRC_WIN->generic.type,
|
||||
init_gen_win_info (TUI_SRC_WIN,
|
||||
TUI_SRC_WIN->type,
|
||||
src_height,
|
||||
TUI_SRC_WIN->generic.width,
|
||||
TUI_SRC_WIN->width,
|
||||
TUI_SRC_WIN->execution_info->width,
|
||||
0);
|
||||
TUI_SRC_WIN->can_highlight = true;
|
||||
|
@ -634,7 +634,7 @@ show_source_disasm_command (void)
|
|||
3,
|
||||
0,
|
||||
0);
|
||||
tui_make_visible (&TUI_SRC_WIN->generic);
|
||||
tui_make_visible (TUI_SRC_WIN);
|
||||
tui_make_visible (TUI_SRC_WIN->execution_info);
|
||||
TUI_SRC_WIN->m_has_locator = false;
|
||||
}
|
||||
|
@ -665,10 +665,10 @@ show_source_disasm_command (void)
|
|||
0,
|
||||
(src_height + asm_height) - 1);
|
||||
TUI_DISASM_WIN->m_has_locator = true;
|
||||
init_gen_win_info (&TUI_DISASM_WIN->generic,
|
||||
TUI_DISASM_WIN->generic.type,
|
||||
init_gen_win_info (TUI_DISASM_WIN,
|
||||
TUI_DISASM_WIN->type,
|
||||
asm_height,
|
||||
TUI_DISASM_WIN->generic.width,
|
||||
TUI_DISASM_WIN->width,
|
||||
TUI_DISASM_WIN->execution_info->width,
|
||||
src_height - 1);
|
||||
init_gen_win_info (TUI_DISASM_WIN->execution_info,
|
||||
|
@ -678,7 +678,7 @@ show_source_disasm_command (void)
|
|||
0,
|
||||
src_height - 1);
|
||||
TUI_DISASM_WIN->can_highlight = true;
|
||||
tui_make_visible (&TUI_DISASM_WIN->generic);
|
||||
tui_make_visible (TUI_DISASM_WIN);
|
||||
tui_make_visible (TUI_DISASM_WIN->execution_info);
|
||||
}
|
||||
TUI_SRC_WIN->m_has_locator = false;
|
||||
|
@ -692,16 +692,16 @@ show_source_disasm_command (void)
|
|||
= make_command_window (cmd_height, tui_term_height () - cmd_height);
|
||||
else
|
||||
{
|
||||
init_gen_win_info (&TUI_CMD_WIN->generic,
|
||||
TUI_CMD_WIN->generic.type,
|
||||
TUI_CMD_WIN->generic.height,
|
||||
TUI_CMD_WIN->generic.width,
|
||||
init_gen_win_info (TUI_CMD_WIN,
|
||||
TUI_CMD_WIN->type,
|
||||
TUI_CMD_WIN->height,
|
||||
TUI_CMD_WIN->width,
|
||||
0,
|
||||
TUI_CMD_WIN->generic.origin.y);
|
||||
TUI_CMD_WIN->origin.y);
|
||||
TUI_CMD_WIN->can_highlight = false;
|
||||
tui_make_visible (&TUI_CMD_WIN->generic);
|
||||
tui_make_visible (TUI_CMD_WIN);
|
||||
}
|
||||
tui_refresh_win (&TUI_CMD_WIN->generic);
|
||||
tui_refresh_win (TUI_CMD_WIN);
|
||||
tui_set_current_layout_to (SRC_DISASSEM_COMMAND);
|
||||
}
|
||||
}
|
||||
|
@ -712,7 +712,7 @@ show_source_disasm_command (void)
|
|||
static void
|
||||
show_data (enum tui_layout_type new_layout)
|
||||
{
|
||||
int total_height = (tui_term_height () - TUI_CMD_WIN->generic.height);
|
||||
int total_height = (tui_term_height () - TUI_CMD_WIN->height);
|
||||
int src_height, data_height;
|
||||
enum tui_win_type win_type;
|
||||
struct tui_gen_win_info *locator = tui_locator_win_info_ptr ();
|
||||
|
@ -752,10 +752,10 @@ show_data (enum tui_layout_type new_layout)
|
|||
else
|
||||
{
|
||||
base = (tui_source_window_base *) tui_win_list[win_type];
|
||||
init_gen_win_info (&tui_win_list[win_type]->generic,
|
||||
tui_win_list[win_type]->generic.type,
|
||||
init_gen_win_info (tui_win_list[win_type],
|
||||
tui_win_list[win_type]->type,
|
||||
src_height,
|
||||
tui_win_list[win_type]->generic.width,
|
||||
tui_win_list[win_type]->width,
|
||||
base->execution_info->width,
|
||||
data_height - 1);
|
||||
init_gen_win_info (base->execution_info,
|
||||
|
@ -764,7 +764,7 @@ show_data (enum tui_layout_type new_layout)
|
|||
3,
|
||||
0,
|
||||
data_height - 1);
|
||||
tui_make_visible (&tui_win_list[win_type]->generic);
|
||||
tui_make_visible (tui_win_list[win_type]);
|
||||
tui_make_visible (base->execution_info);
|
||||
init_gen_win_info (locator,
|
||||
LOCATOR_WIN,
|
||||
|
@ -829,7 +829,7 @@ init_and_make_win (void *opaque_win_info,
|
|||
if (tui_win_is_auxillary (win_type))
|
||||
generic = (struct tui_gen_win_info *) opaque_win_info;
|
||||
else
|
||||
generic = &((struct tui_win_info *) opaque_win_info)->generic;
|
||||
generic = (struct tui_win_info *) opaque_win_info;
|
||||
|
||||
init_gen_win_info (generic, win_type, height, width, origin_x, origin_y);
|
||||
if (!tui_win_is_auxillary (win_type))
|
||||
|
@ -892,7 +892,7 @@ show_source_or_disasm_and_command (enum tui_layout_type layout_type)
|
|||
struct tui_gen_win_info *locator = tui_locator_win_info_ptr ();
|
||||
|
||||
if (TUI_CMD_WIN != NULL)
|
||||
cmd_height = TUI_CMD_WIN->generic.height;
|
||||
cmd_height = TUI_CMD_WIN->height;
|
||||
else
|
||||
cmd_height = tui_term_height () / 3;
|
||||
src_height = tui_term_height () - cmd_height;
|
||||
|
@ -930,10 +930,10 @@ show_source_or_disasm_and_command (enum tui_layout_type layout_type)
|
|||
0,
|
||||
src_height - 1);
|
||||
base->m_has_locator = true;
|
||||
init_gen_win_info (&(*win_info_ptr)->generic,
|
||||
(*win_info_ptr)->generic.type,
|
||||
init_gen_win_info (*win_info_ptr,
|
||||
(*win_info_ptr)->type,
|
||||
src_height - 1,
|
||||
(*win_info_ptr)->generic.width,
|
||||
(*win_info_ptr)->width,
|
||||
base->execution_info->width,
|
||||
0);
|
||||
init_gen_win_info (base->execution_info,
|
||||
|
@ -943,7 +943,7 @@ show_source_or_disasm_and_command (enum tui_layout_type layout_type)
|
|||
0,
|
||||
0);
|
||||
base->can_highlight = true;
|
||||
tui_make_visible (&(*win_info_ptr)->generic);
|
||||
tui_make_visible (*win_info_ptr);
|
||||
tui_make_visible (base->execution_info);
|
||||
}
|
||||
|
||||
|
@ -956,18 +956,18 @@ show_source_or_disasm_and_command (enum tui_layout_type layout_type)
|
|||
{
|
||||
tui_win_list[CMD_WIN] = make_command_window (cmd_height,
|
||||
src_height);
|
||||
tui_refresh_win (&TUI_CMD_WIN->generic);
|
||||
tui_refresh_win (TUI_CMD_WIN);
|
||||
}
|
||||
else
|
||||
{
|
||||
init_gen_win_info (&TUI_CMD_WIN->generic,
|
||||
TUI_CMD_WIN->generic.type,
|
||||
TUI_CMD_WIN->generic.height,
|
||||
TUI_CMD_WIN->generic.width,
|
||||
TUI_CMD_WIN->generic.origin.x,
|
||||
TUI_CMD_WIN->generic.origin.y);
|
||||
init_gen_win_info (TUI_CMD_WIN,
|
||||
TUI_CMD_WIN->type,
|
||||
TUI_CMD_WIN->height,
|
||||
TUI_CMD_WIN->width,
|
||||
TUI_CMD_WIN->origin.x,
|
||||
TUI_CMD_WIN->origin.y);
|
||||
TUI_CMD_WIN->can_highlight = false;
|
||||
tui_make_visible (&TUI_CMD_WIN->generic);
|
||||
tui_make_visible (TUI_CMD_WIN);
|
||||
}
|
||||
tui_set_current_layout_to (layout_type);
|
||||
}
|
||||
|
|
|
@ -135,7 +135,7 @@ tui_show_registers (struct reggroup *group)
|
|||
|
||||
/* Make sure the register window is visible. If not, select an
|
||||
appropriate layout. */
|
||||
if (TUI_DATA_WIN == NULL || !TUI_DATA_WIN->generic.is_visible)
|
||||
if (TUI_DATA_WIN == NULL || !TUI_DATA_WIN->is_visible)
|
||||
tui_set_layout_by_name (DATA_NAME);
|
||||
|
||||
if (group == 0)
|
||||
|
@ -195,8 +195,8 @@ tui_show_register_group (struct reggroup *group,
|
|||
/* Make a new title showing which group we display. */
|
||||
snprintf (title, sizeof (title) - 1, "Register group: %s",
|
||||
reggroup_name (group));
|
||||
xfree (TUI_DATA_WIN->generic.title);
|
||||
TUI_DATA_WIN->generic.title = xstrdup (title);
|
||||
xfree (TUI_DATA_WIN->title);
|
||||
TUI_DATA_WIN->title = xstrdup (title);
|
||||
|
||||
/* See how many registers must be displayed. */
|
||||
nr_regs = 0;
|
||||
|
@ -235,10 +235,10 @@ tui_show_register_group (struct reggroup *group,
|
|||
{
|
||||
if (!refresh_values_only || allocated_here)
|
||||
{
|
||||
TUI_DATA_WIN->generic.content = NULL;
|
||||
TUI_DATA_WIN->generic.content_size = 0;
|
||||
tui_add_content_elements (&TUI_DATA_WIN->generic, nr_regs);
|
||||
TUI_DATA_WIN->regs_content = TUI_DATA_WIN->generic.content;
|
||||
TUI_DATA_WIN->content = NULL;
|
||||
TUI_DATA_WIN->content_size = 0;
|
||||
tui_add_content_elements (TUI_DATA_WIN, nr_regs);
|
||||
TUI_DATA_WIN->regs_content = TUI_DATA_WIN->content;
|
||||
TUI_DATA_WIN->regs_content_count = nr_regs;
|
||||
}
|
||||
|
||||
|
@ -276,7 +276,7 @@ tui_show_register_group (struct reggroup *group,
|
|||
pos++;
|
||||
}
|
||||
|
||||
TUI_DATA_WIN->generic.content_size =
|
||||
TUI_DATA_WIN->content_size =
|
||||
TUI_DATA_WIN->regs_content_count + TUI_DATA_WIN->data_content_count;
|
||||
ret = TUI_SUCCESS;
|
||||
}
|
||||
|
@ -326,17 +326,17 @@ tui_display_registers_from (int start_element_no)
|
|||
i = start_element_no;
|
||||
|
||||
TUI_DATA_WIN->regs_column_count =
|
||||
(TUI_DATA_WIN->generic.width - 2) / item_win_width;
|
||||
(TUI_DATA_WIN->width - 2) / item_win_width;
|
||||
if (TUI_DATA_WIN->regs_column_count == 0)
|
||||
TUI_DATA_WIN->regs_column_count = 1;
|
||||
item_win_width =
|
||||
(TUI_DATA_WIN->generic.width - 2) / TUI_DATA_WIN->regs_column_count;
|
||||
(TUI_DATA_WIN->width - 2) / TUI_DATA_WIN->regs_column_count;
|
||||
|
||||
/* Now create each data "sub" window, and write the display into
|
||||
it. */
|
||||
cur_y = 1;
|
||||
while (i < TUI_DATA_WIN->regs_content_count
|
||||
&& cur_y <= TUI_DATA_WIN->generic.viewport_height)
|
||||
&& cur_y <= TUI_DATA_WIN->viewport_height)
|
||||
{
|
||||
for (j = 0;
|
||||
j < TUI_DATA_WIN->regs_column_count
|
||||
|
@ -401,7 +401,7 @@ tui_display_reg_element_at_line (int start_element_no,
|
|||
|
||||
last_line_no = tui_last_regs_line_no ();
|
||||
first_line_on_last_page
|
||||
= last_line_no - (TUI_DATA_WIN->generic.height - 2);
|
||||
= last_line_no - (TUI_DATA_WIN->height - 2);
|
||||
if (first_line_on_last_page < 0)
|
||||
first_line_on_last_page = 0;
|
||||
|
||||
|
@ -470,7 +470,7 @@ void
|
|||
tui_check_register_values (struct frame_info *frame)
|
||||
{
|
||||
if (TUI_DATA_WIN != NULL
|
||||
&& TUI_DATA_WIN->generic.is_visible)
|
||||
&& TUI_DATA_WIN->is_visible)
|
||||
{
|
||||
if (TUI_DATA_WIN->regs_content_count <= 0
|
||||
&& TUI_DATA_WIN->display_regs)
|
||||
|
@ -596,7 +596,7 @@ tui_reg_command (const char *args, int from_tty)
|
|||
/* Make sure the register window is visible. If not, select an
|
||||
appropriate layout. We need to do this before trying to run the
|
||||
'next' or 'prev' commands. */
|
||||
if (TUI_DATA_WIN == NULL || !TUI_DATA_WIN->generic.is_visible)
|
||||
if (TUI_DATA_WIN == NULL || !TUI_DATA_WIN->is_visible)
|
||||
tui_set_layout_by_name (DATA_NAME);
|
||||
|
||||
if (strncmp (args, "next", len) == 0)
|
||||
|
|
|
@ -135,10 +135,10 @@ tui_set_source_content (struct symtab *s,
|
|||
|
||||
if ((ret = tui_alloc_source_buffer (TUI_SRC_WIN)) == TUI_SUCCESS)
|
||||
{
|
||||
line_width = TUI_SRC_WIN->generic.width - 1;
|
||||
line_width = TUI_SRC_WIN->width - 1;
|
||||
/* Take hilite (window border) into account, when
|
||||
calculating the number of lines. */
|
||||
nlines = (line_no + (TUI_SRC_WIN->generic.height - 2)) - line_no;
|
||||
nlines = (line_no + (TUI_SRC_WIN->height - 2)) - line_no;
|
||||
|
||||
std::string srclines;
|
||||
if (!g_source_cache.get_source_lines (s, line_no, line_no + nlines,
|
||||
|
@ -163,9 +163,9 @@ tui_set_source_content (struct symtab *s,
|
|||
= (struct tui_source_window_base *) TUI_SRC_WIN;
|
||||
const char *s_filename = symtab_to_filename_for_display (s);
|
||||
|
||||
if (TUI_SRC_WIN->generic.title)
|
||||
xfree (TUI_SRC_WIN->generic.title);
|
||||
TUI_SRC_WIN->generic.title = xstrdup (s_filename);
|
||||
if (TUI_SRC_WIN->title)
|
||||
xfree (TUI_SRC_WIN->title);
|
||||
TUI_SRC_WIN->title = xstrdup (s_filename);
|
||||
|
||||
xfree (src->fullname);
|
||||
src->fullname = xstrdup (symtab_to_fullname (s));
|
||||
|
@ -179,7 +179,7 @@ tui_set_source_content (struct symtab *s,
|
|||
while (cur_line < nlines)
|
||||
{
|
||||
struct tui_win_element *element
|
||||
= TUI_SRC_WIN->generic.content[cur_line];
|
||||
= TUI_SRC_WIN->content[cur_line];
|
||||
|
||||
std::string text;
|
||||
if (*iter != '\0')
|
||||
|
@ -201,16 +201,16 @@ tui_set_source_content (struct symtab *s,
|
|||
== locator->content[0]
|
||||
->which_element.locator.line_no);
|
||||
|
||||
xfree (TUI_SRC_WIN->generic.content[cur_line]
|
||||
xfree (TUI_SRC_WIN->content[cur_line]
|
||||
->which_element.source.line);
|
||||
TUI_SRC_WIN->generic.content[cur_line]
|
||||
TUI_SRC_WIN->content[cur_line]
|
||||
->which_element.source.line
|
||||
= xstrdup (text.c_str ());
|
||||
|
||||
cur_line++;
|
||||
cur_line_no++;
|
||||
}
|
||||
TUI_SRC_WIN->generic.content_size = nlines;
|
||||
TUI_SRC_WIN->content_size = nlines;
|
||||
ret = TUI_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
@ -233,18 +233,18 @@ tui_set_source_content_nil (struct tui_win_info *win_info,
|
|||
int n_lines;
|
||||
int curr_line = 0;
|
||||
|
||||
line_width = win_info->generic.width - 1;
|
||||
n_lines = win_info->generic.height - 2;
|
||||
line_width = win_info->width - 1;
|
||||
n_lines = win_info->height - 2;
|
||||
|
||||
/* Set to empty each line in the window, except for the one which
|
||||
contains the message. */
|
||||
while (curr_line < win_info->generic.content_size)
|
||||
while (curr_line < win_info->content_size)
|
||||
{
|
||||
/* Set the information related to each displayed line to null:
|
||||
i.e. the line number is 0, there is no bp, it is not where
|
||||
the program is stopped. */
|
||||
|
||||
struct tui_win_element *element = win_info->generic.content[curr_line];
|
||||
struct tui_win_element *element = win_info->content[curr_line];
|
||||
|
||||
element->which_element.source.line_or_addr.loa = LOA_LINE;
|
||||
element->which_element.source.line_or_addr.u.line_no = 0;
|
||||
|
@ -300,7 +300,7 @@ int
|
|||
tui_source_is_displayed (const char *fullname)
|
||||
{
|
||||
return (TUI_SRC_WIN != NULL
|
||||
&& TUI_SRC_WIN->generic.content_in_use
|
||||
&& TUI_SRC_WIN->content_in_use
|
||||
&& (filename_cmp (tui_locator_win_info_ptr ()->content[0]
|
||||
->which_element.locator.full_name,
|
||||
fullname) == 0));
|
||||
|
@ -312,11 +312,10 @@ void
|
|||
tui_source_window::do_scroll_vertical
|
||||
(enum tui_scroll_direction scroll_direction, int num_to_scroll)
|
||||
{
|
||||
if (generic.content != NULL)
|
||||
if (content != NULL)
|
||||
{
|
||||
struct tui_line_or_address l;
|
||||
struct symtab *s;
|
||||
tui_win_content content = generic.content;
|
||||
struct symtab_and_line cursal = get_current_source_symtab_and_line ();
|
||||
|
||||
if (cursal.symtab == NULL)
|
||||
|
@ -330,7 +329,7 @@ tui_source_window::do_scroll_vertical
|
|||
l.u.line_no = content[0]->which_element.source.line_or_addr.u.line_no
|
||||
+ num_to_scroll;
|
||||
if (l.u.line_no > s->nlines)
|
||||
/* line = s->nlines - win_info->generic.content_size + 1; */
|
||||
/* line = s->nlines - win_info->content_size + 1; */
|
||||
/* elz: fix for dts 23398. */
|
||||
l.u.line_no
|
||||
= content[0]->which_element.source.line_or_addr.u.line_no;
|
||||
|
|
|
@ -404,7 +404,7 @@ tui_show_frame_info (struct frame_info *fi)
|
|||
if (win_info == TUI_SRC_WIN)
|
||||
{
|
||||
start_line = (item->locator.line_no -
|
||||
(win_info->generic.viewport_height / 2)) + 1;
|
||||
(win_info->viewport_height / 2)) + 1;
|
||||
if (start_line <= 0)
|
||||
start_line = 1;
|
||||
}
|
||||
|
|
|
@ -373,10 +373,10 @@ window_name_completer (completion_tracker &tracker,
|
|||
|
||||
/* We can't focus on an invisible window. */
|
||||
if (tui_win_list[win_type] == NULL
|
||||
|| !tui_win_list[win_type]->generic.is_visible)
|
||||
|| !tui_win_list[win_type]->is_visible)
|
||||
continue;
|
||||
|
||||
completion_name = tui_win_name (&tui_win_list [win_type]->generic);
|
||||
completion_name = tui_win_name (tui_win_list [win_type]);
|
||||
gdb_assert (completion_name != NULL);
|
||||
completion_name_vec.push_back (completion_name);
|
||||
}
|
||||
|
@ -438,8 +438,8 @@ tui_update_gdb_sizes (void)
|
|||
|
||||
if (tui_active)
|
||||
{
|
||||
width = TUI_CMD_WIN->generic.width;
|
||||
height = TUI_CMD_WIN->generic.height;
|
||||
width = TUI_CMD_WIN->width;
|
||||
height = TUI_CMD_WIN->height;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -460,10 +460,10 @@ tui_set_win_focus_to (struct tui_win_info *win_info)
|
|||
struct tui_win_info *win_with_focus = tui_win_with_focus ();
|
||||
|
||||
if (win_with_focus != NULL
|
||||
&& win_with_focus->generic.type != CMD_WIN)
|
||||
&& win_with_focus->type != CMD_WIN)
|
||||
tui_unhighlight_win (win_with_focus);
|
||||
tui_set_win_with_focus (win_info);
|
||||
if (win_info->generic.type != CMD_WIN)
|
||||
if (win_info->type != CMD_WIN)
|
||||
tui_highlight_win (win_info);
|
||||
}
|
||||
}
|
||||
|
@ -473,7 +473,7 @@ void
|
|||
tui_win_info::forward_scroll (int num_to_scroll)
|
||||
{
|
||||
if (num_to_scroll == 0)
|
||||
num_to_scroll = generic.height - 3;
|
||||
num_to_scroll = height - 3;
|
||||
|
||||
do_scroll_vertical (FORWARD_SCROLL, num_to_scroll);
|
||||
}
|
||||
|
@ -482,7 +482,7 @@ void
|
|||
tui_win_info::backward_scroll (int num_to_scroll)
|
||||
{
|
||||
if (num_to_scroll == 0)
|
||||
num_to_scroll = generic.height - 3;
|
||||
num_to_scroll = height - 3;
|
||||
|
||||
do_scroll_vertical (BACKWARD_SCROLL, num_to_scroll);
|
||||
}
|
||||
|
@ -528,7 +528,7 @@ tui_refresh_all_win (void)
|
|||
tui_refresh_all (tui_win_list);
|
||||
for (type = SRC_WIN; type < MAX_MAJOR_WINDOWS; type++)
|
||||
{
|
||||
if (tui_win_list[type] && tui_win_list[type]->generic.is_visible)
|
||||
if (tui_win_list[type] && tui_win_list[type]->is_visible)
|
||||
tui_win_list[type]->refresh_all ();
|
||||
}
|
||||
tui_show_locator_content ();
|
||||
|
@ -569,7 +569,7 @@ tui_resize_all (void)
|
|||
#endif
|
||||
/* Turn keypad off while we resize. */
|
||||
if (win_with_focus != TUI_CMD_WIN)
|
||||
keypad (TUI_CMD_WIN->generic.handle, FALSE);
|
||||
keypad (TUI_CMD_WIN->handle, FALSE);
|
||||
tui_update_gdb_sizes ();
|
||||
tui_set_term_height_to (screenheight);
|
||||
tui_set_term_width_to (screenwidth);
|
||||
|
@ -597,57 +597,57 @@ tui_resize_all (void)
|
|||
case SRC_COMMAND:
|
||||
case DISASSEM_COMMAND:
|
||||
first_win = tui_source_windows ()[0];
|
||||
first_win->generic.width += width_diff;
|
||||
first_win->width += width_diff;
|
||||
locator->width += width_diff;
|
||||
/* Check for invalid heights. */
|
||||
if (height_diff == 0)
|
||||
new_height = first_win->generic.height;
|
||||
else if ((first_win->generic.height + split_diff) >=
|
||||
new_height = first_win->height;
|
||||
else if ((first_win->height + split_diff) >=
|
||||
(screenheight - MIN_CMD_WIN_HEIGHT - 1))
|
||||
new_height = screenheight - MIN_CMD_WIN_HEIGHT - 1;
|
||||
else if ((first_win->generic.height + split_diff) <= 0)
|
||||
else if ((first_win->height + split_diff) <= 0)
|
||||
new_height = MIN_WIN_HEIGHT;
|
||||
else
|
||||
new_height = first_win->generic.height + split_diff;
|
||||
new_height = first_win->height + split_diff;
|
||||
|
||||
locator->origin.y = new_height + 1;
|
||||
make_invisible_and_set_new_height (first_win, new_height);
|
||||
TUI_CMD_WIN->generic.origin.y = locator->origin.y + 1;
|
||||
TUI_CMD_WIN->generic.width += width_diff;
|
||||
new_height = screenheight - TUI_CMD_WIN->generic.origin.y;
|
||||
TUI_CMD_WIN->origin.y = locator->origin.y + 1;
|
||||
TUI_CMD_WIN->width += width_diff;
|
||||
new_height = screenheight - TUI_CMD_WIN->origin.y;
|
||||
make_invisible_and_set_new_height (TUI_CMD_WIN, new_height);
|
||||
make_visible_with_new_height (first_win);
|
||||
make_visible_with_new_height (TUI_CMD_WIN);
|
||||
if (first_win->generic.content_size <= 0)
|
||||
if (first_win->content_size <= 0)
|
||||
tui_erase_source_content (first_win, EMPTY_SOURCE_PROMPT);
|
||||
break;
|
||||
default:
|
||||
if (cur_layout == SRC_DISASSEM_COMMAND)
|
||||
{
|
||||
first_win = TUI_SRC_WIN;
|
||||
first_win->generic.width += width_diff;
|
||||
first_win->width += width_diff;
|
||||
second_win = TUI_DISASM_WIN;
|
||||
second_win->generic.width += width_diff;
|
||||
second_win->width += width_diff;
|
||||
}
|
||||
else
|
||||
{
|
||||
first_win = TUI_DATA_WIN;
|
||||
first_win->generic.width += width_diff;
|
||||
first_win->width += width_diff;
|
||||
second_win = tui_source_windows ()[0];
|
||||
second_win->generic.width += width_diff;
|
||||
second_win->width += width_diff;
|
||||
}
|
||||
/* Change the first window's height/width. */
|
||||
/* Check for invalid heights. */
|
||||
if (height_diff == 0)
|
||||
new_height = first_win->generic.height;
|
||||
else if ((first_win->generic.height +
|
||||
second_win->generic.height + (split_diff * 2)) >=
|
||||
new_height = first_win->height;
|
||||
else if ((first_win->height +
|
||||
second_win->height + (split_diff * 2)) >=
|
||||
(screenheight - MIN_CMD_WIN_HEIGHT - 1))
|
||||
new_height = (screenheight - MIN_CMD_WIN_HEIGHT - 1) / 2;
|
||||
else if ((first_win->generic.height + split_diff) <= 0)
|
||||
else if ((first_win->height + split_diff) <= 0)
|
||||
new_height = MIN_WIN_HEIGHT;
|
||||
else
|
||||
new_height = first_win->generic.height + split_diff;
|
||||
new_height = first_win->height + split_diff;
|
||||
make_invisible_and_set_new_height (first_win, new_height);
|
||||
|
||||
locator->width += width_diff;
|
||||
|
@ -655,9 +655,9 @@ tui_resize_all (void)
|
|||
/* Change the second window's height/width. */
|
||||
/* Check for invalid heights. */
|
||||
if (height_diff == 0)
|
||||
new_height = second_win->generic.height;
|
||||
else if ((first_win->generic.height +
|
||||
second_win->generic.height + (split_diff * 2)) >=
|
||||
new_height = second_win->height;
|
||||
else if ((first_win->height +
|
||||
second_win->height + (split_diff * 2)) >=
|
||||
(screenheight - MIN_CMD_WIN_HEIGHT - 1))
|
||||
{
|
||||
new_height = screenheight - MIN_CMD_WIN_HEIGHT - 1;
|
||||
|
@ -666,24 +666,24 @@ tui_resize_all (void)
|
|||
else
|
||||
new_height /= 2;
|
||||
}
|
||||
else if ((second_win->generic.height + split_diff) <= 0)
|
||||
else if ((second_win->height + split_diff) <= 0)
|
||||
new_height = MIN_WIN_HEIGHT;
|
||||
else
|
||||
new_height = second_win->generic.height + split_diff;
|
||||
second_win->generic.origin.y = first_win->generic.height - 1;
|
||||
new_height = second_win->height + split_diff;
|
||||
second_win->origin.y = first_win->height - 1;
|
||||
make_invisible_and_set_new_height (second_win, new_height);
|
||||
|
||||
/* Change the command window's height/width. */
|
||||
TUI_CMD_WIN->generic.origin.y = locator->origin.y + 1;
|
||||
TUI_CMD_WIN->origin.y = locator->origin.y + 1;
|
||||
make_invisible_and_set_new_height (TUI_CMD_WIN,
|
||||
TUI_CMD_WIN->generic.height
|
||||
TUI_CMD_WIN->height
|
||||
+ cmd_split_diff);
|
||||
make_visible_with_new_height (first_win);
|
||||
make_visible_with_new_height (second_win);
|
||||
make_visible_with_new_height (TUI_CMD_WIN);
|
||||
if (first_win->generic.content_size <= 0)
|
||||
if (first_win->content_size <= 0)
|
||||
tui_erase_source_content (first_win, EMPTY_SOURCE_PROMPT);
|
||||
if (second_win->generic.content_size <= 0)
|
||||
if (second_win->content_size <= 0)
|
||||
tui_erase_source_content (second_win, EMPTY_SOURCE_PROMPT);
|
||||
break;
|
||||
}
|
||||
|
@ -693,7 +693,7 @@ tui_resize_all (void)
|
|||
{
|
||||
if (win_type != CMD_WIN
|
||||
&& (tui_win_list[win_type] != NULL)
|
||||
&& !tui_win_list[win_type]->generic.is_visible)
|
||||
&& !tui_win_list[win_type]->is_visible)
|
||||
{
|
||||
delete tui_win_list[win_type];
|
||||
tui_win_list[win_type] = NULL;
|
||||
|
@ -702,7 +702,7 @@ tui_resize_all (void)
|
|||
/* Turn keypad back on, unless focus is in the command
|
||||
window. */
|
||||
if (win_with_focus != TUI_CMD_WIN)
|
||||
keypad (TUI_CMD_WIN->generic.handle, TRUE);
|
||||
keypad (TUI_CMD_WIN->handle, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -856,20 +856,20 @@ tui_set_focus (const char *arg, int from_tty)
|
|||
else
|
||||
win_info = tui_partial_win_by_name (buf_ptr);
|
||||
|
||||
if (win_info == NULL || !win_info->generic.is_visible)
|
||||
if (win_info == NULL || !win_info->is_visible)
|
||||
warning (_("Invalid window specified. \n\
|
||||
The window name specified must be valid and visible.\n"));
|
||||
else
|
||||
{
|
||||
tui_set_win_focus_to (win_info);
|
||||
keypad (TUI_CMD_WIN->generic.handle, (win_info != TUI_CMD_WIN));
|
||||
keypad (TUI_CMD_WIN->handle, (win_info != TUI_CMD_WIN));
|
||||
}
|
||||
|
||||
if (TUI_DATA_WIN && TUI_DATA_WIN->generic.is_visible)
|
||||
if (TUI_DATA_WIN && TUI_DATA_WIN->is_visible)
|
||||
TUI_DATA_WIN->refresh_all ();
|
||||
xfree (buf_ptr);
|
||||
printf_filtered (_("Focus set to %s window.\n"),
|
||||
tui_win_name (&tui_win_with_focus ()->generic));
|
||||
tui_win_name (tui_win_with_focus ()));
|
||||
}
|
||||
else
|
||||
warning (_("Incorrect Number of Arguments.\n%s"), FOCUS_USAGE);
|
||||
|
@ -892,16 +892,16 @@ tui_all_windows_info (const char *arg, int from_tty)
|
|||
|
||||
for (type = SRC_WIN; (type < MAX_MAJOR_WINDOWS); type++)
|
||||
if (tui_win_list[type]
|
||||
&& tui_win_list[type]->generic.is_visible)
|
||||
&& tui_win_list[type]->is_visible)
|
||||
{
|
||||
if (win_with_focus == tui_win_list[type])
|
||||
printf_filtered (" %s\t(%d lines) <has focus>\n",
|
||||
tui_win_name (&tui_win_list[type]->generic),
|
||||
tui_win_list[type]->generic.height);
|
||||
tui_win_name (tui_win_list[type]),
|
||||
tui_win_list[type]->height);
|
||||
else
|
||||
printf_filtered (" %s\t(%d lines)\n",
|
||||
tui_win_name (&tui_win_list[type]->generic),
|
||||
tui_win_list[type]->generic.height);
|
||||
tui_win_name (tui_win_list[type]),
|
||||
tui_win_list[type]->height);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -934,17 +934,17 @@ update_tab_width ()
|
|||
and redisplay of the window's contents, which will take
|
||||
the new tab width into account. */
|
||||
if (tui_win_list[SRC_WIN]
|
||||
&& tui_win_list[SRC_WIN]->generic.is_visible)
|
||||
&& tui_win_list[SRC_WIN]->is_visible)
|
||||
{
|
||||
make_invisible_and_set_new_height (TUI_SRC_WIN,
|
||||
TUI_SRC_WIN->generic.height);
|
||||
TUI_SRC_WIN->height);
|
||||
make_visible_with_new_height (TUI_SRC_WIN);
|
||||
}
|
||||
if (tui_win_list[DISASSEM_WIN]
|
||||
&& tui_win_list[DISASSEM_WIN]->generic.is_visible)
|
||||
&& tui_win_list[DISASSEM_WIN]->is_visible)
|
||||
{
|
||||
make_invisible_and_set_new_height (TUI_DISASM_WIN,
|
||||
TUI_DISASM_WIN->generic.height);
|
||||
TUI_DISASM_WIN->height);
|
||||
make_visible_with_new_height (TUI_DISASM_WIN);
|
||||
}
|
||||
}
|
||||
|
@ -1025,7 +1025,7 @@ tui_set_win_height (const char *arg, int from_tty)
|
|||
wname[i] = tolower (wname[i]);
|
||||
win_info = tui_partial_win_by_name (wname);
|
||||
|
||||
if (win_info == NULL || !win_info->generic.is_visible)
|
||||
if (win_info == NULL || !win_info->is_visible)
|
||||
warning (_("Invalid window specified. \n\
|
||||
The window name specified must be valid and visible.\n"));
|
||||
else
|
||||
|
@ -1055,7 +1055,7 @@ The window name specified must be valid and visible.\n"));
|
|||
if (fixed_size)
|
||||
new_height = input_no;
|
||||
else
|
||||
new_height = win_info->generic.height + input_no;
|
||||
new_height = win_info->height + input_no;
|
||||
|
||||
/* Now change the window's height, and adjust
|
||||
all other windows around it. */
|
||||
|
@ -1098,21 +1098,21 @@ tui_adjust_win_heights (struct tui_win_info *primary_win_info,
|
|||
if (new_height_ok (primary_win_info, new_height))
|
||||
{
|
||||
status = TUI_SUCCESS;
|
||||
if (new_height != primary_win_info->generic.height)
|
||||
if (new_height != primary_win_info->height)
|
||||
{
|
||||
int diff;
|
||||
struct tui_win_info *win_info;
|
||||
struct tui_gen_win_info *locator = tui_locator_win_info_ptr ();
|
||||
enum tui_layout_type cur_layout = tui_current_layout ();
|
||||
|
||||
diff = (new_height - primary_win_info->generic.height) * (-1);
|
||||
diff = (new_height - primary_win_info->height) * (-1);
|
||||
if (cur_layout == SRC_COMMAND
|
||||
|| cur_layout == DISASSEM_COMMAND)
|
||||
{
|
||||
struct tui_win_info *src_win_info;
|
||||
|
||||
make_invisible_and_set_new_height (primary_win_info, new_height);
|
||||
if (primary_win_info->generic.type == CMD_WIN)
|
||||
if (primary_win_info->type == CMD_WIN)
|
||||
{
|
||||
win_info = tui_source_windows ()[0];
|
||||
src_win_info = win_info;
|
||||
|
@ -1123,11 +1123,11 @@ tui_adjust_win_heights (struct tui_win_info *primary_win_info,
|
|||
src_win_info = primary_win_info;
|
||||
}
|
||||
make_invisible_and_set_new_height (win_info,
|
||||
win_info->generic.height + diff);
|
||||
TUI_CMD_WIN->generic.origin.y = locator->origin.y + 1;
|
||||
win_info->height + diff);
|
||||
TUI_CMD_WIN->origin.y = locator->origin.y + 1;
|
||||
make_visible_with_new_height (win_info);
|
||||
make_visible_with_new_height (primary_win_info);
|
||||
if (src_win_info->generic.content_size <= 0)
|
||||
if (src_win_info->content_size <= 0)
|
||||
tui_erase_source_content (src_win_info, EMPTY_SOURCE_PROMPT);
|
||||
}
|
||||
else
|
||||
|
@ -1154,8 +1154,8 @@ tui_adjust_win_heights (struct tui_win_info *primary_win_info,
|
|||
|
||||
if (diff % 2)
|
||||
{
|
||||
if (first_win->generic.height >
|
||||
second_win->generic.height)
|
||||
if (first_win->height >
|
||||
second_win->height)
|
||||
if (diff < 0)
|
||||
first_split_diff--;
|
||||
else
|
||||
|
@ -1170,42 +1170,42 @@ tui_adjust_win_heights (struct tui_win_info *primary_win_info,
|
|||
}
|
||||
/* Make sure that the minimum hieghts are
|
||||
honored. */
|
||||
while ((first_win->generic.height + first_split_diff) < 3)
|
||||
while ((first_win->height + first_split_diff) < 3)
|
||||
{
|
||||
first_split_diff++;
|
||||
second_split_diff--;
|
||||
}
|
||||
while ((second_win->generic.height + second_split_diff) < 3)
|
||||
while ((second_win->height + second_split_diff) < 3)
|
||||
{
|
||||
second_split_diff++;
|
||||
first_split_diff--;
|
||||
}
|
||||
make_invisible_and_set_new_height (
|
||||
first_win,
|
||||
first_win->generic.height + first_split_diff);
|
||||
second_win->generic.origin.y = first_win->generic.height - 1;
|
||||
first_win->height + first_split_diff);
|
||||
second_win->origin.y = first_win->height - 1;
|
||||
make_invisible_and_set_new_height (second_win,
|
||||
second_win->generic.height
|
||||
second_win->height
|
||||
+ second_split_diff);
|
||||
TUI_CMD_WIN->generic.origin.y = locator->origin.y + 1;
|
||||
TUI_CMD_WIN->origin.y = locator->origin.y + 1;
|
||||
make_invisible_and_set_new_height (TUI_CMD_WIN, new_height);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((TUI_CMD_WIN->generic.height + diff) < 1)
|
||||
if ((TUI_CMD_WIN->height + diff) < 1)
|
||||
{ /* If there is no way to increase the command
|
||||
window take real estate from the 1st or 2nd
|
||||
window. */
|
||||
if ((TUI_CMD_WIN->generic.height + diff) < 1)
|
||||
if ((TUI_CMD_WIN->height + diff) < 1)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = TUI_CMD_WIN->generic.height + diff;
|
||||
for (i = TUI_CMD_WIN->height + diff;
|
||||
(i < 1); i++)
|
||||
if (primary_win_info == first_win)
|
||||
second_win->generic.height--;
|
||||
second_win->height--;
|
||||
else
|
||||
first_win->generic.height--;
|
||||
first_win->height--;
|
||||
}
|
||||
}
|
||||
if (primary_win_info == first_win)
|
||||
|
@ -1213,26 +1213,26 @@ tui_adjust_win_heights (struct tui_win_info *primary_win_info,
|
|||
else
|
||||
make_invisible_and_set_new_height (
|
||||
first_win,
|
||||
first_win->generic.height);
|
||||
second_win->generic.origin.y = first_win->generic.height - 1;
|
||||
first_win->height);
|
||||
second_win->origin.y = first_win->height - 1;
|
||||
if (primary_win_info == second_win)
|
||||
make_invisible_and_set_new_height (second_win, new_height);
|
||||
else
|
||||
make_invisible_and_set_new_height (
|
||||
second_win, second_win->generic.height);
|
||||
TUI_CMD_WIN->generic.origin.y = locator->origin.y + 1;
|
||||
if ((TUI_CMD_WIN->generic.height + diff) < 1)
|
||||
second_win, second_win->height);
|
||||
TUI_CMD_WIN->origin.y = locator->origin.y + 1;
|
||||
if ((TUI_CMD_WIN->height + diff) < 1)
|
||||
make_invisible_and_set_new_height (TUI_CMD_WIN, 1);
|
||||
else
|
||||
make_invisible_and_set_new_height (TUI_CMD_WIN,
|
||||
TUI_CMD_WIN->generic.height + diff);
|
||||
TUI_CMD_WIN->height + diff);
|
||||
}
|
||||
make_visible_with_new_height (TUI_CMD_WIN);
|
||||
make_visible_with_new_height (second_win);
|
||||
make_visible_with_new_height (first_win);
|
||||
if (first_win->generic.content_size <= 0)
|
||||
if (first_win->content_size <= 0)
|
||||
tui_erase_source_content (first_win, EMPTY_SOURCE_PROMPT);
|
||||
if (second_win->generic.content_size <= 0)
|
||||
if (second_win->content_size <= 0)
|
||||
tui_erase_source_content (second_win, EMPTY_SOURCE_PROMPT);
|
||||
}
|
||||
}
|
||||
|
@ -1249,7 +1249,7 @@ tui_source_window_base::set_new_height (int height)
|
|||
{
|
||||
tui_make_invisible (execution_info);
|
||||
execution_info->height = height;
|
||||
execution_info->origin.y = generic.origin.y;
|
||||
execution_info->origin.y = origin.y;
|
||||
if (height > 1)
|
||||
execution_info->viewport_height = height - 1;
|
||||
else
|
||||
|
@ -1260,7 +1260,7 @@ tui_source_window_base::set_new_height (int height)
|
|||
{
|
||||
tui_gen_win_info *gen_win_info = tui_locator_win_info_ptr ();
|
||||
tui_make_invisible (gen_win_info);
|
||||
gen_win_info->origin.y = generic.origin.y + height;
|
||||
gen_win_info->origin.y = origin.y + height;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1270,10 +1270,10 @@ void
|
|||
tui_data_window::set_new_height (int height)
|
||||
{
|
||||
/* Delete all data item windows. */
|
||||
for (int i = 0; i < generic.content_size; i++)
|
||||
for (int i = 0; i < content_size; i++)
|
||||
{
|
||||
struct tui_gen_win_info *gen_win_info
|
||||
= generic.content[i]->which_element.data_window;
|
||||
= content[i]->which_element.data_window;
|
||||
tui_delete_win (gen_win_info->handle);
|
||||
gen_win_info->handle = NULL;
|
||||
}
|
||||
|
@ -1286,14 +1286,14 @@ static void
|
|||
make_invisible_and_set_new_height (struct tui_win_info *win_info,
|
||||
int height)
|
||||
{
|
||||
tui_make_invisible (&win_info->generic);
|
||||
win_info->generic.height = height;
|
||||
tui_make_invisible (win_info);
|
||||
win_info->height = height;
|
||||
if (height > 1)
|
||||
win_info->generic.viewport_height = height - 1;
|
||||
win_info->viewport_height = height - 1;
|
||||
else
|
||||
win_info->generic.viewport_height = height;
|
||||
win_info->viewport_height = height;
|
||||
if (win_info != TUI_CMD_WIN)
|
||||
win_info->generic.viewport_height--;
|
||||
win_info->viewport_height--;
|
||||
|
||||
/* Now deal with the auxillary windows associated with win_info. */
|
||||
win_info->set_new_height (height);
|
||||
|
@ -1308,17 +1308,17 @@ make_visible_with_new_height (struct tui_win_info *win_info)
|
|||
{
|
||||
struct symtab *s;
|
||||
|
||||
tui_make_visible (&win_info->generic);
|
||||
tui_make_visible (win_info);
|
||||
tui_check_and_display_highlight_if_needed (win_info);
|
||||
tui_source_window_base *base;
|
||||
switch (win_info->generic.type)
|
||||
switch (win_info->type)
|
||||
{
|
||||
case SRC_WIN:
|
||||
case DISASSEM_WIN:
|
||||
base = (tui_source_window_base *) win_info;
|
||||
tui_free_win_content (base->execution_info);
|
||||
tui_make_visible (base->execution_info);
|
||||
if (win_info->generic.content != NULL)
|
||||
if (win_info->content != NULL)
|
||||
{
|
||||
struct gdbarch *gdbarch = base->gdbarch;
|
||||
struct tui_line_or_address line_or_addr;
|
||||
|
@ -1326,7 +1326,7 @@ make_visible_with_new_height (struct tui_win_info *win_info)
|
|||
= get_current_source_symtab_and_line ();
|
||||
|
||||
line_or_addr = base->start_line_or_addr;
|
||||
tui_free_win_content (&win_info->generic);
|
||||
tui_free_win_content (win_info);
|
||||
tui_update_source_window (win_info, gdbarch,
|
||||
cursal.symtab, line_or_addr, TRUE);
|
||||
}
|
||||
|
@ -1339,7 +1339,7 @@ make_visible_with_new_height (struct tui_win_info *win_info)
|
|||
struct gdbarch *gdbarch = get_frame_arch (frame);
|
||||
|
||||
s = find_pc_line_symtab (get_frame_pc (frame));
|
||||
if (win_info->generic.type == SRC_WIN)
|
||||
if (win_info->type == SRC_WIN)
|
||||
{
|
||||
line.loa = LOA_LINE;
|
||||
line.u.line_no = cursal.line;
|
||||
|
@ -1362,14 +1362,14 @@ make_visible_with_new_height (struct tui_win_info *win_info)
|
|||
break;
|
||||
case CMD_WIN:
|
||||
#ifdef HAVE_WRESIZE
|
||||
wresize (TUI_CMD_WIN->generic.handle,
|
||||
TUI_CMD_WIN->generic.height,
|
||||
TUI_CMD_WIN->generic.width);
|
||||
wresize (TUI_CMD_WIN->handle,
|
||||
TUI_CMD_WIN->height,
|
||||
TUI_CMD_WIN->width);
|
||||
#endif
|
||||
mvwin (TUI_CMD_WIN->generic.handle,
|
||||
TUI_CMD_WIN->generic.origin.y,
|
||||
TUI_CMD_WIN->generic.origin.x);
|
||||
wmove (win_info->generic.handle, 0, 0);
|
||||
mvwin (TUI_CMD_WIN->handle,
|
||||
TUI_CMD_WIN->origin.y,
|
||||
TUI_CMD_WIN->origin.x);
|
||||
wmove (win_info->handle, 0, 0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -1404,7 +1404,7 @@ new_height_ok (struct tui_win_info *primary_win_info,
|
|||
int diff;
|
||||
enum tui_layout_type cur_layout = tui_current_layout ();
|
||||
|
||||
diff = (new_height - primary_win_info->generic.height) * (-1);
|
||||
diff = (new_height - primary_win_info->height) * (-1);
|
||||
if (cur_layout == SRC_COMMAND || cur_layout == DISASSEM_COMMAND)
|
||||
{
|
||||
ok = (new_height <= primary_win_info->max_height ()
|
||||
|
@ -1418,7 +1418,7 @@ new_height_ok (struct tui_win_info *primary_win_info,
|
|||
else
|
||||
win_info = TUI_CMD_WIN;
|
||||
ok = ((new_height +
|
||||
(win_info->generic.height + diff)) <= tui_term_height ());
|
||||
(win_info->height + diff)) <= tui_term_height ());
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -1442,20 +1442,20 @@ new_height_ok (struct tui_win_info *primary_win_info,
|
|||
the line that the first and second windows share, and add
|
||||
one for the locator. */
|
||||
total_height = cur_total_height =
|
||||
(first_win->generic.height + second_win->generic.height - 1)
|
||||
+ TUI_CMD_WIN->generic.height + 1; /* Locator. */
|
||||
(first_win->height + second_win->height - 1)
|
||||
+ TUI_CMD_WIN->height + 1; /* Locator. */
|
||||
if (primary_win_info == TUI_CMD_WIN)
|
||||
{
|
||||
/* Locator included since first & second win share a line. */
|
||||
ok = ((first_win->generic.height +
|
||||
second_win->generic.height + diff) >=
|
||||
ok = ((first_win->height +
|
||||
second_win->height + diff) >=
|
||||
(MIN_WIN_HEIGHT * 2)
|
||||
&& new_height >= MIN_CMD_WIN_HEIGHT);
|
||||
if (ok)
|
||||
{
|
||||
total_height = new_height +
|
||||
(first_win->generic.height +
|
||||
second_win->generic.height + diff);
|
||||
(first_win->height +
|
||||
second_win->height + diff);
|
||||
min_height = MIN_CMD_WIN_HEIGHT;
|
||||
}
|
||||
}
|
||||
|
@ -1466,25 +1466,25 @@ new_height_ok (struct tui_win_info *primary_win_info,
|
|||
/* First see if we can increase/decrease the command
|
||||
window. And make sure that the command window is at
|
||||
least 1 line. */
|
||||
ok = ((TUI_CMD_WIN->generic.height + diff) > 0);
|
||||
ok = ((TUI_CMD_WIN->height + diff) > 0);
|
||||
if (!ok)
|
||||
{ /* Looks like we have to increase/decrease one of
|
||||
the other windows. */
|
||||
if (primary_win_info == first_win)
|
||||
ok = (second_win->generic.height + diff) >= min_height;
|
||||
ok = (second_win->height + diff) >= min_height;
|
||||
else
|
||||
ok = (first_win->generic.height + diff) >= min_height;
|
||||
ok = (first_win->height + diff) >= min_height;
|
||||
}
|
||||
if (ok)
|
||||
{
|
||||
if (primary_win_info == first_win)
|
||||
total_height = new_height +
|
||||
second_win->generic.height +
|
||||
TUI_CMD_WIN->generic.height + diff;
|
||||
second_win->height +
|
||||
TUI_CMD_WIN->height + diff;
|
||||
else
|
||||
total_height = new_height +
|
||||
first_win->generic.height +
|
||||
TUI_CMD_WIN->generic.height + diff;
|
||||
first_win->height +
|
||||
TUI_CMD_WIN->height + diff;
|
||||
}
|
||||
}
|
||||
/* Now make sure that the proposed total height doesn't
|
||||
|
@ -1557,7 +1557,7 @@ parse_scrolling_args (const char *arg,
|
|||
*win_to_scroll = tui_partial_win_by_name (wname);
|
||||
|
||||
if (*win_to_scroll == NULL
|
||||
|| !(*win_to_scroll)->generic.is_visible)
|
||||
|| !(*win_to_scroll)->is_visible)
|
||||
error (_("Invalid window specified. \n\
|
||||
The window name specified must be valid and visible.\n"));
|
||||
else if (*win_to_scroll == TUI_CMD_WIN)
|
||||
|
|
|
@ -48,13 +48,13 @@ tui_first_data_item_displayed (void)
|
|||
int i;
|
||||
|
||||
for (i = 0;
|
||||
i < TUI_DATA_WIN->generic.content_size && element_no < 0;
|
||||
i < TUI_DATA_WIN->content_size && element_no < 0;
|
||||
i++)
|
||||
{
|
||||
struct tui_gen_win_info *data_item_win;
|
||||
|
||||
data_item_win
|
||||
= TUI_DATA_WIN->generic.content[i]->which_element.data_window;
|
||||
= TUI_DATA_WIN->content[i]->which_element.data_window;
|
||||
if (data_item_win->handle != NULL
|
||||
&& data_item_win->is_visible)
|
||||
element_no = i;
|
||||
|
@ -72,10 +72,10 @@ tui_delete_data_content_windows (void)
|
|||
int i;
|
||||
struct tui_gen_win_info *data_item_win_ptr;
|
||||
|
||||
for (i = 0; (i < TUI_DATA_WIN->generic.content_size); i++)
|
||||
for (i = 0; (i < TUI_DATA_WIN->content_size); i++)
|
||||
{
|
||||
data_item_win_ptr
|
||||
= TUI_DATA_WIN->generic.content[i]->which_element.data_window;
|
||||
= TUI_DATA_WIN->content[i]->which_element.data_window;
|
||||
tui_delete_win (data_item_win_ptr->handle);
|
||||
data_item_win_ptr->handle = NULL;
|
||||
data_item_win_ptr->is_visible = false;
|
||||
|
@ -86,23 +86,23 @@ tui_delete_data_content_windows (void)
|
|||
void
|
||||
tui_erase_data_content (const char *prompt)
|
||||
{
|
||||
werase (TUI_DATA_WIN->generic.handle);
|
||||
werase (TUI_DATA_WIN->handle);
|
||||
tui_check_and_display_highlight_if_needed (TUI_DATA_WIN);
|
||||
if (prompt != NULL)
|
||||
{
|
||||
int half_width = (TUI_DATA_WIN->generic.width - 2) / 2;
|
||||
int half_width = (TUI_DATA_WIN->width - 2) / 2;
|
||||
int x_pos;
|
||||
|
||||
if (strlen (prompt) >= half_width)
|
||||
x_pos = 1;
|
||||
else
|
||||
x_pos = half_width - strlen (prompt);
|
||||
mvwaddstr (TUI_DATA_WIN->generic.handle,
|
||||
(TUI_DATA_WIN->generic.height / 2),
|
||||
mvwaddstr (TUI_DATA_WIN->handle,
|
||||
(TUI_DATA_WIN->height / 2),
|
||||
x_pos,
|
||||
(char *) prompt);
|
||||
}
|
||||
wrefresh (TUI_DATA_WIN->generic.handle);
|
||||
wrefresh (TUI_DATA_WIN->handle);
|
||||
}
|
||||
|
||||
|
||||
|
@ -111,7 +111,7 @@ tui_erase_data_content (const char *prompt)
|
|||
void
|
||||
tui_display_all_data (void)
|
||||
{
|
||||
if (TUI_DATA_WIN->generic.content_size <= 0)
|
||||
if (TUI_DATA_WIN->content_size <= 0)
|
||||
tui_erase_data_content (NO_DATA_STRING);
|
||||
else
|
||||
{
|
||||
|
@ -196,7 +196,7 @@ void
|
|||
tui_data_window::refresh_all ()
|
||||
{
|
||||
tui_erase_data_content (NULL);
|
||||
if (generic.content_size > 0)
|
||||
if (content_size > 0)
|
||||
{
|
||||
int first_element = tui_first_data_item_displayed ();
|
||||
|
||||
|
@ -214,7 +214,7 @@ tui_check_data_values (struct frame_info *frame)
|
|||
tui_check_register_values (frame);
|
||||
|
||||
/* Now check any other data values that there are. */
|
||||
if (TUI_DATA_WIN != NULL && TUI_DATA_WIN->generic.is_visible)
|
||||
if (TUI_DATA_WIN != NULL && TUI_DATA_WIN->is_visible)
|
||||
{
|
||||
int i;
|
||||
|
||||
|
|
|
@ -110,10 +110,10 @@ void
|
|||
tui_unhighlight_win (struct tui_win_info *win_info)
|
||||
{
|
||||
if (win_info != NULL
|
||||
&& win_info->generic.handle != NULL)
|
||||
&& win_info->handle != NULL)
|
||||
{
|
||||
box_win (&win_info->generic, NO_HILITE);
|
||||
wrefresh (win_info->generic.handle);
|
||||
box_win (win_info, NO_HILITE);
|
||||
wrefresh (win_info->handle);
|
||||
win_info->set_highlight (false);
|
||||
}
|
||||
}
|
||||
|
@ -124,10 +124,10 @@ tui_highlight_win (struct tui_win_info *win_info)
|
|||
{
|
||||
if (win_info != NULL
|
||||
&& win_info->can_highlight
|
||||
&& win_info->generic.handle != NULL)
|
||||
&& win_info->handle != NULL)
|
||||
{
|
||||
box_win (&win_info->generic, HILITE);
|
||||
wrefresh (win_info->generic.handle);
|
||||
box_win (win_info, HILITE);
|
||||
wrefresh (win_info->handle);
|
||||
win_info->set_highlight (true);
|
||||
}
|
||||
}
|
||||
|
@ -135,7 +135,7 @@ tui_highlight_win (struct tui_win_info *win_info)
|
|||
void
|
||||
tui_check_and_display_highlight_if_needed (struct tui_win_info *win_info)
|
||||
{
|
||||
if (win_info != NULL && win_info->generic.type != CMD_WIN)
|
||||
if (win_info != NULL && win_info->type != CMD_WIN)
|
||||
{
|
||||
if (win_info->is_highlighted)
|
||||
tui_highlight_win (win_info);
|
||||
|
@ -214,7 +214,7 @@ tui_make_invisible (struct tui_gen_win_info *win_info)
|
|||
void
|
||||
tui_win_info::make_visible (bool visible)
|
||||
{
|
||||
::make_visible (&generic, visible);
|
||||
::make_visible (this, visible);
|
||||
}
|
||||
|
||||
/* See tui-data.h. */
|
||||
|
@ -259,8 +259,8 @@ tui_make_all_invisible (void)
|
|||
void
|
||||
tui_win_info::refresh ()
|
||||
{
|
||||
touchwin (generic.handle);
|
||||
tui_refresh_win (&generic);
|
||||
touchwin (handle);
|
||||
tui_refresh_win (this);
|
||||
}
|
||||
|
||||
/* See tui-data.h. */
|
||||
|
@ -283,7 +283,7 @@ tui_refresh_all (struct tui_win_info **list)
|
|||
|
||||
for (type = SRC_WIN; (type < MAX_MAJOR_WINDOWS); type++)
|
||||
{
|
||||
if (list[type] && list[type]->generic.is_visible)
|
||||
if (list[type] && list[type]->is_visible)
|
||||
list[type]->refresh ();
|
||||
}
|
||||
if (locator->is_visible)
|
||||
|
|
|
@ -94,7 +94,7 @@ tui_update_source_window_as_is (struct tui_win_info *win_info,
|
|||
{
|
||||
enum tui_status ret;
|
||||
|
||||
if (win_info->generic.type == SRC_WIN)
|
||||
if (win_info->type == SRC_WIN)
|
||||
ret = tui_set_source_content (s, line_or_addr.u.line_no, noerror);
|
||||
else
|
||||
ret = tui_set_disassem_content (gdbarch, line_or_addr.u.addr);
|
||||
|
@ -109,12 +109,12 @@ tui_update_source_window_as_is (struct tui_win_info *win_info,
|
|||
tui_update_breakpoint_info (win_info, 0);
|
||||
tui_show_source_content (win_info);
|
||||
tui_update_exec_info (win_info);
|
||||
if (win_info->generic.type == SRC_WIN)
|
||||
if (win_info->type == SRC_WIN)
|
||||
{
|
||||
symtab_and_line sal;
|
||||
|
||||
sal.line = line_or_addr.u.line_no +
|
||||
(win_info->generic.content_size - 2);
|
||||
(win_info->content_size - 2);
|
||||
sal.symtab = s;
|
||||
sal.pspace = SYMTAB_PSPACE (s);
|
||||
set_current_source_symtab_and_line (sal);
|
||||
|
@ -212,11 +212,11 @@ tui_clear_source_content (struct tui_win_info *win_info,
|
|||
{
|
||||
int i;
|
||||
|
||||
win_info->generic.content_in_use = FALSE;
|
||||
win_info->content_in_use = FALSE;
|
||||
tui_erase_source_content (win_info, display_prompt);
|
||||
for (i = 0; i < win_info->generic.content_size; i++)
|
||||
for (i = 0; i < win_info->content_size; i++)
|
||||
{
|
||||
struct tui_win_element *element = win_info->generic.content[i];
|
||||
struct tui_win_element *element = win_info->content[i];
|
||||
|
||||
element->which_element.source.has_break = FALSE;
|
||||
element->which_element.source.is_exec_point = FALSE;
|
||||
|
@ -230,17 +230,17 @@ tui_erase_source_content (struct tui_win_info *win_info,
|
|||
int display_prompt)
|
||||
{
|
||||
int x_pos;
|
||||
int half_width = (win_info->generic.width - 2) / 2;
|
||||
int half_width = (win_info->width - 2) / 2;
|
||||
|
||||
if (win_info->generic.handle != NULL)
|
||||
if (win_info->handle != NULL)
|
||||
{
|
||||
werase (win_info->generic.handle);
|
||||
werase (win_info->handle);
|
||||
tui_check_and_display_highlight_if_needed (win_info);
|
||||
if (display_prompt == EMPTY_SOURCE_PROMPT)
|
||||
{
|
||||
const char *no_src_str;
|
||||
|
||||
if (win_info->generic.type == SRC_WIN)
|
||||
if (win_info->type == SRC_WIN)
|
||||
no_src_str = NO_SRC_STRING;
|
||||
else
|
||||
no_src_str = NO_DISASSEM_STRING;
|
||||
|
@ -248,8 +248,8 @@ tui_erase_source_content (struct tui_win_info *win_info,
|
|||
x_pos = 1;
|
||||
else
|
||||
x_pos = half_width - strlen (no_src_str);
|
||||
mvwaddstr (win_info->generic.handle,
|
||||
(win_info->generic.height / 2),
|
||||
mvwaddstr (win_info->handle,
|
||||
(win_info->height / 2),
|
||||
x_pos,
|
||||
(char *) no_src_str);
|
||||
|
||||
|
@ -260,7 +260,7 @@ tui_erase_source_content (struct tui_win_info *win_info,
|
|||
|
||||
tui_set_source_content_nil (win_info, no_src_str);
|
||||
}
|
||||
tui_refresh_win (&win_info->generic);
|
||||
tui_refresh_win (win_info);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -272,41 +272,41 @@ tui_show_source_line (struct tui_win_info *win_info, int lineno)
|
|||
struct tui_win_element *line;
|
||||
int x;
|
||||
|
||||
line = win_info->generic.content[lineno - 1];
|
||||
line = win_info->content[lineno - 1];
|
||||
if (line->which_element.source.is_exec_point)
|
||||
tui_set_reverse_mode (win_info->generic.handle, true);
|
||||
tui_set_reverse_mode (win_info->handle, true);
|
||||
|
||||
wmove (win_info->generic.handle, lineno, 1);
|
||||
wmove (win_info->handle, lineno, 1);
|
||||
tui_puts (line->which_element.source.line,
|
||||
win_info->generic.handle);
|
||||
win_info->handle);
|
||||
if (line->which_element.source.is_exec_point)
|
||||
tui_set_reverse_mode (win_info->generic.handle, false);
|
||||
tui_set_reverse_mode (win_info->handle, false);
|
||||
|
||||
/* Clear to end of line but stop before the border. */
|
||||
x = getcurx (win_info->generic.handle);
|
||||
while (x + 1 < win_info->generic.width)
|
||||
x = getcurx (win_info->handle);
|
||||
while (x + 1 < win_info->width)
|
||||
{
|
||||
waddch (win_info->generic.handle, ' ');
|
||||
x = getcurx (win_info->generic.handle);
|
||||
waddch (win_info->handle, ' ');
|
||||
x = getcurx (win_info->handle);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
tui_show_source_content (struct tui_win_info *win_info)
|
||||
{
|
||||
if (win_info->generic.content_size > 0)
|
||||
if (win_info->content_size > 0)
|
||||
{
|
||||
int lineno;
|
||||
|
||||
for (lineno = 1; lineno <= win_info->generic.content_size; lineno++)
|
||||
for (lineno = 1; lineno <= win_info->content_size; lineno++)
|
||||
tui_show_source_line (win_info, lineno);
|
||||
}
|
||||
else
|
||||
tui_erase_source_content (win_info, TRUE);
|
||||
|
||||
tui_check_and_display_highlight_if_needed (win_info);
|
||||
tui_refresh_win (&win_info->generic);
|
||||
win_info->generic.content_in_use = TRUE;
|
||||
tui_refresh_win (win_info);
|
||||
win_info->content_in_use = TRUE;
|
||||
}
|
||||
|
||||
/* See tui-data.h. */
|
||||
|
@ -316,7 +316,7 @@ tui_source_window_base::refill ()
|
|||
{
|
||||
symtab *s = nullptr;
|
||||
|
||||
if (generic.type == SRC_WIN)
|
||||
if (type == SRC_WIN)
|
||||
{
|
||||
symtab_and_line cursal = get_current_source_symtab_and_line ();
|
||||
s = (cursal.symtab == NULL
|
||||
|
@ -325,7 +325,7 @@ tui_source_window_base::refill ()
|
|||
}
|
||||
|
||||
tui_update_source_window_as_is (this, gdbarch, s,
|
||||
generic.content[0]
|
||||
content[0]
|
||||
->which_element.source.line_or_addr,
|
||||
FALSE);
|
||||
}
|
||||
|
@ -336,7 +336,7 @@ void
|
|||
tui_source_window_base::do_scroll_horizontal
|
||||
(enum tui_scroll_direction direction, int num_to_scroll)
|
||||
{
|
||||
if (generic.content != NULL)
|
||||
if (content != NULL)
|
||||
{
|
||||
int offset;
|
||||
|
||||
|
@ -362,10 +362,9 @@ tui_source_window_base::set_is_exec_point_at (struct tui_line_or_address l)
|
|||
{
|
||||
int changed = 0;
|
||||
int i;
|
||||
tui_win_content content = generic.content;
|
||||
|
||||
i = 0;
|
||||
while (i < generic.content_size)
|
||||
while (i < content_size)
|
||||
{
|
||||
int new_state;
|
||||
struct tui_line_or_address content_loa =
|
||||
|
@ -422,14 +421,14 @@ tui_update_breakpoint_info (struct tui_win_info *win,
|
|||
int need_refresh = 0;
|
||||
tui_source_window_base *src = (tui_source_window_base *) win;
|
||||
|
||||
for (i = 0; i < win->generic.content_size; i++)
|
||||
for (i = 0; i < win->content_size; i++)
|
||||
{
|
||||
struct breakpoint *bp;
|
||||
extern struct breakpoint *breakpoint_chain;
|
||||
int mode;
|
||||
struct tui_source_element *line;
|
||||
|
||||
line = &win->generic.content[i]->which_element.source;
|
||||
line = &win->content[i]->which_element.source;
|
||||
if (current_only && !line->is_exec_point)
|
||||
continue;
|
||||
|
||||
|
@ -496,20 +495,20 @@ tui_set_exec_info_content (struct tui_win_info *win_info)
|
|||
|
||||
if (exec_info_ptr->content == NULL)
|
||||
exec_info_ptr->content =
|
||||
tui_alloc_content (win_info->generic.height, exec_info_ptr->type);
|
||||
tui_alloc_content (win_info->height, exec_info_ptr->type);
|
||||
if (exec_info_ptr->content != NULL)
|
||||
{
|
||||
int i;
|
||||
|
||||
tui_update_breakpoint_info (win_info, 1);
|
||||
for (i = 0; i < win_info->generic.content_size; i++)
|
||||
for (i = 0; i < win_info->content_size; i++)
|
||||
{
|
||||
struct tui_win_element *element;
|
||||
struct tui_win_element *src_element;
|
||||
int mode;
|
||||
|
||||
element = exec_info_ptr->content[i];
|
||||
src_element = win_info->generic.content[i];
|
||||
src_element = win_info->content[i];
|
||||
|
||||
memset(element->which_element.simple_string, ' ',
|
||||
sizeof(element->which_element.simple_string));
|
||||
|
@ -533,7 +532,7 @@ tui_set_exec_info_content (struct tui_win_info *win_info)
|
|||
if (src_element->which_element.source.is_exec_point)
|
||||
element->which_element.simple_string[TUI_EXEC_POS] = '>';
|
||||
}
|
||||
exec_info_ptr->content_size = win_info->generic.content_size;
|
||||
exec_info_ptr->content_size = win_info->content_size;
|
||||
}
|
||||
else
|
||||
ret = TUI_FAILURE;
|
||||
|
@ -598,16 +597,16 @@ tui_alloc_source_buffer (struct tui_win_info *win_info)
|
|||
|
||||
/* The window width/height includes the highlight box. Determine actual
|
||||
content dimensions, including string null-terminators. */
|
||||
max_lines = win_info->generic.height - 2;
|
||||
line_width = win_info->generic.width - 2 + 1;
|
||||
max_lines = win_info->height - 2;
|
||||
line_width = win_info->width - 2 + 1;
|
||||
|
||||
/* Allocate the buffer for the source lines. */
|
||||
if (win_info->generic.content == NULL)
|
||||
if (win_info->content == NULL)
|
||||
{
|
||||
/* Allocate the content list. */
|
||||
win_info->generic.content = tui_alloc_content (max_lines, SRC_WIN);
|
||||
win_info->content = tui_alloc_content (max_lines, SRC_WIN);
|
||||
for (i = 0; i < max_lines; i++)
|
||||
win_info->generic.content[i]->which_element.source.line
|
||||
win_info->content[i]->which_element.source.line
|
||||
= (char *) xmalloc (line_width);
|
||||
}
|
||||
|
||||
|
@ -630,13 +629,13 @@ tui_line_is_displayed (int line,
|
|||
else
|
||||
threshold = 0;
|
||||
i = 0;
|
||||
while (i < win_info->generic.content_size - threshold
|
||||
while (i < win_info->content_size - threshold
|
||||
&& !is_displayed)
|
||||
{
|
||||
is_displayed
|
||||
= win_info->generic.content[i]
|
||||
= win_info->content[i]
|
||||
->which_element.source.line_or_addr.loa == LOA_LINE
|
||||
&& win_info->generic.content[i]
|
||||
&& win_info->content[i]
|
||||
->which_element.source.line_or_addr.u.line_no == line;
|
||||
i++;
|
||||
}
|
||||
|
@ -660,13 +659,13 @@ tui_addr_is_displayed (CORE_ADDR addr,
|
|||
else
|
||||
threshold = 0;
|
||||
i = 0;
|
||||
while (i < win_info->generic.content_size - threshold
|
||||
while (i < win_info->content_size - threshold
|
||||
&& !is_displayed)
|
||||
{
|
||||
is_displayed
|
||||
= win_info->generic.content[i]
|
||||
= win_info->content[i]
|
||||
->which_element.source.line_or_addr.loa == LOA_ADDRESS
|
||||
&& win_info->generic.content[i]
|
||||
&& win_info->content[i]
|
||||
->which_element.source.line_or_addr.u.addr == addr;
|
||||
i++;
|
||||
}
|
||||
|
|
|
@ -236,9 +236,9 @@ tui_rl_other_window (int count, int key)
|
|||
if (win_info)
|
||||
{
|
||||
tui_set_win_focus_to (win_info);
|
||||
if (TUI_DATA_WIN && TUI_DATA_WIN->generic.is_visible)
|
||||
if (TUI_DATA_WIN && TUI_DATA_WIN->is_visible)
|
||||
TUI_DATA_WIN->refresh_all ();
|
||||
keypad (TUI_CMD_WIN->generic.handle, (win_info != TUI_CMD_WIN));
|
||||
keypad (TUI_CMD_WIN->handle, (win_info != TUI_CMD_WIN));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -476,8 +476,8 @@ tui_enable (void)
|
|||
tui_show_frame_info (0);
|
||||
tui_set_layout (SRC_COMMAND);
|
||||
tui_set_win_focus_to (TUI_SRC_WIN);
|
||||
keypad (TUI_CMD_WIN->generic.handle, TRUE);
|
||||
wrefresh (TUI_CMD_WIN->generic.handle);
|
||||
keypad (TUI_CMD_WIN->handle, TRUE);
|
||||
wrefresh (TUI_CMD_WIN->handle);
|
||||
tui_finish_init = 0;
|
||||
}
|
||||
else
|
||||
|
@ -664,7 +664,7 @@ tui_is_window_visible (enum tui_win_type type)
|
|||
if (tui_win_list[type] == 0)
|
||||
return false;
|
||||
|
||||
return tui_win_list[type]->generic.is_visible;
|
||||
return tui_win_list[type]->is_visible;
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -676,8 +676,8 @@ tui_get_command_dimension (unsigned int *width,
|
|||
return 0;
|
||||
}
|
||||
|
||||
*width = TUI_CMD_WIN->generic.width;
|
||||
*height = TUI_CMD_WIN->generic.height;
|
||||
*width = TUI_CMD_WIN->width;
|
||||
*height = TUI_CMD_WIN->height;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue