X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8a16d7370e3cdc7d583a6f14ab11b3a1d27b73df..9a6aafe0039fef580ca1bfcf0e87c1ba8e2953ba:/src/common/rgncmn.cpp diff --git a/src/common/rgncmn.cpp b/src/common/rgncmn.cpp index cee89a91c2..f16024cbb7 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; @@ -65,7 +65,7 @@ wxBitmap wxRegionBase::ConvertToBitmap() const dc.SelectObject(bmp); dc.SetBackground(*wxBLACK_BRUSH); dc.Clear(); - dc.SetClippingRegion(*wx_static_cast(const wxRegion *, this)); + dc.SetDeviceClippingRegion(*static_cast(this)); dc.SetBackground(*wxWHITE_BRUSH); dc.Clear(); dc.SelectObject(wxNullBitmap); @@ -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