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

📄 smbmusicapfilemgrimageview.cpp

📁 索爱手机代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*--------------------------------------------------------------------*/
/**
 * @file  SmbMusicAPFileMgrImageView.cpp
 * @brief 儈儏乕僕僢僋僼傽僀儖娗棟傾僾儕働乕僔儑儞夋憸昞帵View僋儔僗
 */
/*--------------------------------------------------------------------*/
//曄峏棜楌
//擔晅          |曄峏幰     |撪梕
//--------------+-----------+-------------------------------------------
//2006/07/04    |SDNA挿旜   |怴婯嶌惉
//2006/07/06    |SDNA挿旜   |審悢昞帵偺張棟傪曄峏
//2006/07/07    |SDNA挿旜   |弶婜壔儕僗僩偵iIconCache(NULL)傪捛壛
//2006/07/11    |SDNA挿旜   |僐乕僨傿儞僌婯栺忋偺廋惓
//              |           |  - ClearImageL()ClearImage()偵柤徧傪曄峏
//2006/07/12    |SDNA挿旜   |AddControlL()屇傃弌偟偺捈慜偵CleanupStack::Pop()傪偡傞傛偆偵曄峏
//2006/07/15    |SDNA挿旜   |夋憸偺昞帵僒僀僘偑巇條斖埻撪偐偳偆偐偺敾掕張棟傪捛壛
//              |           |  - IsValidImageSize()傪捛壛
//              |           |  - ShowImageL()傪廋惓
//2006/07/20    |SDNA挿旜   |IsValidImageSize()傪廋惓
//2006/07/22    |SDNA挿旜   |夋憸僒僀僘傪弅彫昞帵偡傞張棟傪捛壛
//              |           |  - ShrinkImageSize()傪捛壛
//              |           |  - NotifyRequestImageFileCompleteL()傪曄峏
//              |           |  - ShowImageL()傪曄峏
//2006/07/22    |SDNA挿旜   |夋憸僼傽僀儖庢摼幐攕帪偺僄儔乕張棟傪捛壛
//              |           |  - HandleGetImageFile()傪曄峏
//              |           |  - iImageInfo偺嶍彍張棟傪曄峏
//2006/07/26    |SDNA挿旜   |弅彫屻偺僒僀僘偑0偵側傞栤戣傪廋惓 (ShrinkImageSize())
//2006/07/25    |SDNA挿旜   |儊儞僶曄悢iDialogResourceId偺埖偄傪廋惓 (HandleCloseEventL())
//2006/07/26    |SDNA挿旜   |HandleCloseEventL()廔椆屻偵僟僀傾儘僌傪徚嫀偡傞僔乕働儞僗偵曄峏 (HandleCloseEventL())
//2006/07/31    |SDNA挿旜   |巕婲摦傾僾儕偱廔榖僉乕墴壓偝傟偨応崌丆傾僾儕傪廔椆偡傞傛偆偵廋惓 (DoViewActivatedImplL()) (TRK5234)
//2006/08/01    |SDNA挿旜   |壧帉夋憸曐懚僟僀傾儘僌偵懳墳偡傞傛偆偵廋惓 (HandleCloseEventL()) (TRK5331)
//2006/08/02    |SDNA挿旜   |價儏乕偺嵞昞帵帪偵乽曐懚乿僉乕僈僀僟儞僗偑堦弖昞帵偝傟傞栤戣傪廋惓
//              |           |  - 乽曐懚乿偺僨僼僅儖僩昞帵張棟傪傪DoConstructContainerL()偐傜DoViewActivatedImplL()偵堏峴
//2006/08/02    |SDNA挿旜   |怴婯價儏乕庬暿偵懳墳 (DoViewActivatedImplL())
//2006/08/03    |SDNA挿旜   |CSmbMMIconCache()偺懼傢傝偵CSmbMusicAPFileSystemComIconCache()傪巊梡
//2006/08/04    |SDNA挿旜   |戙懼夋憸傪昞帵偡傞張棟傪捛壛 怴婯價儏乕庬暿偵懳墳 (ShowImageL())
//2006/08/07    |SDNA挿旜   |昤夋嵗昗傪惓婯側僨乕僞(KSmbLayout_***)偵曄峏
//              |           |  - KDenominatorImagePos, KSlashImagePos, KDominatorImagePos偺曄峏
//              |           |  - ShowImageL()偺曄峏
//2006/08/11    |SDNA挿旜   |巕婲摦傾僾儕偱廔榖僉乕墴壓偝傟偨応崌丆廔榖僉乕僀儀儞僩僴儞僪儖張棟傪幚峴偡傞傛偆偵廋惓 (DoViewActivatedImplL())
//2006/08/23    |SDNA挿旜   |夋憸曐懚姰椆屻偵丆曐懚姰椆僟僀傾儘僌傪昞帵偡傞傛偆偵廋惓 (DoViewActivatedImplL()) (TRK6845)
//2006/08/25    |SDNA挿旜   |儊儌儕僼儖偵傛傞夋憸曐懚幐攕帪偵丆儊儌儕僼儖巪僟僀傾儘僌傪昞帵偡傞傛偆偵廋惓 (DoViewActivatedImplL()) (TRK6980, TRK7690)
//2006/08/25    |SDNA挿旜   |僕儍働僢僩/壧帉夋憸偑慛柧偵弅彫昞帵偝傟側偄栤戣傪廋惓 (TRK6799)
//              |           |  - ShowImageL()偺曄峏
//2006/08/29    |SDNA挿旜   |奜晹儊儌儕忋偺巕婲摦傾僾儕昞帵拞偵丆奜晹儊儌儕敳嫀屻偵儊儌儕側偟夋柺偵慗堏偡傞張棟傪捛壛 (TRK5992)
//              |           |  - DoViewActivatedImplL()偺廋惓
//2006/08/30    |SDNA挿旜   |夋柺儗僀傾僂僩傪乽夋柺僨僓僀儞巜帵彂Ver2.8乿偵懳墳 (ShowImageL()) (TRK5783娭楢)
//2006/09/12    |SDNA挿旜   |僕儍働僢僩夋憸曐懚妋擣僟僀傾儘僌傪昞帵偡傞傛偆偵廋惓 (HandleCloseEventL())
//2006/09/13    |SDNA挿旜   |價儏乕偺嵞昞帵帪偵嵍塃僉乕僈僀僟儞僗偑堦弖昞帵偝傟傞栤戣傪廋惓 (DoViewActivatedImplL())
//2006/09/16    |SDNA挿旜   |儘僌弌椡張棟偺曄峏
//2006/09/20    |SDNA挿旜   |摟夁GIF懳墳 (ShowImageL())
//2006/09/26    |SDNA挿旜   |CSmbMusicAPFileSystemComIconCache()偺懼傢傝偵CSmbMusicAPLibIconCache()傪巊梡
//2006/10/03    |SDNA挿旜   |僨乕僞BOX曐懚傾僾儕婲摦拞偺奜晹儊儌儕敳嵎帪偵丆僼僅儖僟慖戰夋柺偵慗堏偡傞傛偆廋惓
//              |           |  - DoViewActivatedImplL(), HandleCloseEventL()偺廋惓
//2006/10/04    |SDNA挿旜   |僐乕僨傿儞僌婯栺忋偺廋惓
//2006/10/09    |SDNA挿旜   |夋憸傪僒僀僋儕僢僋昞帵偡傞傛偆偵廋惓 (TRK11229)
//              |           |  - SetArrowState()傪廋惓
//2006/10/10    |SDNA挿旜   |僕儍働僢僩/壧帉夋憸昞帵偵偍偄偰丆夋憸昞帵偺慜偵夋憸枃悢傪昞帵偡傞傛偆偵曄峏
//              |           |  - ShowImageCount()傪捛壛
//              |           |  - DoViewActivatedImplL(), ShowImageL()傪廋惓
//2006/10/12    |SDNA挿旜   |夋憸撉傒崬傒拞偵恑捇僟僀傾儘僌(揥奐拞)傪昞帵偡傞傛偆偵廋惓 (TRK9260)
//              |           |  - ShowImageL(), HandleCloseEventL()傪廋惓
//2006/10/16    |SDNA挿旜   |儘僌僒乕僶傪僐儞僗僩儔僋僞偐傜庢摼偟側偄傛偆偵曄峏
//2006/10/17    |SDNA挿旜   |恑捇僟僀傾儘僌僋儘乕僘帪偵傾僯儊乕僔儑儞傪掆巭偡傞傛偆偵廋惓 (TRK10140傛傝)
//              |           |  - HandleCloseEventL()傪HandleCloseEventImplL()偵曄峏
//2006/10/17    |SDNA挿旜   |僐乕僨傿儞僌婯栺忋偺廋惓
//2006/10/19    |SDNA挿旜   |庢摼偟偨憤枃悢(totalCount)偑巇條挻夁偺応崌丆巇條斖埻撪偵娵傔崬傓傛偆廋惓 (TRK11864)
//              |           |  - DoViewActivatedImplL()傪廋惓
//--------------+-----------+-------------------------------------------
//PTX824
//2007/03/16    |SEMC崃绮   |SD僇乕僪撪夋憸昞帵View傪Sd-Bind偲偦傟埲奜偵暘妱
//2007/03/19    |SEMC崃绮   |儕僜乕僗嫞崌幚憰

