equal
deleted
inserted
replaced
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; |