17 #include <akncollection.h> |
17 #include <akncollection.h> |
18 #include <aknitemactionmenu.h> |
18 #include <aknitemactionmenu.h> |
19 #include <eikmenub.h> |
19 #include <eikmenub.h> |
20 |
20 |
21 #include "aknitemactionmenuregisterarray.h" |
21 #include "aknitemactionmenuregisterarray.h" |
|
22 #include "akntrace.h" |
22 |
23 |
23 // --------------------------------------------------------------------------- |
24 // --------------------------------------------------------------------------- |
24 // CCAknItemActionMenuRegisterArray::NewL |
25 // CCAknItemActionMenuRegisterArray::NewL |
25 // --------------------------------------------------------------------------- |
26 // --------------------------------------------------------------------------- |
26 // |
27 // |
27 CAknItemActionMenuRegisterArray* CAknItemActionMenuRegisterArray::NewL() |
28 CAknItemActionMenuRegisterArray* CAknItemActionMenuRegisterArray::NewL() |
28 { |
29 { |
|
30 _AKNTRACE_FUNC_ENTER; |
29 CAknItemActionMenuRegisterArray* self = |
31 CAknItemActionMenuRegisterArray* self = |
30 CAknItemActionMenuRegisterArray::NewLC(); |
32 CAknItemActionMenuRegisterArray::NewLC(); |
31 CleanupStack::Pop( self ); |
33 CleanupStack::Pop( self ); |
|
34 _AKNTRACE_FUNC_EXIT; |
32 return self; |
35 return self; |
33 } |
36 } |
34 |
37 |
35 |
38 |
36 // --------------------------------------------------------------------------- |
39 // --------------------------------------------------------------------------- |
37 // CCAknItemActionMenuRegisterArray::NewLC |
40 // CCAknItemActionMenuRegisterArray::NewLC |
38 // --------------------------------------------------------------------------- |
41 // --------------------------------------------------------------------------- |
39 // |
42 // |
40 CAknItemActionMenuRegisterArray* CAknItemActionMenuRegisterArray::NewLC() |
43 CAknItemActionMenuRegisterArray* CAknItemActionMenuRegisterArray::NewLC() |
41 { |
44 { |
|
45 _AKNTRACE_FUNC_ENTER; |
42 CAknItemActionMenuRegisterArray* self = |
46 CAknItemActionMenuRegisterArray* self = |
43 new ( ELeave ) CAknItemActionMenuRegisterArray(); |
47 new ( ELeave ) CAknItemActionMenuRegisterArray(); |
44 CleanupStack::PushL( self ); |
48 CleanupStack::PushL( self ); |
|
49 _AKNTRACE_FUNC_EXIT; |
45 return self; |
50 return self; |
46 } |
51 } |
47 |
52 |
48 |
53 |
49 // --------------------------------------------------------------------------- |
54 // --------------------------------------------------------------------------- |
50 // CAknItemActionMenuRegisterArray::~CAknItemActionMenuRegisterArray |
55 // CAknItemActionMenuRegisterArray::~CAknItemActionMenuRegisterArray |
51 // --------------------------------------------------------------------------- |
56 // --------------------------------------------------------------------------- |
52 // |
57 // |
53 CAknItemActionMenuRegisterArray::~CAknItemActionMenuRegisterArray() |
58 CAknItemActionMenuRegisterArray::~CAknItemActionMenuRegisterArray() |
54 { |
59 { |
|
60 _AKNTRACE_FUNC_ENTER; |
55 iRegisterArray.ResetAndDestroy(); |
61 iRegisterArray.ResetAndDestroy(); |
56 iRegisterArray.Close(); |
62 iRegisterArray.Close(); |
|
63 _AKNTRACE_FUNC_EXIT; |
57 } |
64 } |
58 |
65 |
59 |
66 |
60 // --------------------------------------------------------------------------- |
67 // --------------------------------------------------------------------------- |
61 // CAknItemActionMenuRegisterArray::AddEntryL |
68 // CAknItemActionMenuRegisterArray::AddEntryL |
62 // --------------------------------------------------------------------------- |
69 // --------------------------------------------------------------------------- |
63 // |
70 // |
64 void CAknItemActionMenuRegisterArray::AddEntryL( |
71 void CAknItemActionMenuRegisterArray::AddEntryL( |
65 CEikMenuBar& aMenuBar, CAknItemActionMenu& aItemActionMenu ) |
72 CEikMenuBar& aMenuBar, CAknItemActionMenu& aItemActionMenu ) |
66 { |
73 { |
|
74 _AKNTRACE_FUNC_ENTER; |
67 CRegisterEntry* newEntry = CRegisterEntry::NewLC( |
75 CRegisterEntry* newEntry = CRegisterEntry::NewLC( |
68 aMenuBar, aItemActionMenu ); |
76 aMenuBar, aItemActionMenu ); |
69 iRegisterArray.AppendL( newEntry ); |
77 iRegisterArray.AppendL( newEntry ); |
70 CleanupStack::Pop( newEntry ); |
78 CleanupStack::Pop( newEntry ); |
|
79 _AKNTRACE_FUNC_EXIT; |
71 } |
80 } |
72 |
81 |
73 |
82 |
74 // --------------------------------------------------------------------------- |
83 // --------------------------------------------------------------------------- |
75 // CAknItemActionMenuRegisterArray::UnregisterMenuBar |
84 // CAknItemActionMenuRegisterArray::UnregisterMenuBar |
76 // --------------------------------------------------------------------------- |
85 // --------------------------------------------------------------------------- |
77 // |
86 // |
78 void CAknItemActionMenuRegisterArray::UnregisterMenuBar( |
87 void CAknItemActionMenuRegisterArray::UnregisterMenuBar( |
79 CEikMenuBar& aMenuBar ) |
88 CEikMenuBar& aMenuBar ) |
80 { |
89 { |
|
90 _AKNTRACE_FUNC_ENTER; |
81 CRegisterEntry* entry( NULL ); |
91 CRegisterEntry* entry( NULL ); |
82 for ( TInt i = 0; i < iRegisterArray.Count(); i++ ) |
92 for ( TInt i = 0; i < iRegisterArray.Count(); i++ ) |
83 { |
93 { |
84 entry = iRegisterArray[ i ]; |
94 entry = iRegisterArray[ i ]; |
85 if ( entry->MenuBar() == &aMenuBar ) |
95 if ( entry->MenuBar() == &aMenuBar ) |
95 RemoveEntry( i ); |
105 RemoveEntry( i ); |
96 } |
106 } |
97 break; |
107 break; |
98 } |
108 } |
99 } |
109 } |
|
110 _AKNTRACE_FUNC_EXIT; |
100 } |
111 } |
101 |
112 |
102 |
113 |
103 // --------------------------------------------------------------------------- |
114 // --------------------------------------------------------------------------- |
104 // CAknItemActionMenuRegisterArray::UnregisterItemActionMenu |
115 // CAknItemActionMenuRegisterArray::UnregisterItemActionMenu |
105 // --------------------------------------------------------------------------- |
116 // --------------------------------------------------------------------------- |
106 // |
117 // |
107 void CAknItemActionMenuRegisterArray::UnregisterItemActionMenu( |
118 void CAknItemActionMenuRegisterArray::UnregisterItemActionMenu( |
108 CAknItemActionMenu& aItemActionMenu ) |
119 CAknItemActionMenu& aItemActionMenu ) |
109 { |
120 { |
|
121 _AKNTRACE_FUNC_ENTER; |
110 CRegisterEntry* entry( NULL ); |
122 CRegisterEntry* entry( NULL ); |
|
123 |
111 for ( TInt i = 0; i < iRegisterArray.Count(); i++ ) |
124 for ( TInt i = 0; i < iRegisterArray.Count(); i++ ) |
112 { |
125 { |
113 entry = iRegisterArray[ i ]; |
126 entry = iRegisterArray[ i ]; |
114 if ( entry->ItemActionMenu() == &aItemActionMenu ) |
127 if ( entry->ItemActionMenu() == &aItemActionMenu ) |
115 { |
128 { |
119 RemoveEntry( i ); |
132 RemoveEntry( i ); |
120 } |
133 } |
121 break; |
134 break; |
122 } |
135 } |
123 } |
136 } |
|
137 _AKNTRACE_FUNC_EXIT; |
124 } |
138 } |
125 |
139 |
126 |
140 |
127 // --------------------------------------------------------------------------- |
141 // --------------------------------------------------------------------------- |
128 // CAknItemActionMenuRegisterArray::RegisterCollectionObserverL |
142 // CAknItemActionMenuRegisterArray::RegisterCollectionObserverL |
129 // --------------------------------------------------------------------------- |
143 // --------------------------------------------------------------------------- |
130 // |
144 // |
131 TBool CAknItemActionMenuRegisterArray::RegisterCollectionObserverL( |
145 TBool CAknItemActionMenuRegisterArray::RegisterCollectionObserverL( |
132 CEikMenuBar& aMenuBar, MAknCollectionObserver& aObserver ) |
146 CEikMenuBar& aMenuBar, MAknCollectionObserver& aObserver ) |
133 { |
147 { |
|
148 _AKNTRACE_FUNC_ENTER; |
134 TBool menuBarFound( EFalse ); |
149 TBool menuBarFound( EFalse ); |
135 CRegisterEntry* entry( NULL ); |
150 CRegisterEntry* entry( NULL ); |
136 for ( TInt i = 0; i < iRegisterArray.Count(); i++ ) |
151 for ( TInt i = 0; i < iRegisterArray.Count(); i++ ) |
137 { |
152 { |
138 entry = iRegisterArray[ i ]; |
153 entry = iRegisterArray[ i ]; |
156 // --------------------------------------------------------------------------- |
172 // --------------------------------------------------------------------------- |
157 // |
173 // |
158 void CAknItemActionMenuRegisterArray::UnregisterCollectionObserver( |
174 void CAknItemActionMenuRegisterArray::UnregisterCollectionObserver( |
159 MAknCollectionObserver& aObserver ) |
175 MAknCollectionObserver& aObserver ) |
160 { |
176 { |
|
177 _AKNTRACE_FUNC_ENTER; |
161 CRegisterEntry* entry( NULL ); |
178 CRegisterEntry* entry( NULL ); |
|
179 |
162 for ( TInt i = 0; i < iRegisterArray.Count(); i++ ) |
180 for ( TInt i = 0; i < iRegisterArray.Count(); i++ ) |
163 { |
181 { |
164 entry = iRegisterArray[ i ]; |
182 entry = iRegisterArray[ i ]; |
165 if ( entry->ItemActionMenu() ) |
183 if ( entry->ItemActionMenu() ) |
166 { |
184 { |
167 entry->ItemActionMenu()->RemoveCollectionObserver( aObserver ); |
185 entry->ItemActionMenu()->RemoveCollectionObserver( aObserver ); |
168 } |
186 } |
169 } |
187 } |
|
188 _AKNTRACE_FUNC_EXIT; |
170 } |
189 } |
171 |
190 |
172 |
191 |
173 // --------------------------------------------------------------------------- |
192 // --------------------------------------------------------------------------- |
174 // CAknItemActionMenuRegisterArray::CAknItemActionMenuRegisterArray |
193 // CAknItemActionMenuRegisterArray::CAknItemActionMenuRegisterArray |
192 // CAknItemActionMenuRegisterArray::RemoveEntry |
211 // CAknItemActionMenuRegisterArray::RemoveEntry |
193 // --------------------------------------------------------------------------- |
212 // --------------------------------------------------------------------------- |
194 // |
213 // |
195 void CAknItemActionMenuRegisterArray::RemoveEntry( TInt aIndex ) |
214 void CAknItemActionMenuRegisterArray::RemoveEntry( TInt aIndex ) |
196 { |
215 { |
|
216 _AKNTRACE_FUNC_ENTER; |
197 if ( aIndex >= 0 && aIndex < iRegisterArray.Count() ) |
217 if ( aIndex >= 0 && aIndex < iRegisterArray.Count() ) |
198 { |
218 { |
199 CRegisterEntry* entry = iRegisterArray[ aIndex ]; |
219 CRegisterEntry* entry = iRegisterArray[ aIndex ]; |
200 delete entry; |
220 delete entry; |
201 entry = NULL; |
221 entry = NULL; |
202 iRegisterArray.Remove( aIndex ); |
222 iRegisterArray.Remove( aIndex ); |
203 } |
223 } |
|
224 _AKNTRACE_FUNC_EXIT; |
204 } |
225 } |
205 |
226 |
206 |
227 |
207 // --------------------------------------------------------------------------- |
228 // --------------------------------------------------------------------------- |
208 // CCAknItemActionMenuRegisterArray::CRegisterEntry::NewL |
229 // CCAknItemActionMenuRegisterArray::CRegisterEntry::NewL |
224 // |
247 // |
225 CAknItemActionMenuRegisterArray::CRegisterEntry* |
248 CAknItemActionMenuRegisterArray::CRegisterEntry* |
226 CAknItemActionMenuRegisterArray::CRegisterEntry::NewLC( |
249 CAknItemActionMenuRegisterArray::CRegisterEntry::NewLC( |
227 CEikMenuBar& aMenuBar, CAknItemActionMenu& aItemActionMenu ) |
250 CEikMenuBar& aMenuBar, CAknItemActionMenu& aItemActionMenu ) |
228 { |
251 { |
|
252 _AKNTRACE_FUNC_ENTER; |
229 CRegisterEntry* self = |
253 CRegisterEntry* self = |
230 new ( ELeave ) CRegisterEntry( aMenuBar, aItemActionMenu ); |
254 new ( ELeave ) CRegisterEntry( aMenuBar, aItemActionMenu ); |
231 CleanupStack::PushL( self ); |
255 CleanupStack::PushL( self ); |
|
256 _AKNTRACE_FUNC_EXIT; |
232 return self; |
257 return self; |
233 } |
258 } |
234 |
259 |
235 |
260 |
236 // --------------------------------------------------------------------------- |
261 // --------------------------------------------------------------------------- |
237 // CAknItemActionMenuRegisterArray::CRegisterEntry::~CRegisterEntry |
262 // CAknItemActionMenuRegisterArray::CRegisterEntry::~CRegisterEntry |
238 // --------------------------------------------------------------------------- |
263 // --------------------------------------------------------------------------- |
239 // |
264 // |
240 CAknItemActionMenuRegisterArray::CRegisterEntry::~CRegisterEntry() |
265 CAknItemActionMenuRegisterArray::CRegisterEntry::~CRegisterEntry() |
241 { |
266 { |
|
267 _AKNTRACE_FUNC_ENTER; |
242 delete iActionMenu; |
268 delete iActionMenu; |
|
269 _AKNTRACE_FUNC_EXIT; |
243 } |
270 } |
244 |
271 |
245 |
272 |
246 // --------------------------------------------------------------------------- |
273 // --------------------------------------------------------------------------- |
247 // CAknItemActionMenuRegisterArray::CRegisterEntry::RemoveMenuBar |
274 // CAknItemActionMenuRegisterArray::CRegisterEntry::RemoveMenuBar |
248 // --------------------------------------------------------------------------- |
275 // --------------------------------------------------------------------------- |
249 // |
276 // |
250 void CAknItemActionMenuRegisterArray::CRegisterEntry::RemoveMenuBar() |
277 void CAknItemActionMenuRegisterArray::CRegisterEntry::RemoveMenuBar() |
251 { |
278 { |
|
279 _AKNTRACE_FUNC_ENTER; |
252 iMenuBar = NULL; |
280 iMenuBar = NULL; |
|
281 _AKNTRACE_FUNC_EXIT; |
253 } |
282 } |
254 |
283 |
255 |
284 |
256 // --------------------------------------------------------------------------- |
285 // --------------------------------------------------------------------------- |
257 // CAknItemActionMenuRegisterArray::CRegisterEntry::MenuBar |
286 // CAknItemActionMenuRegisterArray::CRegisterEntry::MenuBar |
258 // --------------------------------------------------------------------------- |
287 // --------------------------------------------------------------------------- |
259 // |
288 // |
260 CEikMenuBar* CAknItemActionMenuRegisterArray::CRegisterEntry::MenuBar() |
289 CEikMenuBar* CAknItemActionMenuRegisterArray::CRegisterEntry::MenuBar() |
261 { |
290 { |
|
291 _AKNTRACE_FUNC_ENTER; |
|
292 _AKNTRACE_FUNC_EXIT; |
262 return iMenuBar; |
293 return iMenuBar; |
263 } |
294 } |
264 |
295 |
265 |
296 |
266 // --------------------------------------------------------------------------- |
297 // --------------------------------------------------------------------------- |
267 // CAknItemActionMenuRegisterArray::CRegisterEntry::RemoveItemActionMenu |
298 // CAknItemActionMenuRegisterArray::CRegisterEntry::RemoveItemActionMenu |
268 // --------------------------------------------------------------------------- |
299 // --------------------------------------------------------------------------- |
269 // |
300 // |
270 void CAknItemActionMenuRegisterArray::CRegisterEntry::RemoveItemActionMenu() |
301 void CAknItemActionMenuRegisterArray::CRegisterEntry::RemoveItemActionMenu() |
271 { |
302 { |
|
303 _AKNTRACE_FUNC_ENTER; |
272 delete iActionMenu; |
304 delete iActionMenu; |
273 iActionMenu = NULL; |
305 iActionMenu = NULL; |
|
306 _AKNTRACE_FUNC_EXIT; |
274 } |
307 } |
275 |
308 |
276 |
309 |
277 // --------------------------------------------------------------------------- |
310 // --------------------------------------------------------------------------- |
278 // CAknItemActionMenuRegisterArray::CRegisterEntry::ItemActionMenu |
311 // CAknItemActionMenuRegisterArray::CRegisterEntry::ItemActionMenu |
279 // --------------------------------------------------------------------------- |
312 // --------------------------------------------------------------------------- |
280 // |
313 // |
281 CAknItemActionMenu* |
314 CAknItemActionMenu* |
282 CAknItemActionMenuRegisterArray::CRegisterEntry::ItemActionMenu() |
315 CAknItemActionMenuRegisterArray::CRegisterEntry::ItemActionMenu() |
283 { |
316 { |
|
317 _AKNTRACE_FUNC_ENTER; |
|
318 _AKNTRACE_FUNC_EXIT; |
284 return iActionMenu; |
319 return iActionMenu; |
285 } |
320 } |
286 |
321 |
287 |
322 |
288 // --------------------------------------------------------------------------- |
323 // --------------------------------------------------------------------------- |