#include <SmbCommonDef.h>
#include <SmbAfWordingFormatter.h>
#include <Music.mbg>
#include <Photo.mbg>
#include <SmbAfWording.rsg>
#include <SmbDbxAppInterface.h>
#include <SmbMusicAPFileMgrExternalInterface.h>
#include "SmbMusicAPFileMgrDocument.h"
#include "SmbMusicAPFileMgrImageView.h"
#include "SmbMusicAPFileMgrImageCmd.h"
#include "SmbMusicAPFileMgrActionController.h"
#include "SmbMusicAPFileMgrDebugLog.h"
#include "SmbMusicAPFileMgr.hrh"

#include <SmbMusicAPFileMgr.rsg>

USING_NAMESPACE_SEMCJ


///////////////////////////////////////////////////////////////////////////////
/**
 * @brief 夋憸昞帵夋柺峔抸梡僷儔儊乕僞
 */
const TAfViewParam KMusicAPFileMgrImageViewParam =
	{
	ESmbMusicAPFileMgrImageView,	///< 價儏乕ID
	0,								///< 僞僀僩儖
	R_IMAGE_KEYGUIDANCE				///< 僉乕僈僀僟儞僗
	};

/**
 * @brief 戙懼夋憸傾僀僐儞僷僗
 */
_LIT(KMusicImagePath, "Z:\\WcdmaMp\\Media\\Image\\Music.mbm" );

/**
 * @brief 夋憸枃悢傾僀僐儞僷僗
 */
_LIT(KPhotoImagePath, "Z:\\WcdmaMp\\Media\\Image\\Photo.mbm" );

/**
 * @brief 夋憸枃悢(暘巕)傾僀僐儞昞帵埵抲
 */
LOCAL_D const TSmbMusicAPFileMgrPoint KDenominatorImagePos = {KSmbLayout_UI_MPM_A_1_1_X,
                                                              KSmbLayout_UI_MPM_A_1_1_Y - KSmbLayout_PICT_H};
/**
 * @brief 夋憸枃悢(僗儔僢僔儏)傾僀僐儞昞帵埵抲
 */
LOCAL_D const TSmbMusicAPFileMgrPoint KSlashImagePos       = {KSmbLayout_UI_MPM_A_1_1_X + KSmbLayout_UI_MPM_A_1_1_W,
                                                              KSmbLayout_UI_MPM_A_1_1_Y - KSmbLayout_PICT_H};
/**
 * @brief 夋憸枃悢(暘曣)傾僀僐儞昞帵埵抲
 */
LOCAL_D const TSmbMusicAPFileMgrPoint KDominatorImagePos   = {KSmbLayout_UI_MPM_A_1_1_X + KSmbLayout_UI_MPM_A_1_1_W * 2,
                                                              KSmbLayout_UI_MPM_A_1_1_Y - KSmbLayout_PICT_H};


