1
0
mirror of https://github.com/stefanocasazza/ULib.git synced 2025-09-28 19:05:55 +08:00
ULib/contrib/signer/RECTWrapper.h
2015-01-23 17:24:36 +01:00

48 lines
1.2 KiB
C

/* RECTWrapper.h */
#ifndef RECTWRAPPER_H
#define RECTWRAPPER_H
/*
Thin wrapper around GDI's RECT, mainly to allow what would otherwise have to
be a ton of "OffsetRect(&rect, 1, 2);"-type calls to be more easily written.
Also has a few gimmes like width() and height(). Note this is derived from
GDI's RECT *struct*, so that they're interchangable, and is not a class proper.
Not a general-purpose Rectangle class, not intended to be a general-purpose Rectangle class.
*/
struct RECTWrapper : public RECT
{
// Get interesting facts about the RECT/RECTWrapper
int width() const { return right - left; };
int height() const { return bottom - top; };
// Return the center point of the rect.
POINT center() const
{
POINT retval;
retval.x = (left + right)/2;
retval.y = (top + bottom)/2;
return retval;
}
// Do interesting things to the RECT/RECTWrapper
RECTWrapper& operator=(const RECT& r)
{
right = r.right;
left = r.left;
top = r.top;
bottom = r.bottom;
return *this;
}
// Move the whole rect by [x,y].
// Windows refers to this as offsetting.
void move(int x, int y) { OffsetRect(this, x, y); }
};
#endif