williamr@2: /* williamr@2: * Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@4: * under the terms of "Eclipse Public License v1.0" williamr@2: * which accompanies this distribution, and is available williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: #ifndef MCLFMODIFIABLEITEM_H williamr@2: #define MCLFMODIFIABLEITEM_H williamr@2: williamr@2: // INCLUDES williamr@2: #include williamr@2: williamr@2: // FORWARD DECLARATIONS williamr@2: class MCLFModifiableItemExt; williamr@2: williamr@2: // CLASS DECLARATION williamr@2: williamr@2: /** williamr@2: * Modifiable item for Content Listing Framework. williamr@2: * Use ContentListingFactory to create modifiable items. These new items are williamr@2: * used as groups in the custom grouper (see MCLFCustomGrouper). Modifiable williamr@2: * item is like MCLFItem but you can add new fields to the modifiable item. williamr@2: * One item can contain multiple fields, but normally it is not needed in williamr@2: * a custom grouper. The field consists of a Field ID and field data. Type williamr@2: * of the field is defined with Field ID. See TCLFDefaultFieldId in williamr@2: * CLFContentListing.hrh.

williamr@2: * Example: williamr@2: * @code williamr@2: * // Create a modifiable item and add one string field to it. williamr@2: * // Field id is ECLFFieldIdArtist and field value is "test". williamr@2: * _LIT( KTest, "test" ); williamr@2: * MCLFModifiableItem* item = ContentListingFactory::NewModifiableItemLC(); williamr@2: * item->AddFieldL( ECLFFieldIdArtist, KTest ); williamr@2: * CleanupStack::Pop(); // item williamr@2: * @endcode williamr@2: * williamr@2: * @lib ContentListingFramework.lib williamr@2: * @since S60 3.1 williamr@2: */ williamr@2: class MCLFModifiableItem : public MCLFItem williamr@2: { williamr@2: public: // Destructor williamr@2: /** williamr@2: * Destructor. williamr@2: */ williamr@2: virtual ~MCLFModifiableItem() {} williamr@2: williamr@2: public: // New functions williamr@2: williamr@2: /** williamr@2: * Add new string field to the item. williamr@2: * @since S60 3.1 williamr@2: * @param aFieldId Field ID williamr@2: * @param aValue Field value williamr@2: */ williamr@2: virtual void AddFieldL( TCLFFieldId aFieldId, williamr@2: const TDesC& aValue ) = 0; williamr@2: williamr@2: /** williamr@2: * Add new integer field to the item. williamr@2: * @since S60 3.1 williamr@2: * @param aFieldId Field ID williamr@2: * @param aValue Field value williamr@2: */ williamr@2: virtual void AddFieldL( TCLFFieldId aFieldId, williamr@2: TInt32 aValue ) = 0; williamr@2: williamr@2: /** williamr@2: * Add new time field to the item. williamr@2: * @since S60 3.1 williamr@2: * @param aFieldId Field ID williamr@2: * @param aValue Field value williamr@2: */ williamr@2: virtual void AddFieldL( TCLFFieldId aFieldId, williamr@2: const TTime& aValue ) = 0; williamr@2: williamr@2: private: // Extension interface williamr@2: williamr@2: /** williamr@2: * This member is internal and not intended for use. williamr@2: */ williamr@2: virtual MCLFModifiableItemExt* ModifiableItemExtension() { return NULL; } williamr@2: williamr@2: }; williamr@2: williamr@2: #endif // MCLFMODIFIABLEITEM_H williamr@2: williamr@2: // End of File