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

📄 smbmusicapfilemgrpartitionview.cpp

📁 索爱手机代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*--------------------------------------------------------------------*/
// FileName:
//	SmbMusicAPFileMgrPartitionView.cpp
//
// Description: 
//	儈儏乕僕僢僋僼傽僀儖慖戰傾僾儕働乕僔儑儞PartitionView僋儔僗
/*--------------------------------------------------------------------*/
//曄峏棜楌
//擔晅			|曄峏幰 	|撪梕
//--------------+-----------+-------------------------------------------
//PTX825
//2007/06/29	|SDNA彑枔	| 拝怣壒愝掕懳墳
//2007/09/04	|SDNA彑枔	| CQ-TRK D_82400012287懳墳 嵍塃僉乕挿墴梷惂
//2007/09/25	|SDNA彑枔	| CQ-TRK D_82400015433懳墳 巇條曄峏乮MP-02-P029仺MP-02-P031乯

#include <SmbAfWordingFormatter.h>
#include <SmbAfWording.rsg>
#include <SmbMusicAPFileMgr.rsg>

#include "SmbMusicAPFileMgrDocument.h"
#include "SmbMusicAPFileMgrPartitionView.h"
#include "SmbMusicAPFileMgrPartitionCmd.h"
#include "SmbMusicAPFileMgrActionController.h"
#include "SmbMusicAPFileMgrCommonDef.h"
#include "SmbMusicAPFileMgr.hrh"
#include <SmbMusicAPFileMgrExternalInterface.h>
#include "SmbMusicAPFileMgrDebugLog.h"

USING_NAMESPACE_SEMCJ

///////////////////////////////////////////////////////////////////////////////
/**
 * 僇僥僑儕堦棗夋柺峔抸梡僷儔儊乕僞
 */
const TAfViewParam KMusicAPFileMgrPartitionViewParam =
	{
	ESmbMusicAPFileMgrPartitionView,	///< 價儏乕ID
	0,									///< 僞僀僩儖
	0									///< 僉乕僈僀僟儞僗
	};

/**
 * 僐儞僗僩儔僋僞
 *
 * @param[in]		aAppUi				傾僾儕働乕僔儑儞UI
 * @param[in]		aLog				儘僌僒乕僶
 */
CSmbMusicAPFileMgrPartitionView::CSmbMusicAPFileMgrPartitionView(CSmbMusicAPFileMgrAppUi& aAppUi)
	: CSmbMusicAPFileMgrViewBase(KMusicAPFileMgrPartitionViewParam, aAppUi)
	, iArrowState(ESkonKeyGuidanceArrowLeft)
	{
	//
	}

/**
 * 僙僇儞僪僐儞僗僩儔僋僞
 */
void CSmbMusicAPFileMgrPartitionView::ConstructL(void)
	{
	//	儈儏乕僕僢僋僼傽僀儖慖戰傾僋僔儑儞僐儞僩儘乕儔偺庢摼
	CSmbMusicAPFileMgrActionController& controller = static_cast<CSmbMusicAPFileMgrDocument*>(iAppUi.Document())->Controller();

	// 價儏乕僐儅儞僪偺惗惉丒搊榐
	CSmbMusicAPFileMgrPartitionCmd* cmd = new(ELeave) CSmbMusicAPFileMgrPartitionCmd(iAppUi, *this, controller);
	cmd->ConstructL();
	RegistCmd(static_cast<CSmbMusicAPFileMgrCmdBase*>(cmd));
	}

/**
 * 僨僗僩儔僋僞
 */
CSmbMusicAPFileMgrPartitionView::~CSmbMusicAPFileMgrPartitionView()
	{
	// 強桳偡傞僆僽僕僃僋僩偼偙偙偱嶍彍偡傞丏
	// 偨偩偟 AddControlL 偱搊榐偟偨僐儞僩儘乕儖偼 CAfView::~CAfView 偱
	// 嶍彍偝傟傞偨傔丆偙偙偱嶍彍偟偰偼側傜側偄丏
	}

/**
 * 僐儞僥僫偺嶌惉
 */
