--- a/uiacceltk/hitchcock/ServerCore/Src/alfnodes.cpp Wed Sep 15 13:12:27 2010 +0300
+++ b/uiacceltk/hitchcock/ServerCore/Src/alfnodes.cpp Wed Oct 13 15:34:15 2010 +0300
@@ -394,60 +394,61 @@
// ---------------------------------------------------------------------------
//
+// ---------------------------------------------------------------------------
+// CAlfNode::TraverseNodeTree
+// Traverse through node tree and fill node array
+// ---------------------------------------------------------------------------
+//
+
void CAlfNode::TraverseNodeTree( CAlfNode* node, RPointerArray<CAlfNode>& nodes, TBool aTraverseOnlySiblings, TBool aAddMe)
{
// Exit if we've already finished walking the tree.
if ( node == NULL)
{
- __ALFLOGSTRING("TraverseNodeTree returning - NULL");
+ __ALFLOGSTRING(" returning NULL");
return;
}
-
- while ( node )
+ if (!aTraverseOnlySiblings)
{
- if (!aTraverseOnlySiblings)
- {
- if ( node->iSpriteChild )
- {
- CAlfNode* spritenode = node->iSpriteChild ;
- while ( spritenode )
- {
- nodes.Append( spritenode );
- spritenode = spritenode->iSibling;
- }
- }
-
- if( node->iTextCursor )
- {
- nodes.Append(node->iTextCursor );
- }
-
- if( node->iAnimChild )
+ if ( node->iSpriteChild )
+ {
+ CAlfNode* spritenode = node->iSpriteChild ;
+ while ( spritenode )
{
- CAlfNode* animnode = node->iAnimChild ;
- while ( animnode )
- {
- nodes.Append( animnode );
- animnode = animnode->iSibling;
- }
- }
-
- if ( node->iChild)
- {
- TraverseNodeTree(node->iChild , nodes, EFalse, ETrue);
+ nodes.Append( spritenode );
+ spritenode = spritenode->iSibling;
}
- }
-
- if (aAddMe)
+ }
+
+ if( node->iTextCursor )
{
- nodes.Append( node );
+ nodes.Append(node->iTextCursor );
+ }
+
+ if( node->iAnimChild )
+ {
+ CAlfNode* animnode = node->iAnimChild ;
+ while ( animnode )
+ {
+ nodes.Append( animnode );
+ animnode = animnode->iSibling;
+ }
}
+
+ if ( node->iChild)
+ {
+ TraverseNodeTree(node->iChild , nodes, EFalse, ETrue);
+ }
+ }
- // Without recursion, continue with the following:
- // TraverseNodeTree(node->iSibling, nodes, ETrue, ETrue);
- node = node->iSibling;
- aTraverseOnlySiblings = ETrue;
- aAddMe = ETrue;
+ if (aAddMe)
+ {
+ nodes.Append( node );
+ }
+
+ if ( node->iSibling )
+ {
+ TraverseNodeTree(node->iSibling, nodes, ETrue, ETrue);
}
}