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 CONTENTLISTINGFACTORY_H williamr@2: #define CONTENTLISTINGFACTORY_H williamr@2: williamr@2: // INCLUDES williamr@2: #include <e32def.h> williamr@2: williamr@2: // FORWARD DECLARATIONS williamr@2: class MCLFContentListingEngine; williamr@2: class MCLFModifiableItem; williamr@2: class MCLFSortingStyle; williamr@2: class TResourceReader; williamr@2: williamr@2: // CLASS DECLARATION williamr@2: williamr@2: /** williamr@2: * Factory for Content Listing Framework. williamr@2: * You can create new instances of Content Listing Engines, Modifiable items williamr@2: * and Sorting Styles by using this factory.<br><br> williamr@2: * Example: williamr@2: * @code williamr@2: * // Create a new instance of Content Listing Engine williamr@2: * MCLFContentListingEngine* engine = williamr@2: * ContentListingFactory::NewContentListingEngineLC(); williamr@2: * williamr@2: * // Create a new instance of Sorting style williamr@2: * MCLFSortingStyle* sortingStyle = williamr@2: * ContentListingFactory::NewSortingStyleLC(); williamr@2: * williamr@2: * // Create a new instance of Modifiable item williamr@2: * MCLFModifiableItem* modItem = williamr@2: * ContentListingFactory::NewModifiableItemLC(); williamr@2: * @endcode williamr@2: * williamr@2: * @lib ContentListingFramework.lib williamr@2: * @since S60 3.1 williamr@2: */ williamr@2: class ContentListingFactory williamr@2: { williamr@2: public: // New functions williamr@2: williamr@2: /** williamr@2: * Create new instance of Content Listing Engine. williamr@2: * @since S60 3.1 williamr@2: * @return New instance of Content Listing Engine. williamr@2: * Ownership is transferred to the client application. williamr@2: */ williamr@2: IMPORT_C static MCLFContentListingEngine* NewContentListingEngineLC(); williamr@2: williamr@2: /** williamr@2: * Create new instance of Modifiable Item. williamr@2: * @since S60 3.1 williamr@2: * @return New instance of Modifiable Item. williamr@2: * Ownership is transferred to the client application. williamr@2: */ williamr@2: IMPORT_C static MCLFModifiableItem* NewModifiableItemLC(); williamr@2: williamr@2: /** williamr@2: * Create new instance of Sorting Style. williamr@2: * @since S60 3.1 williamr@2: * @return New instance of the Sorting Style. williamr@2: * Ownership is transferred to the client application. williamr@2: */ williamr@2: IMPORT_C static MCLFSortingStyle* NewSortingStyleLC(); williamr@2: williamr@2: /** williamr@2: * Create new instance of Sorting Style from resource of the williamr@2: * application by using TResourceReader. williamr@2: * @since S60 3.1 williamr@2: * @param aResource Resource reader to sorting style resource. williamr@2: * Use resource struct CLF_SORTING_STYLE. See williamr@2: * CLFContentListing.rh williamr@2: * @return New instance of the Sorting Style. williamr@2: * Ownership is transferred to the client application. williamr@2: */ williamr@2: IMPORT_C static MCLFSortingStyle* NewSortingStyleLC( williamr@2: TResourceReader& aResource ); williamr@2: williamr@2: private: williamr@2: // Prohibit C++ default constructor. williamr@2: ContentListingFactory(); williamr@2: // Prohibit Destructor. williamr@2: ~ContentListingFactory(); williamr@2: williamr@2: }; williamr@2: williamr@2: #endif // CONTENTLISTINGFACTORY_H williamr@2: williamr@2: // End of File