uiacceltk/hitchcock/ServerCore/Src/alfhierarchymodel.cpp
changeset 13 8f67d927ea57
parent 0 15bf7259bb7c
child 14 83d2d132aa58
equal deleted inserted replaced
0:15bf7259bb7c 13:8f67d927ea57
    68     iSema.CreateLocal();
    68     iSema.CreateLocal();
    69     if (iServer.Bridge())
    69     if (iServer.Bridge())
    70         {
    70         {
    71         iServer.Bridge()->SetBatchObserver(this);
    71         iServer.Bridge()->SetBatchObserver(this);
    72         }                
    72         }                
    73 #ifdef ALF_DEBUG_TRACK_DRAWING 
    73     #ifdef ALF_DEBUG_TRACK_DRAWING 
    74     iCommandDebugger = CAlfCommandDebug::NewL();
    74     iCommandDebugger = CAlfCommandDebug::NewL();
    75 #endif
    75     #endif
       
    76 
       
    77     #ifdef USE_MODULE_TEST_HOOKS_FOR_ALF
       
    78     // Initiliaze global data in TLS and Open global module testing chunk and mutex
       
    79     User::LeaveIfError(Dll::SetTls(new(ELeave) CAlfModuleTestDataControl()));
       
    80     User::LeaveIfError(AMT_CONTROL()->OpenGlobalObjects());
       
    81     #endif
       
    82     
    76 	}
    83 	}
    77 
    84 
    78 // ---------------------------------------------------------------------------
    85 // ---------------------------------------------------------------------------
    79 // AppendScreenL
    86 // AppendScreenL
    80 // ---------------------------------------------------------------------------
    87 // ---------------------------------------------------------------------------
   129         iStream = NULL;
   136         iStream = NULL;
   130         }
   137         }
   131     iChunk.Close();
   138     iChunk.Close();
   132 #ifdef ALF_DEBUG_TRACK_DRAWING 
   139 #ifdef ALF_DEBUG_TRACK_DRAWING 
   133     delete iCommandDebugger;
   140     delete iCommandDebugger;
       
   141 #endif
       
   142     
       
   143 #ifdef USE_MODULE_TEST_HOOKS_FOR_ALF
       
   144     delete AMT_CONTROL();
       
   145     Dll::FreeTls();
   134 #endif
   146 #endif
   135     }
   147     }
   136 
   148 
   137 // ---------------------------------------------------------------------------
   149 // ---------------------------------------------------------------------------
   138 // ReleaseSemaphor
   150 // ReleaseSemaphor
   231             {
   243             {
   232             OpenChunkL( aMessage );
   244             OpenChunkL( aMessage );
   233 			aMessage.Complete( EAlfBridgerSendChunk );
   245 			aMessage.Complete( EAlfBridgerSendChunk );
   234             return;
   246             return;
   235             }
   247             }
       
   248         case EAlfSynchronize:
       
   249             {
       
   250             iServer.Bridge()->AddData( EAlfDSSynchronize, aMessage.Int0() );
       
   251             aMessage.Complete( KErrNone );
       
   252             }
       
   253             break;
       
   254             
   236         default:
   255         default:
   237             {
   256             {
   238             doComplete= ETrue;
   257             doComplete= ETrue;
   239             __ALFLOGSTRING("CAlfHierarchyModel::HandleMessageL, default case reached.");
   258             __ALFLOGSTRING("CAlfHierarchyModel::HandleMessageL, default case reached.");
   240             break;
   259             break;
   766         CAlfNode::PrintNodeTree(iRootNode, node->iId);
   785         CAlfNode::PrintNodeTree(iRootNode, node->iId);
   767         iRootNode->iLogging = 0;
   786         iRootNode->iLogging = 0;
   768         //CAlfNode::PrintInfo( 0, (CAlfNodeVisual*)node, TPtrC(KText) , iSearchNode);
   787         //CAlfNode::PrintInfo( 0, (CAlfNodeVisual*)node, TPtrC(KText) , iSearchNode);
   769         }
   788         }
   770 #endif
   789 #endif
       
   790 
       
   791     AMT_INC_COUNTER_IF(node && (nodeType==MWsWindowTreeNode::EWinTreeNodeClient), iWindowNodeCount ); 
       
   792     AMT_INC_COUNTER_IF(node && (nodeType==MWsWindowTreeNode::EWinTreeNodeGroup),  iWindowGroupNodeCount ); 
       
   793     AMT_INC_COUNTER_IF(node, iTotalNodeCount );         
   771     }
   794     }
   772 
   795 
   773 // ---------------------------------------------------------------------------
   796 // ---------------------------------------------------------------------------
   774 // DoNodeReleasedL
   797 // DoNodeReleasedL
   775 // ---------------------------------------------------------------------------
   798 // ---------------------------------------------------------------------------
   795         }
   818         }
   796     else
   819     else
   797         {
   820         {
   798         USER_INVARIANT();
   821         USER_INVARIANT();
   799         }
   822         }
       
   823 
       
   824     AMT_DEC_COUNTER_IF(node && (nodeType==MWsWindowTreeNode::EWinTreeNodeClient), iWindowNodeCount ); 
       
   825     AMT_DEC_COUNTER_IF(node && (nodeType==MWsWindowTreeNode::EWinTreeNodeGroup),  iWindowGroupNodeCount ); 
       
   826     AMT_DEC_COUNTER_IF(node, iTotalNodeCount );     
   800     }
   827     }
   801 
   828 
   802 // ---------------------------------------------------------------------------
   829 // ---------------------------------------------------------------------------
   803 // DoNodeActivatedL
   830 // DoNodeActivatedL
   804 // ---------------------------------------------------------------------------
   831 // ---------------------------------------------------------------------------
   814         }
   841         }
   815     else
   842     else
   816         {
   843         {
   817         USER_INVARIANT();
   844         USER_INVARIANT();
   818         }
   845         }
       
   846     
       
   847     AMT_INC_COUNTER_IF( node && (nodeType==MWsWindowTreeNode::EWinTreeNodeClient), iWindowNodeActivatedCount ); 
   819     }
   848     }
   820 
   849 
   821 // ---------------------------------------------------------------------------
   850 // ---------------------------------------------------------------------------
   822 // DoNodeExtentChangedL
   851 // DoNodeExtentChangedL
   823 // ---------------------------------------------------------------------------
   852 // ---------------------------------------------------------------------------
   844         CAlfNode::PrintNodeTree(iRootNode, node->iId);
   873         CAlfNode::PrintNodeTree(iRootNode, node->iId);
   845         //CAlfNode::PrintInfo( 0, (CAlfNodeVisual*)node, TPtrC(KText), iSearchNode);
   874         //CAlfNode::PrintInfo( 0, (CAlfNodeVisual*)node, TPtrC(KText), iSearchNode);
   846         }
   875         }
   847 #endif
   876 #endif
   848 
   877 
       
   878     AMT_INC_COUNTER_IF(node, iNodeExtentChangedCount );
       
   879     AMT_SET_VALUE_IF(node, iLatestNodeExtentRect, rect );        
   849     }
   880     }
   850 
   881 
   851 // ---------------------------------------------------------------------------
   882 // ---------------------------------------------------------------------------
   852 // DoNodeSiblingOrderChangedL
   883 // DoNodeSiblingOrderChangedL
   853 // ---------------------------------------------------------------------------
   884 // ---------------------------------------------------------------------------
   858     TUint32 nodeId = (TUint32)iStream->ReadUint32L();
   889     TUint32 nodeId = (TUint32)iStream->ReadUint32L();
   859 
   890 
   860     CAlfNode* node = FindNode( nodeId );
   891     CAlfNode* node = FindNode( nodeId );
   861     if ( node )
   892     if ( node )
   862         {
   893         {
       
   894         AMT_SET_VALUE(iAST_Temp1, node->OrdinalPosition());
       
   895         
   863         node->SiblingOrderChanged( newPos );
   896         node->SiblingOrderChanged( newPos );
       
   897         
       
   898         AMT_SET_VALUE(iOrdinalChange, node->OrdinalPosition() - AMT_DATA()->iAST_Temp1);
   864         }
   899         }
   865     else
   900     else
   866         {
   901         {
   867 #ifdef _DEBUG
   902 #ifdef _DEBUG
   868         RDebug::Print( _L("Missing a node %d"), nodeId );
   903         RDebug::Print( _L("Missing a node %d"), nodeId );
   899         }
   934         }
   900     else
   935     else
   901         {
   936         {
   902         USER_INVARIANT();
   937         USER_INVARIANT();
   903         }
   938         }
       
   939 
       
   940     AMT_INC_COUNTER_IF(node, iTotalNodeFlagChangedCount );    
   904     }
   941     }
   905 
   942 
   906 // ---------------------------------------------------------------------------
   943 // ---------------------------------------------------------------------------
   907 // DoNodeFadeAllChildrenL
   944 // DoNodeFadeAllChildrenL
   908 // ---------------------------------------------------------------------------
   945 // ---------------------------------------------------------------------------
   976     {   
  1013     {   
   977     // Set composition surface extent 
  1014     // Set composition surface extent 
   978     TUint32 nodeId = (TUint32)iStream->ReadUint32L();
  1015     TUint32 nodeId = (TUint32)iStream->ReadUint32L();
   979     TRect extent = TRect(0,0,0,0);
  1016     TRect extent = TRect(0,0,0,0);
   980     ReadRectL(extent, iStream); 
  1017     ReadRectL(extent, iStream); 
       
  1018     TBool isDSA = (TUint32)iStream->ReadUint32L();
   981     CAlfNodeVisual* node = (CAlfNodeVisual*)FindNode( nodeId );
  1019     CAlfNodeVisual* node = (CAlfNodeVisual*)FindNode( nodeId );
   982     if ( node && node->Window() )
  1020     if ( node && node->Window() )
   983         {
  1021         {
   984         // SetSurfaceExtent is not supported for image visual
  1022         // SetSurfaceExtent is not supported for image visual
   985         node->Window()->SetSurfaceExtent( extent );
  1023         node->Window()->SetSurfaceExtent( extent );
       
  1024         if (isDSA)
       
  1025             {
       
  1026             node->Window()->SetLayerUsesAplhaFlag(KWindowIsDSAHost);
       
  1027             }
   986         }
  1028         }
   987     else if( node ) // this would mean that node has being orphaneded but not yet deleted
  1029     else if( node ) // this would mean that node has being orphaneded but not yet deleted
   988         {
  1030         {
   989         __ALFLOGSTRING1("CAlfHierarchyModel::DoNodeLayerExtentChangedL node found but window %d was destroyed", nodeId);
  1031         __ALFLOGSTRING1("CAlfHierarchyModel::DoNodeLayerExtentChangedL node found but window %d was destroyed", nodeId);
   990         }
  1032         }
  1080         }
  1122         }
  1081     else
  1123     else
  1082         {
  1124         {
  1083         USER_INVARIANT(); // attribute change for unexpected node type. new code needed!
  1125         USER_INVARIANT(); // attribute change for unexpected node type. new code needed!
  1084         }
  1126         }
       
  1127 
       
  1128     AMT_INC_COUNTER_IF(node, iTotalNodeAttributeChangedCount );    
  1085     }
  1129     }
  1086 // ---------------------------------------------------------------------------
  1130 // ---------------------------------------------------------------------------
  1087 // DoNodeWindowGroupChainBrokenAfterL
  1131 // DoNodeWindowGroupChainBrokenAfterL
  1088 // ---------------------------------------------------------------------------
  1132 // ---------------------------------------------------------------------------
  1089 //
  1133 //