2 * ReactOS W32 Subsystem
3 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 ReactOS Team
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
26 /* FUNCTIONS *****************************************************************/
30 RECTL_bUnionRect(RECTL
*prclDst
, const RECTL
*prcl1
, const RECTL
*prcl2
)
32 if (RECTL_bIsEmptyRect(prcl1
))
34 if (RECTL_bIsEmptyRect(prcl2
))
36 RECTL_vSetEmptyRect(prclDst
);
46 if (RECTL_bIsEmptyRect(prcl2
))
52 prclDst
->left
= min(prcl1
->left
, prcl2
->left
);
53 prclDst
->top
= min(prcl1
->top
, prcl2
->top
);
54 prclDst
->right
= max(prcl1
->right
, prcl2
->right
);
55 prclDst
->bottom
= max(prcl1
->bottom
, prcl2
->bottom
);
65 RECTL_bIntersectRect(RECTL
* prclDst
, const RECTL
* prcl1
, const RECTL
* prcl2
)
67 prclDst
->left
= max(prcl1
->left
, prcl2
->left
);
68 prclDst
->right
= min(prcl1
->right
, prcl2
->right
);
70 if (prclDst
->left
< prclDst
->right
)
72 prclDst
->top
= max(prcl1
->top
, prcl2
->top
);
73 prclDst
->bottom
= min(prcl1
->bottom
, prcl2
->bottom
);
75 if (prclDst
->top
< prclDst
->bottom
)
81 RECTL_vSetEmptyRect(prclDst
);
88 RECTL_vMakeWellOrdered(RECTL
*prcl
)
91 if (prcl
->left
> prcl
->right
)
94 prcl
->left
= prcl
->right
;
97 if (prcl
->top
> prcl
->bottom
)
100 prcl
->top
= prcl
->bottom
;
107 RECTL_vInflateRect(RECTL
*rect
, INT dx
, INT dy
)