📄 window.h
字号:
/* * window.h Constants, prototypes etc. for the window routines. * * $Id: window.h,v 1.16 2007-10-10 20:18:20 al-guest Exp $ * * This file is part of the minicom communications package, * Copyright 1991-1996 Miquel van Smoorenburg. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * * fmg 1/11/94 colors * fmg 8/20/97 added stuff for history search section * fmg 8/21/97 added kludged F_key support for RedHat4.1 */#include <stddef.h>/* * One character is contained in a "ELM" */typedef struct _elm { wchar_t value; char attr; char color;} ELM;/* * Control struct of a window */typedef struct _win { int x1, y1, x2, y2; /* Coordinates */ int sy1, sy2; /* Scrolling region */ int xs, ys; /* x and y size */ char border; /* type of border */ char cursor; /* Does it have a cursor */ char attr; /* Current attribute of window */ char color; /* Current color of window */ char autocr; /* With '\n', do an automatic '\r' */ char doscroll; /* Automatically scroll up */ char wrap; /* Wrap around edge */ char direct; /* Direct write to screen ? */ short curx, cury; /* current x and y */ char o_cursor; short o_curx; short o_cury; char o_attr; char o_color; /* Position & attributes before window was opened */ ELM *map; /* Map of contents */ ELM *histbuf; /* History buffer. */ int histlines; /* How many lines we keep in the history buffer */ int histline; /* Current line in the history buffer. */} WIN;/* * Stdwin is the whole screen */extern WIN *stdwin; /* Whole screen */extern int LINES, COLS; /* Size of sreen */extern int usecolor; /* Use ansi color escape sequences */extern int useattr; /* Use attributes (reverse, bold etc. ) */extern int dirflush; /* Direct flush after write */extern int screen_ibmpc; /* Literal pass-through of all characters? */extern int screen_iso; /* Literal pass-through of all characters? */extern int w_init; /* Already initialized? */extern char *_tptr;extern int use_status; /* Turned on in main() *//* fmg 1/11/94 colors */extern int mfcolor; /* Menu Foreground Color */extern int mbcolor; /* Menu Background Color */extern int tfcolor; /* Terminal Foreground Color */extern int tbcolor; /* Terminal Background Color */extern int sfcolor; /* Status Bar Foreground Color */extern int sbcolor; /* Status Bar Background Color */extern const char *J_col[]; /* Color's names *//* * Possible attributes. */#define XA_NORMAL 0#define XA_BLINK 1#define XA_BOLD 2#define XA_REVERSE 4#define XA_STANDOUT 8#define XA_UNDERLINE 16#define XA_ALTCHARSET 32#define XA_BLANK 64/* * Possible colors */#define BLACK 0#define RED 1#define GREEN 2#define YELLOW 3#define BLUE 4#define MAGENTA 5#define CYAN 6#define WHITE 7#define COLATTR(fg, bg) (((fg) << 4) + (bg))#define COLFG(ca) ((ca) >> 4)#define COLBG(ca) ((ca) % 16)/* * Possible borders. */#define BNONE 0#define BSINGLE 1#define BDOUBLE 2/* * Scrolling directions. */#define S_UP 1#define S_DOWN 2/* * Cursor types. */#define CNONE 0#define CNORMAL 1/* * Title Positions */#define TLEFT 0#define TMID 1#define TRIGHT 2/* * Function prototypes. */int wxgetch(void);void mc_wflush(void);WIN *mc_wopen(int x1, int y1, int x2, int y2, int border, int attr, int fg, int bg, int direct, int hl, int rel);void mc_wclose(WIN *win, int replace);void mc_wleave(void);void mc_wreturn(void);void mc_wresize(WIN *w, int x, int y);void mc_wredraw(WIN *w, int newdirect);void mc_wscroll(WIN *win, int dir);void mc_wlocate(WIN *win, int x, int y);void mc_wputc(WIN *win, wchar_t c);void mc_wdrawelm(WIN *win, int y, ELM *e);void mc_wputs(WIN *win, const char *s);int mc_wprintf(WIN *, const char *, ...) __attribute__((format(printf, 2, 3)));void mc_wbell(void);void mc_wcursor(WIN *win, int type);void mc_wtitle(WIN *w, int pos , const char *s);void mc_wcurbar(WIN *w, int y , int attr);int mc_wselect(int x, int y, const char *const *choices, void (*const *funlist)(void) , const char *title , int attr , int fg , int bg );void mc_wclrch(WIN *w, int n);void mc_wclrel(WIN *w);void mc_wclreol(WIN *w);void mc_wclrbol(WIN *w);void mc_wclreos(WIN *w);void mc_wclrbos(WIN *w);void mc_winclr(WIN *w);void mc_winsline(WIN *w);void mc_wdelline(WIN *w);void mc_winschar(WIN *w);void mc_winschar2(WIN *w, wchar_t c, int move);void mc_wdelchar(WIN *w);int mc_wgets(WIN *win, char *s, int linemax, int totmax);int mc_wgetwcs(WIN *win, wchar_t *s, int linemax, int totmax);void win_end(void);#ifdef BBSint win_init(char *term, int lines);#elseint win_init(int fg, int bg, int attr);#endif/* fmg 8/20/97: both needed by history search section */void mc_wdrawelm_inverse( WIN *w, int y, ELM *e);void mc_wdrawelm_var(WIN *w, ELM *e, wchar_t *buf);/* * Some macro's that can be used as functions. */#define mc_wsetregion(w, z1, z2) (((w)->sy1=(w)->y1+(z1)),((w)->sy2=(w)->y1+(z2)))#define mc_wresetregion(w) ( (w)->sy1 = (w)->y1, (w)->sy2 = (w)->y2 )#define mc_wgetattr(w) ( (w)->attr )#define mc_wsetattr(w, a) ( (w)->attr = (a) )#define mc_wsetfgcol(w, fg) ( (w)->color = ((w)->color & 15) + ((fg) << 4))#define mc_wsetbgcol(w, bg) ( (w)->color = ((w)->color & 240) + (bg) )#define mc_wsetam(w) ( (w)->wrap = 1 )#define mc_wresetam(w) ( (w)->wrap = 0 )/* * Allright, now the macro's for our keyboard routines. */#define K_BS 8#define K_ESC 27#define K_STOP 256#define K_F1 257#define K_F2 258#define K_F3 259#define K_F4 260#define K_F5 261#define K_F6 262#define K_F7 263#define K_F8 264#define K_F9 265#define K_F10 266#define K_F11 277#define K_F12 278#define K_HOME 267#define K_PGUP 268#define K_UP 269#define K_LT 270#define K_RT 271#define K_DN 272#define K_END 273#define K_PGDN 274#define K_INS 275#define K_DEL 276#define NUM_KEYS 23#define KEY_OFFS 256/* Here's where the meta keycode start. (512 + keycode). */#define K_META 512#ifndef EOF# define EOF ((int) -1)#endif#define K_ERA '\b'#define K_KILL ((int) -2)/* Internal structure. */struct key { char *cap; char len;};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -