smbmusicapmainplayerdialogitem.cpp

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

CPP
774
字号
	iWarningDialog = new(ELeave) CSkonWarningDialog(); // 仐嵎暘

	//__UHEAP_FAILNEXT(1);  // UT丗PrepareL惗惉幐攕
	iWarningDialog->PrepareL(iResourceId);

	// 僥僉僗僩偺愝掕
	if (iCombinedText != NULL)
		{
		// aCombinedText偺強桳尃傪埾忳
		CSkonCombinedText* combinedText = iCombinedText;
		iCombinedText = NULL;// 強桳尃傪埾忳偡傞偨傔偵丄NULL偵偡傞
		//__UHEAP_FAILNEXT(1);  // UT丗SetCombinedTextL惗惉幐攕
		iWarningDialog->SetCombinedTextL(combinedText);
		}
	else if (iText != NULL)
		{
		//__UHEAP_FAILNEXT(1);  // UT丗SetTextL惗惉幐攕
		iWarningDialog->SetTextL(*iText);
		}

// Add 2007.07.12
	if (EFalse == aTimeout)
		{
		// 帺摦徚嫀側偟
		iWarningDialog->SetAutoCloseTime(0);
		}
// Add End 2007.07.12

	// 帺暘帺恎傪僙僢僩
	iWarningDialog->SetDialogObserver(this);

	// Close()偺屇傃弌偟偱丄昁偢僆僽僓乕僶偑屇偽傟傞傛偆偵偡傞
	iWarningDialog->SetExResultMode(ETrue);  // 仐嵎暘

	// 愝掕
	iCloseWhenCaseClosedFlag = ETrue;  // 仐嵎暘

	// Hold梫媮
//	iHoldRequest = ETrue;   // 仐嵎暘
//	iSyncEngine.HoldApp();  // 仐嵎暘

	// 儌乕僪儗僗昞帵奐巒
	//__UHEAP_FAILNEXT(1);  // UT丗ShowL幐攕
	iWarningDialog->ShowL();
	}

/**
 * 慖戰儌乕僪儗僗僟僀傾儘僌昞帵
 */
void CSmbMusicAPMainPlayerDialogItem::ShowSelectionModelessDialogL()
	{
	//_LIT(KLogFmt1, "CSmbMusicAPMainPlayerDialogItem::ShowSelectionModelessDialogL(0x%08x)[start.]");
	//SmbMusicAPMainPlayerUtility::OutputLog(iLog, 19019, ELogLevelLowest, KLogFmt1, iResourceId);

	// 僟僀傾儘僌偺惗惉
	//__UHEAP_FAILNEXT(1);  // UT丗CSkonSelectionDialog惗惉幐攕
	iSelectionDialog = new(ELeave) CSkonSelectionDialog(); // 仐嵎暘

	//__UHEAP_FAILNEXT(1);  // UT丗PrepareL惗惉幐攕
	iSelectionDialog->PrepareL(iResourceId);

	// 僥僉僗僩偺愝掕
	if (iCombinedText != NULL)
		{
		// aCombinedText偺強桳尃傪埾忳
		CSkonCombinedText* combinedText = iCombinedText;
		iCombinedText = NULL;// 強桳尃傪埾忳偡傞偨傔偵丄NULL偵偡傞
		//__UHEAP_FAILNEXT(1);  // UT丗SetCombinedTextL惗惉幐攕
		iSelectionDialog->SetCombinedTextL(combinedText);
		}
	else if (iText != NULL)
		{
		//__UHEAP_FAILNEXT(1);  // UT丗SetTextL惗惉幐攕
		iSelectionDialog->SetTextL(*iText);
		}

	// 帺暘帺恎傪僙僢僩
	iSelectionDialog->SetDialogObserver(this);

	// Close()偺屇傃弌偟偱丄昁偢僆僽僓乕僶偑屇偽傟傞傛偆偵偡傞
	iSelectionDialog->SetExResultMode(ETrue);  // 仐嵎暘

	// 愝掕
	iCloseWhenCaseClosedFlag = ETrue;  // 仐嵎暘

	// Hold梫媮
//	iHoldRequest = ETrue;   // 仐嵎暘
//	iSyncEngine.HoldApp();  // 仐嵎暘

	// 儌乕僪儗僗昞帵奐巒
	//__UHEAP_FAILNEXT(1);  // UT丗ShowL幐攕
	iSelectionDialog->ShowL();
	}

