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

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

?? client.c

?? miniucgui1.30版本的源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
    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;}BOOL GUIAPI SetClientScreen (int lx, int ty, int rx, int by){    MG_Client* client;    MSG msg = {HWND_DESKTOP, MSG_PAINT, 0, 0, __mg_timer_counter};    RECT new_rc = {lx, ty, rx, by};    RECT old_rc;    if (!IntersectRect (&new_rc, &new_rc, &g_rcScr))        return FALSE;    old_rc.left = SHAREDRES_CLI_SCR_LX;    old_rc.top = SHAREDRES_CLI_SCR_TY;    old_rc.right = SHAREDRES_CLI_SCR_RX;    old_rc.bottom = SHAREDRES_CLI_SCR_BY;    SET_CLIENT_SCREEN (new_rc);    if (mgTopmostLayer == NULL             || (client = mgTopmostLayer->cli_head) == NULL)        return TRUE;    while (client) {        if (!IsCovered (&new_rc, &old_rc))             my_send2client (&msg, client);        client = client->next;    }    return TRUE;}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一区二区三区免费野_久草精品视频
亚洲成av人片在www色猫咪| 久久不见久久见中文字幕免费| 国产精品影视天天线| 91精品国产综合久久福利| 亚洲精品成人天堂一二三| 成人网男人的天堂| 国产日韩一级二级三级| 亚洲一区二区精品3399| 色婷婷激情一区二区三区| 国产精品丝袜在线| av在线一区二区| 亚洲日本成人在线观看| 精品视频1区2区| 精品一区二区在线播放| 中文字幕一区av| 精品视频123区在线观看| 美国精品在线观看| 国产精品美女久久久久高潮| 色狠狠色噜噜噜综合网| 亚洲成人免费视| 精品国产1区二区| 一本久久a久久精品亚洲| 免费在线看一区| 中文字幕一区在线观看视频| 欧美日韩一区中文字幕| 国产麻豆视频一区二区| 亚洲精品视频免费看| 日韩精品一区在线观看| av午夜精品一区二区三区| 午夜精品福利一区二区蜜股av| 欧美tickling挠脚心丨vk| 成人福利视频网站| 日韩精品午夜视频| 亚洲欧洲一区二区在线播放| 欧美一区二区三区男人的天堂| 粉嫩久久99精品久久久久久夜| 偷拍亚洲欧洲综合| 爽爽淫人综合网网站| 精品少妇一区二区三区视频免付费| 国产精品一二一区| 亚洲国产你懂的| 久久女同互慰一区二区三区| 亚洲线精品一区二区三区| 国产激情一区二区三区四区| 一区二区免费看| 国产日韩欧美制服另类| 欧美老女人第四色| 99国产一区二区三精品乱码| 国产一区二区三区在线观看免费 | 欧美精品第一页| 99视频精品免费视频| 国产在线国偷精品产拍免费yy| 伊人色综合久久天天| 日本一区二区视频在线观看| 日韩一区二区中文字幕| 91福利社在线观看| eeuss鲁一区二区三区| 国内成人免费视频| 蜜臀久久久99精品久久久久久| 亚洲欧美日韩国产综合在线| 久久久精品蜜桃| 日韩欧美国产wwwww| 欧美日韩一二三| 欧美性淫爽ww久久久久无| 亚洲丶国产丶欧美一区二区三区| 欧美一区二区三区在线看| 色欧美片视频在线观看| 福利电影一区二区| 国产一区二区在线观看视频| 日韩中文字幕麻豆| 天天色综合天天| 亚洲一区二区在线视频| 一区二区三区四区av| 亚洲美女区一区| 亚洲视频狠狠干| 亚洲美女屁股眼交| 一区二区三区欧美| 亚洲黄色在线视频| 一区二区三区在线免费播放| 亚洲欧美电影一区二区| 亚洲黄色小说网站| 亚洲成在人线在线播放| 亚洲一区二区av电影| 亚洲图片欧美综合| 亚洲第一福利一区| 视频在线在亚洲| 性做久久久久久免费观看欧美| 亚洲国产成人av网| 亚洲国产视频一区二区| 亚洲一区二区三区自拍| 亚洲成人一区在线| 美腿丝袜亚洲综合| 国产一区二区三区四区五区入口 | 中文字幕一区二区视频| 最新日韩在线视频| 亚洲综合色区另类av| 日韩电影在线观看电影| 捆绑调教一区二区三区| 国产成人av一区| 91免费国产在线观看| 欧美系列在线观看| 日韩视频一区二区三区| 国产香蕉久久精品综合网| 中文字幕一区二区三区精华液| 夜夜揉揉日日人人青青一国产精品| 视频一区视频二区中文| 国产一区二区在线视频| 色综合久久天天| 91精品蜜臀在线一区尤物| 久久精品亚洲精品国产欧美| 亚洲视频资源在线| 日本aⅴ亚洲精品中文乱码| 国产精品亚洲午夜一区二区三区| 一本久久综合亚洲鲁鲁五月天| 91精品国产91久久综合桃花| 欧美国产一区在线| 香蕉加勒比综合久久 | 国产精品一区二区免费不卡 | 国内久久精品视频| 91丨porny丨首页| 日韩欧美中文一区二区| 中文字幕视频一区二区三区久| 五月婷婷综合网| 成人免费毛片aaaaa**| 欧美日本一区二区| 国产精品看片你懂得| 日韩精品亚洲专区| 91视频在线观看免费| 精品sm在线观看| 亚洲在线成人精品| 国产一区二区三区免费播放| 日本道色综合久久| 精品国产乱码久久久久久夜甘婷婷 | 亚洲女厕所小便bbb| av午夜精品一区二区三区| 精品剧情在线观看| 91极品美女在线| 一区二区三区四区高清精品免费观看| 欧美日韩免费一区二区三区| 成人美女在线视频| 欧美一二三四区在线| 亚洲欧洲日韩在线| 激情久久久久久久久久久久久久久久| 91在线精品一区二区三区| 欧美一区永久视频免费观看| 亚洲精品乱码久久久久久| 国产乱子轮精品视频| 欧美一区二区免费观在线| 亚洲精品国产第一综合99久久| 国产91在线看| 久久久不卡影院| 美女网站在线免费欧美精品| 欧美日韩久久久| 洋洋成人永久网站入口| 不卡的电影网站| 国产日韩视频一区二区三区| 精品一区二区三区的国产在线播放| 欧美午夜理伦三级在线观看| 亚洲欧洲精品一区二区三区| 国产精品色在线观看| 日本精品一级二级| 国产农村妇女毛片精品久久麻豆 | 国产制服丝袜一区| 日韩精品一区二区在线观看| 一片黄亚洲嫩模| 色综合久久久久| 亚洲色图19p| av不卡一区二区三区| 国产精品久久影院| 粉嫩aⅴ一区二区三区四区 | 日韩电影一二三区| 91精品国产aⅴ一区二区| 日本中文一区二区三区| 欧美日韩夫妻久久| 日韩电影网1区2区| 欧美成人一区二区三区| 国产一区二区中文字幕| 久久久.com| 成人精品在线视频观看| 国产精品女主播av| 91啪九色porn原创视频在线观看| 亚洲丝袜美腿综合| 欧美手机在线视频| 日韩电影一区二区三区| 2014亚洲片线观看视频免费| 国产精品99久| 国产精品久久久久影院亚瑟| 99精品视频一区二区三区| 亚洲裸体xxx| 欧美午夜精品免费| 日本成人在线看| 国产三级久久久| 在线观看一区日韩| 日韩福利电影在线| 日本一区二区三区免费乱视频| 99精品一区二区| 免费看日韩精品| 国产精品无圣光一区二区| 欧美综合欧美视频| 精品在线一区二区三区|