19 #include <aknitemactionmenu.h> |
19 #include <aknitemactionmenu.h> |
20 #include <eikspane.h> |
20 #include <eikspane.h> |
21 #include <aknnavide.h> |
21 #include <aknnavide.h> |
22 #include <barsread.h> |
22 #include <barsread.h> |
23 #include <AknUtils.h> |
23 #include <AknUtils.h> |
24 |
24 #include <AknTasHook.h> |
|
25 |
|
26 #include "akntrace.h" |
25 #include "aknmarkingmode.h" |
27 #include "aknmarkingmode.h" |
26 |
28 |
27 // --------------------------------------------------------------------------- |
29 // --------------------------------------------------------------------------- |
28 // CAknMarkingMode::NewL |
30 // CAknMarkingMode::NewL |
29 // --------------------------------------------------------------------------- |
31 // --------------------------------------------------------------------------- |
30 // |
32 // |
31 CAknMarkingMode* CAknMarkingMode::NewL( |
33 CAknMarkingMode* CAknMarkingMode::NewL( |
32 CAknItemActionMenu& aItemActionMenu, |
34 CAknItemActionMenu& aItemActionMenu, |
33 CollectionArray& aArray ) |
35 CollectionArray& aArray ) |
34 { |
36 { |
|
37 _AKNTRACE_FUNC_ENTER; |
35 CAknMarkingMode* self = |
38 CAknMarkingMode* self = |
36 new ( ELeave ) CAknMarkingMode( aItemActionMenu, aArray ); |
39 new ( ELeave ) CAknMarkingMode( aItemActionMenu, aArray ); |
|
40 _AKNTRACE_FUNC_EXIT; |
37 return self; |
41 return self; |
38 } |
42 } |
39 |
43 |
40 |
44 |
41 // --------------------------------------------------------------------------- |
45 // --------------------------------------------------------------------------- |
42 // CAknMarkingMode::~CAknMarkingMode |
46 // CAknMarkingMode::~CAknMarkingMode |
43 // --------------------------------------------------------------------------- |
47 // --------------------------------------------------------------------------- |
44 // |
48 // |
45 CAknMarkingMode::~CAknMarkingMode() |
49 CAknMarkingMode::~CAknMarkingMode() |
46 { |
50 { |
|
51 _AKNTRACE_FUNC_ENTER; |
|
52 AKNTASHOOK_REMOVE(); |
47 delete iMarkingDecorator; |
53 delete iMarkingDecorator; |
|
54 _AKNTRACE_FUNC_EXIT; |
48 } |
55 } |
49 |
56 |
50 |
57 |
51 // --------------------------------------------------------------------------- |
58 // --------------------------------------------------------------------------- |
52 // CAknMarkingMode::SetCollectionMultipleMarkingState |
59 // CAknMarkingMode::SetCollectionMultipleMarkingState |
53 // --------------------------------------------------------------------------- |
60 // --------------------------------------------------------------------------- |
54 // |
61 // |
55 void CAknMarkingMode::SetCollectionMultipleMarkingState( TBool aActive ) |
62 void CAknMarkingMode::SetCollectionMultipleMarkingState( TBool aActive ) |
56 { |
63 { |
57 for ( TInt i = 0; i < iCollections.Count(); i++ ) |
64 _AKNTRACE_FUNC_ENTER; |
58 { |
65 for ( TInt i = 0; i < iCollections.Count(); i++ ) |
59 MAknCollection* collection( iCollections[ i ] ); |
66 { |
|
67 MAknCollection* collection( iCollections[i] ); |
60 // Assume the command applies to first list with multiple selection |
68 // Assume the command applies to first list with multiple selection |
61 if ( collection->CollectionState() & |
69 if ( collection->CollectionState() & |
62 MAknCollection::EStateMultipleSelection ) |
70 MAknCollection::EStateMultipleSelection ) |
63 { |
71 { |
64 MAknMarkingCollection* markingCollection |
72 MAknMarkingCollection* markingCollection |
70 } |
78 } |
71 iItemActionMenu.CollectionChanged( *collection ); |
79 iItemActionMenu.CollectionChanged( *collection ); |
72 break; |
80 break; |
73 } |
81 } |
74 } |
82 } |
|
83 _AKNTRACE_FUNC_EXIT; |
75 } |
84 } |
76 |
85 |
77 |
86 |
78 // --------------------------------------------------------------------------- |
87 // --------------------------------------------------------------------------- |
79 // CAknMarkingMode::TryExitMarkingMode |
88 // CAknMarkingMode::TryExitMarkingMode |
80 // --------------------------------------------------------------------------- |
89 // --------------------------------------------------------------------------- |
81 // |
90 // |
82 void CAknMarkingMode::TryExitMarkingMode() |
91 void CAknMarkingMode::TryExitMarkingMode() |
83 { |
92 { |
84 for ( TInt i = 0; i < iCollections.Count(); i++ ) |
93 _AKNTRACE_FUNC_ENTER; |
85 { |
94 for ( TInt i = 0; i < iCollections.Count(); i++ ) |
86 MAknCollection* collection( iCollections[ i ] ); |
95 { |
|
96 MAknCollection* collection( iCollections[i] ); |
87 MAknMarkingCollection* markingCollection |
97 MAknMarkingCollection* markingCollection |
88 = MarkingCollection( *collection ); |
98 = MarkingCollection( *collection ); |
89 if ( markingCollection && markingCollection->MarkingState( |
99 if ( markingCollection && markingCollection->MarkingState( |
90 ) & MAknMarkingCollection::EStateMarkingMode ) |
100 ) & MAknMarkingCollection::EStateMarkingMode ) |
91 { |
101 { |
94 SetCollectionMultipleMarkingState( EFalse ); |
104 SetCollectionMultipleMarkingState( EFalse ); |
95 } |
105 } |
96 } |
106 } |
97 break; |
107 break; |
98 } |
108 } |
|
109 _AKNTRACE_FUNC_EXIT; |
99 } |
110 } |
100 |
111 |
101 |
112 |
102 // --------------------------------------------------------------------------- |
113 // --------------------------------------------------------------------------- |
103 // CAknMarkingMode::MultipleMarkingActive |
114 // CAknMarkingMode::MultipleMarkingActive |
104 // --------------------------------------------------------------------------- |
115 // --------------------------------------------------------------------------- |
105 // |
116 // |
106 TBool CAknMarkingMode::MultipleMarkingActive() const |
117 TBool CAknMarkingMode::MultipleMarkingActive() const |
107 { |
118 { |
|
119 _AKNTRACE_FUNC_ENTER; |
108 TBool markingActive( EFalse ); |
120 TBool markingActive( EFalse ); |
109 for ( TInt i = 0; i < iCollections.Count(); i++ ) |
121 for ( TInt i = 0; i < iCollections.Count(); i++ ) |
110 { |
122 { |
111 MAknCollection* collection( iCollections[ i ] ); |
123 MAknCollection* collection( iCollections[i] ); |
112 if ( collection->CollectionState() & |
124 if ( collection->CollectionState() & |
113 MAknCollection::EStateCollectionVisible ) |
125 MAknCollection::EStateCollectionVisible ) |
114 { |
126 { |
115 MAknMarkingCollection* markingCollection |
127 MAknMarkingCollection* markingCollection |
116 = MarkingCollection( *collection ); |
128 = MarkingCollection( *collection ); |
120 & MAknMarkingCollection::EStateMarkingMode; |
132 & MAknMarkingCollection::EStateMarkingMode; |
121 } |
133 } |
122 break; |
134 break; |
123 } |
135 } |
124 } |
136 } |
|
137 _AKNTRACE_FUNC_EXIT; |
125 return markingActive; |
138 return markingActive; |
126 } |
139 } |
127 |
140 |
128 |
141 |
129 // --------------------------------------------------------------------------- |
142 // --------------------------------------------------------------------------- |
130 // CAknMarkingMode::MarkedItems |
143 // CAknMarkingMode::MarkedItems |
131 // --------------------------------------------------------------------------- |
144 // --------------------------------------------------------------------------- |
132 // |
145 // |
133 TBool CAknMarkingMode::MarkedItems() const |
146 TBool CAknMarkingMode::MarkedItems() const |
134 { |
147 { |
|
148 _AKNTRACE_FUNC_ENTER; |
135 TBool markedItems( EFalse ); |
149 TBool markedItems( EFalse ); |
136 for ( TInt i = 0; i < iCollections.Count(); i++ ) |
150 for ( TInt i = 0; i < iCollections.Count(); i++ ) |
137 { |
151 { |
138 MAknCollection* collection( iCollections[ i ] ); |
152 MAknCollection* collection( iCollections[i] ); |
139 if ( collection->CollectionState() & |
153 if ( collection->CollectionState() & |
140 MAknCollection::EStateCollectionVisible ) |
154 MAknCollection::EStateCollectionVisible ) |
141 { |
155 { |
142 MAknMarkingCollection* markingCollection |
156 MAknMarkingCollection* markingCollection |
143 = MarkingCollection( *collection ); |
157 = MarkingCollection( *collection ); |
152 } |
166 } |
153 } |
167 } |
154 break; |
168 break; |
155 } |
169 } |
156 } |
170 } |
|
171 _AKNTRACE_FUNC_EXIT; |
157 return markedItems; |
172 return markedItems; |
158 } |
173 } |
159 |
174 |
160 // --------------------------------------------------------------------------- |
175 // --------------------------------------------------------------------------- |
161 // CAknMarkingMode::CollectionEmpty |
176 // CAknMarkingMode::CollectionEmpty |
162 // --------------------------------------------------------------------------- |
177 // --------------------------------------------------------------------------- |
163 // |
178 // |
164 TBool CAknMarkingMode::CollectionEmpty() const |
179 TBool CAknMarkingMode::CollectionEmpty() const |
165 { |
180 { |
|
181 _AKNTRACE_FUNC_ENTER; |
166 TBool empty( EFalse ); |
182 TBool empty( EFalse ); |
167 for ( TInt i = 0; i < iCollections.Count(); i++ ) |
183 for ( TInt i = 0; i < iCollections.Count(); i++ ) |
168 { |
184 { |
169 MAknCollection* collection( iCollections[ i ] ); |
185 MAknCollection* collection( iCollections[i] ); |
170 if ( collection->CollectionState() & |
186 if ( collection->CollectionState() & |
171 MAknCollection::EStateCollectionVisible ) |
187 MAknCollection::EStateCollectionVisible ) |
172 { |
188 { |
173 MAknMarkingCollection* markingCollection |
189 MAknMarkingCollection* markingCollection |
174 = MarkingCollection( *collection ); |
190 = MarkingCollection( *collection ); |
183 } |
199 } |
184 } |
200 } |
185 break; |
201 break; |
186 } |
202 } |
187 } |
203 } |
|
204 _AKNTRACE_FUNC_EXIT; |
188 return empty; |
205 return empty; |
189 } |
206 } |
190 |
207 |
191 |
208 |
192 // --------------------------------------------------------------------------- |
209 // --------------------------------------------------------------------------- |
193 // CAknMarkingMode::MarkAllL |
210 // CAknMarkingMode::MarkAllL |
194 // --------------------------------------------------------------------------- |
211 // --------------------------------------------------------------------------- |
195 // |
212 // |
196 void CAknMarkingMode::MarkAllL() |
213 void CAknMarkingMode::MarkAllL() |
197 { |
214 { |
|
215 _AKNTRACE_FUNC_ENTER; |
198 MAknMarkingCollection* collection = ActiveMarkingCollection(); |
216 MAknMarkingCollection* collection = ActiveMarkingCollection(); |
199 |
217 |
200 if ( collection ) |
218 if ( collection ) |
201 { |
219 { |
202 collection->MarkAllL(); |
220 collection->MarkAllL(); |
203 } |
221 } |
|
222 _AKNTRACE_FUNC_EXIT; |
204 } |
223 } |
205 |
224 |
206 |
225 |
207 // --------------------------------------------------------------------------- |
226 // --------------------------------------------------------------------------- |
208 // CAknMarkingMode::UnmarkAll |
227 // CAknMarkingMode::UnmarkAll |
209 // --------------------------------------------------------------------------- |
228 // --------------------------------------------------------------------------- |
210 // |
229 // |
211 void CAknMarkingMode::UnmarkAll() |
230 void CAknMarkingMode::UnmarkAll() |
212 { |
231 { |
|
232 _AKNTRACE_FUNC_ENTER; |
213 MAknMarkingCollection* collection = ActiveMarkingCollection(); |
233 MAknMarkingCollection* collection = ActiveMarkingCollection(); |
214 |
234 |
215 if ( collection ) |
235 if ( collection ) |
216 { |
236 { |
217 collection->UnmarkAll(); |
237 collection->UnmarkAll(); |
218 } |
238 } |
|
239 _AKNTRACE_FUNC_EXIT; |
219 } |
240 } |
220 |
241 |
221 |
242 |
222 // --------------------------------------------------------------------------- |
243 // --------------------------------------------------------------------------- |
223 // CAknMarkingMode::MarkCurrentItemL |
244 // CAknMarkingMode::MarkCurrentItemL |
224 // --------------------------------------------------------------------------- |
245 // --------------------------------------------------------------------------- |
225 // |
246 // |
226 void CAknMarkingMode::MarkCurrentItemL() |
247 void CAknMarkingMode::MarkCurrentItemL() |
227 { |
248 { |
|
249 _AKNTRACE_FUNC_ENTER; |
228 MAknMarkingCollection* collection = ActiveMarkingCollection(); |
250 MAknMarkingCollection* collection = ActiveMarkingCollection(); |
229 |
251 |
230 // first activate marking mode if needed |
252 // first activate marking mode if needed |
231 if ( !collection ) |
253 if ( !collection ) |
232 { |
254 { |
237 // then mark the current item |
259 // then mark the current item |
238 if ( collection ) |
260 if ( collection ) |
239 { |
261 { |
240 collection->MarkCurrentItemL(); |
262 collection->MarkCurrentItemL(); |
241 } |
263 } |
|
264 _AKNTRACE_FUNC_EXIT; |
242 } |
265 } |
243 |
266 |
244 // --------------------------------------------------------------------------- |
267 // --------------------------------------------------------------------------- |
245 // CAknMarkingMode::CurrentItemMarkable |
268 // CAknMarkingMode::CurrentItemMarkable |
246 // --------------------------------------------------------------------------- |
269 // --------------------------------------------------------------------------- |
247 // |
270 // |
248 TBool CAknMarkingMode::CurrentItemMarkable() |
271 TBool CAknMarkingMode::CurrentItemMarkable() |
249 { |
272 { |
|
273 _AKNTRACE_FUNC_ENTER; |
|
274 _AKNTRACE_FUNC_EXIT; |
250 return MarkingCollection()->CurrentItemMarkable(); |
275 return MarkingCollection()->CurrentItemMarkable(); |
251 } |
276 } |
252 |
277 |
253 // --------------------------------------------------------------------------- |
278 // --------------------------------------------------------------------------- |
254 // CAknMarkingMode::CAknMarkingMode |
279 // CAknMarkingMode::CAknMarkingMode |
259 CollectionArray& aArray ) |
284 CollectionArray& aArray ) |
260 : iCollections( aArray ), |
285 : iCollections( aArray ), |
261 iItemActionMenu( aItemActionMenu ), |
286 iItemActionMenu( aItemActionMenu ), |
262 iMarkingDecorator( NULL ) |
287 iMarkingDecorator( NULL ) |
263 { |
288 { |
|
289 _AKNTRACE_FUNC_ENTER; |
|
290 AKNTASHOOK_ADD( this, "CAknMarkingMode" ); |
|
291 _AKNTRACE_FUNC_EXIT; |
264 } |
292 } |
265 |
293 |
266 |
294 |
267 // --------------------------------------------------------------------------- |
295 // --------------------------------------------------------------------------- |
268 // CAknMarkingMode::MarkingCollection |
296 // CAknMarkingMode::MarkingCollection |
269 // --------------------------------------------------------------------------- |
297 // --------------------------------------------------------------------------- |
270 // |
298 // |
271 MAknMarkingCollection* CAknMarkingMode::MarkingCollection( |
299 MAknMarkingCollection* CAknMarkingMode::MarkingCollection( |
272 MAknCollection& aCollection ) |
300 MAknCollection& aCollection ) |
273 { |
301 { |
|
302 _AKNTRACE_FUNC_ENTER; |
274 TAny* extension( NULL ); |
303 TAny* extension( NULL ); |
275 aCollection.CollectionExtension( |
304 aCollection.CollectionExtension( |
276 MAknMarkingCollection::TYPE, extension, NULL ); |
305 MAknMarkingCollection::TYPE, extension, NULL ); |
|
306 _AKNTRACE_FUNC_EXIT; |
277 return static_cast<MAknMarkingCollection*>( extension ); |
307 return static_cast<MAknMarkingCollection*>( extension ); |
278 } |
308 } |
279 |
309 |
280 |
310 |
281 // --------------------------------------------------------------------------- |
311 // --------------------------------------------------------------------------- |
282 // CAknMarkingMode::MarkingCollection |
312 // CAknMarkingMode::MarkingCollection |
283 // --------------------------------------------------------------------------- |
313 // --------------------------------------------------------------------------- |
284 // |
314 // |
285 MAknMarkingCollection* CAknMarkingMode::MarkingCollection() |
315 MAknMarkingCollection* CAknMarkingMode::MarkingCollection() |
286 { |
316 { |
287 for ( TInt i = 0; i < iCollections.Count(); i++ ) |
317 _AKNTRACE_FUNC_ENTER; |
288 { |
318 for ( TInt i = 0; i < iCollections.Count(); i++ ) |
289 MAknCollection* collection( iCollections[ i ] ); |
319 { |
|
320 MAknCollection* collection( iCollections[i] ); |
290 if ( collection->CollectionState() & |
321 if ( collection->CollectionState() & |
291 MAknCollection::EStateCollectionVisible ) |
322 MAknCollection::EStateCollectionVisible ) |
292 { |
323 { |
|
324 _AKNTRACE_FUNC_EXIT; |
293 return MarkingCollection( *collection ); |
325 return MarkingCollection( *collection ); |
294 } |
326 } |
295 } |
327 } |
296 |
328 _AKNTRACE_FUNC_EXIT; |
297 return NULL; |
329 return NULL; |
298 } |
330 } |
299 |
331 |
300 |
332 |
301 // --------------------------------------------------------------------------- |
333 // --------------------------------------------------------------------------- |
302 // CAknMarkingMode::ActiveMarkingCollection |
334 // CAknMarkingMode::ActiveMarkingCollection |
303 // --------------------------------------------------------------------------- |
335 // --------------------------------------------------------------------------- |
304 // |
336 // |
305 MAknMarkingCollection* CAknMarkingMode::ActiveMarkingCollection() |
337 MAknMarkingCollection* CAknMarkingMode::ActiveMarkingCollection() |
306 { |
338 { |
307 for ( TInt i = 0; i < iCollections.Count(); i++ ) |
339 _AKNTRACE_FUNC_ENTER; |
308 { |
340 for ( TInt i = 0; i < iCollections.Count(); i++ ) |
309 MAknCollection* collection( iCollections[ i ] ); |
341 { |
|
342 MAknCollection* collection( iCollections[i] ); |
310 |
343 |
311 MAknMarkingCollection* markingCollection = |
344 MAknMarkingCollection* markingCollection = |
312 MarkingCollection( *collection ); |
345 MarkingCollection( *collection ); |
313 |
346 |
314 if ( markingCollection && markingCollection->MarkingState() & |
347 if ( markingCollection && markingCollection->MarkingState() & |
315 MAknMarkingCollection::EStateMarkingMode ) |
348 MAknMarkingCollection::EStateMarkingMode ) |
316 { |
349 { |
|
350 _AKNTRACE_FUNC_EXIT; |
317 return markingCollection; |
351 return markingCollection; |
318 } |
352 } |
319 } |
353 } |
320 |
354 _AKNTRACE_FUNC_EXIT; |
321 return NULL; |
355 return NULL; |
322 } |
356 } |
323 |
357 |
324 // --------------------------------------------------------------------------- |
358 // --------------------------------------------------------------------------- |
325 // CAknMarkingMode::UpdateMarkingModeNaviPaneL |
359 // CAknMarkingMode::UpdateMarkingModeNaviPaneL |
326 // --------------------------------------------------------------------------- |
360 // --------------------------------------------------------------------------- |
327 // |
361 // |
328 void CAknMarkingMode::UpdateMarkingModeNaviPaneL( TBool aEnable ) |
362 void CAknMarkingMode::UpdateMarkingModeNaviPaneL( TBool aEnable ) |
329 { |
363 { |
|
364 _AKNTRACE_FUNC_ENTER; |
330 CEikonEnv* eikonEnv = CEikonEnv::Static(); |
365 CEikonEnv* eikonEnv = CEikonEnv::Static(); |
331 |
366 |
332 if ( eikonEnv && eikonEnv->AppUiFactory() ) |
367 if ( eikonEnv && eikonEnv->AppUiFactory() ) |
333 { |
368 { |
334 CEikStatusPane* statusPane = eikonEnv->AppUiFactory()->StatusPane(); |
369 CEikStatusPane* statusPane = eikonEnv->AppUiFactory()->StatusPane(); |