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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? event.c

?? uboot for K9 AT91RM9200 學(xué)習(xí)板
?? C
?? 第 1 頁 / 共 2 頁
字號:
/******************************************************************************                   SciTech Multi-platform Graphics Library**  ========================================================================**    The contents of this file are subject to the SciTech MGL Public*    License Version 1.0 (the "License"); you may not use this file*    except in compliance with the License. You may obtain a copy of*    the License at http://www.scitechsoft.com/mgl-license.txt**    Software distributed under the License is distributed on an*    "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or*    implied. See the License for the specific language governing*    rights and limitations under the License.**    The Original Code is Copyright (C) 1991-1998 SciTech Software, Inc.**    The Initial Developer of the Original Code is SciTech Software, Inc.*    All Rights Reserved.**  ========================================================================** Language:     ANSI C* Environment:  Win32** Description:  Win32 implementation for the SciTech cross platform*               event library.*****************************************************************************//*---------------------------- Global Variables ---------------------------*/static ushort   keyUpMsg[256] = {0};    /* Table of key up messages     */static int      rangeX,rangeY;          /* Range of mouse coordinates   *//*---------------------------- Implementation -----------------------------*//* These are not used under Win32 */#define _EVT_disableInt()       1#define _EVT_restoreInt(flags)  (void)(flags)/****************************************************************************PARAMETERS:scanCode    - Scan code to testREMARKS:This macro determines if a specified key is currently down at thetime that the call is made.****************************************************************************/#define _EVT_isKeyDown(scanCode)    (keyUpMsg[scanCode] != 0)/****************************************************************************REMARKS:This function is used to return the number of ticks since systemstartup in milliseconds. This should be the same value that is placed intothe time stamp fields of events, and is used to implement auto mouse downevents.****************************************************************************/ulong _EVT_getTicks(void){ return timeGetTime(); }/****************************************************************************REMARKS:Pumps all messages in the message queue from Win32 into our event queue.****************************************************************************/void _EVT_pumpMessages(void){    MSG     msg;    MSG     charMsg;    event_t evt;    /* TODO: Add support for DirectInput! We can't support relative mouse */    /*       movement motion counters without DirectInput ;-(. */    while (PeekMessage(&msg,NULL,0,0,PM_REMOVE)) {	memset(&evt,0,sizeof(evt));	switch (msg.message) {	    case WM_MOUSEMOVE:		evt.what = EVT_MOUSEMOVE;		break;	    case WM_LBUTTONDBLCLK:		evt.what = EVT_MOUSEDOWN;		evt.message = EVT_LEFTBMASK | EVT_DBLCLICK;		break;	    case WM_LBUTTONDOWN:		evt.what = EVT_MOUSEDOWN;		evt.message = EVT_LEFTBMASK;		break;	    case WM_LBUTTONUP:		evt.what = EVT_MOUSEUP;		evt.message = EVT_LEFTBMASK;		break;	    case WM_RBUTTONDBLCLK:		evt.what = EVT_MOUSEDOWN | EVT_DBLCLICK;		evt.message = EVT_RIGHTBMASK;		break;	    case WM_RBUTTONDOWN:		evt.what = EVT_MOUSEDOWN;		evt.message = EVT_RIGHTBMASK;		break;	    case WM_RBUTTONUP:		evt.what = EVT_MOUSEUP;		evt.message = EVT_RIGHTBMASK;		break;	    case WM_MBUTTONDBLCLK:		evt.what = EVT_MOUSEDOWN | EVT_DBLCLICK;		evt.message = EVT_MIDDLEBMASK;		break;	    case WM_MBUTTONDOWN:		evt.what = EVT_MOUSEDOWN;		evt.message = EVT_MIDDLEBMASK;		break;	    case WM_MBUTTONUP:		evt.what = EVT_MOUSEUP;		evt.message = EVT_MIDDLEBMASK;		break;	    case WM_KEYDOWN:	    case WM_SYSKEYDOWN:		if (HIWORD(msg.lParam) & KF_REPEAT) {		    evt.what = EVT_KEYREPEAT;		    }		else {		    evt.what = EVT_KEYDOWN;		    }		break;	    case WM_KEYUP:	    case WM_SYSKEYUP:		evt.what = EVT_KEYUP;		break;	    }	/* Convert mouse event modifier flags */	if (evt.what & EVT_MOUSEEVT) {	    if (_PM_deskX) {		evt.where_x = ((long)msg.pt.x * rangeX) / _PM_deskX;		evt.where_y = ((long)msg.pt.y * rangeY) / _PM_deskY;		}	    else {		ScreenToClient(_PM_hwndConsole, &msg.pt);		evt.where_x = msg.pt.x;		evt.where_y = msg.pt.y;		}	    if (evt.what == EVT_MOUSEMOVE) {		/* Save the current mouse position */		EVT.mx = evt.where_x;		EVT.my = evt.where_y;		if (EVT.oldMove != -1) {		    EVT.evtq[EVT.oldMove].where_x = evt.where_x;/* Modify existing one  */		    EVT.evtq[EVT.oldMove].where_y = evt.where_y;/*                  EVT.evtq[EVT.oldMove].relative_x += mickeyX;    // TODO! *//*                  EVT.evtq[EVT.oldMove].relative_y += mickeyY;    // TODO! */		    evt.what = 0;		    }		else {		    EVT.oldMove = EVT.freeHead; /* Save id of this move event   *//*                  evt.relative_x = mickeyX;    // TODO! *//*                  evt.relative_y = mickeyY;    // TODO! */		    }		}	    else		EVT.oldMove = -1;	    if (msg.wParam & MK_LBUTTON)		evt.modifiers |= EVT_LEFTBUT;	    if (msg.wParam & MK_RBUTTON)		evt.modifiers |= EVT_RIGHTBUT;	    if (msg.wParam & MK_MBUTTON)		evt.modifiers |= EVT_MIDDLEBUT;	    if (msg.wParam & MK_SHIFT)		evt.modifiers |= EVT_SHIFTKEY;	    if (msg.wParam & MK_CONTROL)		evt.modifiers |= EVT_CTRLSTATE;	    }	/* Convert keyboard codes */	TranslateMessage(&msg);	if (evt.what & EVT_KEYEVT) {	    int scanCode = (msg.lParam >> 16) & 0xFF;	    if (evt.what == EVT_KEYUP) {		/* Get message for keyup code from table of cached down values */		evt.message = keyUpMsg[scanCode];		keyUpMsg[scanCode] = 0;		}	    else {		if (PeekMessage(&charMsg,NULL,WM_CHAR,WM_CHAR,PM_REMOVE))		    evt.message = charMsg.wParam;		if (PeekMessage(&charMsg,NULL,WM_SYSCHAR,WM_SYSCHAR,PM_REMOVE))		    evt.message = charMsg.wParam;		evt.message |= ((msg.lParam >> 8) & 0xFF00);		keyUpMsg[scanCode] = (ushort)evt.message;		}	    if (evt.what == EVT_KEYREPEAT)		evt.message |= (msg.lParam << 16);	    if (HIWORD(msg.lParam) & KF_ALTDOWN)		evt.modifiers |= EVT_ALTSTATE;	    if (GetKeyState(VK_SHIFT) & 0x8000U)		evt.modifiers |= EVT_SHIFTKEY;	    if (GetKeyState(VK_CONTROL) & 0x8000U)		evt.modifiers |= EVT_CTRLSTATE;	    EVT.oldMove = -1;	    }	if (evt.what != 0) {	    /* Add time stamp and add the event to the queue */	    evt.when = msg.time;	    if (EVT.count < EVENTQSIZE)		addEvent(&evt);	    }	DispatchMessage(&msg);	}}/****************************************************************************REMARKS:This macro/function is used to converts the scan codes reported by thekeyboard to our event libraries normalised format. We only have one scancode for the 'A' key, and use shift modifiers to determine if it is aCtrl-F1, Alt-F1 etc. The raw scan codes from the keyboard work this way,but the OS gives us 'cooked' scan codes, we have to translate them backto the raw format.****************************************************************************/#define _EVT_maskKeyCode(evt)/****************************************************************************REMARKS:Safely abort the event module upon catching a fatal error.****************************************************************************/void _EVT_abort(    int signal){    (void)signal;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品色一区二区三区| 蜜臀久久99精品久久久画质超高清 | 91美女在线观看| 欧美电影影音先锋| 亚洲天天做日日做天天谢日日欢| 亚洲成a人v欧美综合天堂下载| 国产丶欧美丶日本不卡视频| 欧美色区777第一页| 国产精品网站在线观看| 久久精品国产免费| 欧美日韩国产另类不卡| 中文字幕一区免费在线观看| 久久99九九99精品| 欧美精品一卡二卡| 亚洲欧洲日韩一区二区三区| 国产麻豆精品在线观看| 日韩三级精品电影久久久| 亚洲综合激情小说| 色婷婷亚洲综合| 中文字幕制服丝袜成人av| 国产一区二区不卡| 2020国产精品久久精品美国| 日本午夜一区二区| 91精品综合久久久久久| 亚洲成人免费视频| 欧美四级电影网| 亚洲综合在线第一页| 日本韩国欧美在线| 亚洲精品高清视频在线观看| 99精品视频在线观看免费| 国产精品免费看片| 91最新地址在线播放| 国产精品免费久久久久| 99久久国产综合精品色伊| 最新热久久免费视频| 成人夜色视频网站在线观看| 国产亚洲一区字幕| 成人激情小说乱人伦| 亚洲欧洲在线观看av| 色婷婷综合久久久中文字幕| 一区二区三区在线视频免费| 日本高清不卡aⅴ免费网站| 亚洲一区二区偷拍精品| 欧美日韩不卡一区二区| 日本中文字幕一区二区视频| 欧美一区中文字幕| 奇米在线7777在线精品| 精品捆绑美女sm三区| 国产精品影音先锋| 亚洲欧洲一区二区在线播放| 91福利国产成人精品照片| 亚洲国产另类av| 欧美一级视频精品观看| 九九国产精品视频| 国产日韩欧美不卡在线| 日本精品一区二区三区四区的功能| 亚洲综合无码一区二区| 日韩视频在线你懂得| 国产二区国产一区在线观看| 国产精品成人网| 欧美美女喷水视频| 国产九九视频一区二区三区| 国产精品乱人伦| 欧美色电影在线| 国产精品资源网站| 亚洲一区二区三区四区五区黄| 日韩欧美国产精品一区| eeuss影院一区二区三区| 午夜视频一区二区三区| 久久奇米777| 欧美午夜免费电影| 国产成人在线视频免费播放| 亚洲欧美另类久久久精品2019| 在线不卡的av| 99综合电影在线视频| 日韩精品亚洲一区二区三区免费| 久久精品亚洲乱码伦伦中文 | 国产在线不卡一区| 亚洲欧美日韩在线| 精品福利av导航| 91女厕偷拍女厕偷拍高清| 三级一区在线视频先锋| 一区视频在线播放| 亚洲精品一区二区三区在线观看 | 国产资源在线一区| 亚洲午夜久久久| 国产精品人妖ts系列视频| 日韩视频免费观看高清在线视频| 91亚洲精品久久久蜜桃| 国内精品久久久久影院一蜜桃| 一区二区三区中文字幕精品精品| 国产日产欧产精品推荐色| 欧美男男青年gay1069videost| 成人一道本在线| 国产一区二区三区在线观看精品| 亚洲1区2区3区视频| 国产精品成人一区二区三区夜夜夜| 欧美zozozo| 欧美日韩成人在线一区| 色狠狠综合天天综合综合| 国产成人免费xxxxxxxx| 另类调教123区| 婷婷成人综合网| 亚洲欧美激情小说另类| 国产精品国产三级国产aⅴ无密码| 久久影院视频免费| 欧美一级欧美一级在线播放| 日本高清视频一区二区| 一本大道久久a久久综合婷婷| 国产宾馆实践打屁股91| 国产老女人精品毛片久久| 美腿丝袜亚洲色图| 日韩av在线发布| 奇米色777欧美一区二区| 亚洲高清在线视频| 视频一区在线播放| 亚洲r级在线视频| 天堂资源在线中文精品| 午夜国产精品影院在线观看| 亚洲综合区在线| 亚洲成人av一区二区| 日韩二区三区四区| 麻豆精品一区二区三区| 免费在线视频一区| 久久97超碰色| 国产伦精品一区二区三区免费迷| 精品伊人久久久久7777人| 国产在线日韩欧美| 国产成人综合在线| eeuss鲁一区二区三区| 91丝袜美腿高跟国产极品老师 | 成人免费的视频| 不卡的电影网站| 欧美在线看片a免费观看| 欧美日韩一区视频| 欧美成人国产一区二区| 久久久99免费| 最新欧美精品一区二区三区| 亚洲综合无码一区二区| 日本欧美加勒比视频| 国产成人亚洲综合色影视| 成人avav在线| 欧美色男人天堂| 2023国产精华国产精品| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 粉嫩av一区二区三区粉嫩 | 激情亚洲综合在线| 成人app软件下载大全免费| 欧美在线999| 久久久综合视频| 一区二区三区在线影院| 极品瑜伽女神91| 色狠狠色狠狠综合| 精品国一区二区三区| 中文字幕制服丝袜成人av| 日韩中文欧美在线| 国产99久久久久久免费看农村| 欧美综合亚洲图片综合区| 欧美电视剧在线观看完整版| 中文字幕精品在线不卡| 日韩av电影免费观看高清完整版 | 日韩欧美一区二区久久婷婷| 亚洲国产精品黑人久久久| 亚洲国产成人91porn| 国产成人av一区二区三区在线观看| 在线中文字幕一区二区| 国产午夜一区二区三区| 一区二区三区成人| 国产成人亚洲综合a∨猫咪| 欧美日本高清视频在线观看| 国产亚洲欧美一区在线观看| 水野朝阳av一区二区三区| 99精品视频在线播放观看| 欧美成人精品高清在线播放| 亚洲国产一二三| 99re视频精品| 国产女人18毛片水真多成人如厕| 视频一区二区不卡| 欧美无人高清视频在线观看| 国产精品久久久久永久免费观看 | 久久久影院官网| 青青草精品视频| 欧美日韩一区二区电影| 国产精品久久久久三级| 国产伦精品一区二区三区免费| 欧美高清www午色夜在线视频| 亚洲女爱视频在线| 99久久99久久综合| 国产精品欧美一区喷水| 成人午夜碰碰视频| 国产亚洲婷婷免费| 国产激情一区二区三区| 久久精品欧美一区二区三区麻豆| 久久国产精品99精品国产| 555www色欧美视频| 三级一区在线视频先锋| 欧美日韩国产在线观看| 亚洲成a人片综合在线| 在线观看欧美黄色| 亚洲一区二区av电影|