/**
 * 恑捇儌乕僪儗僗僟僀傾儘僌昞帵
 *
 * @param[in] aTimerClose 0.5昩偨偭偰偐傜僋儘乕僘偡傞偐斲偐
 * @param[in] aClearKeyDisable 僋儕傾僉乕傪柍岠偵偡傞偐斲偐
 * @param[in,out] aProgressLabel 僾儘僌儗僗儔儀儖
 * @param[in] aHoldAppFlag 僒僽僾儗僀儎乕傪儊僀儞憖嶌拞夋柺偵偡傞偐斲偐乮仸僒僽僾儗僀儎乕偺夋柺忬懺傪堄幆偟偰巜掕偡傞偙偲乯
 */
void CSmbMusicAPMainPlayerDialogItem::ShowProgressModelessDialogL(MSmbMusicAPMainPlayerDialogManagerBase::TSmbMusicAPMainPlayerProgressDialogClose aTimerClose, TBool aClearKeyDisable, CSkonCompoundProgressLabel*** aProgressLabel, TBool aHoldAppFlag)
	{
	//_LIT(KLogFmt1, "CSmbMusicAPMainPlayerDialogItem::ShowProgressModelessDialogL(0x%08x)[start.]");
	//SmbMusicAPMainPlayerUtility::OutputLog(iLog, 19023, ELogLevelLowest, KLogFmt1, iResourceId);

	// 僐乕僨傿儞僌儈僗
	__ASSERT_DEBUG(aProgressLabel != NULL, PANIC(9019001));

	// 僟僀傾儘僌偺惗惉
	//__UHEAP_FAILNEXT(1);  // UT丗NewL幐攕
	iProgressDialog = CSmbMusicAPLibProgressDialog::NewL(iResourceId); // 仐嵎暘

	// 帺暘帺恎傪僙僢僩
	iProgressDialog->SetDialogObserver(this);

	// Close()偺屇傃弌偟偱丄昁偢僆僽僓乕僶偑屇偽傟傞傛偆偵偡傞
//	dialog->SetExResultMode(ETrue);  // 仐嵎暘

	// 愝掕
	iCloseWhenCaseClosedFlag = EFalse; // 仐嵎暘

	// Hold梫媮
	iHoldRequest = aHoldAppFlag;   // 仐嵎暘
	if (iHoldRequest != EFalse) // == ETrue
		{
// PTX824懳墳
// Change 2007.03.16
//		iSyncEngine.HoldApp(ESmbMusicAPPlayerProgressDialog);  // 仐嵎暘
		iDialogManager.iPlayerEnv.RequestHoldApp(ESmbMusicAPPlayerProgressDialog); 
// Change End 2007.03.16
		}

	// CSkonCompoundProgressLabel偺億僀儞僞傪庢摼
	**aProgressLabel = iProgressDialog->ProgressLabel();

	// 僋儕傾僉乕偺桳岠丒柍岠偺愝掕
	iProgressDialog->DisableClearKey(aClearKeyDisable);

	// 儌乕僪儗僗昞帵奐巒
	//__UHEAP_FAILNEXT(1);  // UT丗ShowL幐攕
	iProgressDialog->ShowL(TSmbMusicAPLibDialogTimerClose(aTimerClose));
	}

/**
 * 傒側偟恑捇儌乕僪儗僗僟僀傾儘僌昞帵
 *
 * @param[in] aTimerClose 0.5昩偨偭偰偐傜僋儘乕僘偡傞偐斲偐
 * @param[in] aClearKeyDisable 僋儕傾僉乕傪柍岠偵偡傞偐斲偐
 * @param[in] aInterval 峏怴娫妘 (扨埵: 儅僀僋儘昩)
 * @param[in] aProgressValue 憹壛偝偣傞恑捇抣
 * @param[in] aFinalValue 帺摦峏怴偡傞恑捇偺嵟戝抣 (柍岠抣: 0)乮100埲壓偺抣偱愝掕乯
 * @param[in] aHoldAppFlag 僒僽僾儗僀儎乕傪儊僀儞憖嶌拞夋柺偵偡傞偐斲偐乮仸僒僽僾儗僀儎乕偺夋柺忬懺傪堄幆偟偰巜掕偡傞偙偲乯
 */
