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

📄 smbmusicaplibprogressdialog.cpp

📁 索爱手机代码
💻 CPP
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//	SmbMusicAPLibProgressDialog.cpp
//
// Description:
//	儈儏乕僕僢僋傾僾儕儔僀僽儔儕僾儘僌儗僗昞帵僟僀傾儘僌僋儔僗
/*-------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅				|曄峏幰			|撪梕
//---------------------------------------------------------------------------
//2006/04/24		|SEMCJ嬥岝		|怴婯嶌惉
//2006/08/14		|SEMCJ嬥岝		|0.5昩宱夁屻偺CallBack偵傛偭偰屇傃弌偝傟傞HandleCloseEventL撪偱傾僾儕偑儕乕僽偟偨嵺偵僷僯僢僋偑敪惗偡傞栤戣傪廋惓(i-keeper TRK No.6346懳墳)
//2006/10/17		|SEMCJ嬥岝		|杮僟僀傾儘僌傪昞帵偟偰偄側偄娫丄傾僯儊乕僔儑儞傪掆巭偡傞傛偆偵廋惓(i-keeper TRK No.10140懳墳)
#include "SmbMusicAPLibProgressDialog.h"
USING_NAMESPACE_SEMCJ
///////////////////////////////////////////////////////////////////////////////
/**
 * 僋儔僗僆僽僕僃僋僩惗惉
 *
 * @param[in]	aResourceId		SkonDialogBase儕僜乕僗ID
 * @return		CSmbMusicAPLibProgressDialog僆僽僕僃僋僩
 */
EXPORT_C CSmbMusicAPLibProgressDialog* CSmbMusicAPLibProgressDialog::NewL(TInt aResourceId)
	{
	CSmbMusicAPLibProgressDialog* obj = new(ELeave) CSmbMusicAPLibProgressDialog();
	obj->PrepareLC(aResourceId);
	CleanupStack::Pop();

	return obj;
	}

/**
 * 僐儞僷僂儞僪僾儘僌儗僗儔儀儖僐儞僩儘乕儖億僀儞僞庢摼
 *
 * @return		CSkonCompoundProgressLabel僆僽僕僃僋僩
 */
EXPORT_C CSkonCompoundProgressLabel* CSmbMusicAPLibProgressDialog::ProgressLabel()
	{
	if(1 > CountComponentControls())
		{
		//僐儞僩儘乕儖偑壗傕側偄
		return NULL;
		}
	return static_cast<CSkonCompoundProgressLabel*>(CSkonDialogBase::ComponentControl(0));
	}

/**
 * 僋儕傾僉乕偺柍岠
 *
 * @param[in]	aDisable		僋儕傾僉乕柍岠愝掕(ETrue丗柍岠丂EFalse丗桳岠)
 */
EXPORT_C void CSmbMusicAPLibProgressDialog::DisableClearKey(TBool aDisable)
	{
	iCloseIgnoreClear = aDisable;
	}

/**
 * 僆僽僓乕僶傪愝掕偡傞
 *
 * @param[in]	aObserver		SkonDialogBase儕僜乕僗ID
 */
EXPORT_C void CSmbMusicAPLibProgressDialog::SetDialogObserver(MSkonDialogBaseObserver* aObserver)
	{
	CSkonDialogBase::SetDialogObserver(aObserver);
	}

/**
 * 僟僀傾儘僌昞帵(儌乕僟儗僗)
 *
 * @param[in]	aTimerClose		愝掕抣
 */
EXPORT_C void CSmbMusicAPLibProgressDialog::ShowL(TSmbMusicAPLibDialogTimerClose aTimerClose)
	{
	//僞僀儅僋儘乕僘愝掕傪儊儞僶曄悢傊愝掕偡傞
	iTimerClose = aTimerClose;

	//僞僀儅僋儘乕僘愝掕傪嶲徠偡傞
	if(EDialogNoTimer != aTimerClose)
		{
		//僞僀儅梫媮傪奐巒偡傞
//i-keeper TRK No.6346懳墳 CHG-S
//		iCloseTimer = DCM::CLaAfterTimer::NewL(CActive::EPriorityStandard);
		if(EFalse != iCloseTimer->IsActive())
			{
			//枩偑堦摦嶌拞偺応崌偼堦扷僉儍儞僙儖偡傞
			iCloseTimer->Cancel();
			}
//i-keeper TRK No.6346懳墳 CHG-E
		TCallBack callBack(TimerCallBack, this);
		iCloseTimer->After(KSmbMusicAPLibProgressDialogTimer, callBack);
		}

//i-keeper TRK No.10140懳墳 ADD-S
	//傾僯儊乕僔儑儞嵞奐張棟
	AnimationControlL(EFalse);
//i-keeper TRK No.10140懳墳 ADD-E

	CSkonDialogBase::ShowL();
	}

