smbmusicapmainplayerfilterlistviewmusicmenu.cpp

来自「symbian」· C++ 代码 · 共 719 行 · 第 1/2 页

CPP
719
字号
/* Copyright (C) 2006-2007 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//  SmbMusicAPMainPlayerFilterListViewMusicMenu.cpp
//
// Description: 
//  CSmbMusicAPMainPlayerListBoxControl class source.
/*------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅          |曄峏幰     |撪梕
//--------------+-----------+----------------------------------------------
//2006/08/16	|SDNA嶳壀	| 怴婯嶌惉
//2006/08/28	|SDNA嶳壀	| 儕僗僩僴儞僪儖偵掕媊抣傪愝掕
//2006/09/03	|SDNA嶳壀	| 傾僋僥傿僽僼僅乕僇僗偺廋惓
//2007/07/16	|SEMCJ暯壀	| D_82400000686懳墳
//2007/08/06	|SEMCJ暯壀	| D_82400009199懳墳, 枹巊梡娭悢(HandlePlayerStatePlayL)偺嶍彍
//2007/09/01	|SEMCJ暯壀	| D_82400013717懳墳

#include <Music.mbg>
#include <SmbPGMusic.h>
#include <SmbPGMusic.hrh>
#include <SmbAfWordingFormatter.h>
#include <SmbAfWording.rsg>
#include <SmbMusicAPMainPlayer.rsg>
#include "SmbMusicAPMainPlayer.hrh"
#include "SmbMusicAPMainPlayerFilterView.hrh"
#include "SmbMusicAPMainPlayerFilterView.h"
#include "SmbMusicAPMainPlayerFilterListView.h"
#include "SmbMusicAPMainPlayerFilterListViewMusicMenu.h"
#include "SmbMusicAPMainPlayerFilterListItem.h"
#include "SmbMusicAPMainPlayerFilterSyncServerController.h"

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

SEMCJ_NAMESPACE_BEGIN

/**
 * 儈儏乕僕僢僋儊僯儏乕儕僗僩僋儔僗
 *	KSmbMusicAPMainPlayerMusicMenuViewUid
 */

//////////////////////////////////////////////////////////////////////////////////////
// 僋儔僗偺惗惉偲攋婞
//////////////////////////////////////////////////////////////////////////////////////
/**
 * 儈儏乕僕僢僋儊僯儏乕僋儔僗偺惗惉
 *
 * @param aView [in]	僼傿儖僞價儏乕
 * @return				儈儏乕僕僢僋儊僯儏乕儕僗僩僋儔僗
 */
CSmbMusicAPMainPlayerFilterListViewMusicMenu* CSmbMusicAPMainPlayerFilterListViewMusicMenu::NewL(TUid aViewUid, CSmbMusicAPMainPlayerFilterView* aView)
	{
	// 僀儞僗僞儞僗惗惉
	CSmbMusicAPMainPlayerFilterListViewMusicMenu* self = new(ELeave) CSmbMusicAPMainPlayerFilterListViewMusicMenu();
	// 僋儕乕儞傾僢僾僗僞僢僋妋曐
	CleanupStack::PushL(self);
	// 僙僇儞僪僐儞僗僩儔僋僞
	self->ConstructL(aViewUid, aView);
	// 僋儕乕儞傾僢僾僗僞僢僋奐曻
	CleanupStack::Pop();// self
	return self;
	}

/**
 * 僐儞僗僩儔僋僞
 *
 * @param aView [in]	僼傿儖僞價儏乕
 * @return				儈儏乕僕僢僋儊僯儏乕儕僗僩僋儔僗
 */
CSmbMusicAPMainPlayerFilterListViewMusicMenu::CSmbMusicAPMainPlayerFilterListViewMusicMenu() : 
// Add-S PTX-824 暯壀
			KMusicMenuContinue(0),		// 懕偒偐傜嵞惗/嵞惗拞偺嬋傊
			KMusicMenuAllShuffle(1),	// 慡嬋僔儍僢僼儖
			KMusicMenuAlbum(2),			// 傾儖僶儉
			KMusicMenuArtist(3),		// 傾乕僥傿僗僩
			KMusicMenuGenre(4),			// 僕儍儞儖
			KMusicMenuPlaylist(5),		// 僾儗僀儕僗僩
			KMusicMenuAllSong(6),		// 慡嬋
			KMusicMenuOften50(7),		// 傛偔挳偔50嬋
			KMusicMenuLatest50(8),		// 嵟嬤挳偄偨50嬋
			KMusicMenuStorage(9),		// 曐懚儊儌儕暿
			KMusicMenuSetting(10)		// 儈儏乕僕僢僋愝掕
