亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tool_input.c

?? 操作系統SunOS 4.1.3版本的源碼
?? C
字號:
#ifndef lint#ifdef sccsstatic  char sccsid[] = "@(#)tool_input.c 1.1 92/07/30 Copyr 1984 Sun Micro";#endif#endif/* * Copyright (c) 1983 by Sun Microsystems, Inc. *//* * Sets up tool interactive window mgt functions. */#include <sys/types.h>#include <sys/file.h>#include <sys/time.h>#include <sundev/kbd.h>#include <pixrect/pixrect.h>#include <pixrect/pixfont.h>#include <sunwindow/defaults.h>#include <sunwindow/notify.h>#include <sunwindow/rect.h>#include <sunwindow/rectlist.h>#include <sunwindow/pixwin.h>#include <sunwindow/cms_mono.h>#include <sunwindow/win_struct.h>#include <sunwindow/cms.h>#include <sunwindow/win_input.h>#include <suntool/alert.h>#include <suntool/icon.h>#include <suntool/frame.h>#include <suntool/walkmenu.h>#include <suntool/tool.h>#include <suntool/tool_impl.h>#include <suntool/wmgr.h>#include <suntool/menu.h>extern	struct pixfont *pf_sys;/*ARGSUSED*/tool_selectedstd(tool, ibits, obits, ebits, timer)	struct	tool *tool;	int	*ibits, *obits, *ebits;	struct	timeval **timer;{	struct	inputevent event;	*obits = *ebits = 0;	if (!(*ibits & (1<<tool->tl_windowfd))) {		*ibits = 0;		return;	}	*ibits = 0;	/*	 * Read should not block.	 */	if (input_readevent(tool->tl_windowfd, &event)==-1) {		perror("tool->tl_name");		return;	}	(void) tool_input(tool, &event, (Notify_arg)0, NOTIFY_SAFE);}inttool_is_exposed(toolfd)	int     toolfd;{	int     sibling_fd, sibling_number, next_number;	char    name[WIN_NAMESIZE];	struct	rect	sibling_rect, tool_rect;	sibling_number = win_getlink(toolfd, WL_COVERING);/*	if (sibling_number==WIN_NULLLINK)		return (TRUE);*/	(void)win_getrect(toolfd, &tool_rect);	while (sibling_number != WIN_NULLLINK) {		(void)win_numbertoname(sibling_number, name);		sibling_fd = open(name, O_RDONLY, 0);		(void)win_getrect(sibling_fd, &sibling_rect);		next_number = win_getlink(sibling_fd, WL_COVERING);		(void)close(sibling_fd);				if (rect_intersectsrect(&tool_rect, &sibling_rect))			break;				sibling_number = next_number;	}		return(sibling_number == WIN_NULLLINK);}introotfd_for_toolfd(toolfd)      int     toolfd;{	int     rootnumber;	char    name[WIN_NAMESIZE];	rootnumber = win_getlink(toolfd, WL_PARENT);	(void)win_numbertoname(rootnumber, name);	return(open(name, O_RDONLY, 0));}/*ARGSUSED*/Notify_valuetool_input(tool, event, arg, type)	Tool *tool;	Event *event;	Notify_arg arg;	Notify_event_type type;{	int	rootfd;	struct	menuitem *mi = (struct menuitem *) 0;	extern	struct menu *wmgr_toolmenu;	extern	struct menuitem *menu_display();	extern void wmgr_changerect();	extern void frame_handle_props();	unsigned int action = event_action(event);	/* Tell the selection service about GET, PUT, FIND, DELETE */	switch (action) {		case ACTION_COPY:		case ACTION_PASTE:		case ACTION_CUT:		case ACTION_FIND_FORWARD:		case ACTION_FIND_BACKWARD:			seln_report_event(tool, event);			break;		default:			break;	}	/*	 * Only want positive events (except for function keys)	 */	if (event_is_down(event)) {		switch (action) {		case OPEN_KEY:	/* Fall through */		case UN_OPEN_KEY:		case TOP_KEY:		case UN_TOP_KEY:		case DELETE_KEY:		case PROPS_KEY:			return(NOTIFY_IGNORED);		default:			break;		}	} else {		switch (action) {		case OPEN_KEY:	/* Fall through */		case UN_OPEN_KEY:		case TOP_KEY:		case UN_TOP_KEY:		case PROPS_KEY:#ifdef DELETE_ACCEL		case DELETE_KEY:#endif			break;		default:			return(NOTIFY_IGNORED);		}	}	/*	 * Get root window handle	 */	if ((rootfd = rootfd_for_toolfd(tool->tl_windowfd)) < 0) {		(void)printf("Can't find root window\n");		perror("tool->tl_name");		return(NOTIFY_UNEXPECTED);	}	switch (action) {	  case MENU_BUT: /* Do menus */	    if (tool->tl_menu) {		(void)menu_show_using_fd(tool->tl_menu, tool->tl_windowfd, event);	    }	    break;	case SELECT_BUT:		if (event_ctrl_is_down(event))  	/* Full */				wmgr_full(tool, rootfd);		else if (event_shift_is_down(event)) 	/* Hide */			wmgr_bottom(tool->tl_windowfd, rootfd);		else if (tool_is_iconic(tool)) 			/* Open */			wmgr_open(tool->tl_windowfd, rootfd);		else					/* Expose */			wmgr_top(tool->tl_windowfd, rootfd);		break;	case MS_MIDDLE:		if (!tool_is_iconic(tool) && 		    (tool_moveboundary(tool, event) != -1)) {			/*			 * Moved boundary while in boundary stripe			 */		 } else {			/*			 * Do move/stretch operation without prompt			 * If the ctrl key is down, do an accelerated			 * stretch.			 */			(void)wmgr_changerect(tool->tl_windowfd, tool->tl_windowfd,			    event, !event_ctrl_is_down(event), TRUE);			goto Done;		}		break;	case KBD_REQUEST:		/*		 * Tool window always refuses kbd focus request		 * unless shift down		 */		if (!event_shift_is_down(event)) {			(void)win_refuse_kbd_focus(tool->tl_windowfd);		}		break;#ifdef	KEYACCELS	case 'c': /* Close */	case 'C':	case 'i': /* Iconic */	case 'I':		if (!tool_is_iconic(tool)) /* Close */			wmgr_close(tool->tl_windowfd, rootfd);		break;	case 'o': /* Open */	case 'O':	case 'n': /* Normal */	case 'N':		if (tool_is_iconic(tool)) /* Open */			wmgr_open(tool->tl_windowfd, rootfd);		break;	case 'm': /* Move */	case 'M':		wmgr_move(tool->tl_windowfd);		break;	case 's': /* Stretch */	case 'S':		if (!tool_is_iconic(tool)) /* Stretch */			wmgr_stretch(tool->tl_windowfd);		break;	case 'e': /* Expose */	case 'E':	case 't': /* Top */	case 'T':		wmgr_top(tool->tl_windowfd, rootfd);		break;	case 'h': /* Hide */	case 'H':	case 'b': /* Bottom */	case 'B':		wmgr_bottom(tool->tl_windowfd, rootfd);		break;	case 'r': /* Redisplay */	case 'R':	case 'd': /* Display */	case 'D':	case '\014': /* Cntl L */		wmgr_refreshwindow(tool->tl_windowfd);		break;	case '\004':	/*  Quit on ^D	*/		(void)tool_done(tool);		break;#endif	KEYACCELS	case '?': { /*  HELP	*/		Event	event;		/*		 * Display a prompt		 */		(void) alert_prompt(			(Frame)0,			&event,			ALERT_MESSAGE_STRINGS,			    "  Clicking the left mouse button on the frame exposes tool,",			    "the middle mouse button moves the tool or adjusts",			    "a boundary and the right mouse button displays a menu.",			    "  When the tool is closed, clicking the left mouse",			    "button on its icon opens it.",			    0,			ALERT_BUTTON_YES,	"Continue",			ALERT_TRIGGER,		ACTION_STOP,			0);		break;		}	/* Note semantics: OPEN_KEY is a toggle, and UN_OPEN_KEY forces closed */	case OPEN_KEY:		if (event_ctrl_is_down(event)) {		    /* Handle zoom feature */		    wmgr_full(tool, rootfd);		    break;		}		if (tool->tl_menu) {		    /* Use menu to handle both frame and subframe cases */		    Menu_item m_item; caddr_t action;		    m_item = menu_find(tool->tl_menu, MENU_STRING, "Close", 0);		    if (!m_item)			m_item = menu_find(tool->tl_menu, MENU_STRING, "Done", 0);		    if (m_item && (action = menu_get(m_item, MENU_ACTION))) {   			((void (*)())(LINT_CAST(action)))(tool->tl_menu, m_item);			break;		    }		}		/* Do it the old way */		if (!tool_is_iconic(tool)) {		    wmgr_close(tool->tl_windowfd, rootfd);		} else {		    wmgr_open(tool->tl_windowfd, rootfd);		}		break;	case UN_OPEN_KEY:		if (tool->tl_menu) {		    /* Use menu to handle both frame and subframe cases */		    Menu_item m_item; caddr_t action;		    m_item = menu_find(tool->tl_menu, MENU_STRING, "Close", 0);		    if (!m_item)			m_item = menu_find(tool->tl_menu, MENU_STRING, "Done", 0);		    if (m_item && (action = menu_get(m_item, MENU_ACTION))) {   			((void (*)())(LINT_CAST(action)))(tool->tl_menu, m_item);			break;		    }		}		/* Do it the old way */		if (!tool_is_iconic(tool))		    wmgr_close(tool->tl_windowfd, rootfd);		break;	/* Note semantics: TOP_KEY is a toggle and UN_TOP_KEY forces bottom */	case TOP_KEY:		if (tool_is_exposed(tool->tl_windowfd))			wmgr_bottom(tool->tl_windowfd, rootfd);		else			wmgr_top(tool->tl_windowfd, rootfd);		break;	case UN_TOP_KEY:		wmgr_bottom(tool->tl_windowfd, rootfd);				break;	case PROPS_KEY:#ifdef GPROF		if (event_ctrl_is_down(event)) {			moncontrol(0);  /* stop collecting  */		} else {			moncontrol(1);  /* start collecting */		}#endif		frame_handle_props(tool);		break;#ifdef DELETE_ACCEL	case DELETE_KEY:		/* ctrl-delete is an accelerator for		 * quit.		 */		if (event_ctrl_is_down(event))			(void)tool_done_with_no_confirm(tool);		else			(void)tool_done(tool);		break;#endif	default: {}	}Done:	/*	 * Done with rootfd	 */	(void)close(rootfd);	return(NOTIFY_DONE);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲精品天堂一级| 欧美性猛交xxxxxx富婆| 一本大道综合伊人精品热热| 欧美一区二区女人| 国产精品乱码一区二区三区软件| 亚洲18女电影在线观看| aa级大片欧美| 久久网这里都是精品| 香港成人在线视频| 99精品久久免费看蜜臀剧情介绍| 日韩久久精品一区| 亚洲国产乱码最新视频| av不卡免费电影| 久久久激情视频| 精品在线播放午夜| 欧美二区在线观看| 一区二区欧美视频| eeuss鲁片一区二区三区在线看| 日韩一区二区三区电影| 五月天久久比比资源色| 欧美在线免费视屏| 亚洲老妇xxxxxx| 色域天天综合网| 中文字幕日韩av资源站| 国产福利不卡视频| 亚洲精品一区二区三区精华液| 日一区二区三区| 欧美日韩综合不卡| 亚洲电影一级片| 在线精品视频小说1| 亚洲综合一区在线| 在线视频一区二区免费| 亚洲一区二区在线视频| 欧美伦理影视网| 亚洲成人综合在线| 欧美精选午夜久久久乱码6080| 亚洲视频中文字幕| 色综合久久久久久久久| 一区二区三区中文字幕电影| 波多野结衣欧美| 亚洲天堂免费在线观看视频| 91黄视频在线观看| 午夜欧美在线一二页| 欧美日韩不卡在线| 男人操女人的视频在线观看欧美| 欧美一区二区三区影视| 美女性感视频久久| 久久久噜噜噜久久中文字幕色伊伊 | 丁香激情综合五月| 国产精品每日更新在线播放网址| 99精品欧美一区二区蜜桃免费| 亚洲免费在线视频一区 二区| 色哟哟日韩精品| 亚洲国产一区二区三区青草影视| 欧美日韩午夜在线| 国内精品视频一区二区三区八戒| 日本一区二区三区国色天香| 色偷偷久久一区二区三区| 三级久久三级久久| 中文成人av在线| 欧美日韩一区二区在线视频| 国产真实乱偷精品视频免| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 精品av综合导航| 高清不卡一区二区| 中文字幕制服丝袜成人av| 一本大道久久a久久综合婷婷| 日韩国产高清影视| 久久精品免费看| 久久嫩草精品久久久久| 顶级嫩模精品视频在线看| 国产精品网站在线观看| 欧美色综合影院| 国产真实乱对白精彩久久| 伊人一区二区三区| 久久久综合九色合综国产精品| 91在线视频网址| 极品美女销魂一区二区三区 | 日韩欧美在线综合网| 成人av电影免费观看| 捆绑调教美女网站视频一区| 免费人成精品欧美精品| 国产米奇在线777精品观看| 欧美一区二区三区视频在线观看| 国产原创一区二区| 亚洲1区2区3区4区| 亚洲免费观看高清在线观看| 欧美极品少妇xxxxⅹ高跟鞋| 国产成人aaa| 久久精品在线免费观看| 91精品国产高清一区二区三区蜜臀 | 97久久久精品综合88久久| 免费精品视频最新在线| 亚洲一区影音先锋| 亚洲天堂a在线| 中文字幕欧美区| 精品国产不卡一区二区三区| 欧美精选午夜久久久乱码6080| 91丨九色丨国产丨porny| 国产精品亚洲一区二区三区妖精 | 国产毛片精品视频| 亚洲影院理伦片| 国产精品你懂的在线欣赏| 欧美xxxx在线观看| 9191成人精品久久| 欧美日韩亚洲国产综合| 91亚洲国产成人精品一区二区三| 粉嫩aⅴ一区二区三区四区| 精品无人码麻豆乱码1区2区 | 91小视频在线| 国产成人在线网站| 国产真实乱对白精彩久久| 久色婷婷小香蕉久久| 美女视频网站黄色亚洲| 日韩在线卡一卡二| 无码av中文一区二区三区桃花岛| 夜夜夜精品看看| 国产精品午夜电影| 中文字幕第一区二区| 成人综合激情网| 成人不卡免费av| 高清日韩电视剧大全免费| 成人一区二区三区视频| 成人蜜臀av电影| 成人av网址在线观看| 99免费精品视频| 一本大道av伊人久久综合| 欧美中文字幕不卡| 国产人成亚洲第一网站在线播放| 91在线视频网址| 免费视频一区二区| 狠狠狠色丁香婷婷综合久久五月| 激情都市一区二区| 成人综合婷婷国产精品久久免费| 成av人片一区二区| 欧美亚洲动漫制服丝袜| 91精品一区二区三区久久久久久 | 美女免费视频一区二区| 精品一区二区三区的国产在线播放 | 欧美高清一级片在线观看| 日韩欧美国产综合| 久久在线观看免费| 欧美韩日一区二区三区| 亚洲午夜精品在线| 久久激情五月激情| 成人性视频免费网站| 欧美综合久久久| 久久久蜜臀国产一区二区| 精品国产在天天线2019| 成人午夜伦理影院| 亚洲高清免费视频| 国产精品久久三区| 免费不卡在线观看| 成人精品小蝌蚪| 欧美日本韩国一区二区三区视频| 精品欧美乱码久久久久久| 亚洲欧美综合色| 免费成人结看片| 91美女福利视频| 精品久久五月天| 亚洲一区二区五区| 国产sm精品调教视频网站| 欧美高清dvd| 综合久久久久久| 激情综合网天天干| 丰满岳乱妇一区二区三区| 久久99久国产精品黄毛片色诱| 粉嫩aⅴ一区二区三区四区| 欧美视频三区在线播放| 国产精品色哟哟网站| 亚洲日本丝袜连裤袜办公室| 精品成人一区二区三区四区| 日韩一区二区在线观看视频| 777久久久精品| 亚洲精品日日夜夜| 国产成人在线观看免费网站| 6080国产精品一区二区| 亚洲人亚洲人成电影网站色| 蜜桃视频在线一区| 欧美巨大另类极品videosbest | 亚洲精品美国一| 成人动漫视频在线| 亚洲精品在线免费播放| 日本视频一区二区| 欧美视频在线播放| 亚洲你懂的在线视频| 国产成人av一区| 久久女同精品一区二区| 经典一区二区三区| 美女在线观看视频一区二区| 日韩久久久久久| 视频一区视频二区中文| 欧美精品在线视频| 久久国产欧美日韩精品| 国产欧美va欧美不卡在线| 日韩成人dvd| 337p日本欧洲亚洲大胆精品| 一区二区三区 在线观看视频| 欧美成人r级一区二区三区| 夜色激情一区二区|