uifw/AvKon/aknhlist/src/akntreelistphysicshandler.cpp
branchRCL_3
changeset 4 8ca85d2f0db7
parent 0 2f259fa3e83a
child 10 9f56a4e1b8ab
equal deleted inserted replaced
0:2f259fa3e83a 4:8ca85d2f0db7
   111         {
   111         {
   112         _AKNTRACE("CAknTreeListPhysicsHandler::%s Return due to event blocked", __FUNCTION__);
   112         _AKNTRACE("CAknTreeListPhysicsHandler::%s Return due to event blocked", __FUNCTION__);
   113         _AKNTRACE_FUNC_EXIT;
   113         _AKNTRACE_FUNC_EXIT;
   114 	    return;
   114 	    return;
   115         }
   115         }
       
   116      
       
   117     TBool listEmpty = iTree->VisibleItemCount() > 0 ? EFalse : ETrue;
       
   118     TBool eventSent = EFalse;
       
   119     
       
   120     // empty area events
       
   121     if ( aPointerEvent.iType == TPointerEvent::EButton1Up
       
   122              && PointerOnEmptyArea( aPointerEvent.iPosition ) )
       
   123         {
       
   124         if ( listEmpty )
       
   125             {
       
   126             // no items, empty list was clicked
       
   127             iTreeListView->ReportTreeListEvent( 
       
   128                         MAknTreeListObserver::EEmptyListClicked,
       
   129                         KAknTreeIIDNone );
       
   130             eventSent = ETrue;
       
   131             }
       
   132         else if ( iDownOnEmptyArea )
       
   133             {
       
   134             // items exist, empty list area was clicked
       
   135             iTreeListView->ReportTreeListEvent( 
       
   136                         MAknTreeListObserver::EEmptyAreaClicked,
       
   137                         KAknTreeIIDNone );
       
   138             eventSent = ETrue;
       
   139             }
       
   140         }
       
   141     
       
   142     if ( listEmpty || eventSent )
       
   143         {
       
   144         // return always if list is empty or if empty area event was sent
       
   145         _AKNTRACE_FUNC_EXIT;
       
   146         return;
       
   147         }   
   116     
   148     
   117     // Panning/flicking logic    
   149     // Panning/flicking logic    
   118 
   150 
   119     // EButton1Down
   151     // EButton1Down
   120 
   152 
   158         if ( iTreeListView->SingleClickEnabled()
   190         if ( iTreeListView->SingleClickEnabled()
   159                 && iTree->IsMarqueeOn() )
   191                 && iTree->IsMarqueeOn() )
   160             {
   192             {
   161             iTree->EnableMarquee( EFalse );
   193             iTree->EnableMarquee( EFalse );
   162             }
   194             }
   163            
   195             
   164         iEmptyAreaClicked = EmptyAreaClicked( aPointerEvent.iPosition ); 
   196         iDownOnEmptyArea = PointerOnEmptyArea( aPointerEvent.iPosition );
   165         }
   197         }
   166     
   198     
   167     // EDrag    
   199     // EDrag    
   168    
   200    
   169     if ( aPointerEvent.iType == TPointerEvent::EDrag )
   201     if ( aPointerEvent.iType == TPointerEvent::EDrag )
   179                 {
   211                 {
   180                 tfxApi->EnableEffects( EFalse );
   212                 tfxApi->EnableEffects( EFalse );
   181                 }
   213                 }
   182 #endif // RD_UI_TRANSITION_EFFECTS_LIST
   214 #endif // RD_UI_TRANSITION_EFFECTS_LIST
   183 
   215 
   184             iPanningActivated = ETrue;
   216             iPanningActivated = ETrue;   
   185             iEmptyAreaClicked = EFalse;        
   217             iDownOnEmptyArea = EFalse;
       
   218   
   186             
   219             
   187             iHighlightTimer->Cancel();
   220             iHighlightTimer->Cancel();
   188             iItemToBeFocused = NULL;
   221             iItemToBeFocused = NULL;
   189             iItemToBeSelected = NULL;
   222             iItemToBeSelected = NULL;
   190             iIndexToBeFocused = -1;
   223             iIndexToBeFocused = -1;
   319 
   352 
   320         if ( iItemToBeSelected != NULL && !aMarking)
   353         if ( iItemToBeSelected != NULL && !aMarking)
   321             {
   354             {
   322             iTreeListView->SelectItem( iItemToBeSelected );
   355             iTreeListView->SelectItem( iItemToBeSelected );
   323             iItemToBeSelected = NULL;
   356             iItemToBeSelected = NULL;
   324             }
   357             }      
   325 
       
   326         if ( iItemToBeSelected == NULL && iEmptyAreaClicked )
       
   327             {
       
   328             if ( iTree->VisibleItemCount() > 0 )
       
   329                 {
       
   330                 iTreeListView->ReportTreeListEvent( 
       
   331                             MAknTreeListObserver::EEmptyAreaClicked,
       
   332                             KAknTreeIIDNone );
       
   333                 }
       
   334             else
       
   335                 {
       
   336                 iTreeListView->ReportTreeListEvent( 
       
   337                             MAknTreeListObserver::EEmptyListClicked,
       
   338                             KAknTreeIIDNone );                
       
   339                 }
       
   340             }       
       
   341         }
   358         }
   342     
   359     
   343     // Item handling logic    
   360     // Item handling logic    
   344 
   361 
   345     TPoint adjustedPosition( aPointerEvent.iPosition );
   362     TPoint adjustedPosition( aPointerEvent.iPosition );
  1134    	return iTree->VisibleItemCount() * iItemHeight + iListTopOffset;
  1151    	return iTree->VisibleItemCount() * iItemHeight + iListTopOffset;
  1135     }
  1152     }
  1136 
  1153 
  1137 
  1154 
  1138 // ---------------------------------------------------------------------------
  1155 // ---------------------------------------------------------------------------
  1139 // CAknTreeListPhysicsHandler::EmptyAreaClicked
  1156 // CAknTreeListPhysicsHandler::PointerOnEmptyArea
  1140 // ---------------------------------------------------------------------------
  1157 // ---------------------------------------------------------------------------
  1141 //
  1158 //
  1142 TBool CAknTreeListPhysicsHandler::EmptyAreaClicked( TPoint aPosition )
  1159 TBool CAknTreeListPhysicsHandler::PointerOnEmptyArea( TPoint aPosition )
  1143     { 
  1160     {        
  1144     if ( aPosition.iY <= WorldHeight() )
  1161     if ( aPosition.iY <= WorldHeight() )
  1145         {
  1162         {
  1146         return EFalse;
  1163         return EFalse;
  1147         }
  1164         }
  1148     return ETrue;
  1165     return ETrue;