mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-23 19:50:13 +08:00
Simplify TUI boxing
In the TUI, whether or not a window can be boxed is a property of the window's type. This adds a can_box method to the window classes, and changes tui_make_window to defer to this, removing the "box_it" paramter. This also lets us remove "enum tui_box", as it is no longer used. gdb/ChangeLog 2019-08-15 Tom Tromey <tom@tromey.com> * tui/tui-wingeneral.h (tui_make_window): Update. * tui/tui-wingeneral.c (tui_make_window): Remove "box_it" parameter. (tui_gen_win_info::make_visible): Update. * tui/tui-regs.c (tui_data_window::display_registers_from): Update. * tui/tui-layout.c (show_source_disasm_command) (show_source_or_disasm_and_command): Update. * tui/tui-data.h (struct tui_gen_win_info) <can_box>: New method. (enum tui_box): Remove. (struct tui_win_info) <can_box>: New method. * tui/tui-command.h (struct tui_cmd_window) <can_box>: New method.
This commit is contained in:
@ -1,3 +1,19 @@
|
||||
2019-08-15 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* tui/tui-wingeneral.h (tui_make_window): Update.
|
||||
* tui/tui-wingeneral.c (tui_make_window): Remove "box_it"
|
||||
parameter.
|
||||
(tui_gen_win_info::make_visible): Update.
|
||||
* tui/tui-regs.c (tui_data_window::display_registers_from):
|
||||
Update.
|
||||
* tui/tui-layout.c (show_source_disasm_command)
|
||||
(show_source_or_disasm_and_command): Update.
|
||||
* tui/tui-data.h (struct tui_gen_win_info) <can_box>: New method.
|
||||
(enum tui_box): Remove.
|
||||
(struct tui_win_info) <can_box>: New method.
|
||||
* tui/tui-command.h (struct tui_cmd_window) <can_box>: New
|
||||
method.
|
||||
|
||||
2019-08-15 Tom de Vries <tdevries@suse.de>
|
||||
|
||||
* linux-nat-trad.c: Include gdbarch.h.
|
||||
|
@ -55,6 +55,11 @@ struct tui_cmd_window : public tui_win_info
|
||||
return false;
|
||||
}
|
||||
|
||||
bool can_box () const override
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
int start_line = 0;
|
||||
|
||||
protected:
|
||||
|
@ -67,6 +67,12 @@ public:
|
||||
virtual void reset (int height, int width,
|
||||
int origin_x, int origin_y);
|
||||
|
||||
/* Return true if this can be boxed. */
|
||||
virtual bool can_box () const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Window handle. */
|
||||
WINDOW *handle = nullptr;
|
||||
/* Type of window. */
|
||||
@ -85,13 +91,6 @@ public:
|
||||
char *title = nullptr;
|
||||
};
|
||||
|
||||
/* Whether or not a window should be drawn with a box. */
|
||||
enum tui_box
|
||||
{
|
||||
DONT_BOX_WINDOW = 0,
|
||||
BOX_WINDOW
|
||||
};
|
||||
|
||||
/* Constant definitions. */
|
||||
#define DEFAULT_TAB_LEN 8
|
||||
#define NO_SRC_STRING "[ No Source Available ]"
|
||||
@ -248,6 +247,11 @@ public:
|
||||
return true;
|
||||
}
|
||||
|
||||
bool can_box () const override
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
void check_and_display_highlight_if_needed ();
|
||||
|
||||
/* Can this window ever be highlighted? */
|
||||
|
@ -546,7 +546,7 @@ show_source_disasm_command (void)
|
||||
tui_term_height () - cmd_height);
|
||||
/* FIXME tui_cmd_window won't recreate the handle on
|
||||
make_visible, so we need this instead. */
|
||||
tui_make_window (TUI_CMD_WIN, DONT_BOX_WINDOW);
|
||||
tui_make_window (TUI_CMD_WIN);
|
||||
current_layout = SRC_DISASSEM_COMMAND;
|
||||
}
|
||||
|
||||
@ -674,6 +674,6 @@ show_source_or_disasm_and_command (enum tui_layout_type layout_type)
|
||||
src_height);
|
||||
/* FIXME tui_cmd_window won't recreate the handle on
|
||||
make_visible, so we need this instead. */
|
||||
tui_make_window (TUI_CMD_WIN, DONT_BOX_WINDOW);
|
||||
tui_make_window (TUI_CMD_WIN);
|
||||
current_layout = layout_type;
|
||||
}
|
||||
|
@ -320,7 +320,7 @@ tui_data_window::display_registers_from (int start_element_no)
|
||||
data_item_win->width = item_win_width;
|
||||
data_item_win->origin.x = (item_win_width * j) + 1;
|
||||
data_item_win->origin.y = cur_y;
|
||||
tui_make_window (data_item_win, DONT_BOX_WINDOW);
|
||||
tui_make_window (data_item_win);
|
||||
scrollok (data_item_win->handle, FALSE);
|
||||
}
|
||||
touchwin (data_item_win->handle);
|
||||
|
@ -125,7 +125,7 @@ tui_win_info::check_and_display_highlight_if_needed ()
|
||||
|
||||
|
||||
void
|
||||
tui_make_window (struct tui_gen_win_info *win_info, enum tui_box box_it)
|
||||
tui_make_window (struct tui_gen_win_info *win_info)
|
||||
{
|
||||
WINDOW *handle;
|
||||
|
||||
@ -136,7 +136,7 @@ tui_make_window (struct tui_gen_win_info *win_info, enum tui_box box_it)
|
||||
win_info->handle = handle;
|
||||
if (handle != NULL)
|
||||
{
|
||||
if (box_it == BOX_WINDOW)
|
||||
if (win_info->can_box ())
|
||||
box_win (win_info, NO_HILITE);
|
||||
win_info->is_visible = true;
|
||||
scrollok (handle, TRUE);
|
||||
@ -155,8 +155,7 @@ tui_gen_win_info::make_visible (bool visible)
|
||||
is_visible = visible;
|
||||
|
||||
if (visible)
|
||||
tui_make_window (this, (tui_win_is_auxiliary (type)
|
||||
? DONT_BOX_WINDOW : BOX_WINDOW));
|
||||
tui_make_window (this);
|
||||
else
|
||||
{
|
||||
tui_delete_win (handle);
|
||||
|
@ -31,7 +31,7 @@ struct tui_gen_win_info;
|
||||
extern void tui_make_all_invisible (void);
|
||||
|
||||
extern void tui_unhighlight_win (struct tui_win_info *);
|
||||
extern void tui_make_window (struct tui_gen_win_info *, enum tui_box);
|
||||
extern void tui_make_window (struct tui_gen_win_info *);
|
||||
extern void tui_highlight_win (struct tui_win_info *);
|
||||
extern void tui_refresh_all ();
|
||||
extern void tui_delete_win (WINDOW *window);
|
||||
|
Reference in New Issue
Block a user