28 #include <widgetmanagerview.rsg> |
28 #include <widgetmanagerview.rsg> |
29 #include <hscontentcontroller.h> |
29 #include <hscontentcontroller.h> |
30 #include <AknUtils.h> |
30 #include <AknUtils.h> |
31 #include <avkon.rsg> |
31 #include <avkon.rsg> |
32 #include <layoutmetadata.cdl.h> |
32 #include <layoutmetadata.cdl.h> |
33 #include <widgetmanager.mbg> |
33 |
34 #include "wmplugin.h" |
34 #include "wmplugin.h" |
35 #include "widgetmanager.hrh" |
35 #include "widgetmanager.hrh" |
36 #include "wmmaincontainerview.h" |
36 #include "wmmaincontainerview.h" |
37 #include "wmresourceloader.h" |
37 #include "wmresourceloader.h" |
38 #include "wmmaincontainer.h" |
38 #include "wmmaincontainer.h" |
39 #include "wmspbgcleaner.h" |
39 #include "wmspbgcleaner.h" |
40 #include "wmconfiguration.h" |
40 |
41 #include "wmimageconverter.h" |
|
42 #include "wmstore.h" |
|
43 |
|
44 // --------------------------------------------------------- |
41 // --------------------------------------------------------- |
45 // CWmMainContainerView::CWmMainContainerView() |
42 // CWmMainContainerView::CWmMainContainerView() |
46 // --------------------------------------------------------- |
43 // --------------------------------------------------------- |
47 // |
44 // |
48 CWmMainContainerView::CWmMainContainerView( |
45 CWmMainContainerView::CWmMainContainerView( |
56 // --------------------------------------------------------- |
53 // --------------------------------------------------------- |
57 // CWmMainContainerView::~CWmMainContainerView() |
54 // CWmMainContainerView::~CWmMainContainerView() |
58 // --------------------------------------------------------- |
55 // --------------------------------------------------------- |
59 // |
56 // |
60 CWmMainContainerView::~CWmMainContainerView() |
57 CWmMainContainerView::~CWmMainContainerView() |
61 { |
58 { |
62 if ( iWmMainContainer != NULL ) |
59 if ( iWmMainContainer != NULL ) |
63 { |
60 { |
64 AppUi()->RemoveFromStack( iWmMainContainer ); |
61 AppUi()->RemoveFromStack( iWmMainContainer ); |
65 |
62 |
66 delete iWmMainContainer; |
63 delete iWmMainContainer; |
128 { |
125 { |
129 if ( !iWmMainContainer->ClosingDown() ) |
126 if ( !iWmMainContainer->ClosingDown() ) |
130 { |
127 { |
131 switch ( aCommand ) |
128 switch ( aCommand ) |
132 { |
129 { |
133 case EAknSoftkeySelect: |
130 case EWmMainContainerViewOpenPortalMenuItemCommand: |
|
131 HandleOpenMenuItemSelectedL(); |
|
132 break; |
134 case EWmMainContainerViewAddMenuItemCommand: |
133 case EWmMainContainerViewAddMenuItemCommand: |
135 HandleAddMenuItemSelectedL(); |
134 HandleAddMenuItemSelectedL(); |
136 break; |
135 break; |
137 case EWmMainContainerViewLaunchMenuItemCommand: |
136 case EWmMainContainerViewLaunchMenuItemCommand: |
138 HandleLaunchMenuItemSelectedL(); |
137 HandleLaunchMenuItemSelectedL(); |
161 break; |
160 break; |
162 } |
161 } |
163 case EWmMainContainerViewWiddetDetailsMenuItemCommand: |
162 case EWmMainContainerViewWiddetDetailsMenuItemCommand: |
164 HandleDetailsMenuItemSelectedL(); |
163 HandleDetailsMenuItemSelectedL(); |
165 break; |
164 break; |
166 case EWmStoreCommand: |
165 case EAknSoftkeySelect: |
167 { |
|
168 if ( iWmMainContainer ) |
166 if ( iWmMainContainer ) |
169 iWmMainContainer->HandleStoreCommandL(); |
167 iWmMainContainer->SelectL(); |
170 } |
|
171 break; |
168 break; |
172 case EAknSoftkeyCancel: // flow through |
169 case EAknSoftkeyCancel: // flow through |
173 case EEikCmdCanceled: |
170 case EEikCmdCanceled: |
174 { |
171 { |
175 HandleDeactivateFindPaneL(); |
172 HandleDeactivateFindPaneL(); |
189 const TVwsViewId& aPrevViewId, |
186 const TVwsViewId& aPrevViewId, |
190 TUid /*aCustomMessageId*/, |
187 TUid /*aCustomMessageId*/, |
191 const TDesC8& /*aCustomMessage*/ ) |
188 const TDesC8& /*aCustomMessage*/ ) |
192 { |
189 { |
193 // setup status pane layout |
190 // setup status pane layout |
194 TInt layoutResourceId = ( (iWmPlugin.Configuration().StoreCount() ) ? |
191 StatusPane()->SwitchLayoutL( R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT ); |
195 R_AVKON_STATUS_PANE_LAYOUT_IDLE_FLAT : |
|
196 R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT ); |
|
197 StatusPane()->SwitchLayoutL( layoutResourceId ); |
|
198 |
|
199 // ToDo: Support for msk in all layout is ongoing, when available in |
|
200 // sdk use next line and get rid of above. |
|
201 |
|
202 //StatusPane()->SwitchLayoutL( R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT ); |
|
203 |
|
204 // apply changes |
192 // apply changes |
205 StatusPane()->ApplyCurrentSettingsL(); |
193 StatusPane()->ApplyCurrentSettingsL(); |
206 // disable transparancy |
194 // disable transparancy |
207 StatusPane()->EnableTransparent( EFalse ); |
195 StatusPane()->EnableTransparent( EFalse ); |
208 // create container |
196 // create container |
218 |
206 |
219 iWmSpBgCleaner->DrawNow(); |
207 iWmSpBgCleaner->DrawNow(); |
220 StatusPane()->DrawNow(); |
208 StatusPane()->DrawNow(); |
221 |
209 |
222 // update cba |
210 // update cba |
223 if ( !AknLayoutUtils::MSKEnabled() || |
211 if ( Layout_Meta_Data::IsMSKEnabled() ) |
224 iWmPlugin.Configuration().StoreCount() == 0 ) |
|
225 { |
212 { |
226 CEikButtonGroupContainer* bgc( Cba() ); |
213 CEikButtonGroupContainer* bgc( Cba() ); |
227 CEikCba* cba = static_cast< CEikCba* >( bgc->ButtonGroup() ); |
214 CEikCba* cba = static_cast< CEikCba* >( bgc->ButtonGroup() ); |
228 cba->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_BACK ); |
215 cba->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_BACK__SELECT ); |
229 bgc->SetBoundingRect( TRect() ); |
216 bgc->SetBoundingRect( TRect() ); |
230 cba->DrawNow(); |
217 cba->DrawNow(); |
231 } |
|
232 else if ( AknLayoutUtils::MSKEnabled() ) |
|
233 { |
|
234 UpdateMSKIconL(); |
|
235 } |
218 } |
236 |
219 |
237 // create container |
220 // create container |
238 if ( iWmMainContainer == NULL ) |
221 if ( iWmMainContainer == NULL ) |
239 { |
222 { |
324 !iWmMainContainer->CanDoSort() ); |
307 !iWmMainContainer->CanDoSort() ); |
325 aMenuPane->SetItemDimmed( EWmMainContainerViewHelpMenuItemCommand, |
308 aMenuPane->SetItemDimmed( EWmMainContainerViewHelpMenuItemCommand, |
326 !iWmMainContainer->CanDoHelp() ); |
309 !iWmMainContainer->CanDoHelp() ); |
327 aMenuPane->SetItemDimmed( EWmMainContainerViewUninstallMenuItemCommand, |
310 aMenuPane->SetItemDimmed( EWmMainContainerViewUninstallMenuItemCommand, |
328 !iWmMainContainer->CanDoUninstall() ); |
311 !iWmMainContainer->CanDoUninstall() ); |
|
312 if ( !iWmMainContainer->PortalSelected() ) |
|
313 aMenuPane->DeleteMenuItem( EWmMainContainerViewOpenPortalMenuItemCommand ); |
329 if ( !iWmMainContainer->WidgetSelected() ) |
314 if ( !iWmMainContainer->WidgetSelected() ) |
330 aMenuPane->DeleteMenuItem( EWmMainContainerViewAddMenuItemCommand ); |
315 aMenuPane->DeleteMenuItem( EWmMainContainerViewAddMenuItemCommand ); |
331 } |
316 } |
|
317 } |
|
318 |
|
319 // --------------------------------------------------------- |
|
320 // CWmMainContainerView::HandleOpenMenuItemSelectedL |
|
321 // --------------------------------------------------------- |
|
322 // |
|
323 TBool CWmMainContainerView::HandleOpenMenuItemSelectedL() |
|
324 { |
|
325 if ( iWmMainContainer && iWmMainContainer->PortalSelected() ) |
|
326 { |
|
327 iWmMainContainer->OpenPortalL(); |
|
328 } |
|
329 return ETrue; |
332 } |
330 } |
333 |
331 |
334 // --------------------------------------------------------- |
332 // --------------------------------------------------------- |
335 // CWmMainContainerView::HandleDetailsMenuItemSelectedL |
333 // CWmMainContainerView::HandleDetailsMenuItemSelectedL |
336 // --------------------------------------------------------- |
334 // --------------------------------------------------------- |
431 } |
429 } |
432 return ETrue; |
430 return ETrue; |
433 } |
431 } |
434 |
432 |
435 // --------------------------------------------------------- |
433 // --------------------------------------------------------- |
436 // CWmMainContainerView::UpdateMSKIconL |
434 // CWmMainContainerView::HandleForegroundEventL |
437 // --------------------------------------------------------- |
435 // --------------------------------------------------------- |
438 // |
436 // |
439 void CWmMainContainerView::UpdateMSKIconL() |
437 void CWmMainContainerView::HandleForegroundEventL( TBool aForeground ) |
440 { |
438 { |
441 CEikButtonGroupContainer* bgc( Cba() ); |
439 CAknView::HandleForegroundEventL( aForeground ); |
442 CEikCba* cba = static_cast< CEikCba* >( bgc->ButtonGroup() ); |
440 if ( iWmMainContainer ) |
443 TFileName fileName( iWmPlugin.ResourceLoader().IconFilePath() ); |
441 { |
444 TAknsItemID skinId = KAknsIIDQgnMenuOviStore; |
442 iWmMainContainer->ProcessForegroundEvent( aForeground ); |
445 TInt bitmapId( EMbmWidgetmanagerQgn_menu_ovistore ); |
443 } |
446 TInt maskId( EMbmWidgetmanagerQgn_menu_ovistore_mask ); |
|
447 |
|
448 if ( iWmPlugin.Configuration().StoreCount() > 1 ) |
|
449 { |
|
450 skinId = KAknsIIDQgnPropLmShopping; |
|
451 bitmapId = EMbmWidgetmanagerQgn_menu_shopping; |
|
452 maskId = EMbmWidgetmanagerQgn_menu_shopping_mask; |
|
453 } |
|
454 else |
|
455 { |
|
456 const RPointerArray<CWmConfItem>& storeConfArray = |
|
457 iWmPlugin.Configuration().StoreConfArray(); |
|
458 CWmConfItem* confItem( storeConfArray[0] ); |
|
459 |
|
460 if ( confItem && |
|
461 confItem->Id() != CWmStore::EOvi && |
|
462 confItem->Icon().Length() ) |
|
463 { |
|
464 CWmImageConverter* imageConverter = CWmImageConverter::NewL(); |
|
465 CleanupStack::PushL( imageConverter ); |
|
466 |
|
467 // parse icon str |
|
468 // TODO: now only mif&skin are supported. Later when API is there |
|
469 // we can add support for rest icon types |
|
470 TBool res = imageConverter->ParseIconString( |
|
471 confItem->Icon(), skinId, bitmapId, maskId, fileName ); |
|
472 |
|
473 CleanupStack::PopAndDestroy( imageConverter ); |
|
474 |
|
475 if ( !res ) |
|
476 { |
|
477 // use default shopping icon |
|
478 skinId = KAknsIIDQgnPropLmShopping; |
|
479 bitmapId = EMbmWidgetmanagerQgn_menu_shopping; |
|
480 maskId = EMbmWidgetmanagerQgn_menu_shopping_mask; |
|
481 fileName.Copy( iWmPlugin.ResourceLoader().IconFilePath() ); |
|
482 } |
|
483 } |
|
484 } |
|
485 |
|
486 cba->UpdateMSKIconL( |
|
487 skinId, |
|
488 fileName, |
|
489 bitmapId, |
|
490 maskId, |
|
491 ETrue ); |
|
492 bgc->SetBoundingRect( TRect() ); |
|
493 cba->DrawNow(); |
|
494 } |
444 } |
495 |
445 |
496 // End of file |
446 // End of file |