2502
|
1 /* display.h -- How the display in Info is done. */ |
|
2 |
|
3 /* This file is part of GNU Info, a program for reading online documentation |
|
4 stored in Info format. |
|
5 |
|
6 Copyright (C) 1993 Free Software Foundation, Inc. |
|
7 |
|
8 This program is free software; you can redistribute it and/or modify |
|
9 it under the terms of the GNU General Public License as published by |
|
10 the Free Software Foundation; either version 2, or (at your option) |
|
11 any later version. |
|
12 |
|
13 This program is distributed in the hope that it will be useful, |
|
14 but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
16 GNU General Public License for more details. |
|
17 |
|
18 You should have received a copy of the GNU General Public License |
|
19 along with this program; if not, write to the Free Software |
|
20 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
|
21 |
|
22 Written by Brian Fox (bfox@ai.mit.edu). */ |
|
23 |
|
24 #if !defined (_DISPLAY_H_) |
|
25 #define _DISPLAY_H_ |
|
26 |
|
27 #include "info-utils.h" |
|
28 #include "terminal.h" |
|
29 |
|
30 typedef struct { |
|
31 char *text; /* Text of the line as it appears. */ |
|
32 int textlen; /* Printable Length of TEXT. */ |
|
33 int inverse; /* Non-zero means this line is inverse. */ |
|
34 } DISPLAY_LINE; |
|
35 |
|
36 /* An array of display lines which tell us what is currently visible on |
|
37 the display. */ |
|
38 extern DISPLAY_LINE **the_display; |
|
39 |
|
40 /* Non-zero means do no output. */ |
|
41 extern int display_inhibited; |
|
42 |
|
43 /* Non-zero if we didn't completely redisplay a window. */ |
|
44 extern int display_was_interrupted_p; |
|
45 |
|
46 /* Initialize THE_DISPLAY to WIDTH and HEIGHT, with nothing in it. */ |
|
47 extern void display_initialize_display (); |
|
48 |
|
49 /* Clear all of the lines in DISPLAY making the screen blank. */ |
|
50 extern void display_clear_display (); |
|
51 |
|
52 /* Update the windows pointed to by WINDOWS in THE_DISPLAY. This actually |
|
53 writes the text on the screen. */ |
|
54 extern void display_update_display (); |
|
55 |
|
56 /* Display WIN on THE_DISPLAY. Unlike display_update_display (), this |
|
57 function only does one window. */ |
|
58 extern void display_update_one_window (); |
|
59 |
|
60 /* Move the screen cursor to directly over the current character in WINDOW. */ |
|
61 extern void display_cursor_at_point (); |
|
62 |
|
63 /* Scroll the region of the_display starting at START, ending at END, and |
|
64 moving the lines AMOUNT lines. If AMOUNT is less than zero, the lines |
|
65 are moved up in the screen, otherwise down. Actually, it is possible |
|
66 for no scrolling to take place in the case that the terminal doesn't |
|
67 support it. This doesn't matter to us. */ |
|
68 extern void display_scroll_display (); |
|
69 |
|
70 /* Try to scroll lines in WINDOW. OLD_PAGETOP is the pagetop of WINDOW before |
|
71 having had its line starts recalculated. OLD_STARTS is the list of line |
|
72 starts that used to appear in this window. OLD_COUNT is the number of lines |
|
73 that appear in the OLD_STARTS array. */ |
|
74 extern void display_scroll_line_starts (); |
|
75 |
|
76 #endif /* !_DISPLAY_H_ */ |