⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smbmusicapmainplayerfilterlistmodel.h

📁 symbian
💻 H
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//  SmbMusicAPMainPlayerFilterListModel.h
//
// Description: 
//  CSmbMusicAPMainPlayerFilterListModel class header.
/*------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅          |曄峏幰     |撪梕
//--------------+-----------+----------------------------------------------
//2006/08/13	|SDNA嶳壀	| FilterView娭楢僋儔僗偺refactoring偵敽偭偰怴婯嶌惉
//2006/08/24	|SDNA嶳壀	| 僉儍僢僔儏忣曬愝掕傪捛壛

#ifndef __SMBMUSICAPMAINPLAYERFILTERLISTMODEL_H__
#define __SMBMUSICAPMAINPLAYERFILTERLISTMODEL_H__

#include <SmbCommonDef.h>
#include <SkonMusicListBoxModel.h>
#include <SkonRichListItem.h>
#include "SmbMusicAPSyncEngineDef.h"
#include "SmbMusicAPMainPlayerFilterListCache.h"

SEMCJ_NAMESPACE_BEGIN

class MSmbMusicAPMainPlayerFilterListModelObserver;
class CSmbMusicAPMainPlayerFilterListItem;
class CSmbMusicAPMainPlayerFilterListCache;

/**
 * 僼傿儖僞儕僗僩僆僽僓乕僶僋儔僗
 */
class MSmbMusicAPMainPlayerFilterListModelObserver
	{
public:
	// 儕僗僩儌僨儖峏怴傪捠抦偡傞
	virtual void NotifyModelChanged() = 0;
	// 儕僗僩傾僀僥儉峏怴傪捠抦偡傞
	virtual void NotifyItemChanged(TInt aIndex) = 0;
	// 傾僀僥儉庢摼梫媮傪捠抦偡傞
	virtual void NotifyItemRequest(TInt aIndex) = 0;
	// 夋憸庢摼梫媮傪捠抦偡傞
	virtual void NotifyImageRequest(TInt aIndex) = 0;
	// 恊奒憌偑偁傞偐偳偆偐
	virtual TBool HasParentList() = 0;
	// 巕奒憌偑偁傞偐偳偆偐
	virtual TBool HasChildList() = 0;
	};

/**
 * 僼傿儖僞儕僗僩儌僨儖僋儔僗
 */
class CSmbMusicAPMainPlayerFilterListModel : public MSkonMusicListBoxModel
	{
public:
	//////////////////////////////////////////////////////////////
	// 僋儔僗偺惗惉偲攋婞
	//////////////////////////////////////////////////////////////
	/** 
	 * NewL
	 *
	 * @param aObserver [in]	僆僽僓乕僶
	 */
	static CSmbMusicAPMainPlayerFilterListModel* NewL(MSmbMusicAPMainPlayerFilterListModelObserver* aObserver);

	/** 
	 * 僐儞僗僩儔僋僞
	 *
	 * @param aObserver [in]	僆僽僓乕僶
	 */
	CSmbMusicAPMainPlayerFilterListModel(MSmbMusicAPMainPlayerFilterListModelObserver* aObserver);
	
	/** 
	 * 僙僇儞僪僐儞僗僩儔僋僞丅
	 */
	void ConstructL();

	/** 
	 * 僨僗僩儔僋僞
	 *
	 */
	virtual ~CSmbMusicAPMainPlayerFilterListModel();
	
	//////////////////////////////////////////////////////////////
	// SkonMusicListBox I/F
	//////////////////////////////////////////////////////////////
	// from MSkonMusicListBoxModel	
	/**
	 * 巜掕僀儞僨僢僋僗偺傾僀僥儉傪曉偡丅(僉儍僢僔儏攝楍偺僀儞僨僢僋僗巜掕)
	 *
	 * @return 巜掕僀儞僨僢僋僗偺傾僀僥儉
	 */
	virtual MSkonRichListItem* Item(TInt aItemIndex) const;
	/**
	 * 巜掕僀儞僨僢僋僗偺傾僀僥儉傪曉偡丅(傾僀僥儉偺僀儞僨僢僋僗巜掕)
	 *
	 * @return 巜掕僀儞僨僢僋僗偺傾僀僥儉
	 */
	virtual MSkonRichListItem* ItemByIndex(TInt aItemIndex) const;
	/**
	 * 儌僨儖偑僉儍僢僔儏偟偰偄傞堦斣弶傔偺傾僀僥儉偺僀儞僨僢僋僗斣崋傪曉偡丅
	 * 
	 * @return 儌僨儖偑僉儍僢僔儏偟偰偄傞堦斣弶傔偺傾僀僥儉偺僀儞僨僢僋僗斣崋
	 */
	virtual TInt FirstItemIndex() const;
	/**
	 * 儌僨儖偑僉儍僢僔儏偟偰偄傞傾僀僥儉悢傪曉偡丅
	 * 
	 * @return 儌僨儖偑僉儍僢僔儏偟偰偄傞傾僀僥儉悢
	 */
	virtual TInt NumberOfItems() const;
	/**
	 * 儕僗僩偺憤傾僀僥儉悢傪曉偡丅
	 * 専嶕幚峴寢壥庢摼偟偨傾僀僥儉悢偺僉儍僢僔儏傪曉偡丅
	 * 
	 * @return 傾僀僥儉悢
	 */
	virtual TInt TotalNumberOfItems() const;
	/**
	 * 僉儍僢僔儏偺傾僀僥儉悢傪庢摼偡傞
	 * 
	 * @return 儌僨儖偑僉儍僢僔儏偟偰偄傞傾僀僥儉悢
	 */
	TInt NumberOfCacheItems() const;
	/**
	 * 憤傾僀僥儉悢傪愝掕偡傞
	 * 
	 * @param	aNumberOfItems	憤傾僀僥儉悢
	 */
	void SetNumberOfItems(TInt aNumberOfItems);
	/**
	 * 儕僙僢僩偡傞
	 * 
	 */
	void Reset();
	/**
	 * 傾僀僥儉庢摼帪偺僷儔儊乕僞傪僉儍僢僔儏偺忬嫷偵崌傢偣偰挷惍偡傞
	 * 
	 * @param	aTopIndex	傾僀僥儉庢摼奐巒僀儞僨僢僋僗
	 * @param	aCount		傾僀僥儉庢摼悢
	 */
	void GetCountCache(TInt& aTopIndex, TInt& aCount);
	/**
	 * 僉儍僢僔儏偺忬嫷傪庢摼偡傞
	 * 
	 * @param	aTopIndex	傾僀僥儉庢摼奐巒僀儞僨僢僋僗
	 * @param	aCount		傾僀僥儉庢摼悢
	 */
	void GetCacheInfo(TInt& aTopIndex, TInt& aCount, TInt& aPageSize);
	/**
	 * 僉儍僢僔儏忣曬傪愝掕偡傞
	 * 
	 * @param aPageSize [in]	儁乕僕僒僀僘
	 * @param aMaxPage [in]		嵟戝儁乕僕悢
	 * @param aMaxSize [in]		嵟戝僉儍僢僔儏僒僀僘
	 */
	void SetCacheInfo(TInt aPageSize, TInt aMaxPage, TInt aMaxSize);
	/**
	 * 屌掕偱昞帵偡傞傾僀僥儉傪愝掕偡傞
	 * 
	 * @param	aTitleResID	屌掕傾僀僥儉偺僞僀僩儖儕僜乕僗ID
	 * @param	aCommandID	屌掕傾僀僥儉偺僐儅儞僪ID
	 */
	void SetReservedItem(TInt aTitleResID, TInt aCommandID);
	/**
	 * 僞僀僩儖偑側偄応崌偺戙懼僞僀僩儖傪愝掕偡傞
	 * 
	 * @param	aTitleResID	戙懼僞僀僩儖偺僞僀僩儖儕僜乕僗ID
	 */
	void SetNoTitleResId(TInt aTitleResID);
	/**
	 * 僨僼僅儖僩偺僒儉僱僀儖傪愝掕偡傞
	 * 
	 * @param	aDefaultThumbnail	僨僼僅儖僩僒儉僱僀儖
	 */
	void SetDefaultThumbnail(CGulIcon* aDefaultThumbnail);

	void OrderItem(TInt aSrcIndex, TInt aDestIndex);

public:
	//////////////////////////////////////////////////////////////
	// 傾僀僥儉憖嶌
	//////////////////////////////////////////////////////////////
	void Append(CSmbMusicAPMainPlayerFilterListItem* aItem);
	void SetListItemL(TInt aIndex, RArray<TSmbMusicAPSyncEngineListItemInfo>& aItems);

private:
	//////////////////////////////////////////////////////////////
	// 僼傿儖僞儕僗僩僆僽僓乕僶
	//////////////////////////////////////////////////////////////	
	MSmbMusicAPMainPlayerFilterListModelObserver*	iObserver;

private:
	//////////////////////////////////////////////////////////////
	// SkonMusicListBox I/F (MSkonMusicListBoxModel)
	//////////////////////////////////////////////////////////////	
	//愭摢僀儞僨僢僋僗斣崋
	TInt									iFirstItemIndex;	
	//僉儍僢僔儏
	CSmbMusicAPMainPlayerFilterListCache*	iCache;
	//僉儍僢僔儏枹庢摼帪偺偨傔偺嬻傾僀僥儉
	CSmbMusicAPMainPlayerFilterListItem*	iDummyItem;
	//屌掕偱昞帵偡傞傾僀僥儉丅
	CSmbMusicAPMainPlayerFilterListItem*	iReservedItem;
	//僞僀僩儖側偟偺偲偒偵巊梡偡傞僞僀僩儖儕僜乕僗ID
	TInt									iNoTitleResID;

private:
	// 僨僼僅儖僩僒儉僱僀儖
	CGulIcon* 								iDefaultThumbnail;	//(強桳尃側偟)

// Add-S PTX-824 暯壀
	DCM_NAMESPACE::RLog& 					iLog;				///< 儘僌弌椡僋儔僀傾儞僩(uses)
// Add-E PTX-824 暯壀
	};

SEMCJ_NAMESPACE_END

#endif // __SMBMUSICAPMAINPLAYERFILTERLISTMODEL_H__

// end of SmbMusicAPMainPlayerFilterListModel.h
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -