--- a/idlehomescreen/widgetmanager/src/wmmaincontainerview.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/widgetmanager/src/wmmaincontainerview.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -30,14 +30,17 @@
#include <AknUtils.h>
#include <avkon.rsg>
#include <layoutmetadata.cdl.h>
-
+#include <widgetmanager.mbg>
#include "wmplugin.h"
#include "widgetmanager.hrh"
#include "wmmaincontainerview.h"
#include "wmresourceloader.h"
#include "wmmaincontainer.h"
#include "wmspbgcleaner.h"
-
+#include "wmconfiguration.h"
+#include "wmimageconverter.h"
+#include "wmstore.h"
+
// ---------------------------------------------------------
// CWmMainContainerView::CWmMainContainerView()
// ---------------------------------------------------------
@@ -55,7 +58,7 @@
// ---------------------------------------------------------
//
CWmMainContainerView::~CWmMainContainerView()
- {
+ {
if ( iWmMainContainer != NULL )
{
AppUi()->RemoveFromStack( iWmMainContainer );
@@ -127,9 +130,7 @@
{
switch ( aCommand )
{
- case EWmMainContainerViewOpenPortalMenuItemCommand:
- HandleOpenMenuItemSelectedL();
- break;
+ case EAknSoftkeySelect:
case EWmMainContainerViewAddMenuItemCommand:
HandleAddMenuItemSelectedL();
break;
@@ -162,9 +163,11 @@
case EWmMainContainerViewWiddetDetailsMenuItemCommand:
HandleDetailsMenuItemSelectedL();
break;
- case EAknSoftkeySelect:
+ case EWmStoreCommand:
+ {
if ( iWmMainContainer )
- iWmMainContainer->SelectL();
+ iWmMainContainer->HandleStoreCommandL();
+ }
break;
case EAknSoftkeyCancel: // flow through
case EEikCmdCanceled:
@@ -188,7 +191,16 @@
const TDesC8& /*aCustomMessage*/ )
{
// setup status pane layout
- StatusPane()->SwitchLayoutL( R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT );
+ TInt layoutResourceId = ( (iWmPlugin.Configuration().StoreCount() ) ?
+ R_AVKON_STATUS_PANE_LAYOUT_IDLE_FLAT :
+ R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT );
+ StatusPane()->SwitchLayoutL( layoutResourceId );
+
+ // ToDo: Support for msk in all layout is ongoing, when available in
+ // sdk use next line and get rid of above.
+
+ //StatusPane()->SwitchLayoutL( R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT );
+
// apply changes
StatusPane()->ApplyCurrentSettingsL();
// disable transparancy
@@ -208,14 +220,19 @@
StatusPane()->DrawNow();
// update cba
- if ( Layout_Meta_Data::IsMSKEnabled() )
+ if ( !AknLayoutUtils::MSKEnabled() ||
+ iWmPlugin.Configuration().StoreCount() == 0 )
{
CEikButtonGroupContainer* bgc( Cba() );
CEikCba* cba = static_cast< CEikCba* >( bgc->ButtonGroup() );
- cba->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_BACK__SELECT );
+ cba->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_BACK );
bgc->SetBoundingRect( TRect() );
cba->DrawNow();
}
+ else if ( AknLayoutUtils::MSKEnabled() )
+ {
+ UpdateMSKIconL();
+ }
// create container
if ( iWmMainContainer == NULL )
@@ -309,27 +326,12 @@
!iWmMainContainer->CanDoHelp() );
aMenuPane->SetItemDimmed( EWmMainContainerViewUninstallMenuItemCommand,
!iWmMainContainer->CanDoUninstall() );
- if ( !iWmMainContainer->PortalSelected() )
- aMenuPane->DeleteMenuItem( EWmMainContainerViewOpenPortalMenuItemCommand );
if ( !iWmMainContainer->WidgetSelected() )
aMenuPane->DeleteMenuItem( EWmMainContainerViewAddMenuItemCommand );
}
}
// ---------------------------------------------------------
-// CWmMainContainerView::HandleOpenMenuItemSelectedL
-// ---------------------------------------------------------
-//
-TBool CWmMainContainerView::HandleOpenMenuItemSelectedL()
- {
- if ( iWmMainContainer && iWmMainContainer->PortalSelected() )
- {
- iWmMainContainer->OpenPortalL();
- }
- return ETrue;
- }
-
-// ---------------------------------------------------------
// CWmMainContainerView::HandleDetailsMenuItemSelectedL
// ---------------------------------------------------------
//
@@ -431,16 +433,64 @@
}
// ---------------------------------------------------------
-// CWmMainContainerView::HandleForegroundEventL
+// CWmMainContainerView::UpdateMSKIconL
// ---------------------------------------------------------
//
-void CWmMainContainerView::HandleForegroundEventL( TBool aForeground )
+void CWmMainContainerView::UpdateMSKIconL()
{
- CAknView::HandleForegroundEventL( aForeground );
- if ( iWmMainContainer )
+ CEikButtonGroupContainer* bgc( Cba() );
+ CEikCba* cba = static_cast< CEikCba* >( bgc->ButtonGroup() );
+ TFileName fileName( iWmPlugin.ResourceLoader().IconFilePath() );
+ TAknsItemID skinId = KAknsIIDQgnMenuOviStore;
+ TInt bitmapId( EMbmWidgetmanagerQgn_menu_ovistore );
+ TInt maskId( EMbmWidgetmanagerQgn_menu_ovistore_mask );
+
+ if ( iWmPlugin.Configuration().StoreCount() > 1 )
+ {
+ skinId = KAknsIIDQgnPropLmShopping;
+ bitmapId = EMbmWidgetmanagerQgn_menu_shopping;
+ maskId = EMbmWidgetmanagerQgn_menu_shopping_mask;
+ }
+ else
{
- iWmMainContainer->ProcessForegroundEvent( aForeground );
+ const RPointerArray<CWmConfItem>& storeConfArray =
+ iWmPlugin.Configuration().StoreConfArray();
+ CWmConfItem* confItem( storeConfArray[0] );
+
+ if ( confItem &&
+ confItem->Id() != CWmStore::EOvi &&
+ confItem->Icon().Length() )
+ {
+ CWmImageConverter* imageConverter = CWmImageConverter::NewL();
+ CleanupStack::PushL( imageConverter );
+
+ // parse icon str
+ // TODO: now only mif&skin are supported. Later when API is there
+ // we can add support for rest icon types
+ TBool res = imageConverter->ParseIconString(
+ confItem->Icon(), skinId, bitmapId, maskId, fileName );
+
+ CleanupStack::PopAndDestroy( imageConverter );
+
+ if ( !res )
+ {
+ // use default shopping icon
+ skinId = KAknsIIDQgnPropLmShopping;
+ bitmapId = EMbmWidgetmanagerQgn_menu_shopping;
+ maskId = EMbmWidgetmanagerQgn_menu_shopping_mask;
+ fileName.Copy( iWmPlugin.ResourceLoader().IconFilePath() );
+ }
+ }
}
+
+ cba->UpdateMSKIconL(
+ skinId,
+ fileName,
+ bitmapId,
+ maskId,
+ ETrue );
+ bgc->SetBoundingRect( TRect() );
+ cba->DrawNow();
}
// End of file