- case SRC_WIN:
- case DISASSEM_WIN:
- element->which_element.source.line = NULL;
- element->which_element.source.line_or_addr.loa = LOA_LINE;
- element->which_element.source.line_or_addr.u.line_no = 0;
- element->which_element.source.is_exec_point = FALSE;
- element->which_element.source.has_break = FALSE;
- break;
- case DATA_WIN:
- tui_init_generic_part (&element->which_element.data_window);
- element->which_element.data_window.type = DATA_ITEM_WIN;
- element->which_element.data_window.content =
- tui_alloc_content (1, DATA_ITEM_WIN);
- element->which_element.data_window.content_size = 1;
- break;
- case CMD_WIN:
- element->which_element.command.line = NULL;
- break;
- case DATA_ITEM_WIN:
- element->which_element.data.name = NULL;
- element->which_element.data.type = TUI_REGISTER;
- element->which_element.data.item_no = UNDEFINED_ITEM;
- element->which_element.data.value = NULL;
- element->which_element.data.highlight = FALSE;
- element->which_element.data.content = NULL;
- break;
- case LOCATOR_WIN:
- element->which_element.locator.full_name[0] =
- element->which_element.locator.proc_name[0] = (char) 0;
- element->which_element.locator.line_no = 0;
- element->which_element.locator.addr = 0;
- break;
- case EXEC_INFO_WIN:
- memset(element->which_element.simple_string, ' ',
- sizeof(element->which_element.simple_string));
- break;
- default:
- break;
- }
-}
-
-tui_win_info::tui_win_info (enum tui_win_type type)
-{
- generic.type = type;
- tui_init_generic_part (&generic);
-}
-
-tui_source_window_base::tui_source_window_base (enum tui_win_type type)
- : tui_win_info (type)
-{
- gdb_assert (type == SRC_WIN || type == DISASSEM_WIN);
- start_line_or_addr.loa = LOA_ADDRESS;
- start_line_or_addr.u.addr = 0;
-}
-
-tui_data_window::tui_data_window ()
- : tui_win_info (DATA_WIN)
-{
- data_content = NULL;
- data_content_count = 0;
- regs_content = NULL;
- regs_content_count = 0;
- regs_column_count = 1;
- display_regs = FALSE;
- current_group = 0;
-}
-
-tui_cmd_window::tui_cmd_window ()
- : tui_win_info (CMD_WIN)
-{
-}
-
-struct tui_win_info *
-tui_alloc_win_info (enum tui_win_type type)
-{
- switch (type)
- {
- case SRC_WIN:
- return new tui_source_window ();
-
- case DISASSEM_WIN:
- return new tui_disasm_window ();
-
- case DATA_WIN:
- return new tui_data_window ();
-
- case CMD_WIN:
- return new tui_cmd_window ();
- }
-
- gdb_assert_not_reached (_("Unhandled window type"));
-}
-
-
-/* Allocates the content and elements in a block. */
-tui_win_content
-tui_alloc_content (int num_elements, enum tui_win_type type)
-{
- tui_win_content content;
- struct tui_win_element *element_block_ptr;
- int i;
-
- content = XNEWVEC (struct tui_win_element *, num_elements);
-
- /*
- * All windows, except the data window, can allocate the
- * elements in a chunk. The data window cannot because items
- * can be added/removed from the data display by the user at any
- * time.
- */
- if (type != DATA_WIN)
- {
- element_block_ptr = XNEWVEC (struct tui_win_element, num_elements);
- for (i = 0; i < num_elements; i++)