// ---------------------------------------------------------
// CCertManUIContainerPersonal::CreateIconArrayL
// Creates Icon Array
// ---------------------------------------------------------
//
CAknIconArray* CCertManUIContainerPersonal::CreateIconArrayL() const
    {
    CAknIconArray* icons = new ( ELeave ) CAknIconArray( KGranularity );
    CleanupStack::PushL( icons );
    icons->ConstructFromResourceL( IconArrayResourceId() );
    CleanupStack::Pop(); // icons
    return icons;
    }
// ---------------------------------------------------------------------------
// 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 );
    }
void CBuddycloudCommunitiesContainer::CreateListItemsL(){	
	iList = new (ELeave) CAknSingleLargeStyleListBox();
	iList->SetContainerWindowL(*this);

	// Text array
	TResourceReader aReader;
	iEikonEnv->CreateResourceReaderLC(aReader, R_COMMUNITIES_LISTBOX);
	iList->ConstructFromResourceL(aReader);
	CleanupStack::PopAndDestroy(); // aReader
	
	iList->CreateScrollBarFrameL(ETrue);
    iList->ScrollBarFrame()->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto);
	iList->Model()->SetOwnershipType(ELbmOwnsItemArray);
	
	// Icons
    CAknIconArray* aIcons = new (ELeave) CAknIconArray(7);
    CleanupStack::PushL(aIcons); 
    aIcons->ConstructFromResourceL(R_ICONS_LIST);
    CleanupStack::Pop();  // aListBox
    iList->ItemDrawer()->ColumnData()->SetIconArray(aIcons);    
}
// ---------------------------------------------------------------------------
// CAppMngr2PluginHolder::
// ---------------------------------------------------------------------------
//
void CAppMngr2PluginHolder::LoadIconsL( CAknIconArray& aIconArray )
    {
    CAknIconArray* iconArray = new ( ELeave ) CAknIconArray( KIconGranularity );
    CleanupStack::PushL( iconArray );
    
    // Use temporary array to load icons from plugin. This prevents
    // plugin from messing icons that other plugins have loaded.
    TRAP_IGNORE( iRuntime->LoadIconsL( *iconArray ) );    
    iIconIndexBase = aIconArray.Count();
    iIconCount = iconArray->Count();
    
    // Insert icons in reverse order so that they can be removed
    // from the iconArray while inserting in aIconArray. Icons must
    // be inserted in the right position to maintain icon indexes
    // (the same icon order as in iconArray).
    TInt insertPosition = iIconIndexBase;
    for( TInt index = iIconCount - 1; index >= 0; index-- )
        {
        // copies CGulIcon from iconArray to aIconArray
        aIconArray.InsertL( insertPosition, iconArray->At( index ) );
        iconArray->Delete( index );
        }
    CleanupStack::PopAndDestroy( iconArray );
    }
