00001 /* 00002 * ============================================================================== 00003 * Name : MCLFItemListModel.h 00004 * Part of : Content Listing Framework 00005 * Interface : SDK, Content Listing Framework API 00006 * Description : 00007 * Version : 00008 * 00009 * Copyright © 2002-2004 Nokia. All rights reserved. 00010 * This material, including documentation and any related 00011 * computer programs, is protected by copyright controlled by 00012 * Nokia. All rights are reserved. Copying, including 00013 * reproducing, storing, adapting or translating, any 00014 * or all of this material requires the prior written consent of 00015 * Nokia. This material also contains confidential 00016 * information which may not be disclosed to others without the 00017 * prior written consent of Nokia. 00018 * ============================================================================== 00019 */ 00020 00021 00022 #ifndef MCLFITEMLISTMODEL_H 00023 #define MCLFITEMLISTMODEL_H 00024 00025 // INCLUDES 00026 #include <CLFContentListing.hrh> 00027 #include <bamdesca.h> 00028 00029 // DATA TYPES 00033 enum TCLFRefreshTypeFlags 00034 { 00036 ECLFRefreshPostFilter = 0x1, 00038 ECLFRefreshGrouping = 0x2, 00040 ECLFRefreshSorting = 0x4, 00042 ECLFRefreshAll = 0xFFFFFFFF 00043 }; 00044 00045 // FORWARD DECLARATIONS 00046 class MCLFItemListModelExt; 00047 class MCLFItem; 00048 class MCLFPostFilter; 00049 class MCLFCustomGrouper; 00050 class MCLFPostFilter; 00051 class MCLFSortingStyle; 00052 class MCLFCustomSorter; 00053 class TResourceReader; 00054 00055 // CLASS DECLARATION 00056 00098 class MCLFItemListModel 00099 { 00100 public: // Constructors and destructor 00101 00105 virtual ~MCLFItemListModel() {} 00106 00107 public: // New functions 00108 00116 virtual const MCLFItem& Item( TInt aIndex ) const = 0; 00117 00123 virtual TInt ItemCount() const = 0; 00124 00133 virtual void SetSortingStyle( MCLFSortingStyle* aSortingStyle ) = 0; 00134 00148 virtual void AppendSecondarySortingStyleL( 00149 MCLFSortingStyle& aSortingStyle ) = 0; 00150 00161 virtual void SetCustomSorter( MCLFCustomSorter* aCustomSorter ) = 0; 00162 00170 virtual void SetGroupingStyle( TCLFGrouping aGrouping ) = 0; 00171 00180 virtual void SetCustomGrouper( MCLFCustomGrouper* aCustomGrouper ) = 0; 00181 00190 virtual void SetPostFilter( MCLFPostFilter* aPostFilter ) = 0; 00191 00201 virtual void SetWantedMimeTypesL( const MDesCArray& aMimeTypes ) = 0; 00202 00210 virtual void SetWantedMimeTypesL( TResourceReader& aResource ) = 0; 00211 00218 virtual void SetWantedMediaTypesL( 00219 const TArray<TInt>& aMediaTypes ) = 0; 00220 00221 00229 virtual void SetWantedMediaTypesL( TResourceReader& aResource ) = 0; 00230 00245 virtual void RefreshL() = 0; 00246 00254 virtual void RefreshL( TInt32 aRefreshType ) = 0; 00255 00260 virtual void CancelRefresh() = 0; 00261 00262 private: // Extension interface 00263 00267 virtual MCLFItemListModelExt* Extension() { return NULL; } 00268 00269 }; 00270 00271 // MCLFITEMLISTMODEL_H 00272 #endif 00273 00274 // End of File