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

📄 smbmusicapfilemgrstorageinfofolderview.cpp

📁 索爱手机代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/* 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 + -