9fd5cdaefc6e0ea519da5316dff75abd5c95006e
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.
25 /* FUNCTIONS *****************************************************************/
29 RECTL_bUnionRect(RECTL
*prclDst
, const RECTL
*prcl1
, const RECTL
*prcl2
)
31 if (RECTL_bIsEmptyRect(prcl1
))
33 if (RECTL_bIsEmptyRect(prcl2
))
35 RECTL_vSetEmptyRect(prclDst
);
45 if (RECTL_bIsEmptyRect(prcl2
))
51 prclDst
->left
= min(prcl1
->left
, prcl2
->left
);
52 prclDst
->top
= min(prcl1
->top
, prcl2
->top
);
53 prclDst
->right
= max(prcl1
->right
, prcl2
->right
);
54 prclDst
->bottom
= max(prcl1
->bottom
, prcl2
->bottom
);
64 RECTL_bIntersectRect(RECTL
* prclDst
, const RECTL
* prcl1
, const RECTL
* prcl2
)
66 prclDst
->left
= max(prcl1
->left
, prcl2
->left
);
67 prclDst
->right
= min(prcl1
->right
, prcl2
->right
);
69 if (prclDst
->left
< prclDst
->right
)
71 prclDst
->top
= max(prcl1
->top
, prcl2
->top
);
72 prclDst
->bottom
= min(prcl1
->bottom
, prcl2
->bottom
);
74 if (prclDst
->top
< prclDst
->bottom
)
80 RECTL_vSetEmptyRect(prclDst
);
87 RECTL_vMakeWellOrdered(RECTL
*prcl
)
90 if (prcl
->left
> prcl
->right
)
93 prcl
->left
= prcl
->right
;
96 if (prcl
->top
> prcl
->bottom
)
99 prcl
->top
= prcl
->bottom
;
106 RECTL_vInflateRect(RECTL
*rect
, INT dx
, INT dy
)