diff -r 6369bfd1b60d -r 08b5eae9f9ff homemedia/homemedia/src/homemediabaselistbox.cpp --- a/homemedia/homemedia/src/homemediabaselistbox.cpp Mon Nov 01 13:44:24 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,259 +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: Base listbox class -* -*/ - - - - - - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "homemediaappview.h" -#include "homemediabaselistbox.h" - -//CONSTANTS -static const TInt KIconGranularity( 3 ); -_LIT( KAknHomeMediaMbmFileName, "\\resource\\apps\\HomeMedia.mif" ); - -// -------------------------------------------------------------------------- -// CHomeMediaBaseListbox::CHomeMediaBaseListbox() -// -------------------------------------------------------------------------- -// -CHomeMediaBaseListbox::CHomeMediaBaseListbox() - { - // No implementation required - } - -// -------------------------------------------------------------------------- -// CHomeMediaBaseListbox::~CHomeMediaBaseListbox() -// -------------------------------------------------------------------------- -// -CHomeMediaBaseListbox::~CHomeMediaBaseListbox() - { - delete iListBox; - } - -// -------------------------------------------------------------------------- -// CHomeMediaBaseListbox::ListBox() -// -------------------------------------------------------------------------- -// -CEikListBox& CHomeMediaBaseListbox::ListBox() - { - return *iListBox; - } - -// -------------------------------------------------------------------------- -// CHomeMediaBaseListbox::AddColumnL() -// -------------------------------------------------------------------------- -// -void CHomeMediaBaseListbox::AddColumnL( TRefByValue aFmt,... ) - { - // pointer to list of arguments - VA_LIST args; - // tells the code where to start the list - VA_START(args,aFmt); - HBufC* data = HBufC::NewLC(KMaxFileName); - // create TOverFlowHandler object in case if there is - // huge descriptor passed here - TOverFlowHandler overFlow; - // now format descriptor - data->Des().AppendFormatList( aFmt , args , &overFlow ); - // add item to list - iListBoxItems->AppendL(*data); - CleanupStack::PopAndDestroy(data); - // sets pointer to zero - VA_END(args); - // draw listbox - iListBox->HandleItemAdditionL(); - iListBox->DrawDeferred(); - } - -// -------------------------------------------------------------------------- -// CHomeMediaBaseListbox::SizeChanged() -// Called by framework when the view size is changed. -// -------------------------------------------------------------------------- -// -void CHomeMediaBaseListbox::SizeChanged() - { - const TPoint listPosition(0,0); - iListBox->SetExtent(listPosition, iListBox->MinimumSize() ); - } - -// -------------------------------------------------------------------------- -// CHomeMediaBaseListbox::OfferKeyEventL() -// -------------------------------------------------------------------------- -// -TKeyResponse CHomeMediaBaseListbox::OfferKeyEventL( - const TKeyEvent &aKeyEvent, - TEventCode aType) - { - TKeyResponse ret(EKeyWasNotConsumed); - if( aType == EEventKey ) - { - if( aKeyEvent.iCode == EKeyUpArrow - || aKeyEvent.iCode == EKeyDownArrow ) - { - ret = iListBox->OfferKeyEventL(aKeyEvent, aType); - } - } - return ret; - } - -// -------------------------------------------------------------------------- -// CHomeMediaBaseListbox::CountComponentControls() -// -------------------------------------------------------------------------- -// -TInt CHomeMediaBaseListbox::CountComponentControls() const - { - return 1; - } - -// -------------------------------------------------------------------------- -// CHomeMediaBaseListbox::ComponentControl() -// -------------------------------------------------------------------------- -// -CCoeControl* CHomeMediaBaseListbox::ComponentControl(TInt aIndex) const - { - CCoeControl* ret = NULL; - switch( aIndex ) - { - case 0: - ret = iListBox; - break; - } - return ret; - } - -// -------------------------------------------------------------------------- -// CHomeMediaBaseListbox::BaseConstructL() -// -------------------------------------------------------------------------- -// -void CHomeMediaBaseListbox::BaseConstructL( const TRect& aRect - ,CEikTextListBox* aListBox ) - { - CreateWindowL(); - - // take the ownership of aListBox - iListBox = aListBox; - - /** This initializes the C-classes of a newly-created @c CEikTextListBox - * from supplied arguments. This function fully constructs the associated - * list box model and item drawer for this list box, and then invokes - * CEikListBox::ConstructL(). - */ - iListBox->ConstructL(this); - - /** - * Creates an own window for the list box or draws the list box to an old - * window defined by the container. - */ - iListBox->SetContainerWindowL(*this); - - // add scrollbars to listbox - iListBox->CreateScrollBarFrameL(ETrue); - - /** - * Sets the visibility state for both the horizontal and the vertical - * scrollbars. This is used when tiling. - */ - iListBox->ScrollBarFrame()->SetScrollBarVisibilityL( - CEikScrollBarFrame::EOff, CEikScrollBarFrame::EOff); - - // get the pointer to listbox itemTextArray - iListBoxItems - = static_cast( iListBox->Model()->ItemTextArray() ); - - //Set icons - CAknIconArray* icons = new (ELeave) CAknIconArray( KIconGranularity ); - CleanupStack::PushL( icons ); - - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - TFileName iconsPath( AknIconUtils::AvkonIconFileName( ) ); - - TFileName mbmFileName( KAknHomeMediaMbmFileName ); - TFileName dllName - = CEikonEnv::Static()->EikAppUi()->Application()->AppFullName(); - TBuf<2> drive = dllName.Left( 2 ); // Drive letter followed by ':' - mbmFileName.Insert( 0, drive ); - - // if new static menu item added constant KNumberOfItemsBeforePlugins - // has to be changed - AppendIconToArrayL( icons, skin, - mbmFileName, - KAknsIIDDefault, - EMbmHomemediaQgn_prop_upnp_browse_home, - EMbmHomemediaQgn_prop_upnp_browse_home_mask ); - - AppendIconToArrayL( icons, skin, - mbmFileName, - KAknsIIDDefault, - EMbmHomemediaQgn_prop_upnp_share_sub, - EMbmHomemediaQgn_prop_upnp_share_sub_mask ); - - static_cast(iListBox)->ItemDrawer()-> - FormattedCellData()->SetIconArray(icons); - - CleanupStack::Pop(icons); - - // Set the windows size - SetRect( aRect ); - // Activate the window, which makes it ready to be drawn - ActivateL(); - } - -// -------------------------------------------------------------------------- -// CHomeMediaBaseListbox::AppendIconToArrayL() -// -------------------------------------------------------------------------- -// -void CHomeMediaBaseListbox::AppendIconToArrayL(CAknIconArray* aArray, - MAknsSkinInstance* aSkin, - const TDesC& aMbmFile, - const TAknsItemID& aID, - TInt aBitmapId, - TInt aMaskId) - { - 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(mask); - CleanupStack::Pop(bitmap); - bitmap = NULL; - mask = NULL; - - CleanupStack::PushL(icon); - - aArray->AppendL(icon); - - // aArray now owns the icon, no need to delete. - CleanupStack::Pop(icon); - } - -// End of file