/**
 * @param[in]		aAppUi				傾僾儕働乕僔儑儞UI
 */
CSmbMusicAPFileMgrImageView::CSmbMusicAPFileMgrImageView(CSmbMusicAPFileMgrAppUi& aAppUi)
	:CSmbMusicAPFileMgrViewBase(KMusicAPFileMgrImageViewParam, aAppUi), iImageLabel(NULL), iIconCache(NULL),
	 iArrowState(0), iTotalCount(0), iIndex(0), iSoftRightKey(EFalse)
	{
	//
	}


/**
 * 價儏乕僐儅儞僪偺惗惉偍傛傃搊榐傪峴偆丏
 */
void CSmbMusicAPFileMgrImageView::ConstructL(void)
	{
	//	儈儏乕僕僢僋僼傽僀儖娗棟傾僋僔儑儞僐儞僩儘乕儔偺庢摼
	CSmbMusicAPFileMgrActionController& controller = static_cast<CSmbMusicAPFileMgrDocument*>(iAppUi.Document())->Controller();

	// 價儏乕僐儅儞僪偺惗惉丒搊榐
	CSmbMusicAPFileMgrCmdBase* cmd = CSmbMusicAPFileMgrImageCmd::NewL(iAppUi, *this, controller);
	RegistCmd(cmd);
	}


/**
 * 強桳偡傞僆僽僕僃僋僩傪嶍彍偡傞丏
 * @note AddControlL() 偱搊榐偟偨僐儞僩儘乕儖偼 CAfView::~CAfView() 偱嶍彍偝傟傞偨傔丆偙偙偱嶍彍偟偰偼側傜側偄丏
 */
CSmbMusicAPFileMgrImageView::~CSmbMusicAPFileMgrImageView()
	{
	// 強桳偡傞僆僽僕僃僋僩偼偙偙偱嶍彍偡傞丏
	// 偨偩偟 AddControlL 偱搊榐偟偨僐儞僩儘乕儖偼 CAfView::~CAfView 偱
	// 嶍彍偝傟傞偨傔丆偙偙偱嶍彍偟偰偼側傜側偄丏
	delete iIconCache;
	}


/**
 * @param[in]		aTotalCount			夋憸偺憤枃悢
 * @param[in]		aIndex				尰嵼偺夋憸偺僀儞僨僢僋僗斣崋(奐巒:0)
 */
void CSmbMusicAPFileMgrImageView::ShowImageCount(TInt aTotalCount, TInt aIndex)
	{
	// 乽尰嵼昞帵偟偰偄傞夋憸偺枃悢/憤夋憸枃悢乿偺昞帵
	iIndex = aIndex;
	iTotalCount = aTotalCount;
//CQ-TRK8108 DEL-START PTX824
//	KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyRight, EFalse);
//	KeyGuidance()->Apply();
//CQ-TRK8108 DEL-END PTX824
	DrawNow();
	}


//TRK6799 8/25 start
/**
 * @param[in]		aBitmap				Bitmap僨乕僞             (NULL: 夋憸側偟)
 * @param[in]		aMaskBitmap			Bitmap僨乕僞(儅僗僋夋憸) (NULL: 夋憸側偟)
 * @param[in]		aTotalCount			夋憸偺憤枃悢
 * @param[in]		aIndex				尰嵼偺夋憸偺僀儞僨僢僋僗斣崋(奐巒:0)
 * @param[in]		aSave				曐懚壜斲僼儔僌 (ETrue: 曐懚壜 / EFalse: 曐懚晄壜)
 */
