void TestRRegion::TestAddRect() { RRegion rgn; TInt index,i; if (!rect[0].IsEmpty()) { for(index=0;index<4;index++) { for(i=0;i<=index;i++) rgn.AddRect(rect[index]); test(rgn.Count()==(index+1)); } test(rgn.BoundingRect()==bounds); if (!xrect.IsEmpty()) { rgn.AddRect(xrect); TInt count = rgn.Count(); test( (count > 4) && (count <= 9) ); } } rgn.AddRect(bounds); test(rgn.Count()==1); rgn.Close(); }
void TestRRegion::TestOffset() { RRegion rgn; const TRect* rlist; TRect r; TUint index; for(index=0;index<(sizeof(rect)/sizeof(rect[0]));index++) { rgn.Clear(); rgn.AddRect(rect[index]); r=rect[index]; r.Move(1,1); rgn.Offset(1,1); if (rect[index].IsEmpty()) test(rgn.Count()==0); else { test(rgn.Count()==1); rlist=rgn.RectangleList(); test(rlist[0]==r); } } rgn.Close(); }
TBool CHuiFxEffect::CachedDraw(CHuiGc& aGc, const TRect& aDisplayRect, TBool aRefreshCachedRenderTarget, TBool aOpaque) { RRegion dummy; TBool ret = CachedDraw(aGc, aDisplayRect, aRefreshCachedRenderTarget, aOpaque, dummy,EFalse); dummy.Close(); return ret; }
void TestRRegion::TestSubRect() { TRect rect1(-rect[0].iBr.iX,-rect[0].iBr.iY,rect[0].iBr.iX,rect[0].iBr.iY); RRegion rgn; RRegion subRgn; RRegion rgn2; TInt index; if (!rect[0].IsEmpty()) { rgn.AddRect(rect1); for(index=0;index<4;index++) rgn.SubRect(rect[index],&subRgn); if (rect[0].iTl.iX==0) // Special case region, all rects join in the middle { test(rgn.Count()==0); test(subRgn.Count()==4); } else { test(rgn.Count()==3); test(subRgn.Count()==4); test(rgn.BoundingRect()==subRgn.BoundingRect()); rgn.SubRect(xrect); test(rgn.Count()==4); rgn2.Copy(rgn); subRgn.Clear(); rgn.SubRect(rgn.BoundingRect(),&subRgn); test(rgn.Count()==0); rgn2.SubRegion(subRgn,&rgn); test(rgn2.Count()==0); subRgn.SubRegion(rgn); test(subRgn.Count()==0); } } rgn.Close(); rgn2.Close(); subRgn.Close(); }
void TestRRegion::TestTidy() { RRegion rgn; TInt loop; TRect const rlist[8]={ // 8 Rectangles that form a square with the centre rectangle missing TRect(10,10,20,20), TRect(20,10,30,20), TRect(30,10,40,20), TRect(10,20,20,30), TRect(30,20,40,30), TRect(10,30,20,40), TRect(20,30,30,40), TRect(30,30,40,40)}; TRect const rect1(rlist[0].iTl.iX,rlist[0].iTl.iY,rlist[2].iBr.iX,rlist[2].iBr.iY); TRect const rect2(rlist[0].iTl.iX,rlist[0].iTl.iY,rlist[7].iBr.iX,rlist[7].iBr.iY); // Add 3 adjoining rectangles and tidy them for(loop=0;loop<3;loop++) rgn.AddRect(rlist[loop]); test(rgn.Count()==3); rgn.Tidy(); test(rgn.Count()==1); test(rgn[0]==rect1); // Same again but add the adjoining rectangles in reverse order rgn.Clear(); for(loop=2;loop>=0;loop--) rgn.AddRect(rlist[loop]); test(rgn.Count()==3); rgn.Tidy(); test(rgn.Count()==1); test(rgn[0]==rect1); // Now add 8 rectangles that should tidy down to 4 rgn.Clear(); for(loop=0;loop<8;loop++) rgn.AddRect(rlist[loop]); test(rgn.Count()==8); rgn.Tidy(); test(rgn.Count()==4); test(rgn.BoundingRect()==rect2); // ...and in reverse rgn.Clear(); for(loop=7;loop>=0;loop--) rgn.AddRect(rlist[loop]); test(rgn.Count()==8); rgn.Tidy(); test(rgn.Count()==4); test(rgn.BoundingRect()==rect2); rgn.Close(); }
void getDsaRegion(RWsSession &session, const RWindowBase &window) { RDirectScreenAccess dsa(session); TInt err = dsa.Construct(); CDummyAO ao; RRegion* region; err = dsa.Request(region, ao.Status(), window); ao.SetActive(); dsa.Close(); ao.Cancel(); if (region) { qDebug() << "Phonon::MMF::getDsaRegion count" << region->Count(); for (int i=0; i<region->Count(); ++i) { const TRect& rect = region->RectangleList()[i]; qDebug() << "Phonon::MMF::getDsaRegion rect" << rect.iTl.iX << rect.iTl.iY << rect.iBr.iX << rect.iBr.iY; } region->Close(); } }
void CFepLayoutMIcfCustomDraw::DrawText( const TParam& aParam, const TLineInfo& aLineInfo, const TCharFormat& aFormat, const TDesC& aText, const TPoint& aTextOrigin, TInt aExtraPixels ) const { if ( !iParentControl->SmileyEnabled() ) { MFormCustomDraw::DrawText( aParam, aLineInfo, aFormat, aText, aTextOrigin, aExtraPixels ); return; } //get count of smileys TInt count = 0; for ( TInt i = 0; i < aText.Length(); i ++ ) { if ( iParentControl->SmileyManager()->IsSmileyCode(aText[i] ) ) { count++; break; } } if ( count < 1 ) { //no smiley found, call default draw MFormCustomDraw::DrawText( aParam, aLineInfo, aFormat, aText, aTextOrigin, aExtraPixels ); return; } //custom draw TInt topline = aParam.iDrawRect.iTl.iY; TInt bottomline = aParam.iDrawRect.iBr.iY; TInt baseline = aLineInfo.iBaseline; TPoint basepoint = aParam.iDrawRect.iTl; basepoint.iY = baseline; CFont* font = NULL; aParam.iMap.GetNearestFontInTwips( font, aFormat.iFontSpec ); //cut off regions occupied by smiley characters. //smiley character is displayed as a rectangle if not supported by current font. RRegion rgn; TRAP_IGNORE( iParentControl->CalcSmileyClipRegionL( rgn, aParam.iGc, *font, aText, basepoint, topline, bottomline ) ); //call default drawing first aParam.iGc.SetClippingRegion( rgn ); MFormCustomDraw::DrawText( aParam, aLineInfo, aFormat, aText, aTextOrigin, aExtraPixels ); aParam.iGc.CancelClippingRegion(); rgn.Close(); //fill in smiley icons TRAP_IGNORE( iParentControl->CustomDrawSmileyL( aParam.iGc, *font, aText, basepoint, topline, bottomline ) ); aParam.iMap.ReleaseFont( font ); }