williamr@2: /* williamr@2: * Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@2: * under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: * which accompanies this distribution, and is available williamr@2: * at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: New memory selection setting item to support multiple drives. williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: williamr@2: #ifndef C_AKNMEMORYSELECTIONSETTINGITEMMULTIDRIVE_H williamr@2: #define C_AKNMEMORYSELECTIONSETTINGITEMMULTIDRIVE_H williamr@2: williamr@2: #include williamr@2: williamr@2: class CAknMemorySelectionSettingItemExtension; williamr@2: class CAknCFDFileSystemEvent; williamr@2: williamr@2: /** williamr@2: * CAknMemorySelectionSettingItemMultiDrive is a setting item class that williamr@2: * launches a CAknMemorySelectionDialogMultiDrive. It is used to replace williamr@2: * old CAknMemorySelectionSettingItem for multiple drive support. williamr@2: * williamr@2: * @lib CommonDialogs.lib williamr@2: * @since S60 5.0 williamr@2: */ williamr@2: class CAknMemorySelectionSettingItemMultiDrive : public CAknSettingItem williamr@2: { williamr@2: williamr@2: public: williamr@2: williamr@2: // Constructors and destructor williamr@2: williamr@2: /** williamr@2: * Constructor williamr@2: * williamr@2: * @since s60 5.0 williamr@2: */ williamr@2: IMPORT_C CAknMemorySelectionSettingItemMultiDrive( williamr@2: TInt aIdentifier, williamr@2: TDriveNumber& aSelectedDrive williamr@2: ); williamr@2: williamr@2: IMPORT_C virtual ~CAknMemorySelectionSettingItemMultiDrive(); williamr@2: williamr@2: /** williamr@2: * The 2nd phase constructor. It is called internally when extension williamr@2: * object is needed. User also could call it after creating a object of williamr@2: * CAknMemorySelectionSettingItemMultiDrive. williamr@2: * williamr@2: * @since s60 5.0 williamr@2: */ williamr@2: IMPORT_C void CompleteConstructionL(); williamr@2: williamr@2: // Functions from base class CAknSettingItem williamr@2: williamr@2: /** williamr@2: * From CAknSettingItem williamr@2: */ williamr@2: IMPORT_C virtual void EditItemL( TBool aCalledFromMenu ); williamr@2: williamr@2: /** williamr@2: * From CAknSettingItem williamr@2: */ williamr@2: IMPORT_C virtual void LoadL(); williamr@2: williamr@2: /** williamr@2: * From CAknSettingItem williamr@2: */ williamr@2: IMPORT_C virtual void StoreL(); williamr@2: williamr@2: /** williamr@2: * From CAknSettingItem williamr@2: */ williamr@2: IMPORT_C virtual const TDesC& SettingTextL(); williamr@2: williamr@2: /** williamr@2: * Update contents of setting item williamr@2: */ williamr@2: void UpdateSettingItemContentL(); williamr@2: williamr@2: protected: // Data williamr@2: williamr@2: // Ref: External data williamr@2: TDriveNumber& iExternalData; williamr@2: williamr@2: // Own: Internal data williamr@2: TDriveNumber iInternalData; williamr@2: williamr@2: // Own: Pointer to extension object williamr@2: CAknMemorySelectionSettingItemExtension* iExtension; williamr@2: williamr@2: // Own: The length is enough for memory name. williamr@2: HBufC* iSettingText; williamr@2: williamr@2: }; williamr@2: williamr@2: #endif // C_AKNMEMORYSELECTIONSETTINGITEMMULTIDRIVE_H