This is screen.h in view mode; [Download] [Up]
#ifndef _JED_SCREEN_H_
#define _JED_SCREEN_H_
/*
* Copyright (c) 1992, 1995 John E. Davis (davis@space.mit.edu)
* All Rights Reserved.
*/
#include "window.h"
/* JED screen management routines */
/* Description: JED maintains a list of Lines which contain a pointer
* to the line in the buffer as well as a flag which describes the line
* as being changed, etc.. since the last update.
*
* The buffer is changed only through the insertion or deletion of a
* character. This can have two effects: 1) It changes a single line leaving
* other lines on the display untouched, or 2) It deletes/adds a newline
* character which changes the current line and acuses the other lines to
* scroll. Hence, the insert/delete routines will have to inform the display
* code of these changes.
*
* Finally there are situations when the buffer has not changed but the screen
* has. This occurs when the cursor is in motion such as page up and down. For
* this situation, the screen routines will check to see if it can scroll one
* or two lines to bring the line back into view and if not it will scroll
* enough to recenter.
*
* Once the display code takes over it does the following:
*
* 1) Scrolls to try to bring the point into view.
* 2) Then it does a final touch up of the screen.
*
* Note that if one fails, we just simply redraw the window. This is more
* efficient then looking at the lines and doing a true screen update like
* emacs does. Hopefully this will not be a complete loss. I suspect it
* will win most of the time.
*
*/
typedef struct Screen_Type
{
Line *line; /* buffer line structure */
int n; /* number of chars written last time */
int flags; /* line untouched, etc... */
unsigned short *old, *neew;
unsigned char *hi0, *hi1; /* beg end of hilights */
}
Screen_Type;
#define JNORMAL_COLOR 0
#define JCURSOR_COLOR 1
#define JSTATUS_COLOR 2
#define JREGION_COLOR 3
#define JMENU_COLOR 4
#define JOP_COLOR 5
#define JNUM_COLOR 6
#define JSTR_COLOR 7
#define JCOM_COLOR 8
#define JDELIM_COLOR 9
#define JPREPROC_COLOR 10
#define JMESSAGE_COLOR 11
#define JERROR_COLOR 12
#define JDOLLAR_COLOR 13
#define JKEY_COLOR 14
#define JLINE_COLOR 15
#define JMAX_COLORS 128
#ifndef pc_system
#define MAX_SCREEN_SIZE 120
#else
#define MAX_SCREEN_SIZE 75
#endif
extern Screen_Type JScreen[MAX_SCREEN_SIZE];
extern int Screen_Row; /* cursor row */
extern int Screen_Col; /* cursor col */
extern int Cursor_Motion; /* cursor movement only */
extern int Display_Eight_Bit; /* if non zero, pass to terminal as is */
extern int redraw(void);
extern void recenter(int *);
extern int window_line(void);
extern void scroll_down(int, int, int);
extern int scroll_up(int, int, int);
extern void update(Line *, int, int);
extern void init_display(int);
extern void point_cursor(int);
extern void point_column(int);
extern int calculate_column(void);
extern void register_change(int);
extern void touch_window(void);
extern void blank_line(int);
extern void reset_display(void);
extern int cursor_visible(void);
extern Line *find_top(void);
extern void do_dialog(char *);
extern void jed_fillmem(char *, char, int);
extern int Goal_Column;
extern int User_Prefers_Line_Numbers;
extern int Wants_Attributes;
extern int Term_Supports_Color;
extern int Wants_Syntax_Highlight;
extern int Display_Time;
extern int Want_Eob;
extern void set_status_format(char *, int *);
extern void init_syntax_highlight (void);
extern void syntax_highlight(unsigned short *, unsigned short *);
extern int Mode_Has_Syntax_Highlight;
extern int JED_CSI;
extern int Wants_HScroll;
extern int Mini_Ghost;
extern void redraw_screen(int);
extern void define_top_screen_line(char *);
#ifdef HAS_DISPLAY_TABLE
extern unsigned char Output_Display_Table[256];
#endif
extern int Jed_Version_Number;
extern int Jed_Dollar;
#endif
/* #ifdef _JED_SCREEN_H_ */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.