// Add-E PTX-824 暯壀
	{
	}

/**
 * 僙僇儞僪僐儞僗僩儔僋僞
 * @param aView       [in] FilterView
 * @param aSyncEngine [in] 摨婜僄儞僕儞
 * 
 */
void CSmbMusicAPMainPlayerFilterListViewMusicMenu::ConstructL(TUid aViewUid, CSmbMusicAPMainPlayerFilterView* aView)
	{
	// 僞僀僩儖僶乕丄儕僗僩儃僢僋僗傪惗惉偡傞
	CSmbMusicAPMainPlayerFilterListView::ConstructL(aViewUid, aView);
	// 儕僗僩僴儞僪儖傪愝掕偡傞
	SetListHandle(ESmbLocalListHandleMusicMenu);
	}

/**
 * 僨僗僩儔僋僞
 */
CSmbMusicAPMainPlayerFilterListViewMusicMenu::~CSmbMusicAPMainPlayerFilterListViewMusicMenu()
	{
	}

//////////////////////////////////////////////////////////////////////////////////////
// 儕僗僩僞僀僾
//////////////////////////////////////////////////////////////////////////////////////
// 儕僗僩僞僀僾傪愝掕偡傞
void CSmbMusicAPMainPlayerFilterListViewMusicMenu::AdjustListType()
	{
	//壗傕偟側偄
	}
	
//////////////////////////////////////////////////////////////////////////////////////
// 儕僗僩僴儞僪儖掕媊抣
//////////////////////////////////////////////////////////////////////////////////////
TInt CSmbMusicAPMainPlayerFilterListViewMusicMenu::ListHandle()
	{
	return ESmbLocalListHandleMusicMenu;
	}
	
//////////////////////////////////////////////////////////////////////////////////////
// 弶婜愝掕
//////////////////////////////////////////////////////////////////////////////////////
void CSmbMusicAPMainPlayerFilterListViewMusicMenu::SetupModelL()
	{
	// 儈儏乕僕僢僋儊僯儏乕偺弶婜傾僀僥儉傪撉傒崬傓
	ReadItemsFromResourceL(R_OT_MUSIC_MAIN_FLT_MUSICMENU_LIST);
	}

void CSmbMusicAPMainPlayerFilterListViewMusicMenu::SetupControlL()
	{
	// 僞僀僩儖傪撉傒崬傫偱愝掕偡傞
	SetTitleTextL(R_OT_MUSIC_MAIN_FLT_MUSICMENU_TITLE);
	}

//////////////////////////////////////////////////////////////////////////////////////
// 僞僀僩儖僶乕張棟
//////////////////////////////////////////////////////////////////////////////////////
/**
 * 僞僀僩儖僶乕傾僀僐儞偺愝掕
 *
 * @param aState       [in] FilterView
 */
void CSmbMusicAPMainPlayerFilterListViewMusicMenu::AdjustTitleIconL()
	{
//ADD-S> 師婡庬(PTX-824)懳墳 TRK-329
	CSmbMusicAPMainPlayerFilterListItem* item = CurrentItem();
	if(NULL!=item)
		{
		switch(item->CommandID())
			{
			case ECmdFilterViewShowAlbumList:			// 傾儖僶儉偐傜
				SetTitleIconL(0, EMbmMusicMc_album_icon);
				break;
			case ECmdFilterViewShowArtistList:			// 傾乕僥傿僗僩偐傜
				SetTitleIconL(0, EMbmMusicMc_artist_icon);
				break;
			case ECmdFilterViewShowGenreList:			// 僕儍儞儖偐傜
				SetTitleIconL(0, EMbmMusicMc_genre_icon);
				break;
			case ECmdFilterViewShowPLTypeList:			// 儐乕僓僾儗僀儕僗僩
				SetTitleIconL(0, EMbmMusicMc_user_playlist_icon);
				break;
			case ECmdFilterViewShowSongListAll:			// 偡傋偰偺嬋
				SetTitleIconL(0, EMbmMusicMc_track_icon);
				break;
			case ECmdFilterViewShowSongListFavorite:	// 傛偔挳偔50嬋
				SetTitleIconL(0, EMbmMusicMc_favorite_50_item_icon);
				break;
			case ECmdFilterViewShowSongListRecently:	// 嵟嬤挳偄偨50嬋
				SetTitleIconL(0, EMbmMusicMc_50_item_icon);
				break;
			case ECmdFilterViewShowMemTypeList:			// 曐懚愭偐傜
				SetTitleIconL(0, EMbmMusicMc_to_save_icon);
				break;
			default:
				SetTitleIconL(0, -1);
				break;
			}
		}
//ADD-E<
	}

