X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8a16d7370e3cdc7d583a6f14ab11b3a1d27b73df..82c126e50158efee5a1f46e1200be380c5199f8d:/src/common/rgncmn.cpp diff --git a/src/common/rgncmn.cpp b/src/common/rgncmn.cpp index cee89a91c2..a18bb20708 100644 --- a/src/common/rgncmn.cpp +++ b/src/common/rgncmn.cpp @@ -38,13 +38,13 @@ bool wxRegionBase::IsEqual(const wxRegion& region) const { - if ( m_refData == region.m_refData ) + if ( m_refData == region.GetRefData() ) { // regions are identical, hence equal return true; } - if ( !m_refData || !region.m_refData ) + if ( !m_refData || !region.GetRefData() ) { // one, but not both, of the regions is invalid return false; @@ -157,3 +157,36 @@ bool wxRegionBase::Union(const wxBitmap& bmp, } #endif // wxUSE_IMAGE + +#ifdef wxHAS_REGION_COMBINE +// ============================================================================ +// wxRegionWithCombine +// ============================================================================ + +// implement some wxRegionBase pure virtuals in terms of Combine() +bool wxRegionWithCombine::DoUnionWithRect(const wxRect& rect) +{ + return Combine(rect, wxRGN_OR); +} + +bool wxRegionWithCombine::DoUnionWithRegion(const wxRegion& region) +{ + return DoCombine(region, wxRGN_OR); +} + +bool wxRegionWithCombine::DoIntersect(const wxRegion& region) +{ + return DoCombine(region, wxRGN_AND); +} + +bool wxRegionWithCombine::DoSubtract(const wxRegion& region) +{ + return DoCombine(region, wxRGN_DIFF); +} + +bool wxRegionWithCombine::DoXor(const wxRegion& region) +{ + return DoCombine(region, wxRGN_XOR); +} + +#endif // wxHAS_REGION_COMBINE