diff -r 000000000000 -r 2f259fa3e83a commonuis/CommonDialogs/src/CAknMemorySelectionModel.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commonuis/CommonDialogs/src/CAknMemorySelectionModel.h Tue Feb 02 01:00:49 2010 +0200 @@ -0,0 +1,231 @@ +/* +* Copyright (c) 2002-2007 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: Model used in listbox of memory selection dialog. +* +*/ + + + +#ifndef C_AKNMEMORYSELECTIONMODEL_H +#define C_AKNMEMORYSELECTIONMODEL_H + + +#include +#include + +#include "maknmemoryselectionmodel.h" + +class CCoeEnv; +class TCFDDriveInfo; + + +/** + * A model class for memory selection. Model is derived from MDesCArray which + * provides an interface for list boxes to get items. Model has the + * responsibility to maintain a list of items for the listbox. + * + * @lib CommonDialogs.lib + * @since S60 1.2 +*/ +NONSHARABLE_CLASS(CAknMemorySelectionModel) + : public CBase, + public MAknMemorySelectionModel + { +public: + +// Constructors and destructor + + /** + * Static constructor. + * @return Returns a pointer to an instance of itself. + */ + static CAknMemorySelectionModel* NewL( + CCoeEnv* aCoeEnv, + MDesCArray* aDriveArray, + TBool aShowUnavailable, + TListBoxLayout aLayout ); + + ~CAknMemorySelectionModel(); + +// New functions + + /** + * Gets listbox text of a memory at desired lbx index. + * @param aIndex Index of the memory. + * @param aItem A reference to a descriptor where the item is stored. + */ + void GetItem( TInt aIndex, TDes& aItem ); + +// Functions from base class MAknMemorySelectionModel + + /** + * Updates items in listbox. + */ + void UpdateItemsL(); + + /** + * Get path of a drive referenced by given listbox item index. + * @param aLbxItemIndex Index of the listbox item. + * @param aDrivePath A reference to a descriptor where the drive path is + * stored. + */ + void GetDrive( TInt aLbxItemIndex, TDes& aDrivePath ); + +// Functions from base class MDesCArray + + /** + ** From MDesCArray. + */ + TInt MdcaCount() const; + + /** + ** From MDesCArray. + */ + TPtrC MdcaPoint( TInt aIndex ) const; + +private: + +// Enumerations + + /** + * Indexes to the memory icons owned by the listbox. + */ + enum TMemIcons + { + EIconPhoneMemory = 0, + EIconMMC, + EIconMMCLocked, + EIconMMCUnavailable, + EIconRemoteDrive, + EIconRemoteDriveActive // Icon used in D-column if drive active + }; + + /** + * Indexes to the localized memory texts (iLocStringArray). + */ + enum TMemLocTexts + { + ETextPhoneMemory = 0, + ETextMMC, + ETextMMCLocked, + ETextMMCUnavailable, + ETextRemoteDrive, + ETextCount // Count of the localized texts - must remain last! + }; + +// New functions + + /** + * Reads localised texts from resource. + */ + void ReadResourcesL(); + + /** + * Creates formatted listbox item string from given drive information + * and appends it to iListBoxArray. + * + * @param aDriveInfo Drive information from which the lxx item string is + * created. + */ + void AddItemToLbxL( const TCFDDriveInfo &aDriveInfo ); + + /** + * Creates formatted listbox item and appends it to iListBoxArray. + * + * @param aDriveInfo Drive information from which the lxx item string is + * created. + */ + void AddPhoneItemToLbxL( const TCFDDriveInfo& aDriveInfo ); + + /** + * Creates formatted listbox item and appends it to iListBoxArray. + * + * @param aDriveInfo Drive information from which the lxx item string is + * created. + */ + void AddMMCItemToLbxL( const TCFDDriveInfo& aDriveInfo ); + + /** + * Creates formatted listbox item and appends it to iListBoxArray. + * + * @param aDriveInfo Drive information from which the lxx item string is + * created. + */ + void AddRemoteItemToLbxL( const TCFDDriveInfo& aDriveInfo ); + + /** + * Creates formatted listbox item and appends it to iListBoxArray. + * + * @param aDriveInfo Drive information from which the lxx item string is + * created. + */ + void AddDefaultItemToLbxL( const TCFDDriveInfo& aDriveInfo ); + + /** + * Gets resource ID for resource item. + * @param aLocStrIndex Index of the localized item. + * @return ID of the resource item. + */ + TInt ResourceIDForLayoutPopupMenuItem( TInt aLocStrIndex ); + + /** + * Gets resource ID for resource item. + * @param aLocStrIndex Index of the localized item. + * @return ID of the resource item. + */ + TInt ResourceIDForLayoutSettingPageItem( TInt aLocStrIndex ); + + /** + * Gets resource ID for resource item. + * @param aLocStrIndex Index of the localized item. + * @return ID of the resource item. + */ + TInt ResourceIDForLayoutDoublePopupItem( TInt aLocStrIndex ); + +// Constructors and destructor + + /** + * Second phase construct. Reads localised texts from resource. + */ + void ConstructL(); + + CAknMemorySelectionModel( + CCoeEnv* aCoeEnv, + MDesCArray* aDriveArray, + TBool aShowUnavailable, + TListBoxLayout aLayout ); + +private: // Data + + // Own: Array of items in listbox, decorated + RPointerArray iListBoxArray; + + // Own: Array for localised texts, read from resource + RPointerArray iLocStringArray; + + // Ref: Pointer to control environment + CCoeEnv* iCoeEnv; + + // Ref: Array of drives to choose from + MDesCArray* iDriveArray; + + // Own: Defines if unavailable drives are shown in list + TBool iShowUnavailable; + + // Own: Defines layout of the items + TListBoxLayout iLayout; + +}; + +#endif // C_AKNMEMORYSELECTIONMODEL_H