smbmusicapmainplayerfilterlistitem.cpp

来自「symbian」· C++ 代码 · 共 416 行

CPP
416
字号
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//  SmbMusicAPMainPlayerFilterListItem.cpp
//
// Description: 
//  CSmbMusicAPMainPlayerFilterListItem class source.
/*------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅          |曄峏幰     |撪梕
//--------------+-----------+----------------------------------------------
//2006/08/13	|SDNA嶳壀	| FilterView娭楢僋儔僗偺refactoring偵敽偭偰怴婯嶌惉
//2006/08/25	|SDNA彫椦	| NoImage偺僕儍働僢僩夋憸乮強桳尃偼帩偨側偄乯傪曐帩偱偒傞傛偆偵廋惓

#include <FjAfEnv.h>
#include "SmbMusicAPMainPlayerFilterListModel.h"
#include "SmbMusicAPMainPlayerFilterListItem.h"
#include "SmbMusicAPMainPlayerUtility.h"

SEMCJ_NAMESPACE_BEGIN

/** 
 *	僼傿儖僞儕僗僩傾僀僥儉僋儔僗傪惗惉偡傞
 */
CSmbMusicAPMainPlayerFilterListItem* CSmbMusicAPMainPlayerFilterListItem::NewL(TInt aCommandID, TInt aIndex, MSmbMusicAPMainPlayerFilterListModelObserver* aObserver)
	{
	// 僀儞僗僞儞僗惗惉
	CSmbMusicAPMainPlayerFilterListItem* self = new(ELeave) CSmbMusicAPMainPlayerFilterListItem(aCommandID, aIndex, aObserver);
	// 僋儕乕儞傾僢僾僗僞僢僋妋曐
	CleanupStack::PushL(self);
	// 僙僇儞僪僐儞僗僩儔僋僞
	self->ConstructL();
	// 僋儕乕儞傾僢僾僗僞僢僋奐曻
	CleanupStack::Pop();//self
	return self;
	}

/** 
 *	僐儞僗僩儔僋僞
 */
CSmbMusicAPMainPlayerFilterListItem::CSmbMusicAPMainPlayerFilterListItem(TInt aCommandID, TInt aIndex, MSmbMusicAPMainPlayerFilterListModelObserver* aObserver)
	: CBase()
	, iCommandID(aCommandID)
	, iIndex(aIndex)
	, iObserver(aObserver)
	{
	// 僒儉僱僀儖夋憸
	iJacket = NULL;
	// 傾僀僐儞
	iIcon = NULL;
	// 僞僀僩儖暥帤楍
	iMainText = NULL;
	// 僒僽僞僀僩儖暥帤楍
	iSubText = NULL;
	// 傾僀僥儉偺嬛巭忬懺
	iDisable = EFalse;
	// 恊奒憌偺忬懺
	iHasParent = EFalse;
	// 巕奒憌偺忬懺
	iHasChild = EFalse;
	// 夋憸庢摼忬懺
	iFetchedImage = ENoImage;
	// 庢摼幐攕帪夋憸
	iDefaultJacket = NULL;
	}

/** 
 *	僙僇儞僪僐儞僗僩儔僋僞
 */
void CSmbMusicAPMainPlayerFilterListItem::ConstructL()
	{
	// 弶婜夋憸側偳偺庢摼丠
	}

/** 
 *	僨僗僩儔僋僞
 */
CSmbMusicAPMainPlayerFilterListItem::~CSmbMusicAPMainPlayerFilterListItem()
	{
	// 僞僀僩儖暥帤楍傪嶍彍偡傞
	delete iMainText;
	// 僒僽僞僀僩儖暥帤楍傪嶍彍偡傞
	delete iSubText;
	// 夋憸傪嶍彍偡傞
	delete iJacket;
	// 傾僀僐儞傪嶍彍偡傞
	delete iIcon;
	}

/** 
 *	夋憸偺庢摼
 * @param[in] aImageType 昞帵僞僀僾
 * @return		傾僀僐儞夋憸
 */
CGulIcon* CSmbMusicAPMainPlayerFilterListItem::Image(TImageType aImageType) const
	{
	switch(aImageType)
		{
		// 僕儍働僢僩夋憸乮僒儉僱僀儖)偺応崌
		case EImageJacket:
			// 夋憸偑枹庢摼偱夋憸庢摼梫媮偑偒偨偙偲傪僆僽僓乕僶偵捠抦偡傞
			if(NULL != iObserver && ENoImage==iFetchedImage)
				{
				iObserver->NotifyImageRequest(Index());
				}
			if(EFetchedImage==iFetchedImage && NULL==iJacket)
				{
				return iDefaultJacket;
				}
			return iJacket;
		// 傾僀僐儞偺応崌
		case EImageIcon:
			return iIcon;
		default:
			break;
		}
	return NULL;
	}

/** 
 *	暥帤楍偺庢摼
 * @param[in] aTextType 昞帵僞僀僾
 * @return		昞帵暥帤楍
 */
TPtrC CSmbMusicAPMainPlayerFilterListItem::Text(TTextType aTextType) const
	{
	switch(aTextType)
		{
		// 僞僀僩儖暥帤楍
		case ETextMain:
			if(NULL!=iMainText)
				{
				return iMainText->Des();
				}
			break;
		// 僒僽僞僀僩儖暥帤楍
		case ETextSub:
			if(NULL!=iSubText)
				{
				return iSubText->Des();
				}
			break;
		default:
			break;
		}
	return _L("");
	}

/**
 * 傾僀僥儉偺嬛巭忬懺傪庢摼偡傞
 * @return ETrue: 嬛巭 / EFalse:桳岠
 */
TBool CSmbMusicAPMainPlayerFilterListItem::IsDisabled()
	{
	return iDisable;
	}

/**
 * 恊奒憌偺忬懺
 *
 * @return ETrue: 恊奒憌偁傝 / EFalse: 恊奒憌側偟
 * @prototype
 */
TBool CSmbMusicAPMainPlayerFilterListItem::HasParentList()
	{
	if(NULL != iObserver)
		{
		return iObserver->HasParentList();
		}
	return EFalse;
	}

/**
 * 巕奒憌偺忬懺
 *
 * @return ETrue: 巕奒憌偁傝 / EFalse: 巕奒憌側偟
 * @prototype
 */
TBool CSmbMusicAPMainPlayerFilterListItem::HasChildList()
	{
	if(NULL != iObserver)
		{
		return iObserver->HasChildList();
		}
	return EFalse;
	}

/** 
 *	夋憸偺愝掕
 * 僙僢僩偡傞夋憸偺強桳尃傪埾忳偡傞
 * @param[in] aImageType 昞帵僞僀僾
 * @param[in] aImage 傾僀僐儞夋憸
 */
void CSmbMusicAPMainPlayerFilterListItem::SetImage(TImageType aImageType, CGulIcon* aImage)
	{
	switch(aImageType)
		{
		// 僕儍働僢僩夋憸乮僒儉僱僀儖)偺応崌
		case EImageJacket:
			delete iJacket;
			iJacket = aImage;
			iFetchedImage = EFetchedImage;
			break;
		// 傾僀僐儞偺応崌
		case EImageIcon:
			delete iIcon;
			iIcon = aImage;
			break;
		default:
			break;
		}
	}

/** 
 *	夋憸偺愝掕
 * 僨僼僅儖僩偺夋憸傪巊梡偡傞傛偆偵愝掕偡傞
 * @param[in] aImageType 昞帵僞僀僾
 */
void CSmbMusicAPMainPlayerFilterListItem::SetImage(TImageType aImageType)
	{
	switch(aImageType)
		{
		// 僕儍働僢僩夋憸乮僒儉僱僀儖)偺応崌
		case EImageJacket:
			delete iJacket;
			iJacket = NULL;
			iFetchedImage = EFetchedImage;
			break;
		// 傾僀僐儞偺応崌
		case EImageIcon:
			delete iIcon;
			iIcon = NULL;
			break;
		default:
			break;
		}
	}

/** 
 *	夋憸偺儕僙僢僩
 * 愝掕偝傟偰偄傞夋憸傪儕僙僢僩偡傞
 * @param[in] aImageType 昞帵僞僀僾
 */
void CSmbMusicAPMainPlayerFilterListItem::ResetImage(TImageType aImageType)
	{
	switch(aImageType)
		{
		// 僕儍働僢僩夋憸乮僒儉僱僀儖)偺応崌
		case EImageJacket:
			delete iJacket;
			iJacket = NULL;
			iFetchedImage = ENoImage;
			break;
		// 傾僀僐儞偺応崌
		case EImageIcon:
			delete iIcon;
			iIcon = NULL;
			break;
		default:
			break;
		}
	}

/** 
 *	暥帤楍偺愝掕
 * @param[in] aText 昞帵偡傞暥帤楍
 */
void CSmbMusicAPMainPlayerFilterListItem::SetTextL(TTextType aTextType, const TDesC& aText)
	{
	switch(aTextType)
		{
		// 僞僀僩儖暥帤楍
		case ETextMain:
			// 暥帤楍偑愝掕嵪傒偱偁傟偽嶍彍偡傞
			if(NULL!=iMainText)
				{
				delete iMainText;
				iMainText = NULL;
				}
			// 暥帤楍傪惗惉偡傞
			iMainText = HBufC::NewL(aText.Length());
			iMainText->Des().Append(aText);
			break;
		// 僒僽僞僀僩儖暥帤楍
		case ETextSub:
			// 暥帤楍偑愝掕嵪傒偱偁傟偽嶍彍偡傞
			if(NULL!=iSubText)
				{
				delete iSubText;
				iSubText = NULL;
				}
			// 暥帤楍傪惗惉偡傞
			iSubText = HBufC::NewL(aText.Length());
			iSubText->Des().Append(aText);
			break;
		default:
			break;
		}
	}

/** 
 *	敿婸搙昞帵偺愝掕
 * @param[in] aDisable 敿婸搙昞帵愝掕
 */
void CSmbMusicAPMainPlayerFilterListItem::SetIsDisabled(TBool aDisable)
	{
	iDisable = aDisable;
	
	if(EFalse == iDisable)
		{
		ResetImage(EImageJacket);
		}
	else if(iDisable&ESmbMusicAPSyncEngineUIMLimit || iDisable&ESmbMusicAPSyncEngineOffLine)
		{
		// 僨僼僅儖僩偺僒儉僱僀儖傪愝掕偡傞
		SetImage(EImageJacket);
		}
	}

/**
 * 恊奒憌偺忬懺傪愝掕偡傞
 * @param[in] aHasParent	ETrue: 恊奒憌偁傝 / EFalse: 恊奒憌側偟
 */
void CSmbMusicAPMainPlayerFilterListItem::SetParentList(TBool aHasParent)
	{
	iHasParent = aHasParent;
	}

/**
 * 巕奒憌偺忬懺傪愝掕偡傞
 * @param[in] aHasChild		ETrue: 巕奒憌偁傝 / EFalse: 巕奒憌側偟
 */
void CSmbMusicAPMainPlayerFilterListItem::SetChildList(TBool aHasChild)
	{
	iHasChild = aHasChild;
	}

/** 
 *	僀儞僨僢僋僗斣崋偺庢摼
 * @return 僀儞僨僢僋僗斣崋
 */
TInt CSmbMusicAPMainPlayerFilterListItem::Index() const
	{
	return iIndex;
	}

/** 
 *僐儅儞僪ID偺庢摼
 * @return 僐儅儞僪ID
 */
TInt CSmbMusicAPMainPlayerFilterListItem::CommandID() const
	{
	return iCommandID;
	}

/** 
 *	僀儞僨僢僋僗斣崋偺愝掕
 * @param[in] aIndex 僀儞僨僢僋僗斣崋
 */
void CSmbMusicAPMainPlayerFilterListItem::SetIndex(TInt aIndex)
	{
	iIndex = aIndex;
	}

/** 
 *	僐儅儞僪ID偺愝掕
 * @param[in] aIndex 僐儅儞僪ID
 */
void CSmbMusicAPMainPlayerFilterListItem::SetCommandID(TInt aCommandID)
	{
	iCommandID = aCommandID;
	}

/**
 * 夋憸忬懺傪庢摼偡傞
 * @return ENoImage: 枹庢摼 / ERequestImage:庢摼拞 / EFetchedImage:庢摼嵪
 */
TBool CSmbMusicAPMainPlayerFilterListItem::IsFetchedImage() const
	{
	return iFetchedImage;
	}

/**
 * 庢摼幐攕帪夋憸偺僒儉僱僀儖傪僙僢僩偡傞
 * 僙僢僩偡傞夋憸偺強桳尃偼埾忳偟側偄
 * @param[in] aImage		庢摼幐攕帪夋憸
 */
void CSmbMusicAPMainPlayerFilterListItem::SetDefaultJacket(CGulIcon* aImage)
	{
	iDefaultJacket = aImage;
	}

/**
 * 嵞惗惂尷庬暿傪愝掕偡傞
 * @param[in] aLimitation	嵞惗惂尷庬暿
 */
void CSmbMusicAPMainPlayerFilterListItem::SetLimitation(TSmbMusicAPSyncEngineLimitation aLimitation)
	{
	iLimitation = aLimitation;
	}

/**
 * 嵞惗惂尷庬暿傪庢摼偡傞
 * @return 僐儅儞僪ID
 */
TSmbMusicAPSyncEngineLimitation CSmbMusicAPMainPlayerFilterListItem::Limitation() const
	{
	return iLimitation;
	}
	
SEMCJ_NAMESPACE_END


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

⌨️ 快捷键说明

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