// Purpose: interface of wxRegionIterator
// Author: wxWidgets team
// RCS-ID: $Id$
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
/**
Increment operator. Increments the iterator to the next region.
-
- @beginWxPythonOnly
- A wxPython alias for this operator is called Next.
- @endWxPythonOnly
*/
- void operator ++();
+ wxRegionIterator& operator ++();
/**
Returns @true if there are still some rectangles; otherwise returns @false.
public:
/**
Default constructor.
+
+ This constructor creates an invalid, or null, object, i.e. calling
+ IsOk() on it returns @false and IsEmpty() returns @true.
*/
wxRegion();
/**
in the provided array.
@a fillStyle parameter may have values @c wxWINDING_RULE or @c wxODDEVEN_RULE.
*/
- wxRegion(size_t n, const wxPoint* points, int fillStyle = wxWINDING_RULE);
+ wxRegion(size_t n, const wxPoint* points, wxPolygonFillMode fillStyle = wxODDEVEN_RULE);
/**
Constructs a region using a bitmap. See Union() for more details.
*/
See @ref overview_refcount_destruct "reference-counted object destruction" for
more info.
*/
- ~wxRegion();
+ virtual ~wxRegion();
/**
Clears the current region.
+
+ The object becomes invalid, or null, after being cleared.
*/
- void Clear();
+ virtual void Clear();
/**
Returns a value indicating whether the given point is contained within the region.
+ This method always returns @c wxOutRegion for an invalid region but
+ may, nevertheless, be safely called in this case.
+
@return The return value is one of @c wxOutRegion and @c wxInRegion.
*/
- wxRegionContain Contains(long& x, long& y) const;
+ wxRegionContain Contains(wxCoord x, wxCoord y) const;
/**
Returns a value indicating whether the given point is contained within the region.
+ This method always returns @c wxOutRegion for an invalid region but
+ may, nevertheless, be safely called in this case.
+
@return The return value is one of @c wxOutRegion and @c wxInRegion.
*/
wxRegionContain Contains(const wxPoint& pt) const;
Returns a value indicating whether the given rectangle is contained within the
region.
+ This method always returns @c wxOutRegion for an invalid region but
+ may, nevertheless, be safely called in this case.
+
@return One of ::wxOutRegion, ::wxPartRegion or ::wxInRegion.
@note On Windows, only ::wxOutRegion and ::wxInRegion are returned; a value
::wxInRegion then indicates that all or some part of the region is
contained in this region.
*/
- wxRegionContain Contains(long& x, long& y, long& width, long& height) const;
+ wxRegionContain Contains(wxCoord x, wxCoord y, wxCoord width, wxCoord height) const;
/**
Returns a value indicating whether the given rectangle is contained within the
region.
+ This method always returns @c wxOutRegion for an invalid region but
+ may, nevertheless, be safely called in this case.
+
@return One of ::wxOutRegion, ::wxPartRegion or ::wxInRegion.
@note On Windows, only ::wxOutRegion and ::wxInRegion are returned; a value
/**
Convert the region to a black and white bitmap with the white pixels
being inside the region.
+
+ This method can't be used for invalid region.
*/
wxBitmap ConvertToBitmap() const;
//@{
/**
Returns the outer bounds of the region.
+
+ This method returns 0-sized bounding box for invalid regions.
*/
void GetBox(wxCoord& x, wxCoord& y, wxCoord& width,
wxCoord& height) const;
- const wxRect GetBox() const;
+ wxRect GetBox() const;
//@}
/**
Finds the intersection of this region and another, rectangular region,
specified using position and size.
+ This method always fails, i.e. returns @false, if this region is
+ invalid but may nevertheless be safely used even in this case.
+
@return @true if successful, @false otherwise.
@remarks Creates the intersection of the two regions, that is, the parts
/**
Finds the intersection of this region and another, rectangular region.
+ This method always fails, i.e. returns @false, if this region is
+ invalid but may nevertheless be safely used even in this case.
+
@return @true if successful, @false otherwise.
@remarks Creates the intersection of the two regions, that is, the parts
/**
Finds the intersection of this region and another region.
+ This method always fails, i.e. returns @false, if this region is
+ invalid but may nevertheless be safely used even in this case.
+
@return @true if successful, @false otherwise.
@remarks Creates the intersection of the two regions, that is, the parts
/**
Returns @true if the region is empty, @false otherwise.
+
+ Always returns @true if the region is invalid.
*/
- bool IsEmpty() const;
+ virtual bool IsEmpty() const;
/**
- Returns @true if the region is equal to, i.e. covers the same area as,
+ Returns @true if the region is equal to, i.e.\ covers the same area as,
another one.
- @note If both this region and @a region are invalid, they are
- considered to be equal.
+ If both this region and @a region are both invalid, they are considered
+ to be equal.
*/
bool IsEqual(const wxRegion& region) const;
Moves the region by the specified offsets in horizontal and vertical
directions.
+ This method can't be called if the region is invalid as it doesn't make
+ sense to offset it then. Attempts to do it will result in assert
+ failure.
+
@return @true if successful, @false otherwise (the region is unchanged
then).
*/
/**
Subtracts a rectangular region from this region.
+ This method always fails, i.e. returns @false, if this region is
+ invalid but may nevertheless be safely used even in this case.
+
@return @true if successful, @false otherwise.
@remarks This operation combines the parts of 'this' region that are not
/**
Subtracts a region from this region.
+ This method always fails, i.e. returns @false, if this region is
+ invalid but may nevertheless be safely used even in this case.
+
@return @true if successful, @false otherwise.
@remarks This operation combines the parts of 'this' region that are not
Finds the union of this region and another, rectangular region, specified using
position and size.
+ This method can be used even if this region is invalid and has the
+ natural behaviour in this case, i.e. makes this region equal to the
+ given rectangle.
+
@return @true if successful, @false otherwise.
@remarks This operation creates a region that combines all of this region
/**
Finds the union of this region and another, rectangular region.
+ This method can be used even if this region is invalid and has the
+ natural behaviour in this case, i.e. makes this region equal to the
+ given rectangle.
+
@return @true if successful, @false otherwise.
@remarks This operation creates a region that combines all of this region
/**
Finds the union of this region and another region.
+ This method can be used even if this region is invalid and has the
+ natural behaviour in this case, i.e. makes this region equal to the
+ given @a region.
+
@return @true if successful, @false otherwise.
@remarks This operation creates a region that combines all of this region
Finds the Xor of this region and another, rectangular region, specified using
position and size.
+ This method can be used even if this region is invalid and has the
+ natural behaviour in this case, i.e. makes this region equal to the
+ given rectangle.
+
@return @true if successful, @false otherwise.
@remarks This operation creates a region that combines all of this region
/**
Finds the Xor of this region and another, rectangular region.
+ This method can be used even if this region is invalid and has the
+ natural behaviour in this case, i.e. makes this region equal to the
+ given rectangle.
+
@return @true if successful, @false otherwise.
@remarks This operation creates a region that combines all of this region
/**
Finds the Xor of this region and another region.
+ This method can be used even if this region is invalid and has the
+ natural behaviour in this case, i.e. makes this region equal to the
+ given @a region.
+
@return @true if successful, @false otherwise.
@remarks This operation creates a region that combines all of this region
/**
Assignment operator, using @ref overview_refcount.
*/
- void operator =(const wxRegion& region);
+ wxRegion& operator=(const wxRegion& region);
};
/**