/* General window behavior.
- Copyright (C) 1998-2013 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
{
struct tui_gen_win_info *data_item_win_ptr;
- data_item_win_ptr = &((tui_win_content)
- win_info->content)[i]->which_element.data_window;
+ data_item_win_ptr = &win_info->content[i]->which_element.data_window;
if (data_item_win_ptr != NULL
- && data_item_win_ptr->handle != (WINDOW *) NULL)
+ && data_item_win_ptr->handle != NULL)
wrefresh (data_item_win_ptr->handle);
}
}
}
else
{
- if (win_info->handle != (WINDOW *) NULL)
+ if (win_info->handle != NULL)
wrefresh (win_info->handle);
}
void
tui_delete_win (WINDOW *window)
{
- if (window != (WINDOW *) NULL)
+ if (window != NULL)
delwin (window);
return;
tui_unhighlight_win (struct tui_win_info *win_info)
{
if (win_info != NULL
- && win_info->generic.handle != (WINDOW *) NULL)
+ && win_info->generic.handle != NULL)
{
- box_win ((struct tui_gen_win_info *) win_info, NO_HILITE);
+ box_win (&win_info->generic, NO_HILITE);
wrefresh (win_info->generic.handle);
tui_set_win_highlight (win_info, 0);
}
{
if (win_info != NULL
&& win_info->can_highlight
- && win_info->generic.handle != (WINDOW *) NULL)
+ && win_info->generic.handle != NULL)
{
- box_win ((struct tui_gen_win_info *) win_info, HILITE);
+ box_win (&win_info->generic, HILITE);
wrefresh (win_info->generic.handle);
tui_set_win_highlight (win_info, 1);
}
win_info->origin.y,
win_info->origin.x);
win_info->handle = handle;
- if (handle != (WINDOW *) NULL)
+ if (handle != NULL)
{
if (box_it == BOX_WINDOW)
box_win (win_info, NO_HILITE);
- win_info->is_visible = TRUE;
+ win_info->is_visible = true;
scrollok (handle, TRUE);
}
}
delete the entire window when making it visible, and create it
again when making it visible. */
static void
-make_visible (struct tui_gen_win_info *win_info, int visible)
+make_visible (struct tui_gen_win_info *win_info, bool visible)
{
/* Don't tear down/recreate command window. */
if (win_info->type == CMD_WIN)
tui_make_window (win_info,
(win_info->type != CMD_WIN
&& !tui_win_is_auxillary (win_info->type)));
- win_info->is_visible = TRUE;
+ win_info->is_visible = true;
}
}
else if (!visible
&& win_info->is_visible
- && win_info->handle != (WINDOW *) NULL)
+ && win_info->handle != NULL)
{
- win_info->is_visible = FALSE;
+ win_info->is_visible = false;
tui_delete_win (win_info->handle);
- win_info->handle = (WINDOW *) NULL;
+ win_info->handle = NULL;
}
return;
void
tui_make_visible (struct tui_gen_win_info *win_info)
{
- make_visible (win_info, 1);
+ make_visible (win_info, true);
}
void
tui_make_invisible (struct tui_gen_win_info *win_info)
{
- make_visible (win_info, 0);
+ make_visible (win_info, false);
}
+/* See tui-data.h. */
+
+void
+tui_win_info::make_visible (bool visible)
+{
+ ::make_visible (&generic, visible);
+}
+
+/* See tui-data.h. */
+
+void
+tui_source_window_base::make_visible (bool visible)
+{
+ ::make_visible (execution_info, visible);
+ tui_win_info::make_visible (visible);
+}
/* Makes all windows invisible (except the command and locator
windows). */
static void
-make_all_visible (int visible)
+make_all_visible (bool visible)
{
int i;
for (i = 0; i < MAX_MAJOR_WINDOWS; i++)
{
- if (tui_win_list[i] != NULL
- && ((tui_win_list[i])->generic.type) != CMD_WIN)
- {
- if (tui_win_is_source_type ((tui_win_list[i])->generic.type))
- make_visible ((tui_win_list[i])->detail.source_info.execution_info,
- visible);
- make_visible ((struct tui_gen_win_info *) tui_win_list[i], visible);
- }
+ if (tui_win_list[i] != NULL)
+ tui_win_list[i]->make_visible (visible);
}
return;
void
tui_make_all_visible (void)
{
- make_all_visible (1);
+ make_all_visible (true);
}
void
tui_make_all_invisible (void)
{
- make_all_visible (0);
+ make_all_visible (false);
+}
+
+/* See tui-data.h. */
+
+void
+tui_win_info::refresh ()
+{
+ touchwin (generic.handle);
+ tui_refresh_win (&generic);
+}
+
+/* See tui-data.h. */
+
+void
+tui_source_window_base::refresh ()
+{
+ touchwin (execution_info->handle);
+ tui_refresh_win (execution_info);
+ tui_win_info::refresh ();
}
/* Function to refresh all the windows currently displayed. */
void
tui_refresh_all (struct tui_win_info **list)
{
- enum tui_win_type type;
+ int type;
struct tui_gen_win_info *locator = tui_locator_win_info_ptr ();
for (type = SRC_WIN; (type < MAX_MAJOR_WINDOWS); type++)
{
if (list[type] && list[type]->generic.is_visible)
- {
- if (type == SRC_WIN || type == DISASSEM_WIN)
- {
- touchwin (list[type]->detail.source_info.execution_info->handle);
- tui_refresh_win (list[type]->detail.source_info.execution_info);
- }
- touchwin (list[type]->generic.handle);
- tui_refresh_win (&list[type]->generic);
- }
+ list[type]->refresh ();
}
if (locator->is_visible)
{