--- a/webengine/webkitutils/HistoryProvider/HistoryView.cpp Wed Jun 09 10:52:50 2010 +0300
+++ b/webengine/webkitutils/HistoryProvider/HistoryView.cpp Mon Jun 21 16:54:17 2010 +0300
@@ -48,7 +48,7 @@
#define KCenterImageBorderColor TRgb(179,179,181)
#define KSideImageBorderColor KRgbBlack
-#define KSideImageMaskColor TRgb( 170, 170, 170, 150 )
+#define KSideImageMaskColor TRgb(170, 170, 170)
// ============================= LOCAL FUNCTIONS ===============================
@@ -142,6 +142,7 @@
m_autoScrollPeriodic->Cancel();
delete m_autoScrollPeriodic;
}
+ delete m_maskBitmap;
}
bool HistoryView::calcRepaintRect()
@@ -285,13 +286,18 @@
TRAP_IGNORE(leftEntry->constructThumbnailL());
}
if (leftEntry->thumbnail()) {
- m_bitmapContext->BitBlt( m_leftPlaceHolderRect.iTl, leftEntry->thumbnail(), TRect(TPoint(0,0), m_leftPlaceHolderRect.Size()) );
+ if(!m_maskBitmap) {
+ TSize maskBitmapSize(m_leftPlaceHolderRect.Size());
+ TRAP_IGNORE(CreateMaskBitmapForLeftRightThumbnailL(maskBitmapSize, EGray256, KSideImageMaskColor));
+ }
+ if(m_maskBitmap) {
+ m_bitmapContext->BitBltMasked(m_leftPlaceHolderRect.iTl, leftEntry->thumbnail(), TRect(TPoint(0,0), m_leftPlaceHolderRect.Size()), m_maskBitmap, EFalse);
+ }
+ else {
+ //if failed to create a mask, just draw the left entry thumbnail.
+ m_bitmapContext->BitBlt( m_leftPlaceHolderRect.iTl, leftEntry->thumbnail(), TRect(TPoint(0,0), m_leftPlaceHolderRect.Size()) );
+ }
}
-
- m_bitmapContext->SetBrushColor ( KSideImageMaskColor );
- m_bitmapContext->SetBrushStyle ( CWindowGc::ESolidBrush );
- m_bitmapContext->DrawRect(m_leftPlaceHolderRect);
- m_bitmapContext->SetBrushStyle(CGraphicsContext::ENullBrush);
}
// updateDisplay the next thumbnail
if (rightEntry) {
@@ -299,13 +305,18 @@
TRAP_IGNORE(rightEntry->constructThumbnailL());
}
if (rightEntry->thumbnail()) {
- m_bitmapContext->BitBlt( m_rightPlaceHolderRect.iTl, rightEntry->thumbnail(), TRect(TPoint(0,0), m_rightPlaceHolderRect.Size()) );
+ if(!m_maskBitmap) {
+ TSize maskBitmapSize(m_rightPlaceHolderRect.Size());
+ TRAP_IGNORE(CreateMaskBitmapForLeftRightThumbnailL(maskBitmapSize, EGray256, KSideImageMaskColor));
+ }
+ if(m_maskBitmap) {
+ m_bitmapContext->BitBltMasked(m_rightPlaceHolderRect.iTl, rightEntry->thumbnail(), TRect(TPoint(0,0), m_rightPlaceHolderRect.Size()), m_maskBitmap, EFalse);
+ }
+ else {
+ //if failed to create a mask, just draw the right entry thumbnail.
+ m_bitmapContext->BitBlt( m_rightPlaceHolderRect.iTl, rightEntry->thumbnail(), TRect(TPoint(0,0), m_rightPlaceHolderRect.Size()) );
+ }
}
-
- m_bitmapContext->SetBrushColor ( KSideImageMaskColor );
- m_bitmapContext->SetBrushStyle ( CWindowGc::ESolidBrush );
- m_bitmapContext->DrawRect(m_rightPlaceHolderRect);
- m_bitmapContext->SetBrushStyle(CGraphicsContext::ENullBrush);
}
// updateDisplay the center thumbnail
if (m_centerEntry ) {
@@ -830,4 +841,23 @@
}
}
+
+void HistoryView::CreateMaskBitmapForLeftRightThumbnailL(TSize& aSize, TDisplayMode aDisplayMode, TRgb aRgb)
+{
+ if(m_maskBitmap) {
+ delete m_maskBitmap;
+ m_maskBitmap = NULL;
+ }
+ m_maskBitmap = new (ELeave) CFbsBitmap();
+ User::LeaveIfError(m_maskBitmap->Create(aSize, aDisplayMode));
+ CFbsBitmapDevice* maskBitmapDevice = CFbsBitmapDevice::NewL(m_maskBitmap);
+ CFbsBitGc* maskBitmapContext;
+ User::LeaveIfError(maskBitmapDevice->CreateContext(maskBitmapContext));
+ maskBitmapContext->SetPenStyle( CGraphicsContext::ENullPen );
+ maskBitmapContext->SetBrushColor( aRgb );
+ maskBitmapContext->SetBrushStyle( CGraphicsContext::ESolidBrush );
+ maskBitmapContext->DrawRect(TRect(TPoint(0,0), m_maskBitmap->SizeInPixels()));
+ delete maskBitmapContext;
+ delete maskBitmapDevice;
+}
// End of File