18 // INCLUDE FILES |
18 // INCLUDE FILES |
19 #include <eikclbd.h> |
19 #include <eikclbd.h> |
20 #include <eikmop.h> |
20 #include <eikmop.h> |
21 #include <bacline.h> |
21 #include <bacline.h> |
22 #include <StringLoader.h> |
22 #include <StringLoader.h> |
|
23 #include <akniconarray.h> |
23 #include <emailwidgetsettings.rsg> |
24 #include <emailwidgetsettings.rsg> |
|
25 #include <emailwidgetsettings.mbg> |
24 |
26 |
25 #include "emailtrace.h" |
27 #include "emailtrace.h" |
26 #include "emailwidgetsettingslistview.h" |
28 #include "emailwidgetsettingslistview.h" |
27 #include "cmailwidgetcenrepkeys.h" |
29 #include "cmailwidgetcenrepkeys.h" |
|
30 #include "CFSMailClient.h" |
28 |
31 |
29 using namespace AknLayout; |
32 using namespace AknLayout; |
30 |
33 |
31 const TInt KMaxMailboxCount = 18; |
34 const TInt KMaxMailboxCount = 18; |
32 _LIT( KDissociated,"0"); |
35 _LIT( KDissociated,"0"); |
33 const TInt KMaxDescLen = 256; |
36 const TInt KMaxDescLen = 256; |
34 const TUid KUidWizardApp = { 0x10281c96 }; |
37 const TUid KUidWizardApp = { 0x10281c96 }; |
35 const TUid KUidEmailWizardView = { 0x10281C9A }; |
38 const TUid KUidEmailWizardView = { 0x10281C9A }; |
|
39 _LIT( KMifPath, "z:\\resource\\apps\\emailwidgetsettings.mif"); |
36 |
40 |
37 // ======== MEMBER FUNCTIONS ======== |
41 // ======== MEMBER FUNCTIONS ======== |
38 |
42 |
39 // --------------------------------------------------------------------------- |
43 // --------------------------------------------------------------------------- |
40 // |
44 // |
41 // --------------------------------------------------------------------------- |
45 // --------------------------------------------------------------------------- |
42 // |
46 // |
43 CEmailWidgetSettingsListViewContainer::CEmailWidgetSettingsListViewContainer() |
47 CEmailWidgetSettingsListViewContainer::CEmailWidgetSettingsListViewContainer() |
44 { |
48 { |
|
49 FUNC_LOG; |
45 } |
50 } |
46 |
51 |
47 // --------------------------------------------------------------------------- |
52 // --------------------------------------------------------------------------- |
48 // |
53 // |
49 // --------------------------------------------------------------------------- |
54 // --------------------------------------------------------------------------- |
67 // |
72 // |
68 // --------------------------------------------------------------------------- |
73 // --------------------------------------------------------------------------- |
69 // |
74 // |
70 void CEmailWidgetSettingsListViewContainer::CreateListBoxL(MEikListBoxObserver* aObserver) |
75 void CEmailWidgetSettingsListViewContainer::CreateListBoxL(MEikListBoxObserver* aObserver) |
71 { |
76 { |
|
77 FUNC_LOG; |
72 TInt count = iMailboxes->MailboxCount(); |
78 TInt count = iMailboxes->MailboxCount(); |
73 |
79 |
74 iListBox = new(ELeave) CAknSingleStyleListBox; |
80 iListBox = new(ELeave) CAknSingleGraphicStyleListBox; |
75 iListBox->SetContainerWindowL( *this); |
81 iListBox->SetContainerWindowL( *this); |
76 iListBox->ConstructL( this, EAknListBoxSelectionList ); |
82 iListBox->ConstructL( this, EAknListBoxSelectionList ); |
77 iAccountNames = new (ELeave) CDesCArrayFlat(count + 1); |
83 iAccountNames = new (ELeave) CDesCArrayFlat(count + 1); |
|
84 iDomains = new (ELeave) CDesCArrayFlat(count); |
78 if (count) |
85 if (count) |
79 { |
86 { |
80 iAccountIds = new ( ELeave ) CArrayFixFlat<TFSMailMsgId>(count); |
87 iAccountIds = new ( ELeave ) CArrayFixFlat<TFSMailMsgId>(count); |
81 } |
88 } |
82 for (TInt i = 0; i < count; i++) |
89 for (TInt i = 0; i < count; i++) |
83 { |
90 { |
84 TBuf<KMaxDescLen> name; |
91 TBuf<KMaxDescLen> name; |
|
92 TBuf<KMaxDescLen> domain; |
85 TFSMailMsgId id; |
93 TFSMailMsgId id; |
86 iMailboxes->GetMailboxNameL(i, name); |
94 iMailboxes->GetMailboxNameL(i, name); |
|
95 iMailboxes->GetDomainL(i, domain); |
87 iMailboxes->GetMailboxIdL(i, id); |
96 iMailboxes->GetMailboxIdL(i, id); |
88 iAccountNames->AppendL(name); |
97 iAccountNames->AppendL(name); |
|
98 iDomains->AppendL(domain); |
89 iAccountIds->AppendL(id); |
99 iAccountIds->AppendL(id); |
90 } |
100 } |
91 HBufC* createNewMailbox = StringLoader::LoadLC(R_EMAILWIDGETSETTINGS_CREATE_NEW_MAILBOX); |
101 HBufC* createNewMailbox = StringLoader::LoadLC(R_EMAILWIDGETSETTINGS_CREATE_NEW_MAILBOX); |
92 iAccountNames->AppendL(createNewMailbox->Des()); |
102 iAccountNames->AppendL(createNewMailbox->Des()); |
93 CleanupStack::PopAndDestroy(createNewMailbox); |
103 CleanupStack::PopAndDestroy(createNewMailbox); |
94 iListBox->Model()->SetItemTextArray(iAccountNames); |
104 iListBox->Model()->SetItemTextArray(iAccountNames); |
95 |
105 |
96 iListBox->Model()->SetOwnershipType(ELbmDoesNotOwnItemArray); |
106 iListBox->Model()->SetOwnershipType(ELbmDoesNotOwnItemArray); |
97 iListBox->ItemDrawer()->ColumnData()->EnableMarqueeL(ETrue); |
107 iListBox->ItemDrawer()->ColumnData()->EnableMarqueeL(ETrue); |
98 iListBox->SetBorder(TGulBorder::ESingleBlack); |
108 iListBox->SetBorder(TGulBorder::ESingleBlack); |
99 iListBox->CreateScrollBarFrameL(ETrue); |
109 iListBox->CreateScrollBarFrameL(ETrue); |
100 iListBox->ScrollBarFrame()->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto); |
110 iListBox->ScrollBarFrame()->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto); |
101 iListBox->SetListBoxObserver(aObserver); |
111 iListBox->SetListBoxObserver(aObserver); |
|
112 |
|
113 SetupListIconsL(); |
|
114 } |
|
115 |
|
116 // --------------------------------------------------------------------------- |
|
117 // |
|
118 // --------------------------------------------------------------------------- |
|
119 // |
|
120 void CEmailWidgetSettingsListViewContainer::SetupListIconsL() |
|
121 { |
|
122 FUNC_LOG; |
|
123 CFSMailClient* mailClient = CFSMailClient::NewL(); |
|
124 CleanupClosePushL(*mailClient); |
|
125 MFSMailBrandManager& brandManager = mailClient->GetBrandManagerL(); |
|
126 |
|
127 TInt count = iMailboxes->MailboxCount(); |
|
128 CArrayPtr<CGulIcon>* icons = new(ELeave) CArrayPtrFlat<CGulIcon>( count + 1 ); |
|
129 CleanupStack::PushL( icons ); |
|
130 |
|
131 AppendIconL(icons, EMbmEmailwidgetsettingsQgn_prop_cmail_new_mailbox, |
|
132 EMbmEmailwidgetsettingsQgn_prop_cmail_new_mailbox_mask); |
|
133 |
|
134 for (TInt i = 0; i < count; i++) |
|
135 { |
|
136 CGulIcon* brandIcon; |
|
137 brandIcon = brandManager.GetGraphicL( EFSMailboxIcon, iDomains->MdcaPoint(i) ); |
|
138 |
|
139 if (brandIcon) |
|
140 { |
|
141 icons->AppendL(brandIcon); |
|
142 } |
|
143 else |
|
144 { |
|
145 AppendIconL(icons, EMbmEmailwidgetsettingsQgn_indi_cmail_drop_email_account, |
|
146 EMbmEmailwidgetsettingsQgn_indi_cmail_drop_email_account_mask); |
|
147 } |
|
148 } |
|
149 |
|
150 // clear any previous icon array |
|
151 CAknIconArray* oldIconArray = static_cast<CAknIconArray*>(iListBox->ItemDrawer()->ColumnData()->IconArray()); |
|
152 if (oldIconArray) |
|
153 delete oldIconArray; |
|
154 |
|
155 iListBox->ItemDrawer()->ColumnData()->SetIconArray(icons); |
|
156 CleanupStack::Pop(icons); |
|
157 CleanupStack::PopAndDestroy( mailClient ); |
|
158 } |
|
159 |
|
160 // ----------------------------------------------------------------------------- |
|
161 // CFeedsTopicContainer::AppendIconL |
|
162 // |
|
163 // Loads and appends an icon to the icon array. |
|
164 // ----------------------------------------------------------------------------- |
|
165 // |
|
166 |
|
167 void CEmailWidgetSettingsListViewContainer::AppendIconL( |
|
168 CArrayPtr<CGulIcon>* aIcons, |
|
169 const TInt aFileBitmapId, |
|
170 const TInt aFileMaskId) |
|
171 { |
|
172 FUNC_LOG; |
|
173 CGulIcon* newIcon; |
|
174 CFbsBitmap* newIconBmp; |
|
175 CFbsBitmap* newIconMaskBmp; |
|
176 AknIconUtils::CreateIconLC( newIconBmp, newIconMaskBmp, KMifPath, |
|
177 aFileBitmapId, |
|
178 aFileMaskId ); |
|
179 newIcon = CGulIcon::NewL(newIconBmp, newIconMaskBmp); |
|
180 CleanupStack::Pop(newIconMaskBmp); |
|
181 CleanupStack::Pop(newIconBmp); |
|
182 CleanupStack::PushL(newIcon); |
|
183 aIcons->AppendL(newIcon); |
|
184 CleanupStack::Pop(newIcon); |
102 } |
185 } |
103 |
186 |
104 // --------------------------------------------------------------------------- |
187 // --------------------------------------------------------------------------- |
105 // CEmailWidgetSettingsListViewContainer::CreateCbaL |
188 // CEmailWidgetSettingsListViewContainer::CreateCbaL |
106 // --------------------------------------------------------------------------- |
189 // --------------------------------------------------------------------------- |
107 // |
190 // |
108 void CEmailWidgetSettingsListViewContainer::CreateCbaL( MEikCommandObserver* aObserver ) |
191 void CEmailWidgetSettingsListViewContainer::CreateCbaL( MEikCommandObserver* aObserver ) |
109 { |
192 { |
|
193 FUNC_LOG; |
110 const TSize screenSize= iCoeEnv->ScreenDevice()->SizeInPixels(); |
194 const TSize screenSize= iCoeEnv->ScreenDevice()->SizeInPixels(); |
111 iPopoutCba = CEikButtonGroupContainer::NewL(CEikButtonGroupContainer::ECba, |
195 iPopoutCba = CEikButtonGroupContainer::NewL(CEikButtonGroupContainer::ECba, |
112 CEikButtonGroupContainer::EHorizontal, aObserver, R_AVKON_SOFTKEYS_SELECT_CANCEL); |
196 CEikButtonGroupContainer::EHorizontal, aObserver, R_AVKON_SOFTKEYS_SELECT_CANCEL); |
113 iPopoutCba->SetBoundingRect(TRect(screenSize)); |
197 iPopoutCba->SetBoundingRect(TRect(screenSize)); |
114 } |
198 } |
142 // CEmailWidgetSettingsListViewContainer::CountComponentControls |
229 // CEmailWidgetSettingsListViewContainer::CountComponentControls |
143 // --------------------------------------------------------------------------- |
230 // --------------------------------------------------------------------------- |
144 // |
231 // |
145 TInt CEmailWidgetSettingsListViewContainer::CountComponentControls() const |
232 TInt CEmailWidgetSettingsListViewContainer::CountComponentControls() const |
146 { |
233 { |
|
234 FUNC_LOG; |
147 return iListBox ? 1 : 0; |
235 return iListBox ? 1 : 0; |
148 } |
236 } |
149 |
237 |
150 // --------------------------------------------------------------------------- |
238 // --------------------------------------------------------------------------- |
151 // CEmailWidgetSettingsListViewContainer::ComponentControl |
239 // CEmailWidgetSettingsListViewContainer::ComponentControl |
152 // --------------------------------------------------------------------------- |
240 // --------------------------------------------------------------------------- |
153 // |
241 // |
154 CCoeControl* CEmailWidgetSettingsListViewContainer::ComponentControl(TInt /*aIndex*/) const |
242 CCoeControl* CEmailWidgetSettingsListViewContainer::ComponentControl(TInt /*aIndex*/) const |
155 { |
243 { |
|
244 FUNC_LOG; |
156 return iListBox; |
245 return iListBox; |
157 } |
246 } |
158 |
247 |
159 // --------------------------------------------------------------------------- |
248 // --------------------------------------------------------------------------- |
160 // CEmailWidgetSettingsListViewContainer::OfferKeyEventL |
249 // CEmailWidgetSettingsListViewContainer::OfferKeyEventL |
161 // --------------------------------------------------------------------------- |
250 // --------------------------------------------------------------------------- |
162 // |
251 // |
163 TKeyResponse CEmailWidgetSettingsListViewContainer::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType) |
252 TKeyResponse CEmailWidgetSettingsListViewContainer::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType) |
164 { |
253 { |
|
254 FUNC_LOG; |
165 return iListBox->OfferKeyEventL(aKeyEvent, aType); |
255 return iListBox->OfferKeyEventL(aKeyEvent, aType); |
166 } |
256 } |
167 |
257 |
168 // --------------------------------------------------------------------------- |
258 // --------------------------------------------------------------------------- |
169 // CEmailWidgetSettingsListViewContainer::MinimumSize |
259 // CEmailWidgetSettingsListViewContainer::MinimumSize |
170 // --------------------------------------------------------------------------- |
260 // --------------------------------------------------------------------------- |
171 // |
261 // |
172 TSize CEmailWidgetSettingsListViewContainer::MinimumSize() |
262 TSize CEmailWidgetSettingsListViewContainer::MinimumSize() |
173 { |
263 { |
|
264 FUNC_LOG; |
174 return iEikonEnv->EikAppUi()->ClientRect().Size(); |
265 return iEikonEnv->EikAppUi()->ClientRect().Size(); |
175 } |
266 } |
176 |
267 |
177 // --------------------------------------------------------------------------- |
268 // --------------------------------------------------------------------------- |
178 // CEmailWidgetSettingsListViewContainer::CurrentIndex |
269 // CEmailWidgetSettingsListViewContainer::CurrentIndex |
179 // --------------------------------------------------------------------------- |
270 // --------------------------------------------------------------------------- |
180 // |
271 // |
181 TInt CEmailWidgetSettingsListViewContainer::CurrentIndex() const |
272 TInt CEmailWidgetSettingsListViewContainer::CurrentIndex() const |
182 { |
273 { |
|
274 FUNC_LOG; |
183 return iListBox->CurrentItemIndex(); |
275 return iListBox->CurrentItemIndex(); |
184 } |
276 } |
185 |
277 |
186 // --------------------------------------------------------------------------- |
278 // --------------------------------------------------------------------------- |
187 // CEmailWidgetSettingsListViewContainer::MopSupplyObject |
279 // CEmailWidgetSettingsListViewContainer::MopSupplyObject |
188 // --------------------------------------------------------------------------- |
280 // --------------------------------------------------------------------------- |
189 // |
281 // |
190 TTypeUid::Ptr CEmailWidgetSettingsListViewContainer::MopSupplyObject(TTypeUid aId) |
282 TTypeUid::Ptr CEmailWidgetSettingsListViewContainer::MopSupplyObject(TTypeUid aId) |
191 { |
283 { |
|
284 FUNC_LOG; |
192 return SupplyMopObject(aId, iPopoutCba); |
285 return SupplyMopObject(aId, iPopoutCba); |
193 } |
286 } |
194 |
287 |
195 // --------------------------------------------------------------------------- |
288 // --------------------------------------------------------------------------- |
196 // CEmailWidgetSettingsListViewContainer::SaveSelectedL |
289 // CEmailWidgetSettingsListViewContainer::SaveSelectedL |
197 // --------------------------------------------------------------------------- |
290 // --------------------------------------------------------------------------- |
198 // |
291 // |
199 void CEmailWidgetSettingsListViewContainer::SaveSelectedL() |
292 void CEmailWidgetSettingsListViewContainer::SaveSelectedL() |
200 { |
293 { |
|
294 FUNC_LOG; |
201 if (CurrentIndex() == iAccountNames->Count() - 1) |
295 if (CurrentIndex() == iAccountNames->Count() - 1) |
202 { |
296 { |
203 LaunchEmailWizardL(); |
297 LaunchEmailWizardL(); |
204 return; |
298 return; |
205 } |
299 } |