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

📄 mouse.h

📁 早期freebsd实现
💻 H
字号:
/* * Copyright (c) 1992, 1993 *	The Regents of the University of California.  All rights reserved. * * This code is derived from software contributed to Berkeley by * Sony Corp. and Kazumasa Utashiro of Software Research Associates, Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software *    must display the following acknowledgement: *	This product includes software developed by the University of *	California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * from: $Hdr: mouse.h,v 4.300 91/06/09 06:42:56 root Rel41 $ SONY * *	@(#)mouse.h	8.1 (Berkeley) 6/11/93 */#ifndef __MOUSE__#define __MOUSE__ 1/* * mouse register structure definition. *//* * mouse data (mouse X, Y coordinates and its button status) */struct ms_data {    int	    md_sw;  /* mouse button */#define	    MS_BUTNL	0x04#define	    MS_BUTNM	0x02#define	    MS_BUTNR	0x01    int	    md_x;   /* x coordinate */    int	    md_y;   /* y coordinate */};struct ms_coord {    int	    mc_x;   /* x coordinate */    int	    mc_y;   /* y coordinate */};struct ms_range {    struct ms_coord	mr_min;	/* upper left */    struct ms_coord	mr_max;	/* lower right */};/* * mouse event report *	event report is queued when mouse is put in event mode *	by using MIOC SETEM ioctl() */struct ms_event {    struct ms_data	mse_data;	/* mouse X, Y and button status */    char		mse_trig;	/* trigger that caused this event */#define	MSE_MOTION	0		    /* mouse movement */#define MSE_BUTTON	1		    /* mouse buttons */#define MSE_KEY		2		    /* keyboard keys */    char		mse_dir;	/* key or button direction */#define MSE_DOWN	0		    /* down */#define MSE_UP		1		    /* up */#define MSE_UNKOWN	2		    /* unkown */    char		mse_code;	/* key or button code */#define MSE_BUTNR	0		    /* right button */#define MSE_BUTNM	1		    /* middle button */#define MSE_BUTNL	2		    /* left button */    char		mse_inval;  /* for key code, see below */    struct timeval	mse_time;	/* time when this event occurred */};struct ms_queue {    int			mq_head;    int			mq_tail;#define MS_MAXREPORT	170    struct ms_event	mq_queue[MS_MAXREPORT];    int			dummy[2];};/* strct ms_param: *	when mouse is moved more than mp_delta, amount that exceeds *	the mp_delta is maginified by mp_mag(>0) */struct ms_param {    int    mp_delta;	/* threshold for maginification */    int	   mp_mag;	/* magifying factor */};/* meaning of ms_eventmask */#define	    MS_EMEVENT	0x80	/* 1 -> event mode */#define	    MS_EMKEY	0x40	/* keyboard key changes -> event */		/* WARNING: use of MS_EMCORD[XY] is no recomended		 *	MS_EMCORD[XY] will disappear shortly		 */#define	    MS_EMCORDY	0x20	/* coordinate y changes -> event */#define	    MS_EMCORDX	0x10	/* coordinate x changes -> event */#define	    MS_EMMOTION	0x10	/* coordinates changes -> event */#define	    MS_EMBUTNL	0x04	/* left button changes -> event */#define	    MS_EMBUTNM	0x02	/* mid button changes -> event */#define	    MS_EMBUTNR	0x01	/* right button changes -> event *//* * Key Code */#define KEY_A		41#define KEY_B		59#define KEY_C		57#define KEY_D		43#define KEY_E		29#define KEY_F		44#define KEY_G		45#define KEY_H		46#define KEY_I		34#define KEY_J		47#define KEY_K		48#define KEY_L		49#define KEY_M		61#define KEY_N		60#define KEY_O		35#define KEY_P		36#define KEY_Q		27#define KEY_R		30#define KEY_S		42#define KEY_T		31#define KEY_U		33#define KEY_V		58#define KEY_W		28#define KEY_X		56#define KEY_Y		32#define KEY_Z		55#define KEY_0		21#define KEY_1		12#define KEY_2		13#define KEY_3		14#define KEY_4		15#define KEY_5		16#define KEY_6		17#define KEY_7		18#define KEY_8		19#define KEY_9		20#define KEY_MINUS	22	/* - */#define KEY_EQUAL	23	/* = */#define KEY_YEN		24	/* \ */#define KEY_BRA		37	/* [ */#define KEY_KET		38	/* ] */#define KEY_SEMICOL	50	/* ; */#define KEY_SQUOTE	51	/* ' */#define KEY_BQUOTE	52	/* ` */#define KEY_COMMA	62	/* , */#define KEY_PERIOD	63	/* . */#define KEY_SLASH	64	/* / */#define KEY_RO		65	/* 'RO' (katakana) */#define KEY_ESC		11#define KEY_TAB		26#define KEY_BS		25#define KEY_DEL		39#define KEY_CR		53	/* carrige return */#define KEY_SP		70	/* space */#define KEY_CTRL	40#define KEY_SHIFTL	54	/* left shift key */#define KEY_SHIFTR	66	/* right shift key */#define KEY_ALT		67#define KEY_CAPS	68#define KEY_MUHENKAN	69#define KEY_HENKAN	71#define KEY_EISUU	72#define KEY_KANA	73#define KEY_JIKKOU	74/* function key */#define KEY_F1		1#define KEY_F2		2#define KEY_F3		3#define KEY_F4		4#define KEY_F5		5#define KEY_F6		6#define KEY_F7		7#define KEY_F8		8#define KEY_F9		9#define KEY_F10		10/* numeric keypad */#define NKEY_0		87#define NKEY_1		83#define NKEY_2		84#define NKEY_3		85#define NKEY_4		79#define NKEY_5		80#define NKEY_6		81#define NKEY_7		75#define NKEY_8		76#define NKEY_9		77#define NKEY_PERIOD	89#define NKEY_MINUS	78#define NKEY_PLUS	82#define NKEY_COMMA	86#define NKEY_CR		90#define NKEY_LEFT	91	/* arrow key */#define NKEY_RIGHT	93#define NKEY_UP		88#define NKEY_DOWN	92#define OKEY_SPACE	94#define OKEY_EISUU	95#define OKEY_SHIFTL	96#define OKEY_SHIFTR	97#define OKEY_KANA	98#define OKEY_EQUAL	99#define OKEY_ASTERISK	100#define OKEY_SLASH	101#define OKEY_TAB	102/* * Mouse I/O contol commands */#include <sys/ioctl.h>#define	MSIOCGETEM	_IOR('M', 0, int)	/* get current event mask */#define	MSIOCSETEM	_IOW('M', 1, int)	/* set event mask */#define	MSIOCSETXY	_IOW('M', 2, struct ms_coord) /* set current x, y */#define	MSIOCFLUSH	_IO('M', 3)		/* flush event queue */#define	MSIOCSETPARAM	_IOW('M', 4, struct ms_param) /* set mouse parameter */#define	MSIOCSETRANGE	_IOW('M', 5, struct ms_range) /* set mouse coordinate range */#endif /* !__MOUSE__ */

⌨️ 快捷键说明

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