Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

156 lines
2.8 KiB

#include "all.h"
#define mymax(x,y) (((x)>(y))?(x):(y))
#define mymin(x,y) (((x)<(y))?(x):(y))
#ifndef WIN32
BOOL GTR_InsetRect(RECT *r, long dh, long dv)
{
r->left += dh;
r->right -= dh;
r->top += dv;
r->bottom -= dv;
return(1);
}
BOOL GTR_OffsetRect(RECT *r, long dh, long dv)
{
r->left += dh;
r->right += dh;
r->top += dv;
r->bottom += dv;
return(1);
}
BOOL GTR_SetRect(RECT *r, long left, long top, long right, long bottom)
{
r->left = left;
r->right = right;
r->top = top;
r->bottom = bottom;
return(1);
}
BOOL GTR_EqualRect(RECT *r1, RECT *r2)
{
if (r1->left != r2->left)
return(0);
if (r1->right != r2->right)
return(0);
if (r1->bottom != r2->bottom)
return(0);
if (r1->top != r2->top)
return(0);
return(1);
}
#if 0
BOOL GTR_PtInRect(RECT *r, Point p)
{
int x, y;
#ifdef MAC
x = p.h;
y = p.v;
#else
x = p.x;
y = p.y;
#endif
if (x >= r->left && x <= r->right && y >= r->top && y <= r->bottom)
return(1);
else
return(0);
}
#endif
/* Do the rects intersect */
BOOL GTR_IsSectRect(RECT *r1, RECT *r2)
{
if ((r1->right > r2->left) && (r2->right > r1->left)
&& (r1->bottom > r2->top) && (r2->bottom > r1->top))
return(1);
else
return(0);
}
/* Return true if they r1 and r2 intersect */
/* and store the union in dr */
BOOL GTR_SectRect (RECT *r1, RECT *r2, RECT *dr)
{
Boolean result = FALSE;
if ((r1->right > r2->left) && (r2->right > r1->left) &&
(r1->bottom > r2->top) && (r2->bottom > r1->top))
{
result = TRUE;
dr->right = mymin (r1->right, r2->right);
dr->left = mymax (r1->left, r2->left);
dr->top = mymax (r1->top, r2->top);
dr->bottom = mymin (r1->bottom, r2->bottom);
}
else
result = FALSE;
if (result)
return TRUE;
else
{
dr->top = dr->bottom = dr->left = dr->right = 0;
return FALSE;
}
}
/* Return the union of two rects */
BOOL GTR_UnionRect(RECT *r1, RECT *r2, RECT *dst)
{
RECT r;
r.left = mymin(r1->left,r2->left);
r.top = mymin(r1->top,r2->top);
r.bottom = mymax(r1->bottom,r2->bottom);
r.right = mymax(r1->right,r2->right);
*dst = r;
return(1);
}
#endif /* WIN32, win32 libs already use long based rects */
Rect Long2ShortRect(RECT r)
{
Rect shortRect;
shortRect.left = r.left;
shortRect.right = r.right;
shortRect.top = r.top;
shortRect.bottom = r.bottom;
return(shortRect);
}
RECT Short2LongRect(Rect r)
{
RECT bigRect;
bigRect.left = r.left;
bigRect.right = r.right;
bigRect.top = r.top;
bigRect.bottom = r.bottom;
return(bigRect);
}