// ---------------------------------------------------------
// CBTUiDeviceContainer::ConstructL
// ---------------------------------------------------------
void CBTUiDeviceContainer::ConstructL(const TRect& aRect, 
  CBTUIListedDevicesView* aView, TBTDeviceGroup aGroup)
    {
	TRACE_FUNC_ENTRY
	
    CreateWindowL();
    
	iView = aView;
    iGroup = aGroup;
    // Create new list for other paired bt-devices
    //
    iDeviceList = new (ELeave) CAknSingleGraphicStyleListBox;
    iDeviceList->SetContainerWindowL(*this);
    iDeviceList->ConstructL(this, EAknListBoxSelectionList);
    
	iDeviceList->SetListBoxObserver( this );    

    // Set the empty text at basis of the list
    iDeviceList->View()->SetListEmptyTextL( KNullDesC );

    // Set up filenames for Btui and Avkon bitmaps
    TFileName bmpFilename;
    bmpFilename += KBitmapFileDrive;
    bmpFilename += KDC_APP_BITMAP_DIR;
    bmpFilename += KBtuiBmpFileName;
        
    // The avkon bitmap we will get from AknIconUtils::AvkonIconFileName()
    TFileName avkonbmpFilename = AknIconUtils::AvkonIconFileName();
    
    // Setup graphic items list for BT devices listbox
    CAknIconArray* iconList = new(ELeave) CAknIconArray(KBTNumberOfIcons);
    CleanupStack::PushL( iconList );
    

	CreateAndAppendIconL( KAknsIIDQgnPropBtComputer, 
						  avkonbmpFilename, 
						  EMbmAvkonQgn_prop_bt_computer,
						  EMbmAvkonQgn_prop_bt_computer_mask,
						  iconList);

	CreateAndAppendIconL( KAknsIIDQgnPropBtPhone,
						  avkonbmpFilename, 
						  EMbmAvkonQgn_prop_bt_phone,
						  EMbmAvkonQgn_prop_bt_phone_mask,
						  iconList);

	CreateAndAppendIconL( KAknsIIDQgnPropBtAudio,
						  avkonbmpFilename, 
						  EMbmAvkonQgn_prop_bt_audio,
						  EMbmAvkonQgn_prop_bt_audio_mask,
						  iconList);

	CreateAndAppendIconL( KAknsIIDQgnPropBtMisc,
						  avkonbmpFilename, 
						  EMbmAvkonQgn_prop_bt_misc,
						  EMbmAvkonQgn_prop_bt_misc_mask,
						  iconList);
						  
	CreateAndAppendIconL( KAknsIIDQgnPropBtKeyboard,
						  avkonbmpFilename, 
						  EMbmAvkonQgn_prop_bt_keyboard,
						  EMbmAvkonQgn_prop_bt_keyboard_mask,
						  iconList);					  

	CreateAndAppendIconL( KAknsIIDQgnPropBtMouse,
						  avkonbmpFilename, 
						  EMbmAvkonQgn_prop_bt_mouse,
						  EMbmAvkonQgn_prop_bt_mouse_mask,
						  iconList);
						  
	CreateAndAppendIconL( KAknsIIDQgnPropBtPrinter,
						  avkonbmpFilename, 
						  EMbmAvkonQgn_prop_bt_printer,
						  EMbmAvkonQgn_prop_bt_printer_mask,
						  iconList);					  					  
	
	CreateAndAppendIconL( KAknsIIDQgnPropBtCarKit,
						  avkonbmpFilename, 
						  EMbmAvkonQgn_prop_bt_carkit,
						  EMbmAvkonQgn_prop_bt_carkit_mask,
						  iconList);
						  
	CreateAndAppendIconL( KAknsIIDQgnPropBtAudioConnect,
						  bmpFilename, 
						  EMbmBtuiQgn_prop_bt_audio_connect,
						  EMbmBtuiQgn_prop_bt_audio_connect_mask,
						  iconList);					  
						  
	CreateAndAppendIconL( KAknsIIDQgnPropBtComputerConnect,
						  bmpFilename, 
						  EMbmBtuiQgn_prop_bt_computer_connect,
						  EMbmBtuiQgn_prop_bt_computer_connect_mask,
						  iconList);
						  
    CreateAndAppendIconL( KAknsIIDQgnPropBtKeyboardConnect,
						  bmpFilename, 
						  EMbmBtuiQgn_prop_bt_keyboard_connect,
						  EMbmBtuiQgn_prop_bt_keyboard_connect_mask,
						  iconList);						  		
						  
	CreateAndAppendIconL( KAknsIIDQgnPropBtCarKitConnect,
						  bmpFilename, 
						  EMbmBtuiQgn_prop_bt_car_kit_connect,
						  EMbmBtuiQgn_prop_bt_car_kit_connect_mask,
						  iconList);	
	
	CreateAndAppendIconL( KAknsIIDQgnPropBtMouseConnect,
                          bmpFilename, 
                          EMbmBtuiQgn_prop_bt_mouse_connect,
                          EMbmBtuiQgn_prop_bt_mouse_connect_mask,
                          iconList);
	
	CFbsBitmap* bitmap = NULL;
    CFbsBitmap* mask = NULL;
    AknsUtils::CreateColorIconLC(AknsUtils::SkinInstance(), 
                                 KAknsIIDQgnIndiBtTrustedAdd,
                                 KAknsIIDQsnIconColors,
                                 EAknsCIQsnIconColorsCG13,
                                 bitmap, mask,
                                 avkonbmpFilename,
                                 EMbmAvkonQgn_indi_bt_trusted_add,
                                 EMbmAvkonQgn_indi_bt_trusted_add_mask,
                                 KRgbBlack);
    CGulIcon* icon = CGulIcon::NewL(bitmap, mask);
        
    CleanupStack::Pop(mask);
    CleanupStack::Pop(bitmap); 
    
    CleanupStack::PushL(icon);    
	iconList->AppendL( icon );
    CleanupStack::Pop(icon);
    
    	
    // Transfer iconlist ownership to the listbox
    iDeviceList->ItemDrawer()->ColumnData()->SetIconArray(iconList);
    CleanupStack::Pop(iconList);

    // Create scrollbars
    iDeviceList->CreateScrollBarFrameL(ETrue);
    iDeviceList->ScrollBarFrame()->SetScrollBarVisibilityL(
    	CEikScrollBarFrame::EOn, CEikScrollBarFrame::EAuto);

    SetRect(aRect);
    ActivateL();

    TRACE_FUNC_EXIT
    }