/**
 * 僟僀傾儘僌傪嫮惂揑偵暵偠傞
 */
EXPORT_C void CSmbMusicAPLibProgressDialog::Close()
	{
	//僞僀儅僋儘乕僘愝掕傪嶲徠偡傞
	if(EDialogNoTimer == iTimerClose)
		{
//i-keeper TRK No.10140懳墳 ADD-S
		//傾僯儊乕僔儑儞掆巭張棟
		AnimationControlL(ETrue);
//i-keeper TRK No.10140懳墳 ADD-E
		//僞僀儅偑愝掕偝傟偰偄側偄偨傔丄偦偺傑傑僋儘乕僘偡傞
		CloseAndReportResult(ECompulsion);
		}
	else
		{
		//僞僀儅僋儘乕僘愝掕偝傟偰偄傞
		if(EFalse != iTimerExpiration)
			{
//i-keeper TRK No.10140懳墳 ADD-S
			//傾僯儊乕僔儑儞掆巭張棟
			AnimationControlL(ETrue);
//i-keeper TRK No.10140懳墳 ADD-E
			//僞僀儅枮椆偟偨偁偲偺僋儘乕僘梫媮側偺偱丄廔椆偡傞
			CloseAndReportResult(ECompulsion);
			iTimerExpiration = EFalse;
			}
		else
			{
			//僞僀儅偑枮椆偟偰偄側偄偨傔丄僋儘乕僘梫媮僼儔僌偺傒愝掕偡傞
			iCloseRequest = ETrue;
			}
		}
	}

/**
 * 僨僗僩儔僋僞
 */
EXPORT_C CSmbMusicAPLibProgressDialog::~CSmbMusicAPLibProgressDialog()
	{
	delete iCloseTimer;
	}

/**
 * 僐儞僗僩儔僋僞
 */
CSmbMusicAPLibProgressDialog::CSmbMusicAPLibProgressDialog()
	: CSkonDialogBase(), iCloseIgnoreSelect(ETrue), iCloseIgnoreClear(EFalse),
	iTimerClose(EDialogNoTimer), iTimerExpiration(EFalse), iCloseRequest(EFalse)
	{
	}

/**
 * 儕僜乕僗偵傛傞僐儞僩儘乕儖弶婜壔
 *
 * @param[in]	aResourceId		儕僜乕僗ID
 */
void CSmbMusicAPLibProgressDialog::PrepareLC(TInt aResourceId)
	{
	CSkonDialogBase::PrepareLC(aResourceId);

//i-keeper TRK No.6346懳墳 ADD-S
	//懸偪庴偗僞僀儅僋儔僗傪惗惉偡傞
	iCloseTimer = DCM::CLaAfterTimer::NewL(CActive::EPriorityStandard);
//i-keeper TRK No.6346懳墳 ADD-E
	}

/**
 * 僞僀儅乕枮椆帪僐乕儖僶僢僋
 *
 * @param[in]	aAny	僐乕儖僶僢僋愭僆僽僕僃僋僩
 * @return		僐乕儖僶僢僋寢壥
 */
TInt CSmbMusicAPLibProgressDialog::TimerCallBack(TAny* aAny)
	{
	CSmbMusicAPLibProgressDialog* dialog = static_cast<CSmbMusicAPLibProgressDialog*>(aAny);
	dialog->RequestCallBackEvent();
	return KErrNone;
	}

/**
 * 僐乕儖僶僢僋墳摎張棟
 */
void CSmbMusicAPLibProgressDialog::RequestCallBackEvent()
	{
//i-keeper TRK No.6346懳墳 DEL-S
	//僞僀儅乕僋儔僗傪嶍彍偡傞
//	delete iCloseTimer;
//	iCloseTimer = NULL;
//i-keeper TRK No.6346懳墳 DEL-E

	//僋儘乕僘梫媮僼儔僌傪僠僃僢僋偡傞
	if(EFalse != iCloseRequest)
		{
//i-keeper TRK No.10140懳墳 ADD-S
		//傾僯儊乕僔儑儞掆巭張棟
		AnimationControlL(ETrue);
//i-keeper TRK No.10140懳墳 ADD-E
		//僋儘乕僘梫媮嵪傒偺偨傔丄僟僀傾儘僌傪僋儘乕僘偡傞
		CloseAndReportResult(EHalfSecond);
		iCloseRequest = EFalse;
		}
	else
		{
		//僋儘乕僘梫媮偑敪峴偝傟偰偄側偄偨傔丄僞僀儅枮椆僼儔僌偺傒愝掕偡傞
		iTimerExpiration = ETrue;
		}
	}

/**
 * 僉乕僀儀儞僩張棟
 *
 * @param[in]		aKeyEvent	僉乕僀儀儞僩
 * @param[in]		aType		僀儀儞僩僞僀僾
 * @return		僉乕儗僗億儞僗
 */
EXPORT_C TKeyResponse CSmbMusicAPLibProgressDialog::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType)
	{
	if(aType != EEventKey)
		{
		//EEventKey埲奜偺僉乕僀儀儞僩偼SkonDialogBase偵擟偡
		return CSkonDialogBase::OfferKeyEventL(aKeyEvent, aType);
		}

	switch(aKeyEvent.iCode)
		{
		//寛掕僉乕
		case EWcdmaMpKeySelect :
			{
			if(EFalse == iCloseIgnoreSelect)
				{
				if(NULL != iCloseTimer)
					{
					//僞僀儅乕僋儔僗傪嶍彍偡傞
					delete iCloseTimer;
					iCloseTimer = NULL;
					}
//i-keeper TRK No.10140懳墳 ADD-S
				//傾僯儊乕僔儑儞掆巭張棟
				AnimationControlL(ETrue);
//i-keeper TRK No.10140懳墳 ADD-E
				CloseAndReportResult(ESelectKey);
				}
			return EKeyWasConsumed;
			}

		//僋儕傾僉乕
		case EWcdmaMpKeyClear :
			{
			if(EFalse == iCloseIgnoreClear)
				{
				if(NULL != iCloseTimer)
					{
					//僞僀儅乕僋儔僗傪嶍彍偡傞
					delete iCloseTimer;
					iCloseTimer = NULL;
					}
//i-keeper TRK No.10140懳墳 ADD-S
				//傾僯儊乕僔儑儞掆巭張棟
				AnimationControlL(ETrue);
//i-keeper TRK No.10140懳墳 ADD-E
				CloseAndReportResult(EClearKey);
				}
			return EKeyWasConsumed;
			}

		default:
			{
			//壗傕偟側偄
			}
			break;
		}

	TKeyResponse res = EKeyWasNotConsumed;
	res = CSkonDialogBase::OfferKeyEventL(aKeyEvent, aType);
	return res;
	}

//i-keeper TRK No.10140懳墳 ADD-S
/**
 * 張棟拞傾僯儊乕僔儑儞惂屼張棟
 *
 * @param[in]	aClosed		僋儘乕僘張棟偱偁傞偐(ETrue丗Close張棟丂EFalse丗昞帵張棟)
 */
void CSmbMusicAPLibProgressDialog::AnimationControlL(TBool aClosed)
	{
	//僀儊乕僕儔儀儖偺億僀儞僞傪庢摼偡傞
	CSkonImageLabel* imageLabel = static_cast<CSkonImageLabel*>(ProgressLabel()->ComponentControl(CSkonCompoundProgressLabel::EImageLabel));
	if((EFalse == aClosed) && (EFalse != imageLabel->IsPaused()))
		{
		//傾僯儊乕僔儑儞傪嵞奐偡傞
		imageLabel->PauseL();
		}
	else if((EFalse != aClosed) && (EFalse == imageLabel->IsPaused()))
		{
		//傾僯儊乕僔儑儞傪掆巭偡傞
		imageLabel->PauseL();
		}
	}
//i-keeper TRK No.10140懳墳 ADD-E
// end of SmbMusicAPLibProgressDialog.cpp
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */

⌨️ 快捷键说明

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