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

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

?? event.c

?? MiniGUI for uCOS 移植實(shí)驗(yàn)全部源碼
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
                    
                case SCANCODE_LEFTSHIFT:
                    shift1 = make;
                    break;
                    
                case SCANCODE_RIGHTSHIFT:
                    shift2 = make;
                    break;
                    
                case SCANCODE_LEFTALT:
                    alt1 = make;
                    break;

                case SCANCODE_RIGHTALT:
                    alt2 = make;
                    break;
                    
            }

            status &= ~(MASK_KS_SHIFTKEYS);

            status |= (DWORD)((capslock << 8) |
                             (numlock << 7)   |
                             (slock << 6)     |
                             (control1 << 5)  |
                             (control2 << 4)  |
                             (alt1 << 3)      |
                             (alt2 << 2)      |
                             (shift1 << 1)    |
                             (shift2));
                             
            // Mouse button status
            if (oldbutton & IAL_MOUSE_LEFTBUTTON)
                status |= KS_LEFTBUTTON;
            else if (oldbutton & IAL_MOUSE_RIGHTBUTTON)
                status |= KS_RIGHTBUTTON;
        }
        ke->status = status;
#ifndef _STAND_ALONE
        SHAREDRES_SHIFTSTATUS = status;
#endif
        memcpy (oldkeystate, keystate, nr_keys);
        memcpy (&old_lwe, lwe, sizeof (LWEVENT));
        return 1;
    } 

    old_lwe.type = 0;
    return 0;

mouseret:
    status &= ~(MASK_KS_BUTTONS);
    oldbutton = button;
    if (oldbutton & IAL_MOUSE_LEFTBUTTON)
        status |= KS_LEFTBUTTON;
    if (oldbutton & IAL_MOUSE_RIGHTBUTTON)
        status |= KS_RIGHTBUTTON;
    me->status = status;
#ifndef _STAND_ALONE
    SHAREDRES_SHIFTSTATUS = status;
#endif
    memcpy (&old_lwe, lwe, sizeof (LWEVENT));
    return 1;
}

#else

