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