void CSmbMusicAPMainPlayerDialogItem::ShowProgressModelessDialogExL(MSmbMusicAPMainPlayerDialogManagerBase::TSmbMusicAPMainPlayerProgressDialogClose aTimerClose, TBool aClearKeyDisable, TTimeIntervalMicroSeconds32 aInterval, TUint aProgressValue, TUint aFinalValue, TBool aHoldAppFlag)
	{
	//_LIT(KLogFmt1, "CSmbMusicAPMainPlayerDialogItem::ShowProgressModelessDialogExL(0x%08x)[start.]");
	//SmbMusicAPMainPlayerUtility::OutputLog(iLog, 19023, ELogLevelLowest, KLogFmt1, iResourceId);

	// 僟僀傾儘僌偺惗惉
	//__UHEAP_FAILNEXT(1);  // UT丗NewL幐攕
	iProgressDialogEx = CSmbMusicAPLibProgressDialogEx::NewL(iResourceId); // 仐嵎暘

	// 帺暘帺恎傪僙僢僩
	iProgressDialogEx->SetDialogObserver(this);

	// Close()偺屇傃弌偟偱丄昁偢僆僽僓乕僶偑屇偽傟傞傛偆偵偡傞
//	dialog->SetExResultMode(ETrue);  // 仐嵎暘

	// 愝掕
	iCloseWhenCaseClosedFlag = EFalse; // 仐嵎暘

	// Hold梫媮
	iHoldRequest = aHoldAppFlag;   // 仐嵎暘
	if (iHoldRequest != EFalse) // == ETrue
		{
// PTX824懳墳
// Change 2007.03.16
//		iSyncEngine.HoldApp(ESmbMusicAPPlayerProgressDialog);  // 仐嵎暘
		iDialogManager.iPlayerEnv.RequestHoldApp(ESmbMusicAPPlayerProgressDialog); 
// Change End 2007.03.16
		}

	// 僋儕傾僉乕偺桳岠丒柍岠偺愝掕
	iProgressDialogEx->DisableClearKey(aClearKeyDisable);

	// 恑捇嵟戝抣傪愝掕偡傞
	iProgressDialogEx->SetAutoProgressFinalValue(aFinalValue);

	// 儌乕僪儗僗昞帵奐巒
	//__UHEAP_FAILNEXT(1);  // UT丗ShowL幐攕
	iProgressDialogEx->ShowL(TSmbMusicAPLibDialogTimerClose(aTimerClose));

	// 恑捇奐巒
	User::LeaveIfError(iProgressDialogEx->StartAutoProgress(aInterval, aProgressValue));
	}

/**
 * 傒側偟恑捇僟僀傾儘僌偺僾儘僌儗僗僶乕傪廔抂傑偱昤夋偡傞
 *
 * 傒側偟恑捇僟僀傾儘僌埲奜偵懳偟偰杮娭悢傪屇傃弌偟偰傕壗傕偟側偄
 */
void CSmbMusicAPMainPlayerDialogItem::DrawEndProgressBar()
	{
	if (iProgressDialogEx == NULL)
		{
		// 傒側偟恑捇僟僀傾儘僌埲奜偱屇傃弌偝傟偨応崌偼僐乕僨傿儞僌儈僗
		__ASSERT_DEBUG(EFalse, PANIC(9019002));
		return;
		}

	// 恑捇僶乕傪廔抂傑偱昤夋偡傞
	CSkonCompoundProgressLabel* progressLabel = iProgressDialogEx->ProgressLabel();
	if (progressLabel != NULL)
		{
		// 廔抂昤夋傪峴偭偨応崌丄幚嵺偵夋柺偵斀塮偝傟傞傛偆僂僃僀僩偡傞偨傔偵僼儔僌傪棫偰傞
		iDrawEndProgressBarFlag = ETrue;

		progressLabel->SetAndDraw(progressLabel->FinalValue());
		}
	}

/**
 * 僟僀傾儘僌傪暵偠傞
 */
void CSmbMusicAPMainPlayerDialogItem::CloseDialog()
	{
	// 婛偵暵偠傜傟偰偄傞応崌偼壗傕峴傢側偄
	if (iDeleteFlag != EFalse)  // == ETrue
		{
		return;
		}

	if (iConfirmDialog != NULL)
		{
		//_LIT(KLogFmt, "CSmbMusicAPMainPlayerDialogItem::CloseDialog()[confirm.]");
		//SmbMusicAPMainPlayerUtility::OutputLog(iLog, 19024, ELogLevelLowest, KLogFmt);

		iConfirmDialog->Close();
		}
	else if (iWarningDialog != NULL)
		{
		//_LIT(KLogFmt, "CSmbMusicAPMainPlayerDialogItem::CloseDialog()[warning.]");
		//SmbMusicAPMainPlayerUtility::OutputLog(iLog, 19025, ELogLevelLowest, KLogFmt);

		iWarningDialog->Close();
		}
	else if (iSelectionDialog != NULL)
		{
		//_LIT(KLogFmt, "CSmbMusicAPMainPlayerDialogItem::CloseDialog()[selection.]");
		//SmbMusicAPMainPlayerUtility::OutputLog(iLog, 19026, ELogLevelLowest, KLogFmt);

		iSelectionDialog->Close();
		}
	else if (iProgressDialog != NULL)
		{
		//_LIT(KLogFmt, "CSmbMusicAPMainPlayerDialogItem::CloseDialog()[progress..]");
		//SmbMusicAPMainPlayerUtility::OutputLog(iLog, 19027, ELogLevelLowest, KLogFmt);

		iProgressDialog->Close();
		}
	else if (iProgressDialogEx != NULL)
		{
		if (iDrawEndProgressBarFlag == EFalse)
			{// 懄帪僋儘乕僘
			iProgressDialogEx->Close();
			}
		else
			{
			// 抶墑僋儘乕僘僔乕働儞僗偵擖偭偨偨傔丄僼儔僌傪棊偲偡
			iDrawEndProgressBarFlag = EFalse;

			// 昤夋傪懸偭偨屻僋儘乕僘
			iProgressDialogEx->Close(CSmbMusicAPLibProgressDialogEx::ECloseIn200ms);
			}
		}
	else if (iPasswordDialog != NULL)
		{
		iPasswordDialog->Close();
		}
	}

/**
 * 僟僀傾儘僌偑暵偠傜傟偨偲偒偺捠抦愭
 *
 * 偙偺娭悢撪偱Leave偟偰偼側傜側偄丅
 *
 * 壖偵HandleDialogClosed()偺拞偱DialogManager::DisplayDialogNum()偑屇偽傟偨応崌丄
 * 帺暘帺恎偼婛偵嶍彍偝傟偰偄傞傕偺偲傒側偝傟傞乮僇僂儞僩懳徾奜偲側傞乯丅
 *
 * @param[in] aResult 僋儘乕僘偝傟偨棟桼
 * @param[in] aDialog 僋儘乕僘偝傟偨僟僀傾儘僌
 */
void CSmbMusicAPMainPlayerDialogItem::HandleCloseEventL(TInt aResult, CSkonDialogBase* /* aDialog */)
	{
	//_LIT(KLogFmt, "CSmbMusicAPMainPlayerDialogItem::HandleCloseEventL(%d)[confirm.]");
	//SmbMusicAPMainPlayerUtility::OutputLog(iLog, 19029, ELogLevelLowest, KLogFmt, aResult);

	// 嶍彍僼儔僌傪棫偰傞
	iDeleteFlag = ETrue;

	// 僀儀儞僩攝怣
	if (iObserver != NULL)
		{
		TInt result = CloseReason(aResult);

		iObserver->HandleDialogClosed(iResourceId, result);
		}

	if (iHoldRequest != EFalse) // == ETrue
		{// Hold偟偰偄偨応崌偼夝彍梫媮傪峴偆
		// 杮棃側傜偽丄BasisPartFuncInterface傪捠偠偰CancelHoldAppEx()傪巊梡偡傋偒偩偑丄
		// 偦傟偩偗偺偨傔偵堷悢傪憹傗偡摍偺僐僗僩傪偐偗偨偔側偄偨傔丄壓婰偺傛偆側宍偵偟偨
		CSmbMusicAPMainPlayerAppUi* appUi = static_cast<CSmbMusicAPMainPlayerAppUi*>(CAfEnv::Static()->EikEnv().EikAppUi());
// PTX824懳墳
// Change 2007.03.17
//		appUi->CancelHoldAppEx();
		iDialogManager.iPlayerEnv.RequestCancelHoldApp(); 
// Change End 2007.03.17
		}

	// 抶墑嶍彍傪埶棅偡傞
	iDialogManager.AsyncDeleteDialog();
	}

/**
 * 嶍彍梫媮嵪傒偐斲偐傪敾掕偡傞
 *
 * @return ETrue丗嶍彍梫媮嵪傒
 * @return EFalse丗嶍彍梫媮傪傑偩偟偰偄側偄
 */
TBool CSmbMusicAPMainPlayerDialogItem::IsDelete() const
	{
	return iDeleteFlag;
	}

/**
 * 抂枛暵帪偵僟僀傾儘僌傪暵偠傞偐敾掕偡傞
 *
 * @return ETrue丗抂枛暵帪偵暵偠傞懳徾
 * @return EFalse丗抂枛暵帪偵暵偠側偄
 */
TBool CSmbMusicAPMainPlayerDialogItem::IsCloseWhenCaseClosed() const
	{
	return iCloseWhenCaseClosedFlag;
	}

/**
 * 儕僜乕僗ID傪庢摼偡傞
 *
 * @return 儕僜乕僗ID
 */
TInt CSmbMusicAPMainPlayerDialogItem::ResourceId() const
	{
	return iResourceId;
	}

/**
 * 儊僀儞僾儗僀儎乕偺僟僀傾儘僌偑埖偆曉傝抣偵曄姺偡傞
 */
TInt CSmbMusicAPMainPlayerDialogItem::CloseReason(TInt aReason)
	{
	switch (aReason)
		{
	case CSkonDialogBase::ESelectKey:            // 寛掕僉乕偑墴偝傟偨応崌(0)
		return MSmbMusicAPMainPlayerDialogManagerBase::ESelectKey;
	case CSkonDialogBase::ETimeOut:              // 巜掕帪娫偑宱夁偟偰暵偠傜傟偨応崌(-1)
	case EHalfSecond:                            // 恑捇僟僀傾儘僌0.5昩宱夁僋儘乕僘(-9)
		return MSmbMusicAPMainPlayerDialogManagerBase::ETimeOut;
	case CSkonDialogBase::EClearKey:             // 僋儕傾僉乕偑墴偝傟偨応崌(-2)
		return MSmbMusicAPMainPlayerDialogManagerBase::EClearKey;
	case CSakDialogBase::ENotSpecified:          // 奼挘暅婣抣儌乕僪傪巜掕偟側偄応崌偱Close()傗Exit()傪屇傫偩応崌(-3)
	case CSkonDialogBase::EClosedBySystem:       // 僔僗僥儉偵傛傞嫮惂僋儘乕僘(-6 奼挘暅婣抣儌乕僪偺応崌偺傒)
	case CSkonDialogBase::EClosedByApplication:  // 傾僾儕偵傛傞僋儘乕僘(-7 奼挘暅婣抣儌乕僪偺応崌偺傒)
	case ECompulsion:                            // 恑捇僟僀傾儘僌嫮惂僋儘乕僘(-8)
		return MSmbMusicAPMainPlayerDialogManagerBase::EForcedClose;
	default:// 偦偺傑傑曉偡
		return aReason;
		}
	}

SEMCJ_NAMESPACE_END

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

⌨️ 快捷键说明

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