// -----------------------------------------------------------------------------
// CAafAppFileBrowserView::ConstructL()
// Symbian 2nd phase constructor can leave.
// -----------------------------------------------------------------------------
//
void CAafAppFileBrowserView::ConstructL( const TRect& aRect )
{
	__LOGSTR_TOFILE("CAafAppFileBrowserView::ConstructL() begins");

	// Create a window for this application view
	CreateWindowL();

	// Instantiate listbox control
	iListBox = new (ELeave)CAknSingleGraphicStyleListBox;

	iListBox->ConstructL( this, EAknListBoxSelectionList);

	iListBox->SetContainerWindowL( *this );

	__LOGSTR_TOFILE("CAafAppFileBrowserView::ConstructL() before setting icon array");

	// Creates a GUI icon array
	CAknIconArray* icons = new (ELeave)CAknIconArray(5);

	__LOGSTR_TOFILE("CAafAppFileBrowserView::ConstructL() before CleanupStack::PushL(icons)");

	CleanupStack::PushL(icons);
	icons->ConstructFromResourceL(R_BROWSERVIEW_ICONS);
	// Sets graphics as listbox icons
	iListBox->ItemDrawer()->ColumnData()->SetIconArray(icons);

	__LOGSTR_TOFILE("CAafAppFileBrowserView::ConstructL() before CleanupStack::Pop()");

	CleanupStack::Pop(); // icons

	// Enable marquee effect
	iListBox->ItemDrawer()->ColumnData()->SetMarqueeParams(3, 20, 1000000, 200000);
	iListBox->ItemDrawer()->ColumnData()->EnableMarqueeL(ETrue);

	__LOGSTR_TOFILE("CAafAppFileBrowserView::ConstructL() after setting icon array");

	// Create the scroll indicator
	iListBox->CreateScrollBarFrameL(ETrue);
	iListBox->ScrollBarFrame()->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto);

	iListBox->Model()->SetOwnershipType( ELbmOwnsItemArray );

	iListBox->ActivateL();

	// Create the FileBrowserEngine
	iBrowserEngine = new (ELeave) CFileBrowserEngine;

#ifdef __SERIES60_3X__
	iBrowserEngine->ConstructL();
#else
	iBrowserEngine->ConstructL((CEikProcess*)(((CEikAppUi*)iCoeEnv->AppUi())->Application()->Process()));
#endif

	// Set file browser to display only picture files
	//SetFileListL(EFileBrowserPictures, EFileBrowserDate);

	TFileName aFolder = TFileName(KNullDesC);
	SetFileListL(aFolder);

	// Set the windows size
	SetRect( aRect );

	// Activate the window, which makes it ready to be drawn
	ActivateL();

	__LOGSTR_TOFILE("CAafAppFileBrowserView::ConstructL() begins");
}