////////////////////////////////////////////////////////////////////////////
// 僼傿儖僞儕僗僩儌僨儖僀儀儞僩
////////////////////////////////////////////////////////////////////////////
TBool CSmbMusicAPMainPlayerFilterListViewMusicMenu::HasParentList()
	{
	// 恊奒憌偼側偄
	return EFalse;
	}

TBool CSmbMusicAPMainPlayerFilterListViewMusicMenu::HasChildList()
	{
	// 巕奒憌偼偁傞
	if(NULL == ListBox())
		{
		//儕僗僩儃僢僋僗偑懚嵼偟側偄
		return EFalse;
		}
//Change-S PTX-824懳墳丂暯壀
	TInt currentIndex = ListBox()->CurrentItemIndex();
	if ((KMusicMenuContinue == currentIndex) || (KMusicMenuAllShuffle == currentIndex) || (KMusicMenuSetting == currentIndex))
//	if((0 == ListBox()->CurrentItemIndex()) || (1 == ListBox()->CurrentItemIndex()))
//Change-E PTX-824懳墳丂暯壀
		{
		//乽懕偒偐傜嵞惗乿乽嵞惗拞偺嬋傊乿乽慡嬋僔儍僢僼儖乿乽儈儏乕僕僢僋愝掕乿偼巕奒憌偑側偄
		return EFalse;
		}
	return ETrue;
	}

TBool CSmbMusicAPMainPlayerFilterListViewMusicMenu::CanResetCache() const
	{
	return EFalse;
	}

TBool CSmbMusicAPMainPlayerFilterListViewMusicMenu::CanShowPanel() const
	{
	return EFalse;
	}

////////////////////////////////////////////////////////////////////////////
// 僐儅儞僪幚峴
////////////////////////////////////////////////////////////////////////////
// from MSmbAfCommandBase
/**
 * 儐乕僓僐儅儞僪幚峴
 *
 * @param aCommandId [in]	僐儅儞僪ID
 */
MSmbAfCommandBase::TSmbAfCmdIdResponse CSmbMusicAPMainPlayerFilterListViewMusicMenu::HandleCommandL(TInt aCommandId)
	{
	// 婎杮僐儅儞僪
	switch(aCommandId)
		{
		case EMainPlayerFilterViewKGCmdSelect:			// 崁栚慖戰僐儅儞僪乮抁墴偟乯
		case EMainPlayerFilterViewKGCmdChildView:		// 巕奒憌夋柺慗堏僐儅儞僪
// Add-S PTX-824懳墳 2007.06.22 暯壀
		case EMainPlayerFilterViewKGCmdLongSelect:		// 崁栚慖戰僐儅儞僪乮挿墴偟乯
// Add-E PTX-824懳墳 2007.06.22 暯壀
			{
			// 慖戰偝傟偨傾僀僥儉傪庢摼偡傞
			CSmbMusicAPMainPlayerFilterListItem* item = CurrentItem();
			// 儊僯儏乕僐儅儞僪偑愝掕偝傟偰偄傞応崌
			if(NULL!=item && 0!=item->CommandID())
				{
				// 儈儏乕僕僢僋儊僯儏乕偼愭摢偺夋柺偱偁傞偨傔丄偙偙偱傾僋僥傿僽僼僅乕僇僗傪徚偡
				SetDefaultIndex(-1);
				ListBox()->SetDefaultItemEmphasis(EFalse);
				// 僐儅儞僪張棟偡傞
				return ProcessCommandL(item->CommandID());
				}
			}
			break;
// Del-S PTX-824懳墳 2007.06.22 暯壀
//		case EMainPlayerFilterViewKGCmdLongSelect:		// 崁栚慖戰僐儅儞僪乮挿墴偟乯
//			// 挿墴偟婡擻偼側偄
//			break;
// Del-E PTX-824懳墳 2007.06.22 暯壀
		case EMainPlayerFilterViewKGCmdClear:			// 僋儕傾乮慜夋柺乯僐儅儞僪
			// 儈儏乕僕僢僋儊僯儏乕偱僋儕傾僉乕偑墴偝傟偨偲偒偼FilterView偱廔椆張棟
			return MSmbAfCommandBase::ESmbAfCmdIdWasNotConsumed;
		case EMainPlayerFilterViewKGCmdParentView:		// 恊奒憌夋柺慗堏僐儅儞僪
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		}
	return CSmbMusicAPMainPlayerFilterListView::HandleCommandL(aCommandId);
	}

