Reimplement tui_next_win and tui_prev_win
[binutils-gdb.git] / gdb / tui / tui-disasm.h
index 67284259bf05644ea7246b89e523c66536d5bcc2..416be95fd8bb8de33bcbe38c8ef338aac36ae102 100644 (file)
@@ -1,12 +1,14 @@
 /* Disassembly display.
-   Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+
+   Copyright (C) 1998-2020 Free Software Foundation, Inc.
+   
    Contributed by Hewlett-Packard Company.
 
    This file is part of GDB.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef TUI_TUI_DISASM_H
+#define TUI_TUI_DISASM_H
+
+#include "tui/tui.h"
+#include "tui/tui-data.h"
+#include "tui-winsource.h"
+
+/* A TUI disassembly window.  */
+
+struct tui_disasm_window : public tui_source_window_base
+{
+  tui_disasm_window ()
+    : tui_source_window_base (DISASSEM_WIN)
+  {
+  }
+
+  DISABLE_COPY_AND_ASSIGN (tui_disasm_window);
+
+  const char *name () const override
+  {
+    return DISASSEM_NAME;
+  }
+
+  bool location_matches_p (struct bp_location *loc, int line_no) override;
+
+  void maybe_update (struct frame_info *fi, symtab_and_line sal) override;
+
+  void erase_source_content () override
+  {
+    do_erase_source_content (_("[ No Assembly Available ]"));
+  }
 
-#ifndef _TUI_DISASSEM_H
-#define _TUI_DISASSEM_H
+protected:
 
-/*****************************************
-** TYPE DEFINITIONS                        **
-******************************************/
+  void do_scroll_vertical (int num_to_scroll) override;
 
+  bool set_contents (struct gdbarch *gdbarch,
+                    const struct symtab_and_line &sal) override;
 
+private:
+  /* Answer whether a particular line number or address is displayed
+     in the current source window.  */
+  bool addr_is_displayed (CORE_ADDR addr) const;
+};
 
-/*****************************************
-** PUBLIC FUNCTION EXTERNAL DECLS        **
-******************************************/
-extern TuiStatus tuiSetDisassemContent (CORE_ADDR);
-extern void tuiShowDisassem (CORE_ADDR);
-extern void tuiShowDisassemAndUpdateSource (CORE_ADDR);
-extern void tuiVerticalDisassemScroll (TuiScrollDirection, int);
-extern CORE_ADDR tuiGetBeginAsmAddress (void);
+extern void tui_get_begin_asm_address (struct gdbarch **, CORE_ADDR *);
 
-#endif
-/*_TUI_DISASSEM_H*/
+#endif /* TUI_TUI_DISASM_H */