|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T p
Length: 13703 (0x3587)
Types: TextFile
Names: »ptyx.h«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki
└─⟦526ad3590⟧ »EUUGD11/gnu-31mar87/X.V10.R4.tar.Z«
└─⟦2109abc41⟧
└─⟦this⟧ »./X.V10R4/xterm/ptyx.h«
/*
* $Source: /u1/X/xterm/RCS/ptyx.h,v $
* $Header: ptyx.h,v 10.101 86/12/01 16:57:15 swick Rel $
*/
#include <X/mit-copyright.h>
/* Copyright Massachusetts Institute of Technology 1984, 1985 */
/* ptyx.h */
/* @(#)ptyx.h X10/6.6 11/10/86 */
#define FALSE 0
#define TRUE 1
#define MAX_COLS 200
#define MAX_ROWS 128
/*
* The origin of a screen is 0, 0. Therefore, the number of rows
* on a screen is screen->max_row + 1, and similarly for columns.
*/
typedef char **ScrnBuf;
/*
* ANSI emulation.
*/
#define INQ 0x05
#define FF 0x0C /* C0, C1 control names */
#define LS1 0x0E
#define LS0 0x0F
#define CAN 0x18
#define SUB 0x1A
#define ESC 0x1B
#define US 0x1F
#define DEL 0x7F
#define HTS ('H'+0x40')
#define SS2 0x8E
#define SS3 0x8F
#define DCS 0x90
#define OLDID 0x9A /* ESC Z */
#define CSI 0x9B
#define ST 0x9C
#define OSC 0x9D
#define PM 0x9E
#define APC 0x9F
#define RDEL 0xFF
#define NBOX 5 /* Number of Vertices in box */
#define NPARAM 10 /* Max. parameters */
#define MINHILITE 32
#define TITLEPAD 4
typedef struct {
unsigned char a_type;
unsigned char a_pintro;
unsigned char a_final;
unsigned char a_inters;
char a_nparam; /* # of parameters */
char a_dflt[NPARAM]; /* Default value flags */
short a_param[NPARAM]; /* Parameters */
char a_nastyf; /* Error flag */
} ANSI;
typedef struct {
int row;
int col;
unsigned flags; /* Vt100 saves graphics rendition. Ugh! */
char curgl;
char curgr;
char gsets[4];
} SavedCursor;
#define TEKNUMFONTS 5
/* Actually there are 5 types of lines, but four are non-solid lines */
#define TEKNUMLINES 4
typedef struct {
int x;
int y;
int fontsize;
int linetype;
} Tmodes;
typedef struct {
int Twidth;
int Theight;
} T_fontsize;
typedef struct {
Window tbar; /* major window */
Window left; /* left hilited window */
Window right; /* right hilited window */
int hilited; /* in hilite state */
int x; /* x position of title */
int y; /* y position of title */
int fullwidth; /* full width of title */
int width; /* width of visible part of title */
} TitleBar;
typedef struct {
short *bits;
int x;
int y;
int width;
int height;
} BitmapBits;
typedef struct {
/* These parameters apply to both windows */
Display *display; /* X display for screen */
int respond; /* socket for responses
(position report, etc.) */
long pid; /* pid of process on far side */
int uid; /* user id of actual person */
int gid; /* group id of actual person */
int color; /* colors used */
int foreground; /* foreground color */
int background; /* Background color */
int cursorcolor; /* Cursor color */
int mousecolor; /* Mouse color */
Pixmap bgndtile; /* background tile pixmap */
int border; /* inner border */
int borderwidth; /* outer border */
Pixmap bordertile; /* tile pixmap for border */
Pixmap graybordertile; /* tile pixmap for border when
window is unselected */
Cursor arrow; /* arrow cursor */
unsigned short send_mouse_pos; /* user wants mouse transition */
/* and position information */
int select; /* xterm selected */
struct timeval *timeout; /* timeout value for select */
FontInfo *titlefont; /* font info for title font */
int titleheight; /* height of title */
int title_n_size; /* width on 'n' in title font */
Pixmap hilitetile; /* tile pixmap for title hilite */
int autoraise; /* auto raise window mode */
Window autowindow; /* the window to autoraise */
int timer; /* timer function */
int holdoff; /* delay select and unselects */
int visualbell; /* visual bell mode */
int icon_show; /* icon currently showing */
int textundericon; /* text under icon */
int bitmapwidth; /* width of icon bitmap */
int bitmapheight; /* height of icon bitmap */
int icon_text_x; /* x position of text */
int icon_text_y; /* y position of text */
BitmapBits iconbitmap; /* bitmap for icon */
int iconinput; /* got input while iconified */
int active_icon; /* icon is miniature copy */
int deiconwarp; /* warp mouse on deiconify */
int logging; /* logging mode */
int logfd; /* file descriptor of log */
char *logfile; /* log file name */
char *logstart; /* current start of log buffer */
int inhibit; /* flags for inhibiting changes */
/* VT window parameters */
int show; /* window showing */
int iconunmap; /* unmapped because of icon */
struct {
Window window; /* X window id */
int width; /* width of columns */
int height; /* height of rows */
int fullwidth; /* full width of window */
int fullheight; /* full height of window */
int f_width; /* width of fonts in pixels */
int f_height; /* height of fonts in pixels */
int titlebar; /* title bar(s) showing */
} fullVwin, iconVwin, *mappedVwin;
Font fnt_icon; /* icon font */
int minrows; /* minimun number of rows to
accommodate scrollbar */
Cursor curs; /* cursor resource from X */
/* Terminal fonts must be of the same size and of fixed width */
Font fnt_norm; /* normal font of terminal */
Font fnt_bold; /* bold font of terminal */
int enbolden; /* overstrike for bold font */
Vertex *box; /* draw unselected cursor */
int cursor_state; /* ON or OFF */
int cursor_set; /* requested state */
int cursor_col; /* previous cursor column */
int cursor_row; /* previous cursor row */
int cur_col; /* current cursor column */
int cur_row; /* current cursor row */
int max_col; /* rightmost column */
int max_row; /* bottom row */
int top_marg; /* top line of scrolling region */
int bot_marg; /* bottom line of " " */
int scrollbar; /* if > 0, width of scrollbar, and
scrollbar showing */
int topline; /* line number of top, <= 0 */
int savelines; /* number of lines off top to save */
int scrollinput; /* scroll to bottom on input */
int scrollkey; /* scroll to bottom on key */
ScrnBuf buf; /* screen buffer (main) */
ScrnBuf allbuf; /* screen buffer (may include
lines scrolled off top */
ScrnBuf altbuf; /* alternate screen buffer */
int alternate; /* true if using alternate buf */
ScrollBar *sb; /* pointer to scrollbar struct */
unsigned short do_wrap; /* true if cursor in last column
and character just output */
int incopy; /* 0 if no RasterCopy exposure
event processed since last
RasterCopy */
int c132; /* allow change to 132 columns */
int curses; /* cludge-ups for more and vi */
int marginbell; /* true if margin bell on */
int nmarginbell; /* columns from right margin */
int bellarmed; /* cursor below bell margin */
#ifdef CROCKSCROLL
int scrollincr; /* scroll increment */
#endif
unsigned int multiscroll; /* true if multi-scroll */
int scrolls; /* outstanding scroll count */
SavedCursor sc; /* data for restore cursor */
TitleBar title; /* title bar */
int statusline; /* status line showing */
int statusheight; /* status line height */
int instatus; /* cursor in status line */
SavedCursor statussc; /* status line restore cursor */
int reversestatus; /* status line reversed */
char *winname; /* name of window (and icons) */
int winnamelen; /* length of window name */
int save_modes[19]; /* save dec private modes */
int pagemode; /* true if page mode */
int pagecnt; /* count of lines in page mode */
int pageoverlap; /* lines to overlap (less one) */
/* Improved VT100 emulation stuff. */
char gsets[4]; /* G0 through G3. */
char curgl; /* Current GL setting. */
char curgr; /* Current GR setting. */
char curss; /* Current single shift. */
int scroll_amt; /* amount to scroll */
int refresh_amt; /* amount to refresh */
int jumpscroll; /* whether we should jumpscroll */
/* Tektronix window parameters */
int Tforeground; /* foreground color */
int Tbackground; /* Background color */
int Tcursorcolor; /* Cursor color */
Pixmap Tbgndtile; /* background tile pixmap */
int Tcolor; /* colors used */
int planeused; /* is xorplane being used */
int cellsused; /* are color cells being used */
Color colorcells[3]; /* color cells for Tek */
int Tshow; /* Tek window showing */
int Ticonunmap; /* unmapped because of icon */
int waitrefresh; /* postpone refresh */
struct {
Window window; /* X window id */
int width; /* width of columns */
int height; /* height of rows */
int fullwidth; /* full width of window */
int fullheight; /* full height of window */
int titlebar; /* title bar(s) showing */
double tekscale; /* scale factor Tek -> vs100 */
} fullTwin, iconTwin, *mappedTwin;
BitmapBits Ticonbitmap; /* bitmap for icon */
Vertex **Tbox; /* draw unselected cursor */
int xorplane; /* z plane for inverts */
Pattern linepat[TEKNUMLINES]; /* line patterns */
Font Tfont[TEKNUMFONTS]; /* Tek fonts */
int tobaseline[TEKNUMFONTS]; /* top to baseline for
each font */
int TekEmu; /* true if Tektronix emulation */
int cur_X; /* current x */
int cur_Y; /* current y */
Tmodes cur; /* current tek modes */
Tmodes page; /* starting tek modes on page */
int margin; /* 0 -> margin 1, 1 -> margin 2 */
int pen; /* current Tektronix pen 0=up, 1=dn */
char *TekGIN; /* nonzero if Tektronix GIN mode*/
TitleBar Ttitle; /* title bar */
char *Twinname; /* name of window */
int Twinnamelen; /* length of window name */
} Screen;
/* meaning of bits in screen.select flag */
#define INWINDOW 01 /* the mouse is in one of the windows */
#define FOCUS 02 /* one of the windows is the focus window */
typedef struct
{
unsigned offset; /* status of shift, control, meta */
#define SHIFT 0x0001
#define META 0x0002
#define CONTROL 0x0004
unsigned flags;
} Keyboard;
/* define masks for flags */
#define CAPS_LOCK 0x01
#define KYPD_APL 0x02
#define CURSOR_APL 0x04
#define N_MARGINBELL 10
#define MAX_TABS 320
#define TAB_ARRAY_SIZE 10 /* number of ints to provide MAX_TABS bits */
typedef unsigned Tabs [TAB_ARRAY_SIZE];
#define BUF_SIZE 4096
typedef struct
{
Keyboard keyboard; /* terminal keyboard */
Screen screen; /* terminal screeen */
unsigned flags; /* mode flags */
unsigned initflags; /* initial mode flags */
Tabs tabs; /* tabstops of the terminal */
} Terminal;
/* masks for terminal flags */
#define INVERSE 0x01 /* invert the characters to be output */
#define UNDERLINE 0x02 /* true if underlining */
#define BOLD 0x04
#define WRAPAROUND 0x08
#define REVERSE_VIDEO 0x10 /* true if screen white on black */
#define ORIGIN 0x20 /* true if in origin mode */
#define INSERT 0x40 /* true if in insert mode */
#define SMOOTHSCROLL 0x80 /* true if in smooth scroll mode */
#define AUTOREPEAT 0x100 /* true if in autorepeat mode */
#define IN132COLUMNS 0x200 /* true if in 132 column mode */
#define LINEFEED 0x400
#define REVERSEWRAP 0x800 /* true if reverse wraparound mode */
#define ICONINPUT 0x1000 /* true if mini icon accepts kbd input */
#define ATTRIBUTES 0x07 /* attributes mask */
#define CHAR 0177
#define VWindow(screen) (screen->mappedVwin->window)
#define TWindow(screen) (screen->mappedTwin->window)
#define Width(screen) (screen->mappedVwin->width)
#define Height(screen) (screen->mappedVwin->height)
#define FullWidth(screen) (screen->mappedVwin->fullwidth)
#define FullHeight(screen) (screen->mappedVwin->fullheight)
#define FontWidth(screen) (screen->mappedVwin->f_width)
#define FontHeight(screen) (screen->mappedVwin->f_height)
#define TWidth(screen) (screen->mappedTwin->width)
#define THeight(screen) (screen->mappedTwin->height)
#define TFullWidth(screen) (screen->mappedTwin->fullwidth)
#define TFullHeight(screen) (screen->mappedTwin->fullheight)
#define TekScale(screen) (screen->mappedTwin->tekscale)
#define Titlebar(screen) (screen->mappedVwin->titlebar)
#define TTitlebar(screen) (screen->mappedTwin->titlebar)
#define ActiveIcon(screen) (screen->active_icon && \
(screen->mappedVwin == &screen->iconVwin))
#define TActiveIcon(screen) (screen->active_icon && \
(screen->mappedTwin == &screen->iconTwin))
#define CursorX(screen,col) ((col) * FontWidth(screen) + screen->border)
#define CursorY(screen,row) ((screen->instatus ? \
((row) * FontHeight(screen) + 1)\
: (((row) - screen->topline) * FontHeight(screen))) +\
screen->border + Titlebar(screen))
#define TICONWINDOWEVENTS (ExposeWindow | ButtonPressed)
#define ICONWINDOWEVENTS (TICONWINDOWEVENTS | ExposeRegion | ExposeCopy)
#define ICONINPUTEVENTS (KeyPressed | EnterWindow | LeaveWindow | FocusChange)
#define TWINDOWEVENTS (KeyPressed | ExposeWindow | ButtonPressed |\
ButtonReleased | UnmapWindow | EnterWindow |\
LeaveWindow | FocusChange)
#define WINDOWEVENTS (TWINDOWEVENTS | ExposeRegion | ExposeCopy)
#define TEK_LINK_BLOCK_SIZE 1024
typedef struct Tek_Link
{
struct Tek_Link *next; /* pointer to next TekLink in list
NULL <=> this is last TekLink */
short count;
char *ptr;
char data [TEK_LINK_BLOCK_SIZE];
} TekLink;
/* flags for cursors */
#define OFF 0
#define ON 1
#define CLEAR 0
#define TOGGLE 1
/* flags for color */
#define C_FOREGROUND 0x01
#define C_BACKGROUND 0x02
#define C_FBMASK 0x03
#define C_CURSOR 0x04
#define C_MOUSE 0x08
#define C_BORDER 0x10
/* flags for inhibit */
#define I_LOG 0x01
#define I_SIGNAL 0x02
#define I_TEK 0x04
extern Bitmap make_icon();
extern Cursor make_tcross();
extern Cursor make_xterm();
extern Cursor make_wait();
extern Cursor make_arrow();