X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/d6f6602d7cea3a7899990fe79216af7d98d05917..d1455ab44c24de50db9c4ed7efb2ac2a523b9fdd:/lib/gdi/region.h diff --git a/lib/gdi/region.h b/lib/gdi/region.h index a1dbe916..d7217dae 100644 --- a/lib/gdi/region.h +++ b/lib/gdi/region.h @@ -2,11 +2,11 @@ #define __lib_gdi_region_h #include +#include #include -class gRegion: public virtual iObject +class gRegion { -DECLARE_REF; private: inline void FindBand( std::vector::const_iterator r, @@ -77,9 +77,23 @@ public: gRegion(); virtual ~gRegion(); + gRegion operator&(const gRegion &r2) const; + gRegion operator-(const gRegion &r2) const; + gRegion operator|(const gRegion &r2) const; + gRegion &operator&=(const gRegion &r2); + gRegion &operator-=(const gRegion &r2); + gRegion &operator|=(const gRegion &r2); + void intersect(const gRegion &r1, const gRegion &r2); void subtract(const gRegion &r1, const gRegion &r2); void merge(const gRegion &r1, const gRegion &r2); + + void moveBy(ePoint offset); + + bool empty() const { return extends.empty(); } + bool valid() const { return extends.valid(); } + + static gRegion invalidRegion() { return gRegion(eRect::invalidRect()); } }; #endif