+//---------------------------------------------------------------------------
+// Regions, etc.
+
+enum wxRegionContain {
+ wxOutRegion, wxPartRegion, wxInRegion
+};
+
+
+class wxRegion : public wxGDIObject {
+public:
+ wxRegion(long x=0, long y=0, long width=0, long height=0);
+ ~wxRegion();
+
+ void Clear();
+ wxRegionContain Contains(long x, long y);
+ %name(ContainsPoint)wxRegionContain Contains(const wxPoint& pt);
+ %name(ContainsRect)wxRegionContain Contains(const wxRect& rect);
+ %name(ContainsRectDim)wxRegionContain Contains(long x, long y, long w, long h);
+
+ wxRect GetBox();
+
+ bool Intersect(long x, long y, long width, long height);
+ %name(IntersectRect)bool Intersect(const wxRect& rect);
+ %name(IntersectRegion)bool Intersect(const wxRegion& region);
+
+ bool IsEmpty();
+
+ bool Union(long x, long y, long width, long height);
+ %name(UnionRect)bool Union(const wxRect& rect);
+ %name(UnionRegion)bool Union(const wxRegion& region);
+
+ bool Subtract(long x, long y, long width, long height);
+ %name(SubtractRect)bool Subtract(const wxRect& rect);
+ %name(SubtractRegion)bool Subtract(const wxRegion& region);
+
+ bool Xor(long x, long y, long width, long height);
+ %name(XorRect)bool Xor(const wxRect& rect);
+ %name(XorRegion)bool Xor(const wxRegion& region);
+};
+
+
+
+class wxRegionIterator : public wxObject {
+public:
+ wxRegionIterator(const wxRegion& region);
+ ~wxRegionIterator();
+
+ long GetX();
+ long GetY();
+ long GetW();
+ long GetWidth();
+ long GetH();
+ long GetHeight();
+ wxRect GetRect();
+ bool HaveRects();
+ void Reset();
+
+ %addmethods {
+ void Next() {
+ (*self) ++;
+ }
+ };
+};
+
+