idlehomescreen/widgetmanager/src/wmmaincontainerview.cpp
branchRCL_3
changeset 102 ba63c83f4716
parent 93 b01126ce0bec
equal deleted inserted replaced
93:b01126ce0bec 102:ba63c83f4716
    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