void CSmbMusicAPFileMgrPartitionView::DoConstructContainerL()
	{
	// 嫞崌娗棟僼儗乕儉儚乕僋偵傾僾儕婲摦傪捠抦偟丆婲摦晄壜偱偁傞応崌偼廔椆僐儅儞僪傪敪峴偡傞丏
//	TInt result = NotifyStartFileSelectAppL();
//	if (result != KErrNone)
//		{
//		iAppUi.HandleCommandL(EEikCmdExit);
//		}
	
	// 僞僀僩儖僶乕傪怴婯惗惉偡傞
	CSkonTitleBar* titleBar = new(ELeave) CSkonTitleBar;
	// 僋儕乕儞傾僢僾僗僞僢僋傪妋曐偡傞(titlebar)
	CleanupStack::PushL(titleBar);
	// 僞僀僩儖僶乕傪惗惉偡傞
	titleBar->ConstructL();
	// 僞僀僩儖僶乕偵價儏乕傪愝掕偡傞
	titleBar->SetContainerWindowL(*this);
	// 價儏乕傊僐儞僩儘乕儖傪愝掕
	AddControlL(titleBar);
	// 僋儕乕儞傾僢僾僗僞僢僋傪奐曻偡傞(titlebar)
	CleanupStack::Pop(titleBar);
	iTitleBar = titleBar;

	// 儕僗僩儃僢僋僗傪怴婯惗惉偡傞
	CSkonListBox* listbox = new(ELeave) CSkonListBox;
	// 僋儕乕儞傾僢僾僗僞僢僋傪妋曐偡傞(listbox)
	CleanupStack::PushL(listbox);
	// 儕僗僩儃僢僋僗偵價儏乕傪愝掕偡傞
	listbox->SetContainerWindowL(*this);
	// 價儏乕傪儕僗僩儃僢僋僗偺僆僽僓乕僶偵搊榐偡傞
	listbox->SetListBoxObserver(this);
	// 慖戰壜斲偺敾掕傪峴偆僀儞僞僼僃乕僗偺搊榐
//	listbox->SetSelectJudge(this);
	// 僋儕乕儞傾僢僾僗僞僢僋傪奐曻偡傞(listbox)
	CleanupStack::Pop(listbox);
	iListBox = listbox;

	// 儕僜乕僗儕乕僟惗惉
	TResourceReader reader;
	// 儕僜乕僗偺撉傒崬傒
	(CEikonEnv::Static())->CreateResourceReaderLC(reader, R_PARTITION_LISTBOX);
	// 儕僜乕僗僼傽僀儖傪愝掕偡傞
	iListBox->ConstructFromResourceL(reader);
	//僋儕乕儞傾僢僾僗僞僢僋偐傜夝曻偡傞(reader)
	CleanupStack::PopAndDestroy();

	// 儕僗僩儃僢僋僗偺僒僀僘傪愝掕
	TRect clientRect = iAppUi.ClientRect();	// 僋儔僀傾儞僩椞堟(慡夋柺椞堟傛傝僗僥乕僞僗僶乕偍傛傃僉乕僈僀僟儞僗偺椞堟傪彍偄偨椞堟)偺庢摼
//MOD-START PTX824
//	iListBox->SetRect(TRect(clientRect.iTl.iX, TitleRectMaxWidth().iBr.iY, clientRect.iBr.iX, clientRect.iBr.iY - clientRect.iTl.iY));
	iListBox->SetRect(TRect(clientRect.iTl.iX, iTitleBar->Rect().iBr.iY, clientRect.iBr.iX, clientRect.iBr.iY - clientRect.iTl.iY));
//MOD-END PTX824
	// 價儏乕傊僐儞僩儘乕儖傪愝掕
	AddControlL(iListBox, iListBox->KeyGuidance());

	// 僇乕僜儖堏摦儌乕僪偺愝掕
	iListBox->SetCursorMovementMode(CSkonListBox::EMoveDisableItem);	// 慖戰晄壜崁栚偵僼僅乕僇僗傪堏摦偡傞.

	// Listbox 偺僉乕僈僀僟儞僗偺恊偲偟偰丄View 偺僉乕僈僀僟儞僗傪巜掕偡傞
	iListBox->KeyGuidance()->SetParentKeyGuidance(KeyGuidance());

	// 僉乕僈僀僟儞僗偺寛掕僉乕偵乽慖戰乿傪捛壛偡傞丏
	HBufC* buf = (CEikonEnv::Static())->AllocReadResourceLC(R_SMB_AF_STR_SFT003);
	iListBox->KeyGuidance()->SetKeyInfoL(ESkonKeyGuidanceSelectKey, *buf, NULL, NULL, 0);
	CleanupStack::PopAndDestroy(buf);

	// 恊僉乕僈僀僟儞僗偑僐儞僩儘乕儖偡傞曽岦僉乕傪巜帵偡傞
//	iListBox->KeyGuidance()->SetParentArrowMask(ESkonKeyGuidanceArrowLeft | ESkonKeyGuidanceArrowRight);
	iListBox->KeyGuidance()->SetParentArrowMask(ESkonKeyGuidanceArrowLeft);
	
//INSERT START PTX825 CQ-TRK D_82400012287
	// 嵍塃僉乕偺僉乕儕僺乕僩傪柍岠偵偡傞
	iListBox->KeyGuidance()->SetDisableArrowKeyRepeat(ESkonKeyGuidanceArrowLeft | ESkonKeyGuidanceArrowRight);
//INSERT End PTX825 CQ-TRK D_82400012287
	}

