]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/tui/tui-source.h
Update copyright year range in all GDB files.
[thirdparty/binutils-gdb.git] / gdb / tui / tui-source.h
CommitLineData
f377b406 1/* TUI display source window.
a358af15 2
b811d2c2 3 Copyright (C) 1998-2020 Free Software Foundation, Inc.
a358af15 4
f377b406
SC
5 Contributed by Hewlett-Packard Company.
6
7 This file is part of GDB.
8
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
a9762ec7 11 the Free Software Foundation; either version 3 of the License, or
f377b406
SC
12 (at your option) any later version.
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18
19 You should have received a copy of the GNU General Public License
a9762ec7 20 along with this program. If not, see <http://www.gnu.org/licenses/>. */
f377b406 21
1a5c2598
TT
22#ifndef TUI_TUI_SOURCE_H
23#define TUI_TUI_SOURCE_H
a358af15
AC
24
25#include "tui/tui-data.h"
5104fe36 26#include "tui-winsource.h"
c906108c 27
a358af15 28struct symtab;
bfad4537
TT
29
30/* A TUI source window. */
31
32struct tui_source_window : public tui_source_window_base
33{
1df2f9ef
TT
34 tui_source_window ()
35 : tui_source_window_base (SRC_WIN)
36 {
37 }
bfad4537
TT
38
39 DISABLE_COPY_AND_ASSIGN (tui_source_window);
40
41 const char *name () const override
42 {
43 return SRC_NAME;
44 }
45
5104fe36
TT
46 /* Return true if the location LOC corresponds to the line number
47 LINE_NO in this source window; false otherwise. */
bfad4537
TT
48 bool location_matches_p (struct bp_location *loc, int line_no) override;
49
50 bool showing_source_p (const char *filename) const;
51
1ae58f0c 52 void maybe_update (struct frame_info *fi, symtab_and_line sal) override;
a54700c6 53
e25d2004
TT
54 void erase_source_content () override
55 {
605dc2c2 56 do_erase_source_content (_("[ No Source Available ]"));
e25d2004
TT
57 }
58
bfad4537
TT
59protected:
60
61 void do_scroll_vertical (int num_to_scroll) override;
62
61c33f10 63 bool set_contents (struct gdbarch *gdbarch,
9f7540a5 64 const struct symtab_and_line &sal) override;
81c82c4b 65
bfad4537
TT
66private:
67
c9033fe8
TT
68 /* Answer whether a particular line number or address is displayed
69 in the current source window. */
70 bool line_is_displayed (int line) const;
71
2d81b349 72 /* It is the resolved form as returned by symtab_to_fullname. */
7226433c 73 gdb::unique_xmalloc_ptr<char> m_fullname;
bfad4537 74};
f80bda8e 75
1a5c2598 76#endif /* TUI_TUI_SOURCE_H */