void CSmbMusicAPFileMgrImageView::ShowImageL(CFbsBitmap* aBitmap, CFbsBitmap* aMaskBitmap, TInt aTotalCount, TInt aIndex, TBool aSave)
	{
	OUTPUT_LOG3_MUST("aTotalCount: %d, aIndex: %d, aSave: %d", aTotalCount, aIndex, aSave);

	CSkonImageLabel* imageLabel;

	// 僀儊乕僕儔儀儖嶌惉
	imageLabel = new(ELeave) CSkonImageLabel;
	CleanupStack::PushL(imageLabel);
	imageLabel->SetContainerWindowL(*this);
	imageLabel->ConstructL(ETrue);
	if (aBitmap != NULL)
		{
		imageLabel->SetPicture(aBitmap, aMaskBitmap);
		// 僉乕僈僀僟儞僗偺乽曐懚乿僉乕偺昞帵桳柍愝掕
//		KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyRight, aSave);
		iSoftRightKey = aSave;
		}
	else	// 夋憸側偟
		{
		imageLabel->CreatePictureFromFileL(KMusicImagePath, EMbmMusicMc_no_image);	// 夋憸側偟戙懼夋憸
		// 僉乕僈僀僟儞僗偺乽曐懚乿僉乕偺昞帵桳柍愝掕
//		KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyRight, EFalse);
		iSoftRightKey = EFalse;
		}
		
	// 夋憸偺愝掕
	imageLabel->SetRect(TRect(TPoint(KSmbLayout_UI_MPM_A_1_2_X, KSmbLayout_UI_MPM_A_1_2_Y - KSmbLayout_PICT_H),
	                          TSize(KSmbLayout_UI_MPM_A_1_2_W, KSmbLayout_UI_MPM_A_1_2_H)));
	imageLabel->SetResizeMode(CSkonImageLabel::EResizeBoth);
	imageLabel->SetKeepAspectRatio(ETrue);		// 巜掕偟偨昤夋椞堟(size)慡懱偵昤夋偡傞傛偆丆傾僗儁僋僩斾壜曄偱巜掕偡傞
	imageLabel->SetAlignment(EHCenterVCenter);
	imageLabel->SetBackgroundMode(CSkonImageLabel::ETasteDraw, TRgb(0, 0, 0));	// 攚宨偑敄僺儞僋偵側傜側偄傛偆偵丆ETasteDraw傪巜掕
	CleanupStack::Pop(imageLabel);
	AddControlL(imageLabel);
	iImageLabel = imageLabel;
	iImageLabel->ActivateL();
	iImageLabel->DrawNow();

//TRK9260 10/12 start
//CQ-TRK8108 DEL-START PTX824
	// 恑捇僟僀傾儘僌(揥奐拞)傪暵偠傞
//	CloseDialog();
//CQ-TRK8108 DEL-END PTX824
//TRK9260 10/12 end
	
	// 乽尰嵼昞帵偟偰偄傞夋憸偺枃悢/憤夋憸枃悢乿偺昞帵
	if (iIndex != aIndex || iTotalCount != aTotalCount)	// 枃悢偑峏怴偝傟偨応崌偺傒昞帵 (偪傜偮偒梷惂)
		{
		iIndex = aIndex;
		iTotalCount = aTotalCount;
		DrawNow();
		}
//CQ-TRK8108 ADD-START PTX824
	CloseDialog();
//CQ-TRK8108 ADD-END PTX824

	// 僉乕僈僀僟儞僗偺嵍塃僉乕偺昞帵
//CQ-TRK8108 DEL-START PTX824
//	SetArrowState(aTotalCount);
//	KeyGuidance()->Apply();
//CQ-TRK8108 DEL-END PTX824
	}


/**
 * 庡偵埲壓偺張棟傪峴偆丏
 *   -# 僉乕僈僀僟儞僗傪愝掕偡傞丏
 */
