union tui_which_element which_element;
};
-/* This struct defines the specific information about a data display
- window. */
-struct tui_data_info
-{
- tui_win_content data_content; /* Start of data display content. */
- int data_content_count;
- tui_win_content regs_content; /* Start of regs display content. */
- int regs_content_count;
- int regs_column_count;
- int display_regs; /* Should regs be displayed at all? */
- struct reggroup *current_group;
-};
-
-
-struct tui_command_info
-{
- int start_line;
-};
-
-
/* This defines information about each logical window. */
struct tui_win_info
{
return false;
}
+ /* Make this window visible or invisible. */
+ virtual void make_visible (int visible);
+
/* Methods to scroll the contents of this window. Note that they
are named with "_scroll" coming at the end because the more
obvious "scroll_forward" is defined as a macro in term.h. */
void right_scroll (int num_to_scroll);
struct tui_gen_win_info generic; /* General window information. */
- union
- {
- struct tui_data_info data_display_info;
- struct tui_command_info command_info;
- }
- detail;
/* Can this window ever be highlighted? */
int can_highlight = 0;
return m_has_locator;
}
+ void make_visible (int visible) override;
+
/* Does the locator belong to this window? */
bool m_has_locator = false;
/* Execution information window. */
struct tui_data_window : public tui_win_info
{
- tui_data_window ();
+ tui_data_window ()
+ : tui_win_info (DATA_WIN)
+ {
+ }
+
~tui_data_window () override;
DISABLE_COPY_AND_ASSIGN (tui_data_window);
void clear_detail () override;
+ /* Start of data display content. */
+ tui_win_content data_content = NULL;
+ int data_content_count = 0;
+ /* Start of regs display content. */
+ tui_win_content regs_content = NULL;
+ int regs_content_count = 0;
+ int regs_column_count = 0;
+ /* Should regs be displayed at all? */
+ bool display_regs = false;
+ struct reggroup *current_group = nullptr;
+
protected:
void do_scroll_vertical (enum tui_scroll_direction,
struct tui_cmd_window : public tui_win_info
{
- tui_cmd_window ();
+ tui_cmd_window ()
+ : tui_win_info (CMD_WIN)
+ {
+ }
+
DISABLE_COPY_AND_ASSIGN (tui_cmd_window);
void clear_detail () override;
+ void make_visible (int visible) override
+ {
+ }
+
+ int start_line = 0;
+
protected:
void do_scroll_vertical (enum tui_scroll_direction,
}
};
-extern int tui_win_is_source_type (enum tui_win_type win_type);
extern int tui_win_is_auxillary (enum tui_win_type win_type);
extern void tui_set_win_highlight (struct tui_win_info *win_info,
int highlight);
#define TUI_SRC_WIN ((tui_source_window_base *) tui_win_list[SRC_WIN])
#define TUI_DISASM_WIN ((tui_source_window_base *) tui_win_list[DISASSEM_WIN])
-#define TUI_DATA_WIN tui_win_list[DATA_WIN]
-#define TUI_CMD_WIN tui_win_list[CMD_WIN]
+#define TUI_DATA_WIN ((tui_data_window *) tui_win_list[DATA_WIN])
+#define TUI_CMD_WIN ((tui_cmd_window *) tui_win_list[CMD_WIN])
/* Data Manipulation Functions. */
extern void tui_initialize_static_data (void);