/**
 * 價儏乕偺妶惈壔
 *
 * @param[in]		aViewId				屇傃弌偟尦價儏乕ID
 * @param[in]		aCustomMessageId	儊僢僙乕僕ID
 * @param[in]		aCustomMessage		儊僢僙乕僕僶僢僼傽
 * @leave			res					僼僅乕僇僗愝掕偵幐攕偟偨応崌
 */
void CSmbMusicAPFileMgrPartitionView::DoViewActivatedImplL(const TVwsViewId& /*aViewId*/,
                                                      TUid aCustomMessageId,
                                                      const TDesC8& aCustomMessage)
	{
	TBool isUpdated = EFalse;									// 僐儞僩儘乕儖晹昳傪峏怴偡傞偐斲偐
	TSmbMusicAPFileMgrViewType localViewType = ETypeNone;	// 儘乕僇儖價儏乕愗懼帪偺價儏乕庬暿
	CSmbMusicAPFileSystemComMusicItem* musicItem = NULL;		// 儈儏乕僕僢僋傾僀僥儉
	CSmbMusicMWLibRingingInfo* ringingInfo = NULL;
	// 儘乕僇儖價儏乕愗傝懼偊偺応崌
	if (aCustomMessageId == KSmbMusicAPFileMgrDnlLocalUid)
		{
		// 僇僗僞儉儊僢僙乕僕傪庢摼偡傞丏
		if (aCustomMessage != (TDesC8)KNullDesC8)
			{
			const TSmbMusicAPFileMgrLocalViewStartParam* param;
			param = reinterpret_cast<const TSmbMusicAPFileMgrLocalViewStartParam *>(aCustomMessage.Ptr());
			// 價儏乕偺僞僀僾傪庢摼偡傞
			localViewType = param->iViewType;
			// 儈儏乕僕僢僋傾僀僥儉傪庢摼偡傞
			musicItem = param->iMusicItem;
			// 柭摦壒忣曬傪庢摼
			ringingInfo = param->iRingingInfo;
			/// 僆僗僗儊愝掕忣曬傪庢摼偡傞儈儏乕僕僢僋傾僀僥儉傪搊榐
			static_cast<CSmbMusicAPFileMgrPartitionCmd*>(iCmd)->SetMusicItem(musicItem);
			/// 柭摦壒忣曬傪搊榐
			static_cast<CSmbMusicAPFileMgrPartitionCmd*>(iCmd)->SetRingingInfo(ringingInfo);
			// 儕僗僩儃僢僋僗傪弶婜壔偟偰偍偔
			ClearAllItems();
			}
		else										// 僇僗僞儉儊僢僙乕僕側偟偺応崌
			{
			return;
			}
		}
	// 巕傾僾儕偑惓忢偱廔椆偟丄杮傾僾儕偵惓忢廔椆僀儀儞僩偑敪峴偝傟偨応崌
	else if(KLaReturnErrNoneUid == aCustomMessageId)
		{
		// 僨乕僞俛俷倃曐懚傾僾儕偐傜栠偭偰偒偨応崌
		if(ESmbMusicAPFileMgrExtracting==iProcessChildApp && aCustomMessage != (TDesC8)KNullDesC8)
			{
/*			iProcessChildApp = ESmbMusicAPFileMgrSelecting;
			// 僨乕僞BOX曐懚傾僾儕偺曉傝抣傪庢摼偡傞
			const TSmbDbxFolderSelectSettingParam* param;
			param = reinterpret_cast<const TSmbDbxFolderSelectSettingParam *>(aCustomMessage.Ptr());
			// 惓忢廔椆
			// 乽僆僗僗儊愝掕乿偺僐儞僥儞僣忣曬傪曐帩偡傞
			CSmbMusicAPFileMgrDocument* doc = iAppUi.Document();
			ASSERT(doc);
			// 廔椆帪僷儔儊乕僞
			TSmbMusicAPFileMgrSettingParam& ret = doc->SettingParam();
			ret.iContentsID = param->iContentID;
			ret.iContentsKind = param->iContentType;
			// i儌乕僔儑儞曐懚僟僀傾儘僌傪儌乕僟儖昞帵偡傞
			iAppUi.HandleCommandL(ECmdShowImotionSaveDialog);
			// 傾僾儕働乕僔儑儞傪廔椆偟偰屇傃弌偟尦偵栠傞
			iAppUi.ReturnViewAndExitL(KLaReturnErrNoneUid);*/
			}
		// 堦嬋嵞惗僾儗僀儎偐傜栠偭偰偒偨応崌
		else if(ESmbMusicAPFileMgrPlaying==iProcessChildApp && aCustomMessage != (TDesC8)KNullDesC8)
			{
			iProcessChildApp = ESmbMusicAPFileMgrSelecting;
			}
		else
			{
			// 僋儕傾傾僾儕働乕僔儑儞傪廔椆偟偰屇傃弌偟尦偵栠傞
			iAppUi.ReturnClearPreviousAppL();
			}
		}
	// 巕傾僾儕偑惓忢偱廔椆偟丄杮傾僾儕偵惓忢廔椆僀儀儞僩偑敪峴偝傟偨応崌
	// 僋儕傾廔椆
	else if(KLaReturnClearUid == aCustomMessageId)
		{
		// 僨乕僞俛俷倃曐懚傾僾儕偐傜栠偭偰偒偨応崌
		if(ESmbMusicAPFileMgrExtracting==iProcessChildApp && aCustomMessage != (TDesC8)KNullDesC8)
			{
//			iAppUi.HandleCommandL(ECmdSetDisableCpList);
//			iProcessChildApp = ESmbMusicAPFileMgrSelecting;
			}
		// 堦嬋嵞惗僾儗僀儎偐傜栠偭偰偒偨応崌
		else if(ESmbMusicAPFileMgrPlaying==iProcessChildApp && aCustomMessage != (TDesC8)KNullDesC8)
			{
			iProcessChildApp = ESmbMusicAPFileMgrSelecting;
			}
		else
			{
			// 僋儕傾僉乕傾僾儕働乕僔儑儞傪廔椆偟偰屇傃弌偟尦偵栠傞
			iAppUi.ReturnClearPreviousAppL();
			}
			// 僉乕僈僀僟儞僗偺愝掕
			SetArrowState();
		}
	// 巕傾僾儕偑惓忢偱廔椆偟丄杮傾僾儕偵惓忢廔椆僀儀儞僩偑敪峴偝傟偨応崌
//	else if(KLaReturnClearUid == aCustomMessageId || KLaReturnOnHookUid == aCustomMessageId || KLaReturnErrUid == aCustomMessageId)
//	else if(KLaReturnOnHookUid == aCustomMessageId || KLaReturnErrUid == aCustomMessageId)
	else if(KLaReturnOnHookUid == aCustomMessageId)		// Del S.Yumiba	TRK8288
		{
		// 僆儞僼僢僋傾僾儕働乕僔儑儞傪廔椆偟偰屇傃弌偟尦偵栠傞
		iAppUi.TerminateTaskL();
		}
	else	// 儘乕僇儖價儏乕愗傝懼偊偱側偄応崌
		{
		// 僼傽僀儖曐懚傾僾儕偐傜偺恊暅婣偺応崌偼丆曐懚姰椆僟僀傾儘僌傪昞帵偡傞丏
		if (aCustomMessage != (TDesC8)KNullDesC8)
			{
//DEL-START PTX824
/*			const TLaViewParam* tmpParam = reinterpret_cast<const TLaViewParam *>(aCustomMessage.Ptr());
			if (tmpParam->iViewId.iAppUid == KSmbDbxFolderSelectAppUid)
				{
				const TSmbDbxFolderSelectSettingParam* param;
				param = reinterpret_cast<const TSmbDbxFolderSelectSettingParam*>(aCustomMessage.Ptr());
				switch (param->iError)
					{
					case ESmbDbxReturnErrNone:			// 惓忢廔椆
//						惓忢帪偼丄else if(KLaReturnErrNoneUid == aCustomMessageId)偱張棟偟偰偄傞
//						// 曐懚姰椆偺応崌丆曐懚姰椆僟僀傾儘僌傪昞帵偡傞丏
//						if (param->iSaveComplete)	// 曐懚姰椆
//							{
//							ShowConfirmDialogL(R_WARNING_DIALOG_MP02P007);
//							}
						break;
					case ESmbDbxReturnErrResourceEmpty:	// 審悢挻夁
					case ESmbDbxReturnErrSizeOver:		// 嬻偒梕検側偟
						OUTPUT_LOG1_MUST("DoViewActivatedImplL():param->iError = %d", param->iError);
						//愗傝弌偟崁栚偺弶婜壔
						iAppUi.HandleCommandL(ECmdSetDisableCpList);
						iProcessChildApp = ESmbMusicAPFileMgrSelecting;
						ShowWarningDialogL(R_WARNING_DIALOG_MP02P008);
						break;
					default:
						OUTPUT_LOG1_MUST("DoViewActivatedImplL():param->iError = %d", param->iError);
						//愗傝弌偟崁栚偺弶婜壔
						iAppUi.HandleCommandL(ECmdSetDisableCpList);
						iProcessChildApp = ESmbMusicAPFileMgrSelecting;
						break;
					}
				}*/
//DEL-END PTX824
			}

		// 傾僾儕働乕僔儑儞傪廔椆偟偰屇傃弌偟尦偵栠傞
		// 2006.09.04 TRK#8076 抂枛奐暵帪偼壗傕偟側偄
		//iAppUi.ExitL();
		return;
		}
		
	// 僆僗僗儊愝掕堦棗夋柺昞帵偺応崌
	if (localViewType == ETypePartitionView)  							// 儘乕僇儖價儏乕愗懼
		{
		// 僞僀僩儖僶乕偵丆僞僀僩儖暥帤楍傪愝掕偡傞
		SetTitleBarL(iTitleBar, R_SMB_AF_STR_WRD2805);					// 僆僗僗儊愝掕
		// 價儏乕僞僀僾傪愝掕偡傞
		iViewType = ETypePartitionView;
		isUpdated = ETrue;
		}
	// 僆僗僗儊愝掕堦棗夋柺昞帵偺応崌
	if (localViewType == ETypePartitionViewSD)  							// 儘乕僇儖價儏乕愗懼
		{
		// 僞僀僩儖僶乕偵丆僞僀僩儖暥帤楍傪愝掕偡傞
		SetTitleBarL(iTitleBar, R_SMB_AF_STR_WRD2805);					// 僆僗僗儊愝掕
		// 價儏乕僞僀僾傪愝掕偡傞
		iViewType = ETypePartitionViewSD;
		isUpdated = ETrue;
		}

	// 僐儞僩儘乕儖晹昳偺愝掕傪峴偆
	if (isUpdated)
		{
		// 僉乕僈僀僟儞僗偺愝掕
		SetArrowState();

		/// 嬫娫巜掕夋柺惗惉梫媮
		iAppUi.HandleCommandL(ECmdCreateCpToneInfoDisp);
		DrawNow();
		}
	}

/**
 * @param[in]		aKeyEvent			僉乕僀儀儞僩 
 * @param[in]		aType				僀儀儞僩僞僀僾 
 * @return			僉乕儗僗億儞僗
 */
TKeyResponse CSmbMusicAPFileMgrPartitionView::OfferKeyEventImplL(const TKeyEvent& aKeyEvent, TEventCode /*aType*/)
	{
	TKeyResponse res = EKeyWasNotConsumed;

	switch (aKeyEvent.iCode)
		{
	case EWcdmaMpKeySelect:							// 寛掕僉乕
//	case EWcdmaMpKeyRight:							// 塃栴報僉乕	// Del S.Yumiba	TRK7642
		
		//iListBox->CurrentItemIndex()偱Current偑庢摼偱偒側偄丄傑偨偼丄傾僀僥儉偑柍岠偺帪偵偼張棟偟側偄

⌨️ 快捷键说明

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