?? smbmusicapfilemgrstorageinfofolderview.cpp
字號:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*--------------------------------------------------------------------*/
/**
* @file SmbMusicAPFileMgrStorageInfoFolderView.cpp
* @brief 儈儏乕僕僢僋僼傽僀儖娗棟傾僾儕働乕僔儑儞僼僅儖僟忣曬昞帵View僋儔僗
*/
/*--------------------------------------------------------------------*/
//曄峏棜楌
//擔晅 |曄峏幰 |撪梕
//--------------+-----------+-------------------------------------------
//2006/07/04 |SDNA挿旜 |怴婯嶌惉
//2006/07/07 |SDNA挿旜 |AddControlL()屇傃弌偟偺捈慜偵CleanupStack::Pop()傪偡傞傛偆偵曄峏
//2006/07/11 |SDNA挿旜 |僐乕僨傿儞僌婯栺忋偺廋惓
// | | - _L()儅僋儘偺攑巭
//2006/08/03 |SDNA挿旜 |CSmbMMIconCache()偺懼傢傝偵CSmbMusicAPFileSystemComIconCache()傪巊梡
//2006/09/13 |SDNA挿旜 |慜夋柺慗堏帪偵僼僅儖僟忣曬偺昞帵傪僋儕傾偡傞傛偆偵廋惓
// | | - ClearStorageInfo()傪捛壛丆UpdateRightTextL()偺曄峏
//2006/09/26 |SDNA挿旜 |CSmbMusicAPFileSystemComIconCache()偺懼傢傝偵CSmbMusicAPLibIconCache()傪巊梡
//2006/10/04 |SDNA挿旜 |僐乕僨傿儞僌婯栺忋偺廋惓
//2006/10/16 |SDNA挿旜 |儘僌僒乕僶傪僐儞僗僩儔僋僞偐傜庢摼偟側偄傛偆偵曄峏
#include <SmbMusicAPFileMgrExternalInterface.h>
#include "SmbMusicAPFileMgrDocument.h"
#include "SmbMusicAPFileMgrStorageInfoFolderView.h"
#include "SmbMusicAPFileMgrStorageInfoFolderCmd.h"
#include "SmbMusicAPFileMgrActionController.h"
#include "SmbMusicAPFileMgrDebugLog.h"
#include "SmbMusicAPFileMgr.hrh"
#include <SmbAfWordingFormatter.h>
#include <SmbAfWording.rsg>
#include <SmbMusicAPFileMgr.rsg>
#include <DataBox.mbg>
USING_NAMESPACE_SEMCJ
///////////////////////////////////////////////////////////////////////////////
/**
* @brief 僼僅儖僟忣曬昞帵夋柺峔抸梡僷儔儊乕僞
*/
const TAfViewParam KMusicAPFileMgrStorageInfoFolderViewParam =
{
ESmbMusicAPFileMgrStorageInfoFolderView, ///< 價儏乕ID
R_STORAGEINFOFOLDER_TITLE, ///< 僞僀僩儖
R_STORAGEINFOFOLDER_KEYGUIDANCE ///< 僉乕僈僀僟儞僗
};
/* CSmbDbxStorageInfoFolderView.cpp偺僐乕僪傪揮梡 */
/**
* @brief 僼僅儖僟忣曬昞帵夋柺梡傾僀僐儞僷僗
*/
_LIT( KImagePath, "Z:\\WcdmaMp\\Media\\Image\\DataBox.mbm" );
/**
* @brief 僷乕僙儞僩昞帵梡忔嶼抣
*/
LOCAL_D const TInt KPercentBase = 100;
/**
* @brief TextLabel偺嬮宍巜掕
*/
//CQ-TRK7502 MOD-START PTX824
//LOCAL_D const TSmbMusicAPFileMgrRect KCapacityTextRect = { KSmbLayout_TEXT_MGN_L, KSmbLayout_UI_DBOX_D_1_1_Y - KSmbLayout_PICT_H, KSmbLayout_TEXT_W, KSmbLayout_TL_LAR * 4 + KSmbLayout_UI_DBOX_D_1_T_GAP * 3 };
//LOCAL_D const TSmbMusicAPFileMgrRect KCapacityTextRect = { KSmbLayout_UI_DBOX_E_1_1_X, KSmbLayout_UI_DBOX_D_1_1_Y - KSmbLayout_PICT_H, KSmbLayout_UI_DBOX_E_1_1_W, KSmbLayout_TL_NOR * 4 + KSmbLayout_TL_LAR_GAP * 3 }; /**< TextLabel偺嬮宍巜掕 */
//LOCAL_D const TSmbMusicAPFileMgrRect KCapacityTextRect = { KSmbLayout_UI_DBOX_E_1_1_X, KSmbLayout_UI_DBOX_D_1_1_Y - KSmbLayout_PICT_H, KSmbLayout_UI_DBOX_E_1_1_W, KSmbLayout_TL_NOR * 2 + KSmbLayout_TL_LAR_GAP };
LOCAL_D const TSmbMusicAPFileMgrRect KCapacityTextRect = { KSmbLayout_UI_DBOX_E_1_1_X - KSmbLayout_HC_MIN_MGN_L, KSmbLayout_UI_DBOX_D_1_1_Y /*- KSmbLayout_HC_MIN_MGN_T*/ - KSmbLayout_PICT_H, KSmbLayout_UI_DBOX_D_1_1_W + KSmbLayout_HC_MIN_MGN_L * 2, KSmbLayout_TL_NOR * 2 + KSmbLayout_TL_LAR_GAP };
//LOCAL_D const TSmbMusicAPFileMgrRect KUseSizeTextRect = { KSmbLayout_UI_DBOX_E_1_1_X, KSmbLayout_UI_DBOX_D_1_1_Y - KSmbLayout_PICT_H + KSmbLayout_TL_NOR * 2 + KSmbLayout_TL_LAR_GAP * 2, KSmbLayout_UI_DBOX_E_1_1_W, KSmbLayout_TL_NOR * 2 + KSmbLayout_TL_LAR_GAP };
LOCAL_D const TSmbMusicAPFileMgrRect KUseSizeTextRect = { KSmbLayout_UI_DBOX_E_1_1_X - KSmbLayout_HC_MIN_MGN_L, KSmbLayout_UI_DBOX_D_1_1_Y /*- KSmbLayout_HC_MIN_MGN_T*/ - KSmbLayout_PICT_H + KSmbLayout_TL_NOR * 2 + KSmbLayout_TL_LAR_GAP * 2, KSmbLayout_UI_DBOX_D_1_1_W + KSmbLayout_HC_MIN_MGN_L * 2, KSmbLayout_TL_NOR * 2 + KSmbLayout_TL_LAR_GAP };
//CQ-TRK7502 MOD-END PTX824
/**
* @brief BorderImage偺嬮宍巜掕
*/
LOCAL_D const TSmbMusicAPFileMgrRect KBorderImageRect = { KSmbLayout_BASE_X, KSmbLayout_UI_DBOX_E_1_3_Y - KSmbLayout_PICT_H, KSmbLayout_WIN_W, KSmbLayout_LINE_H };
/**
* @brief TextLabel偺嬮宍巜掕
*/
//CQ-TRK7502 MOD-START PTX824
//LOCAL_D const TSmbMusicAPFileMgrRect KCountTextRect = { KSmbLayout_TEXT_MGN_L, KSmbLayout_UI_DBOX_E_1_4_Y - KSmbLayout_PICT_H, KSmbLayout_TEXT_W, KSmbLayout_TL_LAR * 2 + KSmbLayout_TL_GAP };
//LOCAL_D const TSmbMusicAPFileMgrRect KCountTextRect = { KSmbLayout_UI_DBOX_E_1_4_X, KSmbLayout_UI_DBOX_E_1_4_Y - KSmbLayout_PICT_H, KSmbLayout_UI_DBOX_E_1_1_W, KSmbLayout_TL_NOR * 2 + KSmbLayout_TL_LAR_GAP }; /**< TextLabel偺嬮宍巜掕 */
//LOCAL_D const TSmbMusicAPFileMgrRect KMaxCountTextRect = { KSmbLayout_UI_DBOX_E_1_4_X, KSmbLayout_UI_DBOX_E_1_4_Y - KSmbLayout_PICT_H, KSmbLayout_UI_DBOX_E_1_1_W, KSmbLayout_TL_NOR }; /**< TextLabel偺嬮宍巜掕 */
LOCAL_D const TSmbMusicAPFileMgrRect KMaxCountTextRect = { KSmbLayout_UI_DBOX_E_1_4_X - KSmbLayout_HC_MIN_MGN_L, KSmbLayout_UI_DBOX_E_1_4_Y - KSmbLayout_PICT_H, KSmbLayout_UI_DBOX_E_1_1_W + KSmbLayout_HC_MIN_MGN_L * 2, KSmbLayout_TL_NOR };
//LOCAL_D const TSmbMusicAPFileMgrRect KCountTextRect = { KSmbLayout_UI_DBOX_E_1_4_X, KSmbLayout_UI_DBOX_E_1_4_Y - KSmbLayout_PICT_H + KSmbLayout_TL_NOR + KSmbLayout_TL_LAR_GAP, KSmbLayout_UI_DBOX_E_1_1_W, KSmbLayout_TL_NOR }; /**< TextLabel偺嬮宍巜掕 */
LOCAL_D const TSmbMusicAPFileMgrRect KCountTextRect = { KSmbLayout_UI_DBOX_E_1_4_X - KSmbLayout_HC_MIN_MGN_L, KSmbLayout_UI_DBOX_E_1_4_Y - KSmbLayout_PICT_H + KSmbLayout_TL_NOR + KSmbLayout_TL_LAR_GAP, KSmbLayout_UI_DBOX_E_1_1_W + KSmbLayout_HC_MIN_MGN_L * 2, KSmbLayout_TL_NOR };
//CQ-TRK7502 MOD-END PTX824
/**
* @brief FrameImage偺昞帵埵抲
*/
LOCAL_D const TSmbMusicAPFileMgrPoint KFrameImagePos = { KSmbLayout_BASE_X, KSmbLayout_UI_DBOX_E_1_2_1_Y - KSmbLayout_PICT_H };
/**
* @brief BarImage偺昞帵埵抲
*/
LOCAL_D const TSmbMusicAPFileMgrPoint KBarImagePos = { KSmbLayout_UI_DBOX_A_1_7_X, KSmbLayout_UI_DBOX_E_1_2_2_Y - KSmbLayout_PICT_H };
//CQ-TRK7502 ADD-START PTX824
/**
* @brief TextLabel偺峏怴嬮宍巜掕
*/
//CQ-TRK14956 MOD-START PTX824
//LOCAL_D const TSmbMusicAPFileMgrRect KUpdateCapacityTextRect = { KSmbLayout_UI_DBOX_E_1_1_X - KSmbLayout_HC_MIN_MGN_L, KSmbLayout_UI_DBOX_D_1_1_Y /*- KSmbLayout_HC_MIN_MGN_T*/ - KSmbLayout_PICT_H + KSmbLayout_TL_NOR * 1 + KSmbLayout_TL_LAR_GAP * 1, KSmbLayout_UI_DBOX_D_1_1_W + KSmbLayout_HC_MIN_MGN_L * 2, KSmbLayout_TL_NOR };
//LOCAL_D const TSmbMusicAPFileMgrRect KUpdateUseSizeTextRect = { KSmbLayout_UI_DBOX_E_1_1_X - KSmbLayout_HC_MIN_MGN_L, KSmbLayout_UI_DBOX_D_1_1_Y /*- KSmbLayout_HC_MIN_MGN_T*/ - KSmbLayout_PICT_H + KSmbLayout_TL_NOR * 3 + KSmbLayout_TL_LAR_GAP * 3, KSmbLayout_UI_DBOX_D_1_1_W + KSmbLayout_HC_MIN_MGN_L * 2, KSmbLayout_TL_NOR };
LOCAL_D const TSmbMusicAPFileMgrRect KLabelUpdateRect = { KSmbLayout_BASE_X, 0, KSmbLayout_WIN_W, KSmbLayout_TL_NOR };
//CQ-TRK14956 MOD-END PTX824
//CQ-TRK7502 ADD-END PTX824
/**
* @param[in] aAppUi 傾僾儕働乕僔儑儞UI
*/
CSmbMusicAPFileMgrStorageInfoFolderView::CSmbMusicAPFileMgrStorageInfoFolderView(CSmbMusicAPFileMgrAppUi& aAppUi)
:CSmbMusicAPFileMgrViewBase(KMusicAPFileMgrStorageInfoFolderViewParam, aAppUi), iMaxSize(0), iUsedSize(0)
{
//
}
/**
* 價儏乕僐儅儞僪偺惗惉偍傛傃搊榐傪峴偆丏
*/
void CSmbMusicAPFileMgrStorageInfoFolderView::ConstructL(void)
{
// 儈儏乕僕僢僋僼傽僀儖娗棟傾僋僔儑儞僐儞僩儘乕儔偺庢摼
CSmbMusicAPFileMgrActionController& controller = static_cast<CSmbMusicAPFileMgrDocument*>(iAppUi.Document())->Controller();
// 價儏乕僐儅儞僪偺惗惉丒搊榐
CSmbMusicAPFileMgrCmdBase* cmd = new(ELeave) CSmbMusicAPFileMgrStorageInfoFolderCmd(iAppUi, *this, controller);
CleanupStack::PushL(cmd);
static_cast<CSmbMusicAPFileMgrStorageInfoFolderCmd*>(cmd)->ConstructL();
CleanupStack::Pop(cmd);
RegistCmd(cmd);
}
/**
* 強桳偡傞僆僽僕僃僋僩傪嶍彍偡傞丏
* @note AddControlL() 偱搊榐偟偨僐儞僩儘乕儖偼 CAfView::~CAfView() 偱嶍彍偝傟傞偨傔丆偙偙偱嶍彍偟偰偼側傜側偄丏
*/
CSmbMusicAPFileMgrStorageInfoFolderView::~CSmbMusicAPFileMgrStorageInfoFolderView()
{
// 強桳偡傞僆僽僕僃僋僩偼偙偙偱嶍彍偡傞丏
// 偨偩偟 AddControlL 偱搊榐偟偨僐儞僩儘乕儖偼 CAfView::~CAfView 偱
// 嶍彍偝傟傞偨傔丆偙偙偱嶍彍偟偰偼側傜側偄丏
delete iIconCache;
}
/**
* 庡偵埲壓偺張棟傪峴偆丏
* -# 僐儞僩儘乕儖傪惗惉偡傞丏
*/
void CSmbMusicAPFileMgrStorageInfoFolderView::DoConstructContainerL()
{
iIconCache = CSmbMusicAPLibIconCache::NewL(KImagePath);
// 昤夋帪偵昁梫偲側傞Icon傪帠慜偵儘乕僪偟偰偍偔
iIconCache->IconL(EMbmDataboxDb_memory_frame, EMbmDataboxDb_memory_framem);
iIconCache->IconL(EMbmDataboxDb_memory_bar);
// TResourceReader reader;
//CQ-TRK7502 DEL-START PTX824
#if 0
CSkonVerticalContainer* container = NULL;
// 梕検昞帵僥僉僗僩
container = new(ELeave) CSkonVerticalContainer();
CleanupStack::PushL(container);
container->SetContainerWindowL(*this);
iCoeEnv->CreateResourceReaderLC(reader, R_STORAGEINFOFOLDER_CAPACITY_CONTAINER);
container->ConstructFromResourceL(reader);
CleanupStack::PopAndDestroy(); // buffer of reader
container->SetMargin(0, 0, 0, 0, KSmbLayout_UI_DBOX_D_1_T_GAP);
container->SetRect(KCapacityTextRect);
container->SetOverlapEnable(EFalse);
container->ActivateL();
for (TUint i = 0; i < container->CountControls(); ++i)
{
CSkonHorizontalContainer* hc = static_cast<CSkonHorizontalContainer*>(container->ControlByIndex(i));
hc->SetMarginType(CSkonHorizontalContainer::EMarginManual);
hc->Layout();
}
container->Layout();
CleanupStack::Pop(container);
AddControlL(container);
iCapacityContainer = container;
#endif
//CQ-TRK7502 DEL-END PTX824
//CQ-TRK7502 ADD-START PTX824
//巊梡壜擻梕検昞帵僥僉僗僩
CSkonHorizontalContainer* container = NULL;
container = CreateHContainerL(*this, R_STORAGEINFOFOLDER_CAPACITY_CONTAINER1, KCapacityTextRect);
AddControlL(container);
iCapacityContainer = container;
//巊梡梕検昞帵僥僉僗僩
container = CreateHContainerL(*this, R_STORAGEINFOFOLDER_CAPACITY_CONTAINER2, KUseSizeTextRect);
AddControlL(container);
iUseSizeContainer = container;
//嵟戝審悢昞帵僥僉僗僩
container = CreateHContainerL(*this, R_STORAGEINFOFOLDER_COUNT_CONTAINER1, KMaxCountTextRect);
AddControlL(container);
iMaxCountContainer = container;
//搊榐審悢昞帵僥僉僗僩
container = CreateHContainerL(*this, R_STORAGEINFOFOLDER_COUNT_CONTAINER2, KCountTextRect);
AddControlL(container);
iCountContainer = container;
//CQ-TRK7502 ADD-END PTX824
//CQ-TRK7502 DEL-START PTX824
#if 0
// 審悢昞帵僥僉僗僩
container = new(ELeave) CSkonVerticalContainer();
CleanupStack::PushL(container);
container->SetContainerWindowL(*this);
iCoeEnv->CreateResourceReaderLC(reader, R_STORAGEINFOFOLDER_COUNT_CONTAINER);
container->ConstructFromResourceL(reader);
CleanupStack::PopAndDestroy(); // buffer of reader
container->SetMargin(0, 0, 0, 0, KSmbLayout_TL_GAP);
container->SetRect(KCountTextRect);
container->SetOverlapEnable(EFalse);
container->ActivateL();
for (TUint i = 0; i < container->CountControls(); ++i)
{
CSkonHorizontalContainer* hc = static_cast<CSkonHorizontalContainer*>(container->ControlByIndex(i));
hc->SetMarginType(CSkonHorizontalContainer::EMarginManual);
hc->Layout();
}
container->Layout();
CleanupStack::Pop(container);
AddControlL(container);
iCountContainer = container;
#endif
//CQ-TRK7502 DEL-END PTX824
}
/**
* 巜掕偺儕僜乕僗偵墳偠偨HorizontalContainer僆僽僕僃僋僩傪惗惉偡傞丅
*
* @param[in] aParent 惗惉偡傞Control偺恊Control僆僽僕僃僋僩丅
* @param[in] aResourceId 惗惉偡傞HorizontalContainer偺儕僜乕僗Id丅
* @param[in] aRect 惗惉偡傞HorizontalContainer偺嬮宍僒僀僘丅
* @return 惗惉偟偨HorizontalContainer丅
*/
CSkonHorizontalContainer* CSmbMusicAPFileMgrStorageInfoFolderView::CreateHContainerL(const CCoeControl& aParent, TInt aResourceId, const TRect& aRect)
{
TResourceReader reader;
CSkonHorizontalContainer* hc = new (ELeave) CSkonHorizontalContainer();
CleanupStack::PushL(hc);
hc->SetContainerWindowL(aParent);
iCoeEnv->CreateResourceReaderLC(reader, aResourceId);
hc->ConstructFromResourceL(reader);
CleanupStack::PopAndDestroy(); // buffer of reader
hc->SetRect(aRect);
hc->ActivateL();
CleanupStack::Pop(hc);
return hc;
}
/**
* 僼僅儖僟忣曬偺庢摼傪梫媮偡傞丏(CSmbMusicAPFileMgrStorageInfoFolderCmd::RequestStorageInfoL())
*
* @param[in] aViewId 屇傃弌偟尦價儏乕ID
* @param[in] aCustomMessageId 儊僢僙乕僕ID
* @param[in] aCustomMessage 儊僢僙乕僕僶僢僼傽
* @leave res 僼僅乕僇僗愝掕偵幐攕偟偨応崌
*/
void CSmbMusicAPFileMgrStorageInfoFolderView::DoViewActivatedImplL(const TVwsViewId& /*aViewId*/,
TUid /*aCustomMessageId*/,
const TDesC8& /*aCustomMessage*/)
{
static_cast<CSmbMusicAPFileMgrStorageInfoFolderCmd*>(iCmd)->RequestStorageInfoL();
//ADD-START PTX824
KeyGuidance()->Apply();
//ADD-END PTX824
}
/**
* 梕検丒審悢丒僌儔僼偺昞帵傪峴偆丏
*
* @param[in] aDisplayUnit 昞帵扨埵(KB/MB)
* @param[in] aMaxSize 巊梡壜擻梕検
* @param[in] aUsedSize 巊梡梕検
* @param[in] aMaxCount 搊榐壜擻審悢
* @param[in] aUsedCount 搊榐審悢
*/
void CSmbMusicAPFileMgrStorageInfoFolderView::ShowStorageInfoL(TUnitType aDisplayUnit,
TUint aMaxSize, TUint aUsedSize, TUint aMaxCount, TUint aUsedCount)
{
// 梕検昞帵偺峏怴
iMaxSize = aMaxSize;
iUsedSize = aUsedSize;
UpdateCapacityInfoL(aDisplayUnit);
// 審悢昞帵偺峏怴
iMaxCount = aMaxCount;
iUsedCount = aUsedCount;
UpdateCountInfoL();
// 僌儔僼昞帵偺峏怴
DrawNow();
}
/**
* 梕検偺扨埵傪峏怴偟偰昞帵偡傞丏
*
* @param[in] aDisplayUnit 昞帵扨埵(KB/MB)
*/
void CSmbMusicAPFileMgrStorageInfoFolderView::SetDisplayUnitL(TUnitType aDisplayUnit)
{
UpdateCapacityInfoL(aDisplayUnit);
//CQ-TRK7502 DEL-START PTX824
// iCapacityContainer->DrawNow();
//CQ-TRK14956 MOD-START PTX824
// Window().Invalidate(KUpdateCapacityTextRect);
// Window().Invalidate(KUpdateUseSizeTextRect);
Window().Invalidate(GetLabelUpdateRect(*iCapacityContainer));
Window().Invalidate(GetLabelUpdateRect(*iUseSizeContainer));
//CQ-TRK14956 MOD-END PTX824
//CQ-TRK7502 DEL-END PTX824
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -