void CFileSelectDialog::PostLayoutDynInitL()
	{
	CAknListQueryDialog::PostLayoutDynInitL();
	CArrayPtr<CGulIcon>* icons;
	icons=new (ELeave) CAknIconArray(1);
    CGulIcon* icon = AknsUtils::CreateGulIconL(AknsUtils::SkinInstance(),KAknsIIDQgnPropEmpty, AknIconUtils::AvkonIconFileName(),EMbmAvkonQgn_prop_empty,EMbmAvkonQgn_prop_empty_mask);	
	icon->SetBitmapsOwnedExternally(EFalse);
	icons->AppendL(icon);
	SetIconArrayL(icons);
	Update();
	Show();
	}
// ---------------------------------------------------------------------------
// CAppMngr2SisxRuntime::LoadIconsL()
// ---------------------------------------------------------------------------
//
void CAppMngr2SisxRuntime::LoadIconsL( CAknIconArray& aIconArray )
    {
    MAknsSkinInstance* skinInstance = AknsUtils::SkinInstance();
    HBufC* iconFilePath = NULL;
    
    iconFilePath = FullBitmapFileNameLC( KAppMngr2SisxIconFileNameMif );

    // Icon loading order in must be the same in which SISX icons
    // are defined in TAppMngr2SisxIcons enum in appmngr2sisx.hrh.
    
    // Icon 0: SIS application icon, EQgnMenuAmSis
    CGulIcon* icon = AknsUtils::CreateGulIconL( skinInstance,
            KAknsIIDQgnMenuAmSis, *iconFilePath,
            EMbmAppmngr2sisxQgn_menu_am_sis,
            EMbmAppmngr2sisxQgn_menu_am_sis_mask );
    CleanupStack::PushL( icon );
    aIconArray.AppendL( icon );
    CleanupStack::Pop( icon );

    // Icon 1: DRM expired rights icon, EQgnPropDrmExpLarge
    icon = AknsUtils::CreateGulIconL( skinInstance,
            KAknsIIDQgnPropDrmRightsExpLarge, *iconFilePath,
            EMbmAppmngr2sisxQgn_prop_drm_exp_large,
            EMbmAppmngr2sisxQgn_prop_drm_exp_large_mask );
    CleanupStack::PushL( icon );
    aIconArray.AppendL( icon );
    CleanupStack::Pop( icon );                                                

    // Icon 2: untrusted SIS application, EQgnIndiAmInstNoAdd
    // Indicator icons are color-skinned as normal icons are
    // graphically-skinned. CreateColorIconL() must be used to
    // create color-skinned icon.
    CFbsBitmap* bitmap = NULL;
    CFbsBitmap* mask = NULL;
    AknsUtils::CreateColorIconLC( skinInstance,
            KAknsIIDQgnIndiAmInstNoAdd,
            KAknsIIDQsnIconColors, EAknsCIQsnIconColorsCG13,
            bitmap, mask, *iconFilePath,
            EMbmAppmngr2sisxQgn_indi_am_inst_no_add,
            EMbmAppmngr2sisxQgn_indi_am_inst_no_add_mask,
            KRgbBlack );
    icon = CGulIcon::NewL( bitmap, mask );
    icon->SetBitmapsOwnedExternally( EFalse );
    CleanupStack::Pop( 2 );   // bitmap and mask, order may vary
    CleanupStack::PushL( icon );
    aIconArray.AppendL( icon );
    CleanupStack::Pop( icon );

    CleanupStack::PopAndDestroy( iconFilePath );
    }
// -----------------------------------------------------------------------------
// CLandmarksModel::AppendIconL
// 
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
void CLandmarksModel::AppendIconL(
    const TDesC& aMbmFile, 
    TInt aIconOffset, 
    TInt aMaskOffset)
    {
    TAknsItemID aknsItemId = {0,0};
    CGulIcon* icon = AknsUtils::CreateGulIconL(NULL, aknsItemId,
        aMbmFile, 
        aIconOffset, 
        aMaskOffset);
    CleanupStack::PushL(icon);
    icon->SetBitmapsOwnedExternally(EFalse);
    iIconList->AppendL(icon);
    CleanupStack::Pop(icon);
    }
// -----------------------------------------------------------------------------
// CLandmarksModel::CreateIconListL
// 
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
CIconList* CLandmarksModel::CreateIconListL()
    {
    CIconList* iconList = new (ELeave) CAknIconArray( KGranularity );

    CleanupStack::PushL(iconList);
    
    // Create the default landmark icon consisting of its image and mask
    TAknsItemID aknsItemId = {0,0};
    CGulIcon* icon = AknsUtils::CreateGulIconL(NULL, aknsItemId,
        KLandmarksMbmFileName, 
        EMbmLmrefappDefault_lm, 
        EMbmLmrefappDefault_lm_mask);
    CleanupStack::PushL(icon);
    icon->SetBitmapsOwnedExternally(EFalse);
    iconList->AppendL(icon);
    CleanupStack::Pop(2, iconList);

    // initialze iIconList. We don't need to delete any possible previous 
    // iIconList since ownership is transferred to calling object.
    iIconList = iconList;

    return iIconList;
    }
// --------------------------------------------------------------------------
// CHomeMediaContainer::UpdatePluginsL
// --------------------------------------------------------------------------
//
void CHomeMediaContainer::UpdatePluginsL()
    {
    __LOG("CHomeMediaContainer::UpdatePluginsL begin");
    CEikFormattedCellListBox* listBox = 
        static_cast<CEikFormattedCellListBox*>( &ListBox() );

    CArrayPtr<CGulIcon>& icons = 
        *listBox->ItemDrawer()->FormattedCellData()->IconArray();
    // Remove old plugins icons
    TInt pluginIcons = icons.Count() - KNumberOfItemsBeforePlugins;
    while( pluginIcons )
        {
        pluginIcons--;
        CGulIcon* icon = icons[ KNumberOfItemsBeforePlugins ];
        icons.Delete( KNumberOfItemsBeforePlugins );
        delete icon;
        icon = NULL;
        }

    for( TInt i = 0; i < iPluginArray.Count(); i++ )
        {
        //append icon
        const CGulIcon& icon = iPluginArray[i]->GetIcon();
        CGulIcon* copyIcon = CGulIcon::NewL( icon.Bitmap(), icon.Mask() );
        CleanupStack::PushL( copyIcon );
        // Icon is handled by us, but bitmaps by plugin
        // when we delete icon, we delete icon only but not bitmaps
        copyIcon->SetBitmapsOwnedExternally( ETrue );
        icons.AppendL( copyIcon ); //Ownership goes to array
        CleanupStack::Pop( copyIcon );

        HBufC* primary = NULL;
        HBufC* secondary = NULL;

        // if title of the plugin is not null alloc space for it
        if ( &(iPluginArray[i]->GetTitle()) )
            {
            primary = ( iPluginArray[i]->GetTitle() ).AllocLC();
            }
        else
            {
            primary = KNullDesC().AllocLC();
            }

        // if secondary text of the plugin is not null alloc space for it
        if ( &(iPluginArray[i]->GetSecondaryText()) )
            {
            secondary = ( iPluginArray[i]->GetSecondaryText() ).AllocLC();
            }
        else
            {
            secondary = KNullDesC().AllocLC();
            }

        AddColumnL( KFormatWithTwoStr,
                    i + KNumberOfItemsBeforePlugins,
                    primary,
                    secondary );

        // deletion of the texts after they have been set to listbox item
        CleanupStack::PopAndDestroy( secondary );
        CleanupStack::PopAndDestroy( primary );
        }
    __LOG("CHomeMediaContainer::UpdatePluginsL end");
    }
// ---------------------------------------------------------
// CDisconnectDlgDialog::PreLayoutDynInitL
// ---------------------------------------------------------
//
void CDisconnectDlgDialog::PreLayoutDynInitL()
    {
    CLOG_ENTERFN("CDisconnectDlgDialog::PreLayoutDynInitL");    
    
    CAknListQueryDialog::PreLayoutDynInitL();
    
    STATIC_CAST( CEikServAppUi*, 
                CCoeEnv::Static()->AppUi() )->SuppressAppSwitching( ETrue );
    
    CConnectionCArray* connArray = iConnModel->GetConnArray();

    // items: application and IAP names
    CDesCArrayFlat* items = new( ELeave )CDesCArrayFlat( connArray->Count() );
    CleanupStack::PushL( items );
    // icons: application icons
    CArrayPtr< CGulIcon >* icons = new( ELeave )CAknIconArray( 
                                                        connArray->Count() );
    CleanupStack::PushL( icons );

    CGulIcon* iconTemp = NULL;
    CGulIcon* icon = NULL;

    TInt count = connArray->Count();
    CLOG_WRITEF(_L( "count: %d" ), count );     

    // Get the info of every connection and initialize the list of dialog
    for( TInt i = 0; i < count; i++ )
        {
        CConnectionInfo* info = connArray->At( i );

        TBool useSharedIcon = EFalse;
        // Application and IAP name
        HBufC* listItem = HBufC::NewLC( KListItemTextBuf );
        TPtrC iap = info->GetIapNameL();
        
        TPtrC app = info->GetAppNameL( useSharedIcon ); 

        // Application icon
        iconTemp = info->GetAppIconL( useSharedIcon );
        icon = CGulIcon::NewL();
        icon->SetBitmapsOwnedExternally( ETrue );
        icon->SetBitmap( iconTemp->Bitmap() );
        icon->SetMask( iconTemp->Mask() );

        icons->AppendL( icon );

        listItem->Des().Format( KFormat, i, &iap, &app );
        items->AppendL( listItem->Des() );

        CleanupStack::PopAndDestroy( listItem ); // listItem
        }

    // set new item list
    SetItemTextArray( items );
    // set icon list
    SetIconArrayL( icons );
    // we don't have to take care of delete items
    SetOwnershipType( ELbmOwnsItemArray );

    CleanupStack::Pop( icons );
    CleanupStack::Pop( items );
    
    iExpiryTimer = CExpiryTimer::NewL( *this );
    iExpiryTimer->Start();

    CLOG_LEAVEFN("CDisconnectDlgDialog::PreLayoutDynInitL");
    }