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

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

?? client.c

?? 這是針對 Linux (i386)平臺的 minigui 3.6.2 開發包(MiniGUI-Processes 運行模式)。
?? C
?? 第 1 頁 / 共 2 頁
字號:
BOOL remove_layer (MG_Layer* layer){#ifdef _DEBUG    printf ("Remove a layer: %s\n", layer->name);#endif    if (layer->prev)        layer->prev->next = layer->next;    if (layer->next)        layer->next->prev = layer->prev;    if (layer == mgLayers) {        mgLayers = layer->next;    }    // Notify that a layer will be deleted.    if (OnChangeLayer) OnChangeLayer (LCO_DEL_LAYER, layer, NULL);    EmptyClipRgn (layer->spare_rects);    free (layer->spare_rects);    free (layer);    if (mgTopmostLayer != layer)        return FALSE;    // set new topmost layer    mgTopmostLayer = mgLayers;    CHANGE_TOPMOST_LAYER (mgTopmostLayer);    if (mgTopmostLayer) {        MG_Client* client;        MSG msg = {HWND_DESKTOP, MSG_PAINT, 0, 0, __mg_timer_counter};#ifdef _DEBUG        printf ("New topmost layer: %s\n", mgTopmostLayer->name);#endif        client = mgTopmostLayer->cli_head;        while (client) {            my_send2client (&msg, client);            client->last_live_time = __mg_timer_counter;            client = client->next;        }        if (mgTopmostLayer->cli_active) {            MSG msg = {HWND_DESKTOP, MSG_SETFOCUS, 0, 0, __mg_timer_counter};            my_send2client (&msg, mgTopmostLayer->cli_active);        }    }    // Notify that a new topmost layer have been set.    if (OnChangeLayer) OnChangeLayer (LCO_TOPMOST_CHANGED, mgTopmostLayer, NULL);#ifdef _DEBUG    printf ("layer removed\n");#endif    return TRUE;}void set_active_client (MG_Client* client){    MG_Layer* layer;    if (client)        layer = client->layer;    else        layer = mgTopmostLayer;    if (layer == NULL || layer->cli_active == client)        return;    if (layer->cli_active) {        MSG msg = {HWND_DESKTOP, MSG_SETFOCUS, 0, 0, __mg_timer_counter};        my_send2client (&msg, layer->cli_active);    }    // Notify that active client changed.    if (OnChangeLayer) OnChangeLayer (LCO_ACTIVE_CHANGED, layer, client);    layer->cli_active = client;}void client_join_layer (int cli, const JOINLAYERINFO* info, JOINEDCLIENTINFO* joined_info){    PCLIPRECT spare, max = NULL;    RECT tmp;    unsigned int max_area = 0, area;    MG_Layer* layer = (MG_Layer*)(joined_info->layer_handle);    MG_Client* new_client = mgClients + cli;#ifdef _DEBUG    printf ("Join a client (%s) to layer %s\n", info->client_name, layer->name);#endif    strcpy (new_client->name, info->client_name);    SetRectEmpty (&joined_info->desktop_rc);        spare = layer->spare_rects->head;    while (spare) {        if (IntersectRect (&tmp, &info->desktop_rc, &spare->rc)) {            area = (RECTW (tmp) * RECTH (tmp));            if (area > max_area) {                max_area = area;                max = spare;            }        }        spare = spare->next;    }    if (max) {        IntersectRect (&joined_info->desktop_rc, &info->desktop_rc, &max->rc);        SubtractClipRect (layer->spare_rects, &joined_info->desktop_rc);        new_client->layer = layer;        // Notify that a new client joined to this layer.        if (OnChangeLayer) OnChangeLayer (LCO_JOIN_CLIENT, layer, new_client);    }    else {        new_client->layer = NULL;        if (layer->cli_head == NULL)            remove_layer (layer);        return;    }    new_client->prev = NULL;    new_client->next = layer->cli_head;    if (layer->cli_head)        layer->cli_head->prev = new_client;    layer->cli_head = new_client;    set_active_client (new_client);    // set rect of new client    new_client->rc = joined_info->desktop_rc;#ifdef _DEBUG    printf ("Rect of client (%s): (%d, %d, %d, %d)\n",                     new_client->name,                    new_client->rc.left, new_client->rc.top,                    new_client->rc.right, new_client->rc.bottom);#endif    if (layer == mgTopmostLayer) {        // tell desktop to exclude this client from background        SendMessage (HWND_DESKTOP, MSG_NEWCLIENT, (WPARAM)cli, (LPARAM)(&new_client->rc));    }}BOOL is_valid_layer (MG_Layer* layer){    MG_Layer* myLayer;    myLayer = mgLayers;    while (myLayer) {        if (layer == myLayer)            return TRUE;        myLayer = myLayer->next;    }    return FALSE;}/* send message to client(s) */int GUIAPI Send2Client (MSG* msg, int cli){	    int i, n;    MG_Client* client;    if (cli >= 0 && cli < mgClientSize && mgClients [cli].fd != -1) {        return my_send2client (msg, mgClients + cli);    }    else if (cli == CLIENT_ACTIVE) {   /* send to active client */        if (mgTopmostLayer && mgTopmostLayer->cli_active) {            return my_send2client (msg, mgTopmostLayer->cli_active);        }    }    else if (cli == CLIENTS_TOPMOST) {   /* send to topmost clients */        if (mgTopmostLayer) {            client = mgTopmostLayer->cli_head;            while (client) {                if ((n = my_send2client (msg, client)) < 0)                    return n;                client = client->next;            }        }    }    else if (cli == CLIENTS_EXCEPT_TOPMOST) {   /* send to all clients except topmost client */        client = mgClients;        for (i = 0; i < mgClientSize; i++, client++) {            if (client->layer != mgTopmostLayer) {                if ((n = my_send2client (msg, client)) < 0)                    return n;            }        }    }    else if (cli == CLIENTS_ALL) {    /* send to all clients */        client = mgClients;        for (i = 0; i < mgClientSize; i++, client++) {            if ((n = my_send2client (msg, client)) < 0)                return n;        }    }    else        return SOCKERR_INVARG;    return SOCKERR_OK;}BOOL GUIAPI Send2TopMostClients (int iMsg, WPARAM wParam, LPARAM lParam){    MSG msg = {HWND_DESKTOP, iMsg, wParam, lParam, __mg_timer_counter};    if (send2client (&msg, CLIENTS_TOPMOST) < 0)        return FALSE;    return TRUE;}BOOL GUIAPI Send2ActiveClient (int iMsg, WPARAM wParam, LPARAM lParam){    MSG msg = {HWND_DESKTOP, iMsg, wParam, lParam, __mg_timer_counter};    if (send2client (&msg, CLIENT_ACTIVE) < 0)        return FALSE;    return TRUE;}void GUIAPI UpdateTopmostLayer (const RECT* dirty_rc){    MSG msg = {HWND_DESKTOP, MSG_PAINT, 0, 0, __mg_timer_counter};    if (dirty_rc) {        RECT eff_rc;        IntersectRect (&eff_rc, dirty_rc, &g_rcScr);        msg.wParam = MAKELONG (eff_rc.left, eff_rc.top);        msg.lParam = MAKELONG (eff_rc.right, eff_rc.bottom);    }    send2client (&msg, CLIENTS_TOPMOST);}static int onlyme_count = 0;BOOL GUIAPI OnlyMeCanDraw (void){    MG_Client* client;    if (onlyme_count ++)        return TRUE;    CHANGE_TOPMOST_LAYER (NULL);    if (mgTopmostLayer == NULL             || (client = mgTopmostLayer->cli_head) == NULL)        return FALSE;    return TRUE;}BOOL GUIAPI ClientCanDrawNowEx (BOOL bRepaint, const RECT* invrc){    MG_Client* client;    MSG msg = {HWND_DESKTOP, MSG_PAINT, 0, 0, __mg_timer_counter};    if (--onlyme_count)        return TRUE;    if (bRepaint && invrc) {        msg.wParam = MAKELONG (invrc->left, invrc->top);        msg.lParam = MAKELONG (invrc->right, invrc->bottom);    }    CHANGE_TOPMOST_LAYER (mgTopmostLayer);    if (mgTopmostLayer == NULL             || (client = mgTopmostLayer->cli_head) == NULL)        return FALSE;    while (client) {        if (bRepaint) {            my_send2client (&msg, client);        }        client = client->next;    }    return TRUE;}BOOL GUIAPI SetTopMostLayer (MG_Layer* layer){    MG_Client* client;    MSG msg = {HWND_DESKTOP, MSG_PAINT, 0, 0, __mg_timer_counter};    if (layer == mgTopmostLayer)        return FALSE;    mgTopmostLayer = layer;    CHANGE_TOPMOST_LAYER (layer);    client = layer->cli_head;    while (client) {        my_send2client (&msg, client);        client->last_live_time = __mg_timer_counter;        client = client->next;    }    if (layer->cli_active) {        MSG msg = {HWND_DESKTOP, MSG_SETFOCUS, 0, 0, __mg_timer_counter};        my_send2client (&msg, layer->cli_active);    }    SendMessage (HWND_DESKTOP, MSG_TOPMOSTCHANGED, 0, 0);    PostMessage (HWND_DESKTOP, MSG_ERASEDESKTOP, 0, 0);    // Notify that a new topmost layer have been set.    if (OnChangeLayer) OnChangeLayer (LCO_TOPMOST_CHANGED, mgTopmostLayer, NULL);    return TRUE;}BOOL GUIAPI SetTopMostClient (int cli){    if (cli < 0 || cli >= mgClientSize || mgClients [cli].fd == -1)        return FALSE;                     return SetTopMostLayer (mgClients [cli].layer);}int GUIAPI GetClientByPID (int pid){    int i;    for (i = 0; i < mgClientSize; i++) {        if (mgClients[i].pid == pid) {            if (mgClients[i].fd == -1)                return -1;            return i;        }    }    return -1;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕亚洲精品在线观看| 三级欧美韩日大片在线看| 亚洲免费在线电影| 久久不见久久见免费视频1| 99re热这里只有精品免费视频| 久久精品水蜜桃av综合天堂| 夜夜嗨av一区二区三区四季av| 中文字幕av一区二区三区高| 午夜精品一区二区三区电影天堂 | 国产精品色噜噜| 亚洲国产美国国产综合一区二区| 亚洲久草在线视频| 一区二区三区四区不卡视频| 国产麻豆精品在线| 国产成人aaa| 精品黑人一区二区三区久久| 香蕉成人伊视频在线观看| 成人av网址在线| 欧美少妇一区二区| 亚洲日本丝袜连裤袜办公室| 亚洲欧洲综合另类| 日韩电影免费在线| 欧美三级韩国三级日本一级| 中文字幕视频一区| av高清不卡在线| 1000精品久久久久久久久| 国产乱码精品1区2区3区| 精品国产成人系列| 国产一区二区不卡老阿姨| 精品国产麻豆免费人成网站| 麻豆91在线播放| 日韩精品一区二区三区视频在线观看| 国产日韩欧美精品电影三级在线| 亚洲人成网站色在线观看 | 在线综合视频播放| 久久亚洲精品小早川怜子| 精品亚洲国内自在自线福利| 国产 欧美在线| 国产清纯美女被跳蛋高潮一区二区久久w | 91麻豆swag| 日韩欧美123| 国内精品国产成人国产三级粉色 | 国产精品一二一区| 26uuu国产日韩综合| 国内精品免费在线观看| 欧美性感一类影片在线播放| ww亚洲ww在线观看国产| 国产精品一卡二卡| 亚洲欧洲综合另类在线| 在线免费观看日韩欧美| 亚洲成av人**亚洲成av**| 欧美一级二级三级乱码| 久久99精品网久久| 中文字幕欧美一| 精品视频在线看| 久久99精品国产.久久久久| 久久这里只有精品视频网| 岛国精品在线播放| 亚洲18影院在线观看| 日韩精品一区二区三区视频在线观看 | 日韩精品一二区| 精品免费国产二区三区| 成人h动漫精品一区二区| 欧美一区二区高清| 成人精品视频一区二区三区尤物| 日韩午夜在线影院| 99视频在线精品| 久久久噜噜噜久噜久久综合| 首页亚洲欧美制服丝腿| 久久精品视频免费| 欧美日韩久久久一区| 精品亚洲成av人在线观看| 亚洲裸体在线观看| 久久综合色综合88| 欧美午夜精品电影| 国产91精品欧美| 天天综合日日夜夜精品| 国产精品五月天| 精品国产亚洲在线| 欧美午夜在线观看| 不卡高清视频专区| 经典三级一区二区| 日韩成人午夜精品| 亚洲精品大片www| 久久久久久久久久看片| 国产一区二区看久久| 国产亚洲欧美一区在线观看| 欧美日韩中文字幕一区二区| 丁香六月久久综合狠狠色| 美女视频黄频大全不卡视频在线播放| 欧美一级高清片在线观看| 日本高清免费不卡视频| 成人性生交大片免费看在线播放 | 91小视频在线免费看| 国产一区二区三区国产| 日本欧美一区二区三区乱码| 亚洲最大成人网4388xx| 中文字幕 久热精品 视频在线 | 六月丁香婷婷久久| 天堂蜜桃91精品| www国产成人免费观看视频 深夜成人网| 久久精品二区亚洲w码| 亚洲午夜久久久| 亚洲乱码一区二区三区在线观看| 欧美色图一区二区三区| 99久免费精品视频在线观看| 国产综合色视频| 久久精品国产77777蜜臀| 美国毛片一区二区三区| 亚洲最新视频在线播放| 一区二区三区免费看视频| 18欧美亚洲精品| 欧美日韩免费电影| 欧美欧美欧美欧美首页| 欧美日韩国产小视频| 欧美日韩aaaaa| 欧美一级片在线| 91精品国产入口| 精品三级在线看| 91福利区一区二区三区| 91精品福利在线| 欧美日韩中字一区| 欧美一级生活片| 91精品福利在线| 欧美日韩国产电影| 欧美日本视频在线| 成人激情文学综合网| 成人国产精品免费网站| proumb性欧美在线观看| 亚洲18影院在线观看| 蜜桃一区二区三区在线| 国产精品18久久久久久久久 | 亚洲欧美另类综合偷拍| 亚洲午夜电影在线| 久久国产生活片100| 国产精品一区二区你懂的| 亚洲成人av一区| 久久成人av少妇免费| 国产69精品久久99不卡| 蜜桃一区二区三区在线观看| 国产乱子伦视频一区二区三区| 午夜精品在线视频一区| 久草精品在线观看| 天涯成人国产亚洲精品一区av| 自拍偷在线精品自拍偷无码专区| 精品盗摄一区二区三区| 国产精品不卡一区二区三区| 一区二区免费在线| 国产乱码精品一区二区三区忘忧草| 亚洲成人激情社区| 国内偷窥港台综合视频在线播放| 水蜜桃久久夜色精品一区的特点| 亚洲精品国产一区二区三区四区在线| 国产精品乱人伦| 天天综合天天综合色| 亚洲成人免费视| 成人黄色免费短视频| 欧美日韩国产成人在线免费| 国产欧美日韩另类视频免费观看| 久久久亚洲午夜电影| 一区二区三区精密机械公司| 久久国产剧场电影| 美脚の诱脚舐め脚责91| 青青草国产精品亚洲专区无| 视频在线观看91| 99久久er热在这里只有精品66| 国产suv精品一区二区三区| 国产精品一区二区三区网站| 欧美欧美午夜aⅴ在线观看| av一区二区三区| 久久久国产午夜精品| 狠狠久久亚洲欧美| 精品福利一区二区三区免费视频| 欧美专区日韩专区| 国产精品成人一区二区三区夜夜夜| 国产精品卡一卡二| 亚洲精品免费电影| www.成人在线| 久久亚洲二区三区| 国产精品欧美极品| 亚洲精品成人a在线观看| 国产黄色精品网站| 欧美成人综合网站| 丝袜诱惑制服诱惑色一区在线观看 | 精品1区2区3区| 欧美二区乱c少妇| 樱桃国产成人精品视频| 成人精品免费看| 在线精品视频小说1| 国产精品欧美经典| av网站免费线看精品| 国产欧美精品一区二区三区四区 | 久久久青草青青国产亚洲免观| 欧美高清在线一区| 国产精品1024| 久久久久久久久久久久久女国产乱| 国产精品久久久久影院色老大 | 久久国产尿小便嘘嘘| 日韩视频免费直播| 久久国产麻豆精品|