BOOL GetLWEvent (int event, PLWEVENT lwe)
{
    static int timeout_count = 0;
    static LWEVENT old_lwe = {0, 0};

    int nr_keys = 0;
    unsigned int interval;
    int button;
    PMOUSEEVENT me = &(lwe->data.me);
    PKEYEVENT ke = &(lwe->data.ke);
    const unsigned char* keystate;
    int i;
    int make;       /* 0 = release, 1 = presse */

    if (event & IAL_MOUSEEVENT) {
        if (!IAL_UpdateMouse ())
            event &= ~IAL_MOUSEEVENT;
    }
    if (event & IAL_KEYEVENT) {
        if ((nr_keys = IAL_UpdateKeyboard ()) == 0)
            event &= ~IAL_KEYEVENT;
    }
    
    if (event == 0) {
        if (__mg_event_timeout.tv_sec == 0 && __mg_event_timeout.tv_usec == 0) {

            // set repeat time
            __mg_event_timeout.tv_sec = 0;
            __mg_event_timeout.tv_usec = repeatusec;

            // repeat last event
            if (old_lwe.type == LWETYPE_KEY 
                    && old_lwe.data.ke.event == KE_KEYDOWN) {
               memcpy (lwe, &old_lwe, sizeof (LWEVENT));
               lwe->data.ke.status |= KE_REPEATED;
               return 1;
            }

            if (!(old_lwe.type == LWETYPE_MOUSE
                    && (old_lwe.data.me.event == ME_LEFTDOWN ||
                        old_lwe.data.me.event == ME_RIGHTDOWN ||
                        old_lwe.data.me.event == ME_MIDDLEDOWN))) {
                // reset delay time
                __mg_event_timeout.tv_sec = 0;
                __mg_event_timeout.tv_usec = timeoutusec;
            }

            lwe->type = LWETYPE_TIMEOUT;
            lwe->count = ++timeout_count;
            return 1;
        }
        old_lwe.type = 0;
        return 0;
    }

    timeout_count = 0;
    // There was a event occurred.
    if (event & IAL_MOUSEEVENT) {
        lwe->type = LWETYPE_MOUSE;
        if (RefreshCursor(&me->x, &me->y, &button)) {

            me->event = ME_MOVED;
            time1 = 0;
            time2 = 0;

            if (oldbutton == button)
                return 1;
        }
   
        if ( !(oldbutton & IAL_MOUSE_LEFTBUTTON) && 
              (button & IAL_MOUSE_LEFTBUTTON) )
        {
            if (time1) {
                interval = __mg_timer_counter - time1;
                if (interval <= dblclicktime)
                    me->event = ME_LEFTDBLCLICK;
                else
                    me->event = ME_LEFTDOWN;
                time1 = 0;
            }
            else {
                time1 = __mg_timer_counter;
                me->event = ME_LEFTDOWN;
            }
            goto mouseret;
        }

        if ( (oldbutton & IAL_MOUSE_LEFTBUTTON) && 
             !(button & IAL_MOUSE_LEFTBUTTON) )
        {
            me->event = ME_LEFTUP;
            goto mouseret;
        }

        if ( !(oldbutton & IAL_MOUSE_RIGHTBUTTON) && 
              (button & IAL_MOUSE_RIGHTBUTTON) )
        {
            if (time2) {
                interval = __mg_timer_counter - time2;
                if (interval <= dblclicktime)
                    me->event = ME_RIGHTDBLCLICK;
                else
                    me->event = ME_RIGHTDOWN;
                time2 = 0;
            }
            else {
                time2 = __mg_timer_counter;
                me->event = ME_RIGHTDOWN;
            }
            goto mouseret;
        }

        if ( (oldbutton & IAL_MOUSE_RIGHTBUTTON) && 
            !(button & IAL_MOUSE_RIGHTBUTTON) )
        {
            me->event = ME_RIGHTUP;
            goto mouseret;
        }
    }

    if (event & IAL_KEYEVENT) {
        lwe->type = LWETYPE_KEY;
        keystate = IAL_GetKeyboardState ();
        for (i = 0; i < nr_keys; i++) {
            if(!oldkeystate[i] && keystate[i]) {
                 ke->event = KE_KEYDOWN;
                 ke->scancode = i;
                 olddownkey = i;
                 break;
            }
            if(oldkeystate[i] && !keystate[i]) {
                 ke->event = KE_KEYUP;
                 ke->scancode = i;
                 break;
            }
        }

        if (i == nr_keys) {
            ke->event = KE_KEYDOWN;
            ke->scancode = olddownkey;
        }
        
        make = (ke->event == KE_KEYDOWN) ? 1 : 0;

        if (i != nr_keys) {
            unsigned leds;

            switch (ke->scancode) {
                case SCANCODE_CAPSLOCK:
                    if (make && caps_off) {
                        capslock = 1 - capslock;
                        leds = slock | (numlock << 1) | (capslock << 2);
                        IAL_SetLeds (leds);
                        status = (DWORD)leds << 16;
                    }
                    caps_off = 1 - make;
                break;
                    
                case SCANCODE_NUMLOCK:
                    if (make && num_off) {
                        numlock = 1 - numlock;
                        leds = slock | (numlock << 1) | (capslock << 2);
                        IAL_SetLeds (leds);
                        status = (DWORD)leds << 16;
                    }
                    num_off = 1 - make;
                break;
                
                case SCANCODE_SCROLLLOCK:
                    if (make & slock_off) {
                        slock = 1 - slock;
                        leds = slock | (numlock << 1) | (capslock << 2);
                        IAL_SetLeds (leds);
                        status = (DWORD)leds << 16;
                    }
                    slock_off = 1 - make;
                    break;

                case SCANCODE_LEFTCONTROL:
                    control1 = make;
                    break;
                    
                case SCANCODE_RIGHTCONTROL:
                    control2 = make;
                    break;
                    
                case SCANCODE_LEFTSHIFT:
                    shift1 = make;
                    break;
                    
                case SCANCODE_RIGHTSHIFT:
                    shift2 = make;
                    break;
                    
                case SCANCODE_LEFTALT:
                    alt1 = make;
                    break;

                case SCANCODE_RIGHTALT:
                    alt2 = make;
                    break;
                    
            }

            status &= ~(MASK_KS_SHIFTKEYS);

            status |= (DWORD)((capslock << 8) |
                             (numlock << 7)   |
                             (slock << 6)     |
                             (control1 << 5)  |
                             (control2 << 4)  |
                             (alt1 << 3)      |
                             (alt2 << 2)      |
                             (shift1 << 1)    |
                             (shift2));
                             
            // Mouse button status
            if (oldbutton & IAL_MOUSE_LEFTBUTTON)
                status |= KS_LEFTBUTTON;
            else if (oldbutton & IAL_MOUSE_RIGHTBUTTON)
                status |= KS_RIGHTBUTTON;
        }
        ke->status = status;
        memcpy (oldkeystate, keystate, nr_keys);
        memcpy (&old_lwe, lwe, sizeof (LWEVENT));
        __mg_event_timeout.tv_sec = 0;
        __mg_event_timeout.tv_usec = timeoutusec;
        return 1;
    } 

    old_lwe.type = 0;
    return 0;

mouseret:
    status &= ~(MASK_KS_BUTTONS);
    oldbutton = button;
    if (oldbutton & IAL_MOUSE_LEFTBUTTON)
        status |= KS_LEFTBUTTON;
    if (oldbutton & IAL_MOUSE_RIGHTBUTTON)
        status |= KS_RIGHTBUTTON;
    me->status = status;
    memcpy (&old_lwe, lwe, sizeof (LWEVENT));
    __mg_event_timeout.tv_sec = 0;
    __mg_event_timeout.tv_usec = timeoutusec;
    return 1;
}
#endif

BOOL GUIAPI GetKeyStatus (UINT uKey)
{
#if defined (_LITE_VERSION) && !defined(_STAND_ALONE)
    if (!mgIsServer) {
        if (uKey & 0xF000)      // this is a mouse key
            return SHAREDRES_BUTTON & (uKey >> 8);
        return 0;
    }
#endif

    if (uKey & 0xF000)      // this is a mouse key
        return oldbutton & (uKey >> 8);
    else if (uKey <= MGUI_NR_KEYS)
        return oldkeystate [uKey];

    return FALSE;
}

DWORD GUIAPI GetShiftKeyStatus (void)
{
#if defined (_LITE_VERSION) && !defined(_STAND_ALONE)
    return SHAREDRES_SHIFTSTATUS;
#else
    return status;
#endif
}

BOOL InitLWEvent (void)
{
    GetDblclickTime ();
    GetTimeout ();

    if (InitIAL ())
        return FALSE;

    ResetMouseEvent();
    ResetKeyEvent();

    return TRUE;
}

void TerminateLWEvent (void)
{
#if 0
    ResetMouseEvent ();
    ResetKeyEvent ();
#endif

    TerminateIAL ();
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一二三四区| 欧美国产日韩a欧美在线观看| 亚洲 欧美综合在线网络| 欧美在线观看视频一区二区| 亚洲综合一区二区精品导航| 欧美日韩你懂得| 免费av成人在线| 精品国产乱码久久久久久影片| 极品销魂美女一区二区三区| 欧美经典一区二区三区| 91丨九色丨黑人外教| 亚洲自拍偷拍图区| 欧美一区二区播放| 国产精品自产自拍| 亚洲色图欧洲色图| 欧美美女网站色| 久久电影网站中文字幕| 中文字幕欧美三区| 91精品福利在线| 免费人成精品欧美精品| 国产欧美一区二区精品性| 91在线码无精品| 丝袜诱惑亚洲看片| 久久久久久亚洲综合| 99国内精品久久| 日韩高清中文字幕一区| 国产午夜精品久久| 欧美亚洲综合在线| 黄页视频在线91| 亚洲日穴在线视频| 欧美一区二区三区喷汁尤物| 国产成人精品综合在线观看 | 日韩精品一二三四| 久久亚洲精品国产精品紫薇| 91丝袜呻吟高潮美腿白嫩在线观看| 婷婷久久综合九色综合绿巨人 | av午夜精品一区二区三区| 亚洲超丰满肉感bbw| 久久久久久久一区| 欧美在线观看一区| 国产精品1区二区.| 亚洲高清视频中文字幕| 久久久久久99久久久精品网站| 91麻豆视频网站| 久久99精品国产91久久来源| ㊣最新国产の精品bt伙计久久| 制服.丝袜.亚洲.另类.中文| 成人免费av资源| 日韩国产欧美在线播放| 国产精品成人网| 日韩亚洲欧美在线| 色88888久久久久久影院按摩| 久久99久久久久久久久久久| 亚洲欧美日韩一区| 久久综合色婷婷| 欧美色图12p| 成人看片黄a免费看在线| 日韩成人精品在线| 亚洲精品视频一区| 国产日韩欧美精品综合| 制服丝袜成人动漫| 91高清视频在线| 丰满白嫩尤物一区二区| 青草国产精品久久久久久| 亚洲免费资源在线播放| www国产精品av| 91麻豆精品国产91久久久久久久久 | 亚洲综合久久av| 国产欧美一区二区三区鸳鸯浴| 91精品国产色综合久久ai换脸 | 欧美日韩国产乱码电影| av在线这里只有精品| 久久精品免费观看| 亚洲成人免费在线观看| 亚洲欧洲精品一区二区三区| 久久日韩粉嫩一区二区三区| 6080国产精品一区二区| 欧美性大战xxxxx久久久| 成人av电影免费观看| 国产一区二区精品久久99| 青青草国产精品97视觉盛宴| 亚洲国产精品人人做人人爽| 亚洲欧美二区三区| 国产精品欧美精品| 久久久久综合网| 亚洲精品一区二区三区香蕉| 91精品国产色综合久久久蜜香臀| 欧美羞羞免费网站| 色呦呦日韩精品| 97se亚洲国产综合自在线观| 风间由美一区二区三区在线观看 | 欧美一区日韩一区| 欧美日韩国产精品自在自线| 色国产综合视频| 99精品久久只有精品| 成人手机电影网| 国产成人一区在线| 国产精品一区免费在线观看| 精品一区二区影视| 久久国产免费看| 麻豆成人免费电影| 久久精品噜噜噜成人88aⅴ| 蜜桃视频在线观看一区| 免费高清视频精品| 激情亚洲综合在线| 看国产成人h片视频| 另类专区欧美蜜桃臀第一页| 免费看日韩精品| 久久精品国产一区二区| 老司机免费视频一区二区三区| 蜜臀av国产精品久久久久| 免费高清成人在线| 激情综合一区二区三区| 精东粉嫩av免费一区二区三区 | 久久成人久久爱| 久久成人免费网站| 国产精品中文有码| 狠狠色丁香久久婷婷综合丁香| 精品一区二区av| 国产在线精品一区在线观看麻豆| 国产一区二区三区视频在线播放| 国产伦精品一区二区三区视频青涩 | 亚洲18影院在线观看| 日韩精品五月天| 美女精品一区二区| 国内精品嫩模私拍在线| 国产成人精品综合在线观看 | 国产精品成人在线观看| 国产精品电影院| 一区二区三区在线影院| 亚洲高清不卡在线观看| 日韩电影一区二区三区| 紧缚捆绑精品一区二区| 成人激情开心网| 色视频成人在线观看免| 欧美日本乱大交xxxxx| 日韩欧美视频在线 | 久久九九影视网| 欧美国产欧美综合| 亚洲精品视频一区| 日本视频免费一区| 国产精品资源在线看| 色偷偷88欧美精品久久久| 欧美日韩国产免费一区二区| 欧美精品一区二区三区视频| 中文欧美字幕免费| 亚洲无线码一区二区三区| 蜜臀精品久久久久久蜜臀| 国产成人精品三级麻豆| 色综合久久久久久久久| 欧美情侣在线播放| 久久人人爽人人爽| 亚洲欧美一区二区不卡| 日本网站在线观看一区二区三区 | 精品粉嫩超白一线天av| 国产精品视频在线看| 一区二区三区免费| 乱中年女人伦av一区二区| 成人深夜福利app| 欧美日韩精品欧美日韩精品| 精品电影一区二区| 亚洲视频图片小说| 蜜臀av一区二区| aaa亚洲精品| 欧美一级日韩免费不卡| 国产精品理论片在线观看| 性欧美疯狂xxxxbbbb| 国产精品中文字幕欧美| 欧美日韩一区二区三区免费看| 精品国产91洋老外米糕| 一区二区三区 在线观看视频| 久久精品理论片| 日本乱人伦aⅴ精品| 久久综合久久鬼色中文字| 亚洲免费观看高清完整版在线| 日本va欧美va精品| 丁香婷婷深情五月亚洲| 91精品一区二区三区在线观看| 日本一区二区三区dvd视频在线| 香蕉成人伊视频在线观看| 丁香五精品蜜臀久久久久99网站 | 国产精品进线69影院| 日韩精品一二区| 91免费国产在线观看| 精品成人一区二区| 亚洲国产你懂的| av成人老司机| 精品1区2区在线观看| 亚洲精品国产无套在线观| 国产一区二区在线电影| 欧美日韩久久一区二区| 欧美国产精品久久| 麻豆精品在线播放| 欧美性猛交xxxxxx富婆| 国产精品网站一区| 蜜臀av性久久久久av蜜臀妖精 | 欧美又粗又大又爽| 国产精品女同一区二区三区| 五月婷婷综合激情| 色偷偷一区二区三区|