📄 ptyx.h
字号:
/* * $XConsortium: ptyx.h,v 1.60.1.1 93/11/03 17:29:39 gildea Exp $ *//* * Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. * * All Rights Reserved * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose and without fee is hereby granted, * provided that the above copyright notice appear in all copies and that * both that copyright notice and this permission notice appear in * supporting documentation, and that the name of Digital Equipment * Corporation not be used in advertising or publicity pertaining to * distribution of the software without specific, written prior permission. * * * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. *//* ptyx.h *//* @(#)ptyx.h X10/6.6 11/10/86 */#include <X11/IntrinsicP.h>#include <X11/Xmu/Misc.h> /* For Max() and Min(). */#include <X11/Xfuncs.h>#include <X11/Xosdefs.h>/* Extra Xlib definitions */#define AllButtonsUp(detail, ignore) (\ ((ignore) == Button1) ? \ (((detail)&(Button2Mask|Button3Mask)) == 0) \ : \ (((ignore) == Button2) ? \ (((detail)&(Button1Mask|Button3Mask)) == 0) \ : \ (((detail)&(Button1Mask|Button2Mask)) == 0)) \ )#define MAX_COLS 200#define MAX_ROWS 128/*** System V definitions*/#ifdef SYSV#ifdef X_NOT_POSIX#ifndef CRAY#define dup2(fd1,fd2) ((fd1 == fd2) ? fd1 : \ (close(fd2), fcntl(fd1, F_DUPFD, fd2)))#endif#endif#endif /* SYSV *//*** allow for mobility of the pty master/slave directories*/#ifndef PTYDEV#ifdef hpux#define PTYDEV "/dev/ptym/ptyxx"#else /* !hpux */#define PTYDEV "/dev/ptyxx"#endif /* !hpux */#endif /* !PTYDEV */#ifndef TTYDEV#ifdef hpux#define TTYDEV "/dev/pty/ttyxx"#else /* !hpux */#define TTYDEV "/dev/ttyxx"#endif /* !hpux */#endif /* !TTYDEV */#ifndef PTYCHAR1#ifdef hpux#define PTYCHAR1 "zyxwvutsrqp"#else /* !hpux */#define PTYCHAR1 "pqrstuvwxyzPQRSTUVWXYZ"#endif /* !hpux */#endif /* !PTYCHAR1 */#ifndef PTYCHAR2#ifdef hpux#define PTYCHAR2 "fedcba9876543210"#else /* !hpux */#define PTYCHAR2 "0123456789abcdef"#endif /* !hpux */#endif /* !PTYCHAR2 *//* Until the translation manager comes along, I have to do my own translation of * mouse events into the proper routines. */typedef enum {NORMAL, LEFTEXTENSION, RIGHTEXTENSION} EventMode;/* * 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 unsigned char Char; /* to support 8 bit chars */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 NMENUFONTS 11 /* entries in fontMenu */#define NBOX 5 /* Number of Points in box */#define NPARAM 10 /* Max. parameters */#define MINHILITE 32typedef 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 gsets[4];} SavedCursor;#define TEK_FONT_LARGE 0#define TEK_FONT_2 1#define TEK_FONT_3 2#define TEK_FONT_SMALL 3#define TEKNUMFONTS 4/* Actually there are 5 types of lines, but four are non-solid lines */#define TEKNUMLINES 4typedef struct { int x; int y; int fontsize; int linetype;} Tmodes;typedef struct { int Twidth; int Theight;} T_fontsize;typedef struct { short *bits; int x; int y; int width; int height;} BitmapBits;#define SAVELINES 64 /* default # lines to save */#define SCROLLLINES 1 /* default # lines to scroll *//***==========================================================***/#define TEXT_FG 0#define TEXT_BG 1#define TEXT_CURSOR 2#define MOUSE_FG 3#define MOUSE_BG 4#define TEK_FG 5#define TEK_BG 6#define NCOLORS 7#define COLOR_DEFINED(s,w) ((s)->which&(1<<(w)))#define COLOR_VALUE(s,w) ((s)->colors[w])#define SET_COLOR_VALUE(s,w,v) (((s)->colors[w]=(v)),((s)->which|=(1<<(w))))#define COLOR_NAME(s,w) ((s)->names[w])#define SET_COLOR_NAME(s,w,v) (((s)->names[w]=(v)),((s)->which|=(1<<(w))))#define UNDEFINE_COLOR(s,w) ((s)->which&=(~((w)<<1)))#define OPPOSITE_COLOR(n) (((n)==TEXT_FG?TEXT_BG:\ ((n)==TEXT_BG?TEXT_FG:\ ((n)==MOUSE_FG?MOUSE_BG:\ ((n)==MOUSE_BG?MOUSE_FG:\ ((n)==TEK_FG?TEK_BG:\ ((n)==TEK_BG?TEK_FG:(n))))))))typedef struct { unsigned which; Pixel colors[NCOLORS]; char *names[NCOLORS];} ScrnColors;/***===============================================================***/#define MAXCOLORS 8#define COLOR_0 0#define COLOR_1 1#define COLOR_2 2#define COLOR_3 3#define COLOR_4 4#define COLOR_5 5#define COLOR_6 6#define COLOR_7 7typedef 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 */ GC normalGC; /* normal painting */ GC reverseGC; /* reverse painting */ GC normalboldGC; /* normal painting, bold font */ GC reverseboldGC; /* reverse painting, bold font */ GC cursorGC; /* normal cursor painting */ GC reversecursorGC;/* reverse cursor painting */ GC cursoroutlineGC;/* for painting lines around */ Pixel foreground; /* foreground color */ Pixel cursorcolor; /* Cursor color */ Pixel mousecolor; /* Mouse color */ Pixel mousecolorback; /* Mouse color background */ Pixel colors[MAXCOLORS]; /* ANSI color emulation */ int border; /* inner border */ Cursor arrow; /* arrow cursor */ unsigned short send_mouse_pos; /* user wants mouse transition */ /* and position information */ int select; /* xterm selected */ Boolean visualbell; /* visual bell mode */ Boolean allowSendEvents;/* SendEvent mode */ Boolean grabbedKbd; /* keyboard is grabbed */#ifdef ALLOWLOGGING int logging; /* logging mode */ int logfd; /* file descriptor of log */ char *logfile; /* log file name */ unsigned char *logstart; /* current start of log buffer */#endif int inhibit; /* flags for inhibiting changes *//* VT window parameters */ 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 */ } fullVwin; Cursor pointer_cursor; /* pointer cursor in window */ /* Terminal fonts must be of the same size and of fixed width */ XFontStruct *fnt_norm; /* normal font of terminal */ XFontStruct *fnt_bold; /* bold font of terminal */ int enbolden; /* overstrike for bold font */ XPoint *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 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -