--- a/uiacceltk/hitchcock/coretoolkit/src/HuiFxEffectParser.cpp Wed Apr 14 16:53:50 2010 +0300
+++ b/uiacceltk/hitchcock/coretoolkit/src/HuiFxEffectParser.cpp Tue Apr 27 17:34:42 2010 +0300
@@ -345,9 +345,11 @@
#endif
TPtrC16 extBitmap;
THuiFxVisualSrcType srcType = GetSrcTypeL( aNode, extBitmap );
+ TBool opaqueHint = GetOpaqueHintL(aNode);
CHuiFxVisualLayer* visual = CHuiFxVisualLayer::NewL( iVisual );
CleanupStack::PushL( visual );
visual->SetSourceType( srcType );
+ visual->SetFxmlUsesOpaqueHint( opaqueHint );
if ( srcType == EVisualSrcBitmap && extBitmap.Length() > 0 )
{
visual->SetExtBitmapFileL( extBitmap );
@@ -1159,6 +1161,35 @@
#endif
return ref;
}
+TBool CHuiFxEffectParser::GetOpaqueHintL( CMDXMLNode *aNode )
+ {
+ if (aNode->NodeType() != CMDXMLNode::EElementNode)
+ {
+ FAIL(KErrGeneral, _L("Text node expected while reading visual source type"));
+ }
+ TInt attributeIndex = ((CMDXMLElement*)aNode)->FindIndex( KLitOpaque );
+ if (attributeIndex == KErrNotFound)
+ {
+ // If src not found, the source defaults to visual itself
+ return EFalse;
+ }
+
+ TPtrC attributeValue;
+ TPtrC attributeName;
+ User::LeaveIfError(((CMDXMLElement*)aNode)->AttributeDetails( attributeIndex, attributeName, attributeValue ));
+
+ if( attributeValue.Compare( KLitTrue ) == 0 )
+ {
+ return ETrue;
+ }
+
+ if( attributeValue.Compare( KLitFalse ) == 0 )
+ {
+ return EFalse;
+ }
+
+ return EFalse;
+ }
THuiFxVisualSrcType CHuiFxEffectParser::GetSrcTypeL( CMDXMLNode* aNode, TPtrC16& aBitmap )
{