diff -r 6369bfd1b60d -r 08b5eae9f9ff homesync/contentmanager/homesyncwizard/src/cmsmultiselectionpopup.cpp --- a/homesync/contentmanager/homesyncwizard/src/cmsmultiselectionpopup.cpp Mon Nov 01 13:44:24 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,300 +0,0 @@ -/* -* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Multiselection popup implementation -* -*/ - - -// INCLUDE FILES -#include -#include -#include - -#include "cmsmultiselectionpopup.h" -#include "msdebug.h" - -// Format string for listbox items -_LIT(KItemFormatString, "1\t%S"); - -// --------------------------------------------------------------------------- -// CMSMultiselectionPopup::NewL -// --------------------------------------------------------------------------- -// -CMSMultiselectionPopup* CMSMultiselectionPopup::NewL( - CDesCArrayFlat* aItemArray, - CListBoxView::CSelectionIndexArray* aSelectionIndexArray, - const TDesC& aHeading ) - { - LOG(_L("[MSAppWizard]\t CMSMultiselectionPopup::NewL begin")); - - CMSMultiselectionPopup* self = - CMSMultiselectionPopup::NewLC( aItemArray, - aSelectionIndexArray, - aHeading ); - CleanupStack::Pop( self ); - - LOG(_L("[MSAppWizard]\t CMSMultiselectionPopup::NewL end")); - return self; - } - -// --------------------------------------------------------------------------- -// CMSMultiselectionPopup::NewLC -// --------------------------------------------------------------------------- -// -CMSMultiselectionPopup* CMSMultiselectionPopup::NewLC( - CDesCArrayFlat* aItemArray, - CListBoxView::CSelectionIndexArray* aSelectionIndexArray, - const TDesC& aHeading ) - { - LOG(_L("[MSAppWizard]\t CMSMultiselectionPopup::NewLC begin")); - - CMSMultiselectionPopup* self = - new(ELeave) CMSMultiselectionPopup( NULL, - aHeading ); - - CleanupStack::PushL(self); - self->ConstructL( aItemArray, aSelectionIndexArray ); - - LOG(_L("[MSAppWizard]\t CMSMultiselectionPopup::NewLC end")); - return self; - } - -// --------------------------------------------------------------------------- -// CMSMultiselectionPopup::ConstructL -// --------------------------------------------------------------------------- -// -void CMSMultiselectionPopup::ConstructL( - CDesCArrayFlat* aItemArray, - CListBoxView::CSelectionIndexArray* aSelectionIndexArray ) - { - LOG(_L("[MSAppWizard]\t CMSMultiselectionPopup::\ - ConstructL begin")); - - iItemArray = aItemArray; - - iSelectionIndexes = aSelectionIndexArray; - - LOG(_L("[MSAppWizard]\t CMSMultiselectionPopup::\ - ConstructL end")); - } - -// --------------------------------------------------------------------------- -// CMSMultiselectionPopup::CMSMultiselectionPopup -// --------------------------------------------------------------------------- -// -CMSMultiselectionPopup::CMSMultiselectionPopup( - CListBoxView::CSelectionIndexArray* aSelectionIndexArray, - const TDesC& aHeading ) - : CAknListQueryDialog( aSelectionIndexArray ), - iHeading( aHeading ) - - { - LOG(_L("[MSAppWizard]\t CMSMultiselectionPopup:: \ - CMSMultiselectionPopup")); - } - -// --------------------------------------------------------------------------- -// CMSMultiselectionPopup::~CMSMultiselectionPopup -// --------------------------------------------------------------------------- -// -CMSMultiselectionPopup::~CMSMultiselectionPopup() - { - LOG(_L("[MSAppWizard]\t CMSMultiselectionPopup::\ - CMSMultiselectionPopup")); - } - -// --------------------------------------------------------------------------- -// CMSMultiselectionPopup::UpdateAndDrawPopup -// --------------------------------------------------------------------------- -// -void CMSMultiselectionPopup::UpdateAndDrawPopupL( - CDesCArrayFlat* aItemArray ) - { - LOG(_L("[MSAppWizard]\t CMSMultiselectionPopup:: \ - UpdateAndDrawPopupL begin")); - - iItemArray = aItemArray; - - if ( iItemArray->Count() ) - { - CreateAndSetListboxItemsL(); - } - - Layout(); - SizeChanged(); - iListBox->DrawNow(); - - LOG(_L("[MSAppWizard]\t CMSMultiselectionPopup:: \ - UpdateAndDrawPopupL ends")); - } - -// --------------------------------------------------------------------------- -// CMSMultiselectionPopup::AppendIconToArrayL -// --------------------------------------------------------------------------- -// -void CMSMultiselectionPopup::AppendIconToArrayL(CAknIconArray* aArray, - MAknsSkinInstance* aSkin, - const TDesC& aMbmFile, - const TAknsItemID& aID, - TInt aBitmapId, - TInt aMaskId) const - { - LOG(_L("[MSAppWizard]\t CMSMultiselectionPopup:: \ - AppendIconToArrayL begin")); - - __ASSERT_DEBUG( aArray, User::Leave(KErrArgument) ); - - CFbsBitmap* bitmap = NULL; - CFbsBitmap* mask = NULL; - - AknsUtils::CreateIconLC(aSkin, aID, - bitmap, mask, aMbmFile, aBitmapId, aMaskId); - - CGulIcon* icon = CGulIcon::NewL(bitmap, mask); - icon->SetBitmapsOwnedExternally(EFalse); - - // icon now owns the bitmaps, no need to keep on cleanup stack. - CleanupStack::Pop(2); // mask, bitmap - bitmap = NULL; - mask = NULL; - - CleanupStack::PushL(icon); - - aArray->AppendL(icon); - - // aArray now owns the icon, no need to delete. - CleanupStack::Pop(icon); - LOG(_L("[MSAppWizard]\t CMSMultiselectionPopup:: \ - AppendIconToArrayL end")); - } - -// --------------------------------------------------------------------------- -// CMSMultiselectionPopup::OkToExitL(TInt aButtonId) -// --------------------------------------------------------------------------- -// -TBool CMSMultiselectionPopup::OkToExitL(TInt aButtonId) - { - LOG(_L("[MSAppWizard]\t CMSMultiselectionPopup::\ -OkToExitL begin")); - - if ( aButtonId == EAknSoftkeyNext || aButtonId == EAknSoftkeyBack ) - { - LOG(_L("[MSAppWizard]\t CUPnPAppMultiselectionPopup::\ -OkToExitL: Next or Back")); - - const CListBoxView::CSelectionIndexArray* selected = - ListBox()->SelectionIndexes(); - - if ( iSelectionIndexes ) - { - TInt selectCount = selected->Count(); - iSelectionIndexes->Reset(); - for ( TInt i = 0; i < selectCount; i++ ) - { - iSelectionIndexes->AppendL( selected->At( i ) ); - } - } - } - - LOG(_L("[MSAppWizard]\t CMSMultiselectionPopup::\ -OkToExitL end")); - return ETrue; - } - -// --------------------------------------------------------------------------- -// CMSMultiselectionPopup::CreateAndSetListboxItemsL() -// --------------------------------------------------------------------------- -// -void CMSMultiselectionPopup::CreateAndSetListboxItemsL() - { - LOG(_L("[MSAppWizard]\t CMSMultiselectionPopup::\ - CreateAndSetListboxItemsL")); - - TInt itemCount = iItemArray->Count(); - - CDesCArrayFlat* listItems = new (ELeave) CDesCArrayFlat( 5 ); - CleanupStack::PushL( listItems ); - - for ( TInt i = 0; i < itemCount; i++) - { - TPtrC itemStr = iItemArray->MdcaPoint(i); - HBufC* item = HBufC::NewLC( itemStr.Size() + - sizeof( KItemFormatString ) ); - item->Des().Format( KItemFormatString, &itemStr ); - - listItems->AppendL( *item ); - CleanupStack::PopAndDestroy( item ); - } - SetItemTextArray( listItems ); - CleanupStack::Pop( listItems ); - } - -// --------------------------------------------------------------------------- -// CMSMultiselectionPopup::PreLayoutDynInitL() -// --------------------------------------------------------------------------- -// -void CMSMultiselectionPopup::PreLayoutDynInitL() - { - LOG(_L("[MSAppWizard]\t CMSMultiselectionPopup:: \ - PreLayoutDynInitL begin")); - - // two icons - CAknIconArray* icons = new (ELeave) CAknIconArray(2); - CleanupStack::PushL( icons ); - - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - TFileName iconsPath( AknIconUtils::AvkonIconFileName() ); - - AppendIconToArrayL( icons, skin, - iconsPath, - KAknsIIDQgnPropCheckboxOn, - EMbmAvkonQgn_indi_checkbox_on, - EMbmAvkonQgn_indi_checkbox_on_mask ); - - AppendIconToArrayL( icons, skin, - iconsPath, - KAknsIIDQgnPropCheckboxOff, - EMbmAvkonQgn_indi_checkbox_off, - EMbmAvkonQgn_indi_checkbox_off_mask ); - - - CAknListQueryDialog::SetIconArrayL(icons); - - CleanupStack::Pop(icons); - - iListBox = ListBox(); - - CAknFilteredTextListBoxModel* model = STATIC_CAST( - CAknFilteredTextListBoxModel*, - iListBox->Model()); - - // create listbox items if any - if ( iItemArray->Count() ) - { - CreateAndSetListboxItemsL(); - } - - SetHeaderTextL( iHeading ); - - iListBox->ActivateL(); - - CAknListQueryDialog::PreLayoutDynInitL(); - - LOG(_L("[MSAppWizard]\t CMSMultiselectionPopup:: \ - PreLayoutDynInitL end")); - } - -// End of file - -