display.h revision 21495
121495Sjmacd/* display.h -- How the display in Info is done. */
221495Sjmacd
321495Sjmacd/* This file is part of GNU Info, a program for reading online documentation
421495Sjmacd   stored in Info format.
521495Sjmacd
621495Sjmacd   Copyright (C) 1993 Free Software Foundation, Inc.
721495Sjmacd
821495Sjmacd   This program is free software; you can redistribute it and/or modify
921495Sjmacd   it under the terms of the GNU General Public License as published by
1021495Sjmacd   the Free Software Foundation; either version 2, or (at your option)
1121495Sjmacd   any later version.
1221495Sjmacd
1321495Sjmacd   This program is distributed in the hope that it will be useful,
1421495Sjmacd   but WITHOUT ANY WARRANTY; without even the implied warranty of
1521495Sjmacd   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1621495Sjmacd   GNU General Public License for more details.
1721495Sjmacd
1821495Sjmacd   You should have received a copy of the GNU General Public License
1921495Sjmacd   along with this program; if not, write to the Free Software
2021495Sjmacd   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
2121495Sjmacd
2221495Sjmacd   Written by Brian Fox (bfox@ai.mit.edu). */
2321495Sjmacd
2421495Sjmacd#if !defined (_DISPLAY_H_)
2521495Sjmacd#define _DISPLAY_H_
2621495Sjmacd
2721495Sjmacd#include "info-utils.h"
2821495Sjmacd#include "terminal.h"
2921495Sjmacd
3021495Sjmacdtypedef struct {
3121495Sjmacd  char *text;			/* Text of the line as it appears. */
3221495Sjmacd  int textlen;			/* Printable Length of TEXT. */
3321495Sjmacd  int inverse;			/* Non-zero means this line is inverse. */
3421495Sjmacd} DISPLAY_LINE;
3521495Sjmacd
3621495Sjmacd/* An array of display lines which tell us what is currently visible on
3721495Sjmacd   the display.  */
3821495Sjmacdextern DISPLAY_LINE **the_display;
3921495Sjmacd
4021495Sjmacd/* Non-zero means do no output. */
4121495Sjmacdextern int display_inhibited;
4221495Sjmacd
4321495Sjmacd/* Non-zero if we didn't completely redisplay a window. */
4421495Sjmacdextern int display_was_interrupted_p;
4521495Sjmacd
4621495Sjmacd/* Initialize THE_DISPLAY to WIDTH and HEIGHT, with nothing in it. */
4721495Sjmacdextern void display_initialize_display ();
4821495Sjmacd
4921495Sjmacd/* Clear all of the lines in DISPLAY making the screen blank. */
5021495Sjmacdextern void display_clear_display ();
5121495Sjmacd
5221495Sjmacd/* Update the windows pointed to by WINDOWS in THE_DISPLAY.  This actually
5321495Sjmacd   writes the text on the screen. */
5421495Sjmacdextern void display_update_display ();
5521495Sjmacd
5621495Sjmacd/* Display WIN on THE_DISPLAY.  Unlike display_update_display (), this
5721495Sjmacd   function only does one window. */
5821495Sjmacdextern void display_update_one_window ();
5921495Sjmacd
6021495Sjmacd/* Move the screen cursor to directly over the current character in WINDOW. */
6121495Sjmacdextern void display_cursor_at_point ();
6221495Sjmacd
6321495Sjmacd/* Scroll the region of the_display starting at START, ending at END, and
6421495Sjmacd   moving the lines AMOUNT lines.  If AMOUNT is less than zero, the lines
6521495Sjmacd   are moved up in the screen, otherwise down.  Actually, it is possible
6621495Sjmacd   for no scrolling to take place in the case that the terminal doesn't
6721495Sjmacd   support it.  This doesn't matter to us. */
6821495Sjmacdextern void display_scroll_display ();
6921495Sjmacd
7021495Sjmacd/* Try to scroll lines in WINDOW.  OLD_PAGETOP is the pagetop of WINDOW before
7121495Sjmacd   having had its line starts recalculated.  OLD_STARTS is the list of line
7221495Sjmacd   starts that used to appear in this window.  OLD_COUNT is the number of lines
7321495Sjmacd   that appear in the OLD_STARTS array. */
7421495Sjmacdextern void display_scroll_line_starts ();
7521495Sjmacd
7621495Sjmacd#endif /* !_DISPLAY_H_ */
77