+ // Convert the region to a B&W bitmap with the white pixels being inside
+ // the region.
+ wxBitmap ConvertToBitmap() const;
+
+ // Use the non-transparent pixels of a wxBitmap for the region to combine
+ // with this region. First version takes transparency from bitmap's mask,
+ // second lets the user specify the colour to be treated as transparent
+ // along with an optional tolerance value.
+ // NOTE: implemented in common/rgncmn.cpp
+ bool Union(const wxBitmap& bmp);
+ bool Union(const wxBitmap& bmp,
+ const wxColour& transColour, int tolerance = 0);
+
+
+public:
+ // Init with GdkRegion, set ref count to 2 so that
+ // the C++ class will not destroy the region!
+ wxRegion( GdkRegion *region );
+
+ GdkRegion *GetRegion() const;
+
+protected:
+ // ref counting code
+ virtual wxObjectRefData *CreateRefData() const;
+ virtual wxObjectRefData *CloneRefData(const wxObjectRefData *data) const;
+
+ // common part of ctors for a rectangle region
+ void InitRect(wxCoord x, wxCoord y, wxCoord w, wxCoord h);
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxRegion)
+};
+
+// ----------------------------------------------------------------------------
+// wxRegionIterator: decomposes a region into rectangles
+// ----------------------------------------------------------------------------
+
+class WXDLLIMPEXP_CORE wxRegionIterator: public wxObject
+{
+public:
+ wxRegionIterator();
+ wxRegionIterator(const wxRegion& region);
+
+ void Reset() { m_current = 0u; }
+ void Reset(const wxRegion& region);
+
+ bool HaveRects() const;
+ operator bool () const { return HaveRects(); }
+
+ wxRegionIterator& operator ++ ();
+ wxRegionIterator operator ++ (int);
+
+ wxCoord GetX() const;
+ wxCoord GetY() const;
+ wxCoord GetW() const;
+ wxCoord GetWidth() const { return GetW(); }
+ wxCoord GetH() const;
+ wxCoord GetHeight() const { return GetH(); }
+ wxRect GetRect() const;
+
+private:
+ size_t m_current;
+ wxRegion m_region;
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxRegionIterator)