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 + -
显示快捷键?