1/* TUI display source/assembly window.
2
3   Copyright 1998, 1999, 2000, 2001, 2002, 2004 Free Software
4   Foundation, Inc.
5
6   Contributed by Hewlett-Packard Company.
7
8   This file is part of GDB.
9
10   This program is free software; you can redistribute it and/or modify
11   it under the terms of the GNU General Public License as published by
12   the Free Software Foundation; either version 2 of the License, or
13   (at your option) any later version.
14
15   This program is distributed in the hope that it will be useful,
16   but WITHOUT ANY WARRANTY; without even the implied warranty of
17   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18   GNU General Public License for more details.
19
20   You should have received a copy of the GNU General Public License
21   along with this program; if not, write to the Free Software
22   Foundation, Inc., 59 Temple Place - Suite 330,
23   Boston, MA 02111-1307, USA.  */
24
25#ifndef TUI_SOURCEWIN_H
26#define TUI_SOURCEWIN_H
27
28#include "tui/tui-data.h"
29
30struct tui_win_info;
31
32/* Update the execution windows to show the active breakpoints.  This
33   is called whenever a breakpoint is inserted, removed or has its
34   state changed.  */
35extern void tui_update_all_breakpoint_info (void);
36
37/* Scan the source window and the breakpoints to update the hasBreak
38   information for each line.  Returns 1 if something changed and the
39   execution window must be refreshed.  */
40extern int tui_update_breakpoint_info (struct tui_win_info * win,
41				       int current_only);
42
43/* Function to display the "main" routine.  */
44extern void tui_display_main (void);
45extern void tui_update_source_window (struct tui_win_info *, struct symtab *,
46				      union tui_line_or_address, int);
47extern void tui_update_source_window_as_is (struct tui_win_info *,
48					    struct symtab *,
49					    union tui_line_or_address, int);
50extern void tui_update_source_windows_with_addr (CORE_ADDR);
51extern void tui_update_source_windows_with_line (struct symtab *, int);
52extern void tui_clear_source_content (struct tui_win_info *, int);
53extern void tui_erase_source_content (struct tui_win_info *, int);
54extern void tui_show_source_content (struct tui_win_info *);
55extern void tui_horizontal_source_scroll (struct tui_win_info *,
56					  enum tui_scroll_direction, int);
57extern enum tui_status tui_set_exec_info_content (struct tui_win_info *);
58extern void tui_show_exec_info_content (struct tui_win_info *);
59extern void tui_erase_exec_info_content (struct tui_win_info *);
60extern void tui_clear_exec_info_content (struct tui_win_info *);
61extern void tui_update_exec_info (struct tui_win_info *);
62
63extern void tui_set_is_exec_point_at (union tui_line_or_address,
64				      struct tui_win_info *);
65extern enum tui_status tui_alloc_source_buffer (struct tui_win_info *);
66extern int tui_line_is_displayed (int, struct tui_win_info *, int);
67extern int tui_addr_is_displayed (CORE_ADDR, struct tui_win_info *, int);
68
69
70/* Constant definitions. */
71#define        SCROLL_THRESHOLD            2	/* threshold for lazy scroll */
72
73#endif
74