?? smbmusicapfilemgrimageview.cpp
字號(hào):
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*--------------------------------------------------------------------*/
/**
* @file SmbMusicAPFileMgrImageView.cpp
* @brief 儈儏乕僕僢僋僼傽僀儖娗棟傾僾儕働乕僔儑儞夋憸昞帵View僋儔僗
*/
/*--------------------------------------------------------------------*/
//曄峏棜楌
//擔(dān)晅 |曄峏幰 |撪梕
//--------------+-----------+-------------------------------------------
//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()傪偡傞傛?zhèn)蓵蠉X
//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偵側(cè)傞栤戣傪廋惓 (ShrinkImageSize())
//2006/07/25 |SDNA挿旜 |儊儞僶曄悢iDialogResourceId偺埖偄傪廋惓 (HandleCloseEventL())
//2006/07/26 |SDNA挿旜 |HandleCloseEventL()廔椆屻偵僟僀傾儘僌傪徚嫀偡傞僔乕働儞僗偵曄峏 (HandleCloseEventL())
//2006/07/31 |SDNA挿旜 |巕婲摦傾僾儕偱廔榖僉乕墴壓偝傟偨応崌丆傾僾儕傪廔椆偡傞傛?zhèn)蓮C惓 (DoViewActivatedImplL()) (TRK5234)
//2006/08/01 |SDNA挿旜 |壧帉夋憸曐懚僟僀傾儘僌偵懳墳偡傞傛?zhèn)蓮C惓 (HandleCloseEventL()) (TRK5331)
//2006/08/02 |SDNA挿旜 |價(jià)儏乕偺嵞昞帵帪偵乽曐懚乿僉乕僈僀僟儞僗偑堦弖昞帵偝傟傞栤戣傪廋惓
// | | - 乽曐懚乿偺僨僼僅儖僩昞帵張棟傪傪DoConstructContainerL()偐傜DoViewActivatedImplL()偵堏峴
//2006/08/02 |SDNA挿旜 |怴婯價(jià)儏乕庬暿偵懳墳 (DoViewActivatedImplL())
//2006/08/03 |SDNA挿旜 |CSmbMMIconCache()偺懼傢傝偵CSmbMusicAPFileSystemComIconCache()傪巊梡
//2006/08/04 |SDNA挿旜 |戙懼夋憸傪昞帵偡傞張棟傪捛壛 怴婯價(jià)儏乕庬暿偵懳墳 (ShowImageL())
//2006/08/07 |SDNA挿旜 |昤夋嵗昗傪惓婯側(cè)僨乕僞(KSmbLayout_***)偵曄峏
// | | - KDenominatorImagePos, KSlashImagePos, KDominatorImagePos偺曄峏
// | | - ShowImageL()偺曄峏
//2006/08/11 |SDNA挿旜 |巕婲摦傾僾儕偱廔榖僉乕墴壓偝傟偨応崌丆廔榖僉乕僀儀儞僩僴儞僪儖張棟傪幚峴偡傞傛?zhèn)蓮C惓 (DoViewActivatedImplL())
//2006/08/23 |SDNA挿旜 |夋憸曐懚姰椆屻偵丆曐懚姰椆僟僀傾儘僌傪昞帵偡傞傛?zhèn)蓮C惓 (DoViewActivatedImplL()) (TRK6845)
//2006/08/25 |SDNA挿旜 |儊儌儕僼儖偵傛?zhèn)閴鎽湑蹜稁笖s帪偵丆儊儌儕僼儖巪僟僀傾儘僌傪昞帵偡傞傛?zhèn)蓮C惓 (DoViewActivatedImplL()) (TRK6980, TRK7690)
//2006/08/25 |SDNA挿旜 |僕儍働僢僩/壧帉夋憸偑慛柧偵弅彫昞帵偝傟側(cè)偄栤戣傪廋惓 (TRK6799)
// | | - ShowImageL()偺曄峏
//2006/08/29 |SDNA挿旜 |奜晹儊儌儕忋偺巕婲摦傾僾儕昞帵拞偵丆奜晹儊儌儕敳嫀屻偵儊儌儕側(cè)偟夋柺偵慗堏偡傞張棟傪捛壛 (TRK5992)
// | | - DoViewActivatedImplL()偺廋惓
//2006/08/30 |SDNA挿旜 |夋柺儗僀傾僂僩傪乽夋柺僨僓僀儞巜帵彂Ver2.8乿偵懳墳 (ShowImageL()) (TRK5783娭楢)
//2006/09/12 |SDNA挿旜 |僕儍働僢僩夋憸曐懚妋擣僟僀傾儘僌傪昞帵偡傞傛?zhèn)蓮C惓 (HandleCloseEventL())
//2006/09/13 |SDNA挿旜 |價(jià)儏乕偺嵞昞帵帪偵嵍塃僉乕僈僀僟儞僗偑堦弖昞帵偝傟傞栤戣傪廋惓 (DoViewActivatedImplL())
//2006/09/16 |SDNA挿旜 |儘僌弌椡張棟偺曄峏
//2006/09/20 |SDNA挿旜 |摟夁GIF懳墳 (ShowImageL())
//2006/09/26 |SDNA挿旜 |CSmbMusicAPFileSystemComIconCache()偺懼傢傝偵CSmbMusicAPLibIconCache()傪巊梡
//2006/10/03 |SDNA挿旜 |僨乕僞BOX曐懚傾僾儕婲摦拞偺奜晹儊儌儕敳嵎帪偵丆僼僅儖僟慖戰(zhàn)夋柺偵慗堏偡傞傛?zhèn)C惓
// | | - DoViewActivatedImplL(), HandleCloseEventL()偺廋惓
//2006/10/04 |SDNA挿旜 |僐乕僨傿儞僌婯栺忋偺廋惓
//2006/10/09 |SDNA挿旜 |夋憸傪僒僀僋儕僢僋昞帵偡傞傛?zhèn)蓮C惓 (TRK11229)
// | | - SetArrowState()傪廋惓
//2006/10/10 |SDNA挿旜 |僕儍働僢僩/壧帉夋憸昞帵偵偍偄偰丆夋憸昞帵偺慜偵夋憸枃悢傪昞帵偡傞傛?zhèn)蓵蠉X
// | | - ShowImageCount()傪捛壛
// | | - DoViewActivatedImplL(), ShowImageL()傪廋惓
//2006/10/12 |SDNA挿旜 |夋憸撉傒崬傒拞偵恑捇僟僀傾儘僌(揥奐拞)傪昞帵偡傞傛?zhèn)蓮C惓 (TRK9260)
// | | - ShowImageL(), HandleCloseEventL()傪廋惓
//2006/10/16 |SDNA挿旜 |儘僌僒乕僶傪僐儞僗僩儔僋僞偐傜庢摼偟側(cè)偄傛?zhèn)蓵蠉X
//2006/10/17 |SDNA挿旜 |恑捇僟僀傾儘僌僋儘乕僘帪偵傾僯儊乕僔儑儞傪掆巭偡傞傛?zhèn)蓮C惓 (TRK10140傛?zhèn)?
// | | - HandleCloseEventL()傪HandleCloseEventImplL()偵曄峏
//2006/10/17 |SDNA挿旜 |僐乕僨傿儞僌婯栺忋偺廋惓
//2006/10/19 |SDNA挿旜 |庢摼偟偨憤枃悢(totalCount)偑巇條挻夁偺応崌丆巇條斖埻撪偵娵傔崬傓傛?zhèn)C惓 (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, ///< 價(jià)儏乕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)
{
//
}
/**
* 價(jià)儏乕僐儅儞僪偺惗惉偍傛?zhèn)褤o榐傪峴偆丏
*/
void CSmbMusicAPFileMgrImageView::ConstructL(void)
{
// 儈儏乕僕僢僋僼傽僀儖娗棟傾僋僔儑儞僐儞僩儘乕儔偺庢摼
CSmbMusicAPFileMgrActionController& controller = static_cast<CSmbMusicAPFileMgrDocument*>(iAppUi.Document())->Controller();
// 價(jià)儏乕僐儅儞僪偺惗惉丒搊榐
CSmbMusicAPFileMgrCmdBase* cmd = CSmbMusicAPFileMgrImageCmd::NewL(iAppUi, *this, controller);
RegistCmd(cmd);
}
/**
* 強(qiáng)桳偡傞僆僽僕僃僋僩傪嶍彍偡傞丏
* @note AddControlL() 偱搊榐偟偨僐儞僩儘乕儖偼 CAfView::~CAfView() 偱嶍彍偝傟傞偨傔丆偙偙偱嶍彍偟偰偼側(cè)傜側(cè)偄丏
*/
CSmbMusicAPFileMgrImageView::~CSmbMusicAPFileMgrImageView()
{
// 強(qiáng)桳偡傞僆僽僕僃僋僩偼偙偙偱嶍彍偡傞丏
// 偨偩偟 AddControlL 偱搊榐偟偨僐儞僩儘乕儖偼 CAfView::~CAfView 偱
// 嶍彍偝傟傞偨傔丆偙偙偱嶍彍偟偰偼側(cè)傜側(cè)偄丏
delete iIconCache;
}
/**
* @param[in] aTotalCount 夋憸偺憤枃悢
* @param[in] aIndex 尰嵼偺夋憸偺僀儞僨僢僋僗斣崋(奐巒:0)
*/
void CSmbMusicAPFileMgrImageView::ShowImageCount(TInt aTotalCount, TInt aIndex)
{
// 乽尰嵼昞帵偟偰偄傞夋憸偺?hào)噽?憤夋憸枃悢乿偺昞帵
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: 夋憸側(cè)偟)
* @param[in] aMaskBitmap Bitmap僨乕僞(儅僗僋夋憸) (NULL: 夋憸側(cè)偟)
* @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 // 夋憸側(cè)偟
{
imageLabel->CreatePictureFromFileL(KMusicImagePath, EMbmMusicMc_no_image); // 夋憸側(cè)偟戙懼夋憸
// 僉乕僈僀僟儞僗偺乽曐懚乿僉乕偺昞帵桳柍愝掕
// 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)慡懱偵昤夋?zhèn)穫閭鎮(zhèn)C傾僗儁僋僩斾壜曄偱巜掕偡傞
imageLabel->SetAlignment(EHCenterVCenter);
imageLabel->SetBackgroundMode(CSkonImageLabel::ETasteDraw, TRgb(0, 0, 0)); // 攚宨偑敄僺儞僋偵側(cè)傜側(cè)偄傛?zhèn)蓙CETasteDraw傪巜掕
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
// 乽尰嵼昞帵偟偰偄傞夋憸偺?hào)噽?憤夋憸枃悢乿偺昞帵
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);
// 昤夋帪偵昁梫偲側(cè)傞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 屇傃弌偟尦價(jià)儏乕ID
* @param[in] aCustomMessageId 儊僢僙乕僕ID
* @param[in] aCustomMessage 儊僢僙乕僕僶僢僼傽
* @leave res 僼僅乕僇僗愝掕偵幐攕偟偨応崌
*/
void CSmbMusicAPFileMgrImageView::DoViewActivatedImplL(const TVwsViewId& /*aViewId*/,
TUid aCustomMessageId,
const TDesC8& aCustomMessage)
{
TSmbMusicAPFileMgrViewType localViewType; // 儘乕僇儖價(jià)儏乕愗懼帪偺價(jià)儏乕庬暿
CSmbMusicAPFileSystemComMusicItem* musicItem = NULL;
TInt totalCount = 0;
// 儘乕僇儖價(jià)儏乕愗傝懼偊偺応崌
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 // 僇僗僞儉儊僢僙乕僕側(cè)偟偺応崌
{
__ASSERT_ALWAYS(EFalse, PANIC(KErrArgument));
return;
}
}
else // 儘乕僇儖價(jià)儏乕愗傝懼偊偱側(cè)偄応崌
{
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) // 曐懚姰椆
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -