/* lpStruct - (REGION32) Destination Region */ DWORD DrvRegionsXORRegion(LPARAM dwParm1, LPARAM dwParm2, LPVOID lpStruct) { XXorRegion((Region)dwParm1, (Region)dwParm2, (Region)lpStruct); return (DWORD)(XEmptyRegion((Region)lpStruct)? NULLREGION:COMPLEXREGION); }
CompRegion CompRegion::xored (const CompRegion &r) const { CompRegion rv; rv.priv->makeReal (); XXorRegion (handle (), r.handle (), rv.handle ()); return rv; }
// Xor region r with this one FXRegion FXRegion::operator^(const FXRegion& r) const { FXRegion res; #ifdef WIN32 CombineRgn((HRGN)res.region,(HRGN)region,(HRGN)r.region,RGN_XOR); #else XXorRegion((Region)region,(Region)r.region,(Region)res.region); #endif return res; }
static PyObject * region_XorRegion(PaxRegionObject *self, PyObject *args) { PaxRegionObject *r; if (!PyArg_ParseTuple(args, "O!", &PaxRegionType, &r)) return NULL; XXorRegion(self->region, r->region, self->region); Py_INCREF(Py_None); return Py_None; }
// Xor region r with this one FXRegion& FXRegion::operator^=(const FXRegion& r){ #ifdef WIN32 CombineRgn((HRGN)region,(HRGN)region,(HRGN)r.region,RGN_XOR); #else Region res=XCreateRegion(); XXorRegion((Region)region,(Region)r.region,res); XDestroyRegion((Region)region); region=res; #endif return *this; }
static Bool rgn_empty(Handle self) { XRectangle xr; REGION = XCreateRegion(); xr. x = 0; xr. y = 0; xr. width = 1; xr. height = 1; XUnionRectWithRegion( &xr, REGION, REGION); XXorRegion( REGION, REGION, REGION); HEIGHT = 0; return true; }
Bool apc_region_combine( Handle self, Handle other_region, int rgnop) { PRegionSysData r2; int d; Bool ok = true; r2 = GET_REGION(other_region); if ( rgnop == rgnopCopy ) { if ( REGION ) XDestroyRegion( REGION ); REGION = XCreateRegion(); XUnionRegion( REGION, r2->region, REGION); HEIGHT = r2-> height; return true; } d = HEIGHT - r2-> height; if ( d > 0 ) XOffsetRegion( r2-> region, 0, d); else XOffsetRegion( REGION, 0, -d); switch (rgnop) { case rgnopIntersect: XIntersectRegion( REGION, r2->region, REGION); break; case rgnopUnion: XUnionRegion( REGION, r2->region, REGION); break; case rgnopXor: XXorRegion( REGION, r2->region, REGION); break; case rgnopDiff: XSubtractRegion( REGION, r2->region, REGION); break; default: ok = false; } if ( d > 0 ) XOffsetRegion( r2-> region, 0, -d); else HEIGHT = r2-> height; return ok; }
bool wxRegion::DoXor( const wxRegion& region ) { wxCHECK_MSG( region.Ok(), false, wxT("invalid region") ); if (!m_refData) { m_refData = new wxRegionRefData(); M_REGIONDATA->m_region = XCreateRegion(); } else { AllocExclusive(); } XXorRegion( M_REGIONDATA->m_region, M_REGIONDATA_OF(region)->m_region, M_REGIONDATA->m_region ); return true; }
bool wxRegion::Xor( const wxRegion& region ) { #if 0 if (region.IsNull()) return FALSE; if (!m_refData) { m_refData = new wxRegionRefData(); M_REGIONDATA->m_region = XCreateRegion(); } else { AllocExclusive(); } XXorRegion( M_REGIONDATA->m_region, M_REGIONDATA_OF(region)->m_region, M_REGIONDATA->m_region ); #endif return TRUE; }