⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 win.h

📁 This driver and utilities are published in form of source code under GNU General Public License in
💻 H
字号:
/*****************************************************************************//* WIN.H								     *//*	Definitions for window function.				     *//*									     *//* Copyright (c) 404 Technologies Inc. 1993. All Rights Reserved.	     *//*									     *//* Revision history:							     *//*	Kevin Li	06/08/93 Revised for UNIX version/Monochrom TEXT     *//*	Kevin Li	12/08/93 Revised for UNIX version/VGA TEXT	     *//*****************************************************************************/#ifndef WIN404#define WIN404#include <sys/types.h>#ifdef VENIX#include <sys/at_ansi.h>#include <sys/kd.h>#include <sys/vt.h>#endif#ifdef STREAM#include <sys/at_ansi.h>#include <sys/kd.h>#include <sys/vt.h>#endif#ifdef SCOUNIX#ifndef LINUX#include <sys/keyboard.h>#include <sys/console.h>#include <sys/vtkd.h>#endif#endif#ifdef LINUX/*#include <linux/keyboard.h>*//*#include <linux/console.h>*/#endif#include <termios.h>#include <unistd.h>#include <stdlib.h>#include <stdio.h>#include <fcntl.h>#include <string.h>#include "kbd.h"typedef unsigned char	uchar;#ifndef STREAM/*typedef unsigned short	ushort;typedef unsigned int	uint;*/#endif#define SCRNSZ	2000/* char attributes */#define D_A_Normal	0#define D_A_LIGHT	1#define D_A_UNDER	4#define D_A_Blink	5#define D_A_INV 	7#ifdef	STREAM#define D_A_C_UNDER	0int	Console_flag;#endifstruct	WIN {	int	flag,		x0, y0, x1, y1,		csr_x, csr_y,	/* cursor position */		color,		w, h,		/* width, height */		norm_c, 	/* normal color */		bar_c,		/* bar	    ''  */		field_c;	/* field    ''  */};typedef struct	WIN	WINDOW;#define 	MaxWindow	20#define		MaxEditMsg	5WINDOW		win[MaxWindow]; 	/* window struct */WINDOW		*wstd;			/* standard screen */struct	WItem {	int	flag;		/* type of item; active or seperator */	char	*str;		/* description string */	int	key;		/* mnemonic key */	int	x, y;};struct	WSelect {	int		x, y;		/* window position */	char		*title; 	/* select menu title */	int		total, first;	/* total item, first cursor item */	int		act_item;	/* cursor item */	WINDOW		*wid;		/* window ptr */	int		Ndisp;		/* Number of displayed items */					/* scroll feature support */	struct WItem	*item;	/****add by jose ***/	char		*msg[MaxEditMsg]; /* message line */ 	int		len;	/* item string max length */};#define MW_SELECT	1#define MW_EDIT 	2union	Menu	{	struct	WEdit		*editp;	struct	WSelect 	*selectp;};/* *	Edit Menu */struct	WEItem {	int	flag;			/* Read only(0),Writeable(1) */	char	*des;			/* description string */	char	*str;			/* string for edit */	union	Menu	menup;	int	x, y;	int	len;	int	menu_act_item;};struct	WEdit {	int		id;		/* edit menu id */	int		x, y;		/* window position */	char		*title; 	/* edit meunu title */	char		*msg[MaxEditMsg];/* edit meunu msg */	int		total;		/* total item*/	int		first;		/* first cursor item */	int		act_item;	/* cursor item */	WINDOW		*wid;		/* system flag window prt */	struct WEItem	*item;		/* Support Field value selection */	int		Ndisp;		/* Number of displayed items */	int		max_des_len;	/* max description string length */	int		max_str_len;	/* max edit string length */};struct	GItem2 {	int		flag;	char		*des;	int		total;		/* total sub-item */	int		act_item;	/* sub - cursor item */	char		*str[10];	int		item_no[10];	int		x[10];	int		y;	int		len[10];	union Menu	menup[10];};#define Edit2Type0	0/*0x01*/		/* not drawing line */#define Edit2Type1	1/*0x02*/		/* drawing line */#define Edit2Type5	0x20		/* non-blocking read to be assigned */struct GEdit2 {	int		type;		/* GEdit2 type */	int		x, y;		/* window position */	int		total;		/* total item */	char		*title; 	/* edit meunu title */	int		act_item;	/* cursor item */	WINDOW		*wid;	char		*msg[MaxEditMsg];	struct GItem2	*item;};struct	GItem3 {	int		flag;	char		*des;	int		total;		/* total sub-item */	int		act_item;	/* sub - cursor item */	char		*str[16];	int		item_no[16];	int		x;	int		y[16];	int		len[16];	union Menu	menup[16];};#define Edit3Type0	0x01		/* drawing V. lines only */#define Edit3Type1	0x02		/* drawing v. line & h. lines */#define Edit3Type2	0x04		/* drawing v. & h. even lines */#define Edit3Type3	0x08		/* header 4 lines adding special opt. */#define Edit3Type4	0x10		/* no up & down auto control */#define Edit3Type5	0x20		/* non-blocking read to be assigned */struct GEdit3 {	int		type;		/* GEdit3 type */	int		x, y;		/* window position */	int		total;		/* total item */	char		*title; 	/* edit meunu title */	int		act_item;	/* cursor item */	WINDOW		*wid;	char		*msg[MaxEditMsg];	struct GItem3	*item;};/* *	Define for WIN flag */#define F_Used		0x80		/* identify the WINDOW used *//* *	Define for WItem  or WEItem or WTItem flag */#define F_NotAvailable	0x00		/* Not available yet entry */#define F_Writable	0x01		/* same as  F_Active */#define F_Active	0x01		/* identify the item active */#define F_Readonly	0x02		/* read only entry */#define F_NonEdit	0x04		/* non edit only entry */#define F_Return	0x08		/* entry which return key code */#define F_Select	0x10		/* entry which calls select menu */#define F_Edit		0x20		/* entry which calls edit menu */#define F_Seperator	0x80		/* edit2 menu: to draw line *//* better used with fixed type of menu, instead of scrolling one */#define F_MSG		0x00		/* message item indicator */#define F_Sep		0x80		/* the item only a seperator *//* *	Define for line direction/type */#define L_SINGLE	0x00#define L_DOUBLE	0x01#define L_UP		0x00#define L_RIGHT 	0x02#define L_DOWN		0x04#define L_LEFT		0x06#define MaxSeleLevel	20#define MaxEditLevel	20#define MaxEdit2Level	20#define MaxEdit3Level	20#define SCRNSZ		2000	/* 25 * 80 *//* win-0 functions declaration */extern	void	mw_init();extern	void	mw_end();extern	int	mw_kbhit();extern	int	mw_getkey();extern	int	mw_inskey();extern	void	mw_cursor();extern	void	mw_cursor_type();extern	void	mw_attr();extern	void	mw_clearscreen();extern	void	mw_putstr();extern	void	mw_putstr_xy();extern	void	mw_putchar();extern	void	mw_putchar_c();extern	void	mw_putnpchar();extern	void	mw_putnpchar_c();extern	void	mw_cursor_off();extern	void	mw_cursor_on();extern	void	mw_displaywindow();extern	void	mw_redraw();extern	void	mw_getwindow();extern	void	mw_putwindow();extern	void	mw_clearwindow();extern	void	mw_fillbox();extern	void	mw_scroll_up();extern	void	mw_scroll_down();extern	void	mw_line();extern	void	mw_lineclip();/* win-1 functions declaration */extern	void	mw_winit();extern	void	mw_wend();extern	WINDOW	*mw_wopen();extern	void	mw_wstore();extern	void	mw_wrestore();extern	void	mw_wscroll_up();extern	void	mw_wscroll_down();extern	void	mw_wputchc();extern	void	mw_wputsc();extern	void	mw_wprintc();extern	void	mw_wline();extern	void	mw_wdrawbox();extern	void	mw_wcputs();extern	void	mw_wclseol();extern	int	_getstr();#define mw_wclose(wid)		{ (wid)->flag = 0; }#define mw_wcolor(wid, c)	{ (wid)->color = (c); }#define mw_wallcolor(wid, n, b, f) { (wid)->norm_c = (n); \				  (wid)->bar_c = (b); \				  (wid)->field_c = (f); }#define mw_wgotoxy(wid, x, y)	{ (wid)->csr_x = (x); \				  (wid)->csr_y = (y); }#define mw_wcursor(wid, x, y)	{ mw_cursor((x) + (wid)->x0, \				(y) + (wid)->y0); mw_wgotoxy(wid, x, y); }#define mw_wfill(wid, ch)	{ \		mw_attr(wid->color);\		mw_fillbox((wid)->x0, (wid)->y0, (wid)->x1, (wid)->y1, (ch));\	}#define mw_wputs(wid, str)	mw_wputsc(wid, str, strlen((char *)str), (wid)->color)#define mw_wcls(wid)		mw_wfill(wid, ' ')#define mw_wputch(wid, ch)	wputchc(wid, ch, (wid)->color)#define mw_wprint(wid, str)	mw_wprintc(wid, str, (wid)->color)#define mw_wgets(x, y, str, len, bar_c, field_c) \				_getstr(x, y, str, len, bar_c, field_c)/* win-1b functions declaration */extern	void	display_select();extern	int	_mw_select();extern	int	_edit();extern	int	edit_select();extern	void	display_edit();/* win-2 functions declaration */extern	void	mw_selectinit();extern	int	mw_select();extern	void	mw_selectend();extern	void	mw_select_set_act();extern	void	mw_editinit();extern	int	mw_edit();extern	void	mw_editend();/* win-3 functions declaration */extern	void	mw_edit2init();extern	int	mw_edit2();extern	int	_edit2();extern	int	mw_edit2end();extern	void	edit2_flush_data();extern	void	edit2_clear_data();extern	int	edit2_select();/* GLOBAL VARIABLES */extern	uchar	Blank[80];		/* Blank string for convenience */extern	int	tty_fd;#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -