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

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

?? rect.c

?? linux下的圖形界面開發minigui最新源代碼
?? C
字號:
/*** $Id: rect.c,v 1.4 2003/09/04 06:02:53 weiym Exp $**** rect.c: Rectangle operations of GDI.**** Copyright (C) 2003 Feynman Software** Copyright (C) 2001 ~ 2002 Wei Yongming.**** Current maintainer: Wei Yongming.**** Create date: 2000/06/12, derived from original gdi.c*//*** This program is free software; you can redistribute it and/or modify** it under the terms of the GNU General Public License as published by** the Free Software Foundation; either version 2 of the License, or** (at your option) any later version.**** This program is distributed in the hope that it will be useful,** but WITHOUT ANY WARRANTY; without even the implied warranty of** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the** GNU General Public License for more details.**** You should have received a copy of the GNU General Public License** along with this program; if not, write to the Free Software** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*//*** TODO:*/#include <stdio.h>#include <stdlib.h>#include <string.h>#include "common.h"/**************************** Rectangle support ******************************/BOOL GUIAPI IsRectEmpty(const RECT* prc){    if( prc->left == prc->right ) return TRUE;    if( prc->top == prc->bottom ) return TRUE;    return FALSE;}BOOL GUIAPI EqualRect(const RECT* prc1, const RECT* prc2){    if(prc1->left != prc2->left) return FALSE;    if(prc1->top != prc2->top) return FALSE;    if(prc1->right != prc2->right) return FALSE;    if(prc1->bottom != prc2->bottom) return FALSE;    return TRUE;}void GUIAPI NormalizeRect(RECT* pRect){    int iTemp;    if(pRect->left > pRect->right)    {         iTemp = pRect->left;         pRect->left = pRect->right;         pRect->right = iTemp;    }    if(pRect->top > pRect->bottom)    {         iTemp = pRect->top;         pRect->top = pRect->bottom;         pRect->bottom = iTemp;    }}BOOL GUIAPI IsCovered(const RECT* prc1, const RECT* prc2){    if (prc1->left < prc2->left            || prc1->top < prc2->top            || prc1->right > prc2->right            || prc1->bottom > prc2->bottom)        return FALSE;    return TRUE;}BOOL GUIAPI IntersectRect(RECT* pdrc, const RECT* psrc1, const RECT* psrc2){    pdrc->left = (psrc1->left > psrc2->left) ? psrc1->left : psrc2->left;    pdrc->top  = (psrc1->top > psrc2->top) ? psrc1->top : psrc2->top;    pdrc->right = (psrc1->right < psrc2->right) ? psrc1->right : psrc2->right;    pdrc->bottom = (psrc1->bottom < psrc2->bottom)                    ? psrc1->bottom : psrc2->bottom;    if(pdrc->left >= pdrc->right || pdrc->top >= pdrc->bottom)        return FALSE;    return TRUE;}BOOL GUIAPI DoesIntersect (const RECT* psrc1, const RECT* psrc2){    int left, top, right, bottom;        left = (psrc1->left > psrc2->left) ? psrc1->left : psrc2->left;    top  = (psrc1->top > psrc2->top) ? psrc1->top : psrc2->top;    right = (psrc1->right < psrc2->right) ? psrc1->right : psrc2->right;    bottom = (psrc1->bottom < psrc2->bottom)                    ? psrc1->bottom : psrc2->bottom;    if(left >= right || top >= bottom)        return FALSE;    return TRUE;}BOOL GUIAPI UnionRect(RECT* pdrc, const RECT* psrc1, const RECT* psrc2){    RECT src1, src2;    memcpy(&src1, psrc1, sizeof(RECT));    memcpy(&src2, psrc2, sizeof(RECT));    NormalizeRect(&src1);    NormalizeRect(&src2);    if (src1.left == src2.left         && src1.right == src2.right) {        if (src1.top <= src2.top && src2.top <= src1.bottom) {            pdrc->left = src1.left;            pdrc->right = src1.right;            pdrc->top = src1.top;            pdrc->bottom = MAX(src1.bottom, src2.bottom);            return TRUE;        }        else if (src1.top >= src2.top && src2.bottom >= src1.top) {            pdrc->left = src1.left;            pdrc->right = src1.right;            pdrc->top = src2.top;            pdrc->bottom = MAX(src1.bottom, src2.bottom);            return TRUE;       }       return FALSE;    }    if (src1.top == src2.top         && src1.bottom == src2.bottom) {        if (src1.left <= src2.left && src2.left <= src1.right) {            pdrc->top = src1.top;            pdrc->bottom = src1.bottom;            pdrc->left = src1.left;            pdrc->right = MAX(src1.right, src2.right);            return TRUE;        }        else if (src1.left >= src2.left && src2.right >= src1.left) {            pdrc->top = src1.top;            pdrc->bottom = src1.bottom;            pdrc->left = src2.left;            pdrc->right = MAX(src1.right, src2.right);            return TRUE;       }       return FALSE;    }    return FALSE;}void GUIAPI GetBoundRect(PRECT pdrc,  const RECT* psrc1, const RECT* psrc2){    RECT src1, src2;    memcpy(&src1, psrc1, sizeof(RECT));    memcpy(&src2, psrc2, sizeof(RECT));    NormalizeRect(&src1);    NormalizeRect(&src2);    pdrc->left = (src1.left < src2.left) ? src1.left : src2.left;    pdrc->top  = (src1.top < src2.top) ? src1.top : src2.top;    pdrc->right = (src1.right > src2.right) ? src1.right : src2.right;    pdrc->bottom = (src1.bottom > src2.bottom)                    ? src1.bottom : src2.bottom;}int GUIAPI SubtractRect(RECT* rc, const RECT* psrc1, const RECT* psrc2){    RECT src, rcExpect, *prcExpect;    int nCount = 0;        src = *psrc1;    rcExpect = *psrc2;    prcExpect = &rcExpect;    if (!DoesIntersect (&src, prcExpect)) {        nCount = 1;        rc[0] = src;    }    else {        if(prcExpect->top > src.top)        {            rc[nCount].left  = src.left;            rc[nCount].top   = src.top;            rc[nCount].right = src.right;            rc[nCount].bottom = prcExpect->top;            nCount++;            src.top = prcExpect->top;        }        if(prcExpect->bottom < src.bottom)        {            rc[nCount].top  = prcExpect->bottom;            rc[nCount].left   = src.left;            rc[nCount].right = src.right;            rc[nCount].bottom = src.bottom;            nCount++;            src.bottom = prcExpect->bottom;        }        if(prcExpect->left > src.left)        {            rc[nCount].left  = src.left;            rc[nCount].top   = src.top;            rc[nCount].right = prcExpect->left;            rc[nCount].bottom = src.bottom;            nCount++;        }        if(prcExpect->right < src.right)        {            rc[nCount].left  = prcExpect->right;            rc[nCount].top   = src.top;            rc[nCount].right = src.right;            rc[nCount].bottom = src.bottom;            nCount++;        }    }    return nCount;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97se亚洲国产综合自在线观| 国产乱理伦片在线观看夜一区| 欧美久久久久免费| eeuss鲁一区二区三区| 国产在线一区观看| 另类专区欧美蜜桃臀第一页| 捆绑调教一区二区三区| 麻豆专区一区二区三区四区五区| 天天影视涩香欲综合网 | 老汉av免费一区二区三区| 天天爽夜夜爽夜夜爽精品视频| 香蕉久久一区二区不卡无毒影院 | 在线播放亚洲一区| 欧美v亚洲v综合ⅴ国产v| 欧美久久一二三四区| 日韩一级视频免费观看在线| 久久综合久久综合久久| 国产亚洲成年网址在线观看| 欧美国产亚洲另类动漫| 亚洲美女一区二区三区| 欧美a级一区二区| 国产精品一区二区久久不卡| caoporn国产精品| 欧美在线色视频| 日韩欧美一区二区久久婷婷| 国产日韩亚洲欧美综合| 日韩一区中文字幕| 日本中文字幕一区二区视频 | 1024亚洲合集| 午夜不卡在线视频| 国内外精品视频| proumb性欧美在线观看| 欧美欧美欧美欧美首页| 欧美精品一区二区不卡| 亚洲视频一区二区在线| 日本视频中文字幕一区二区三区| 在线播放国产精品二区一二区四区| 成人av在线播放网站| 欧美性大战久久| 欧美精品一区二区三区视频| 亚洲青青青在线视频| 久久99精品国产麻豆不卡| 91在线观看免费视频| 91精品国产乱码| 亚洲免费观看高清完整版在线| 久久精品久久久精品美女| 99视频有精品| 久久久高清一区二区三区| 一区二区三区自拍| 国产精品亚洲专一区二区三区| 欧美三级日韩三级| 亚洲欧美中日韩| 丁香一区二区三区| 欧美r级在线观看| 午夜日韩在线观看| 99久久精品费精品国产一区二区| 日韩精品一区二区三区视频| 一区二区三区欧美| www.日本不卡| 欧美激情一区二区三区四区| 麻豆成人91精品二区三区| 欧美丝袜丝交足nylons| 亚洲色图第一区| 成人av资源下载| 中文字幕精品一区| 国产精品一区二区黑丝| 久久综合久久综合久久综合| 久久综合综合久久综合| 欧美另类久久久品| 午夜日韩在线电影| 欧美日产在线观看| 亚洲一区二区三区在线看| 97se亚洲国产综合自在线不卡| 中文字幕不卡三区| 不卡区在线中文字幕| 日本一区二区动态图| 国产.精品.日韩.另类.中文.在线.播放 | 色激情天天射综合网| 国产精品美女久久久久久久网站| 国产成a人亚洲| 久久久久久久久久电影| 粉嫩av一区二区三区在线播放 | 一区二区高清在线| 在线看国产日韩| 亚洲国产va精品久久久不卡综合| 欧美三级日韩三级| 奇米影视一区二区三区小说| 欧美videos大乳护士334| 久久国产精品免费| 中文字幕av在线一区二区三区| 国产精品911| 综合在线观看色| 欧美少妇性性性| 免费观看久久久4p| 欧美国产乱子伦| 91精彩视频在线观看| 午夜精品视频一区| 久久综合成人精品亚洲另类欧美 | 26uuu国产一区二区三区| 狠狠色伊人亚洲综合成人| 国产女人aaa级久久久级| av在线播放不卡| 午夜视频在线观看一区二区 | 波多野结衣中文字幕一区| 亚洲六月丁香色婷婷综合久久| 欧美日韩一区中文字幕| 蜜桃91丨九色丨蝌蚪91桃色| 欧美韩国日本不卡| 欧美另类一区二区三区| 国产91在线观看| 偷拍一区二区三区四区| 国产欧美日韩视频在线观看| 欧美三级日韩三级| 国产91对白在线观看九色| 亚洲一区日韩精品中文字幕| 精品sm捆绑视频| 欧美性videosxxxxx| 国产精品羞羞答答xxdd| 亚洲午夜久久久久久久久电影网 | 99综合影院在线| 日本不卡视频在线| 亚洲精品视频一区| 国产欧美精品一区| 欧美一级一区二区| 色爱区综合激月婷婷| 国产一区二区福利视频| 亚洲高清三级视频| 亚洲日穴在线视频| 26uuu亚洲综合色欧美| 欧美日韩精品高清| 日本韩国视频一区二区| 福利一区二区在线| 久草中文综合在线| 日韩精品一级中文字幕精品视频免费观看 | 久久天堂av综合合色蜜桃网| 欧美日韩一区国产| 91亚洲大成网污www| 国产91精品精华液一区二区三区| 麻豆精品视频在线观看免费| 一区二区理论电影在线观看| 国产精品精品国产色婷婷| 精品国产成人系列| 欧美一卡二卡在线观看| 欧美精品 国产精品| 色老汉一区二区三区| 91麻豆国产福利在线观看| 成人在线综合网| 成人性生交大合| 国产精品18久久久久| 韩国中文字幕2020精品| 久久国产精品99久久人人澡| 日本不卡1234视频| 青娱乐精品视频| 看片网站欧美日韩| 美脚の诱脚舐め脚责91| 麻豆精品精品国产自在97香蕉 | 久久影院视频免费| 久久综合99re88久久爱| 精品人在线二区三区| 欧美精品一区二| 国产欧美va欧美不卡在线| 国产精品网站在线播放| 日本一区二区综合亚洲| 国产精品国产三级国产aⅴ中文| 国产女人18毛片水真多成人如厕| 国产日韩成人精品| 国产精品不卡视频| 一区二区三区高清在线| 亚洲成人av一区| 久久国产夜色精品鲁鲁99| 久久疯狂做爰流白浆xx| 国产成人丝袜美腿| 91丨porny丨最新| 欧美另类久久久品| 久久久国际精品| 成人欧美一区二区三区1314 | 欧美精品久久久久久久多人混战 | 色综合视频一区二区三区高清| 在线中文字幕不卡| 欧美一级一区二区| 国产精品国产三级国产aⅴ原创| 亚洲一区二区欧美日韩| 六月丁香综合在线视频| 成人小视频在线| 欧美人与禽zozo性伦| 久久综合久久综合亚洲| 亚洲日本电影在线| 老鸭窝一区二区久久精品| 成人激情开心网| 日韩一区二区三区观看| 国产精品国产三级国产aⅴ原创| 午夜精品久久久久久久久| 国产在线播放一区三区四| 91行情网站电视在线观看高清版| 日韩一区二区高清| 亚洲蜜臀av乱码久久精品| 蜜臀av性久久久久蜜臀av麻豆| 99久精品国产| 久久蜜桃av一区精品变态类天堂 | 国产黄人亚洲片|