+ first_element_no = first_data_item_displayed ();
+ if (first_element_no < regs_content.size ())
+ first_line = line_from_reg_element_no (first_element_no);
+ else
+ { /* Calculate the first line from the element number which is in
+ the general data content. */
+ }
+
+ if (first_line >= 0)
+ {
+ first_line += num_to_scroll;
+ erase_data_content (NULL);
+ delete_data_content_windows ();
+ display_registers_from_line (first_line);
+ }
+}
+
+/* See tui-regs.h. */
+
+void
+tui_data_window::rerender ()
+{
+ /* Delete all data item windows. */
+ for (auto &&win : regs_content)
+ {
+ tui_delete_win (win.handle);
+ win.handle = NULL;
+ }
+ display_all_data ();
+}
+
+/* See tui-regs.h. */
+
+void
+tui_data_window::refresh_window ()
+{
+ tui_gen_win_info::refresh_window ();
+ for (auto &&win : regs_content)
+ win.refresh_window ();
+}
+
+/* This function check all displayed registers for changes in values,
+ given a particular frame. If the values have changed, they are
+ updated with the new value and highlighted. */
+void
+tui_data_window::check_register_values (struct frame_info *frame)
+{
+ if (regs_content.empty ())
+ show_registers (current_group);
+ else
+ {
+ for (auto &&data_item_win : regs_content)
+ {
+ int was_hilighted;
+
+ was_hilighted = data_item_win.highlight;
+
+ tui_get_register (frame, &data_item_win,
+ data_item_win.item_no,
+ &data_item_win.highlight);
+
+ if (data_item_win.highlight || was_hilighted)
+ tui_display_register (&data_item_win);