/**
 * 僐儅儞僪幚峴
 *
 * @param aCommandId [in]	僐儅儞僪ID
 */
MSmbAfCommandBase::TSmbAfCmdIdResponse CSmbMusicAPMainPlayerFilterListViewMusicMenu::ProcessCommandL(TInt aCommandId)
	{
	//
	// 儈儏乕僕僢僋儊僯儏乕僐儅儞僪
	//
	switch(aCommandId)
		{
		case ECmdFilterViewPlayResume:				// 懕偒偐傜嵞惗
			{
			// 儗僕儏乕儉忣曬傪庢摼偟偰嵞惗夋柺傊慗堏偡傞
			// 僼傿儖僞價儏乕偱幚峴偡傞
			View()->HandleCommandL(ECmdFilterViewPlayResume);
			}
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		case ECmdFilterViewShowPlayView:			// 嵞惗拞偺嬋傊
			{
			// 僼傿儖僞價儏乕偱幚峴偡傞
			View()->HandleCommandL(ECmdFilterViewShowPlayView);
			}
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		case ECmdFilterViewPlayShuffle:				// 慡嬋僔儍僢僼儖
			{
			//2006.10.02 TRK#7508
			// 僀儀儞僩梷惂偡傞
			View()->SetEventDisabled(ETrue);
			// SongList傪惗惉偟偰嵞惗夋柺傊慗堏偡傞
			ProcessGetListFromSearchTop(aCommandId, ESmbMusicAPSyncEngineAll, ESmbMusicAPSyncEngineSongList, KSmbMusicAPMainPlayerSongListViewUid);
			}
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		case ECmdFilterViewShowAlbumList:			// 傾儖僶儉偐傜
			{
			// 僀儀儞僩梷惂偡傞
			View()->SetEventDisabled(ETrue);
			// AlbumList傪惗惉偡傞
			ProcessGetListFromSearchTop(aCommandId, ESmbMusicAPSyncEngineAlbum, ESmbMusicAPSyncEngineCategoryList, KSmbMusicAPMainPlayerAlbumListViewUid);
			}
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		case ECmdFilterViewShowArtistList:			// 傾乕僥傿僗僩偐傜
			{
			// 僀儀儞僩梷惂偡傞
			View()->SetEventDisabled(ETrue);
			// ArtistList傪惗惉偡傞
			ProcessGetListFromSearchTop(aCommandId, ESmbMusicAPSyncEngineArtist, ESmbMusicAPSyncEngineCategoryList, KSmbMusicAPMainPlayerArtistListViewUid);
			}
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		case ECmdFilterViewShowGenreList:			// 僕儍儞儖偐傜
			{
			// 僀儀儞僩梷惂偡傞
			View()->SetEventDisabled(ETrue);
			// GenreList傪惗惉偡傞
			ProcessGetListFromSearchTop(aCommandId, ESmbMusicAPSyncEngineGenre, ESmbMusicAPSyncEngineCategoryList, KSmbMusicAPMainPlayerGenreListViewUid);
			}
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		case ECmdFilterViewShowPLTypeList:			// 儐乕僓僾儗僀儕僗僩
			{
			// 僀儀儞僩梷惂偡傞
			View()->SetEventDisabled(ETrue);
			// 儐乕僓僾儗僀儕僗僩慖戰夋柺偵慗堏偡傞
			View()->ShowChildViewL(KSmbMusicAPMainPlayerPLTypeListViewUid);
			}
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		case ECmdFilterViewShowSongListAll:			// 偡傋偰偺嬋
			{
			// 僀儀儞僩梷惂偡傞
			View()->SetEventDisabled(ETrue);
			ProcessGetListFromSearchTop(aCommandId, ESmbMusicAPSyncEngineAll, ESmbMusicAPSyncEngineSongList, KSmbMusicAPMainPlayerSongListViewUid);
			}
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		case ECmdFilterViewShowSongListFavorite:	// 傛偔挳偔50嬋
			{
			// 僀儀儞僩梷惂偡傞
			View()->SetEventDisabled(ETrue);
			// SongList傪惗惉偡傞
			ProcessGetListFromSearchTop(aCommandId, ESmbMusicAPSyncEngineOften50, ESmbMusicAPSyncEngineSongList, KSmbMusicAPMainPlayerSongListViewUid);
			}
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		case ECmdFilterViewShowSongListRecently:	// 嵟嬤挳偄偨50嬋
			{
			// 僀儀儞僩梷惂偡傞
			View()->SetEventDisabled(ETrue);
			// SongList傪惗惉偡傞

⌨️ 快捷键说明

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