use ContextMenuActions
[enigma2.git] / lib / gdi / region.h
index a1dbe91660ca64694680970276ea17ccaaf70e30..d7217dae32af005d2eb7a8d4f7ddd54331ea7d1b 100644 (file)
@@ -2,11 +2,11 @@
 #define __lib_gdi_region_h
 
 #include <lib/base/object.h>
 #define __lib_gdi_region_h
 
 #include <lib/base/object.h>
+#include <lib/gdi/erect.h>
 #include <vector>
 
 #include <vector>
 
-class gRegion: public virtual iObject
+class gRegion
 {
 {
-DECLARE_REF;
 private:
        inline void FindBand(
                        std::vector<eRect>::const_iterator r,
 private:
        inline void FindBand(
                        std::vector<eRect>::const_iterator r,
@@ -77,9 +77,23 @@ public:
        gRegion();
        virtual ~gRegion();
 
        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 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
 };
 
 #endif