void CSmbMusicAPFileMgrImageView::DoConstructContainerL()
	{
	iIconCache = CSmbMusicAPLibIconCache::NewL(KPhotoImagePath);

	// 昤夋帪偵昁梫偲側傞Icon傪帠慜偵儘乕僪偟偰偍偔
	iIconCache->IconL(EMbmPhotoParts_commo_0, EMbmPhotoParts_commo_0m);
	iIconCache->IconL(EMbmPhotoParts_commo_1, EMbmPhotoParts_commo_1m);
	iIconCache->IconL(EMbmPhotoParts_commo_2, EMbmPhotoParts_commo_2m);
	iIconCache->IconL(EMbmPhotoParts_commo_3, EMbmPhotoParts_commo_3m);
	iIconCache->IconL(EMbmPhotoParts_commo_4, EMbmPhotoParts_commo_4m);
	iIconCache->IconL(EMbmPhotoParts_commo_5, EMbmPhotoParts_commo_5m);
	iIconCache->IconL(EMbmPhotoParts_commo_6, EMbmPhotoParts_commo_6m);
	iIconCache->IconL(EMbmPhotoParts_commo_7, EMbmPhotoParts_commo_7m);
	iIconCache->IconL(EMbmPhotoParts_commo_8, EMbmPhotoParts_commo_8m);
	iIconCache->IconL(EMbmPhotoParts_commo_9, EMbmPhotoParts_commo_9m);
	iIconCache->IconL(EMbmPhotoParts_commo_slash, EMbmPhotoParts_commo_slashm);

	// 僉乕僈僀僟儞僗偺僜僼僩2僉乕偵乽曐懚乿傪捛壛偡傞丏
	HBufC* buf = (CEikonEnv::Static())->AllocReadResourceLC(R_SMB_AF_STR_SFT095);
	KeyGuidance()->SetKeyInfoL(ESkonKeyGuidanceSoftKeyRight, *buf, NULL, NULL, ECmdConfirmSaveImage);
	CleanupStack::PopAndDestroy(buf);
	}


/**
 * @param[in]		aViewId				屇傃弌偟尦價儏乕ID
 * @param[in]		aCustomMessageId	儊僢僙乕僕ID
 * @param[in]		aCustomMessage		儊僢僙乕僕僶僢僼傽
 * @leave			res					僼僅乕僇僗愝掕偵幐攕偟偨応崌
 */
void CSmbMusicAPFileMgrImageView::DoViewActivatedImplL(const TVwsViewId& /*aViewId*/,
                                                       TUid aCustomMessageId,
                                                       const TDesC8& aCustomMessage)
	{
	TSmbMusicAPFileMgrViewType localViewType;  // 儘乕僇儖價儏乕愗懼帪偺價儏乕庬暿
	CSmbMusicAPFileSystemComMusicItem* musicItem = NULL;
	TInt totalCount = 0;
	
	// 儘乕僇儖價儏乕愗傝懼偊偺応崌
	if (aCustomMessageId == KSmbMusicAPFileMgrDnlLocalUid)
		{
		// 僇僗僞儉儊僢僙乕僕傪庢摼偡傞丏
		if (aCustomMessage != (TDesC8)KNullDesC8)
			{
			const TSmbMusicAPFileMgrLocalViewStartParam* param;
			param = reinterpret_cast<const TSmbMusicAPFileMgrLocalViewStartParam*>(aCustomMessage.Ptr());
	 		localViewType = param->iViewType;
	 		musicItem = param->iMusicItem;
			totalCount = param->iNum;
			}
		else										// 僇僗僞儉儊僢僙乕僕側偟偺応崌
			{
			__ASSERT_ALWAYS(EFalse, PANIC(KErrArgument));
			return;
			}
		}
	 else	// 儘乕僇儖價儏乕愗傝懼偊偱側偄応崌
		{
		localViewType = ETypeNone;

//TRK6845 8/23 start
		// 僼傽僀儖曐懚傾僾儕偐傜偺恊暅婣偺応崌偼丆曐懚姰椆僟僀傾儘僌傪昞帵偡傞丏
		if (aCustomMessage != (TDesC8)KNullDesC8)
			{
			const TLaViewParam* tmpParam = reinterpret_cast<const TLaViewParam *>(aCustomMessage.Ptr());
			if (tmpParam->iViewId.iAppUid == KSmbDbxFolderSelectAppUid)
				{
				const TSmbDbxFolderSelectReturnParam* param;
				param = reinterpret_cast<const TSmbDbxFolderSelectReturnParam*>(aCustomMessage.Ptr());

				switch (param->iError)
					{
				case ESmbDbxReturnErrNone:			// 惓忢廔椆
					// 曐懚姰椆偺応崌丆曐懚姰椆僟僀傾儘僌傪昞帵偡傞丏
					if (param->iSaveComplete)	// 曐懚姰椆

⌨️ 快捷键说明

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