Introduce tui_source_window_base::set_contents method
[deliverable/binutils-gdb.git] / gdb / tui / tui-source.h
index 96cf8652aca991a9142d590a323db7deedf560c2..c623f5e2941d49a874f74d4d40a3fde022d00841 100644 (file)
@@ -1,12 +1,14 @@
 /* TUI display source window.
-   Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+
+   Copyright (C) 1998-2019 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_SOURCE_H
+#define TUI_TUI_SOURCE_H
+
+#include "tui/tui-data.h"
+#include "tui-winsource.h"
+
+struct symtab;
+
+/* A TUI source window.  */
+
+struct tui_source_window : public tui_source_window_base
+{
+  tui_source_window ();
+  ~tui_source_window ();
+
+  DISABLE_COPY_AND_ASSIGN (tui_source_window);
+
+  const char *name () const override
+  {
+    return SRC_NAME;
+  }
+
+  /* Return true if the location LOC corresponds to the line number
+     LINE_NO in this source window; false otherwise.  */
+  bool location_matches_p (struct bp_location *loc, int line_no) override;
+
+  bool showing_source_p (const char *filename) const;
+
+  void maybe_update (struct frame_info *fi, symtab_and_line sal,
+                    int line_no, CORE_ADDR addr)
+    override;
+
+  void erase_source_content () override
+  {
+    do_erase_source_content (NO_SRC_STRING);
+  }
+
+protected:
+
+  void do_scroll_vertical (int num_to_scroll) override;
+
+  enum tui_status set_contents
+    (struct gdbarch *gdbarch,
+     struct symtab *s,
+     struct tui_line_or_address line_or_addr) override;
+
+private:
+
+  void style_changed ();
 
-#ifndef _TUI_SOURCE_H
-#define _TUI_SOURCE_H
+  /* Answer whether a particular line number or address is displayed
+     in the current source window.  */
+  bool line_is_displayed (int line) const;
 
-#include "defs.h"
+  /* A token used to register and unregister an observer.  */
+  gdb::observers::token m_observable;
+};
 
-extern TuiStatus tuiSetSourceContent (struct symtab *, int, int);
-extern void tuiShowSource (struct symtab *, TuiLineOrAddress, int);
-extern int tuiSourceIsDisplayed (char *);
-extern void tuiVerticalSourceScroll (TuiScrollDirection, int);
+extern void tui_show_symtab_source (tui_source_window_base *,
+                                   struct gdbarch *, struct symtab *,
+                                   struct tui_line_or_address);
 
-#endif
-/*_TUI_SOURCE_H*/
+#endif /* TUI_TUI_SOURCE_H */
This page took 0.02527 seconds and 4 git commands to generate.