uiacceltk/hitchcock/coretoolkit/src/HuiFxEffectParser.cpp
branchRCL_3
changeset 17 3ac8bf5c5014
parent 11 46927d61fef3
child 49 c9d868f1e20c
--- 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 )
     {