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

📄 smbmusicapfilemgrstorageinfofolderview.cpp

📁 索爱手机代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	}


/**
 * 梕検昞帵偍傛傃審悢昞帵傪徚嫀偡傞丏
 */
void CSmbMusicAPFileMgrStorageInfoFolderView::ClearStorageInfo(void)
	{
	iMaxSize = 0;
	iUsedSize = 0;
//CQ-TRK7502 MOD-START PTX824
//	TRAPD(error, UpdateRightTextL(*iCapacityContainer, 0, KNullDesC));
	TRAPD(error, UpdateRightTextL(*iCapacityContainer, KNullDesC));
//CQ-TRK7502 MOD-END PTX824
	if (error)
		{
		OUTPUT_LOG1_ERROR("UpdateRightTextL(*iCapacityContainer, 0, KNullDesC): %d", error);
		}
//CQ-TRK7502 MOD-START PTX824
//	TRAP(error, UpdateRightTextL(*iCapacityContainer, 1, KNullDesC));
	TRAP(error, UpdateRightTextL(*iUseSizeContainer, KNullDesC));
//CQ-TRK7502 MOD-END PTX824
	if (error)
		{
		OUTPUT_LOG1_ERROR("UpdateRightTextL(*iCapacityContainer, 1, KNullDesC): %d", error);
		}
//CQ-TRK7502 MOD-START PTX824
//	TRAP(error, UpdateRightTextL(*iCountContainer, 0, KNullDesC));
	TRAP(error, UpdateRightTextL(*iMaxCountContainer, KNullDesC));
//CQ-TRK7502 MOD-END PTX824
	if (error)
		{
		OUTPUT_LOG1_ERROR("UpdateRightTextL(*iCountContainer, 0, KNullDesC): %d", error);
		}
//CQ-TRK7502 MOD-START PTX824
//	TRAP(error, UpdateRightTextL(*iCountContainer, 1, KNullDesC));
	TRAP(error, UpdateRightTextL(*iCountContainer, KNullDesC));
//CQ-TRK7502 MOD-END PTX824
	if (error)
		{
		OUTPUT_LOG1_ERROR("UpdateRightTextL(*iCountContainer, 1, KNullDesC): %d", error);
		}
	}


/**
 * @param[in]		aKeyEvent			僉乕僀儀儞僩 
 * @param[in]		aType				僀儀儞僩僞僀僾 
 * @return			僉乕儗僗億儞僗
 */
TKeyResponse CSmbMusicAPFileMgrStorageInfoFolderView::OfferKeyEventImplL(const TKeyEvent& aKeyEvent, TEventCode /*aType*/)
	{
	switch (aKeyEvent.iCode)
		{
	case EWcdmaMpKeyClear:							// 僋儕傾僉乕
		// 慜夋柺偵慗堏
		iAppUi.HandleCommandL(ECmdBackView);
		return EKeyWasConsumed;				
	default:
		break;
		}
		
	return EKeyWasNotConsumed;
	}


/**
 * 儊儞僶曄悢(CSmbMusicAPFileMgrStorageInfoFolderView::iMaxSize, CSmbMusicAPFileMgrStorageInfoFolderView::iUsedSize)
 * 偵愝掕偝傟偰偄傞抣傪梕検昞帵梡悅捈僐儞僥僫(CSmbMusicAPFileMgrStorageInfoFolderView::iCapacityContainer)偵愝掕偡傞丏
 *
 * @param[in]		aDisplayUnit		昞帵扨埵(KB/MB)
 */
void CSmbMusicAPFileMgrStorageInfoFolderView::UpdateCapacityInfoL(TUnitType aDisplayUnit)
	{
	HBufC* maxSizeText  = NULL;
	HBufC* usedSizeText = NULL;
	
	if (aDisplayUnit == EUnitKB)						// KB昞帵
		{
		TUint maxSize  = CSmbMusicAPFileMgrStorageInfoFolderView::Byte2KByte(iMaxSize);
		TUint usedSize = CSmbMusicAPFileMgrStorageInfoFolderView::Byte2KByte(iUsedSize);
		
		// 巊梡梕検偑憤梕検傪挻偊傞応崌偼憤梕検偲摨抣偲側傞傛偆嫺惓
		if (usedSize > maxSize)
			{
			usedSize = maxSize;
			}
		// 暥帤楍傪惗惉: ###,###,###KB
		maxSizeText  = SmbAfWordingFormatter::FormatLC(*iCoeEnv, R_STORAGEINFOFOLDER_KBSIZE, maxSize);
		usedSizeText = SmbAfWordingFormatter::FormatLC(*iCoeEnv, R_STORAGEINFOFOLDER_KBSIZE, usedSize);
		}
	else												// MB昞帵
		{
		TReal maxSize  = CSmbMusicAPFileMgrStorageInfoFolderView::Byte2MByte(iMaxSize);
		TReal usedSize = CSmbMusicAPFileMgrStorageInfoFolderView::Byte2MByte(iUsedSize);
		
		// 巊梡梕検偑憤梕検傪挻偊傞応崌偼憤梕検偲摨抣偲側傞傛偆嫺惓
		if (usedSize > maxSize)
			{
			usedSize = maxSize;
			}
		// 暥帤楍傪惗惉: ###.#MB
		maxSizeText  = SmbAfWordingFormatter::FormatLC(*iCoeEnv, R_STORAGEINFOFOLDER_MBSIZE, maxSize);
		usedSizeText = SmbAfWordingFormatter::FormatLC(*iCoeEnv, R_STORAGEINFOFOLDER_MBSIZE, usedSize);
		}
//CQ-TRK7502 MOD-START PTX824		
//	UpdateRightTextL(*iCapacityContainer, 0, *maxSizeText);
//	UpdateRightTextL(*iCapacityContainer, 1, *usedSizeText);
	UpdateRightTextL(*iCapacityContainer, *maxSizeText);
	UpdateRightTextL(*iUseSizeContainer, *usedSizeText);
//CQ-TRK7502 MOD-END PTX824
	CleanupStack::PopAndDestroy(usedSizeText);			// SmbAfWordingFormatter::FormatLC
	CleanupStack::PopAndDestroy(maxSizeText);			// SmbAfWordingFormatter::FormatLC	
	}



/**
 * 儊儞僶曄悢(CSmbMusicAPFileMgrStorageInfoFolderView::iMaxCount, CSmbMusicAPFileMgrStorageInfoFolderView::iUsedCount)
 * 偵愝掕偝傟偰偄傞抣傪審悢昞帵梡悅捈僐儞僥僫 (CSmbMusicAPFileMgrStorageInfoFolderView::iCountContainer)偵愝掕偡傞丏
 */
void CSmbMusicAPFileMgrStorageInfoFolderView::UpdateCountInfoL(void)
	{
	HBufC* maxCountText  = SmbAfWordingFormatter::FormatLC(*iCoeEnv, R_SMB_AF_STR_WRD1104, iMaxCount);
	HBufC* usedCountText = SmbAfWordingFormatter::FormatLC(*iCoeEnv, R_SMB_AF_STR_WRD1104, iUsedCount);
//CQ-TRK7502 MOD-START PTX824
//	UpdateRightTextL(*iCountContainer, 0, *maxCountText);
//	UpdateRightTextL(*iCountContainer, 1, *usedCountText);
	UpdateRightTextL(*iMaxCountContainer, *maxCountText);
	UpdateRightTextL(*iCountContainer, *usedCountText);
//CQ-TRK7502 MOD-END PTX824
	CleanupStack::PopAndDestroy(usedCountText);
	CleanupStack::PopAndDestroy(maxCountText);
	}



/**
 * 梕検昞帵僌儔僼偍傛傃嫬奅慄夋憸傪昤夋偡傞丏
 *
 * @param[in]		aRect				昤夋椞堟
 */
void CSmbMusicAPFileMgrStorageInfoFolderView::Draw(const TRect& aRect) const
    {
//MOD-START PTX824
//    CAfView::Draw(aRect);
	CSmbAfView::Draw(aRect);
//MOD-END PTX824

    CWindowGc& gc = CCoeControl::SystemGc();

    // 嫬奅慄夋憸
    TRect r = aRect;
    r.Intersection(KBorderImageRect);
    SkonUtils::DrawHorizontalLine(gc, r);

    const CGulIcon* frame = iIconCache->Icon(EMbmDataboxDb_memory_frame, EMbmDataboxDb_memory_framem);
     __ASSERT_DEBUG(frame != NULL, PANIC(KErrArgument));

    // Frame昤夋
	gc.BitBltMasked(KFrameImagePos, frame->Bitmap(), TRect(TPoint(0, 0), frame->Bitmap()->SizeInPixels()), frame->Mask(), EFalse);

    // Bar昤夋
    const CGulIcon* bar = iIconCache->Icon(EMbmDataboxDb_memory_bar);
    __ASSERT_DEBUG(bar != NULL, PANIC(KErrArgument));

    // 僷乕僙儞僥乕僕偺嶼弌偼KB扨埵偱峴偆
    TUint usedSizeKB = CSmbMusicAPFileMgrStorageInfoFolderView::Byte2KByte(iUsedSize);
    TUint maxSizeKB  = CSmbMusicAPFileMgrStorageInfoFolderView::Byte2KByte(iMaxSize);

    TSize barSize = bar->Bitmap()->SizeInPixels();
    TUint ratio = (iMaxSize != 0) ? (static_cast<TReal>(usedSizeKB) / static_cast<TReal>(maxSizeKB)) * KPercentBase : 0;
    if (ratio > KPercentBase)
    	{
    	ratio = KPercentBase;
    	}
    if (usedSizeKB > 0 && ratio == 0)
        {
        // 巊梡梕検偑0偱側偔丄僷乕僙儞僥乕僕偑0偺応崌偼1偵傑傞傔傞
        ratio = 1;
        }

    // 夋憸1枃傪1%暘偲偟偰昞帵偡傞
    TPoint p = KBarImagePos;
    for (TUint i = 0; i < ratio; ++i)
        {
		gc.BitBlt(p, bar->Bitmap());
        p.iX += barSize.iWidth;
        }
//ADD-START PTX824
	KeyGuidance()->Apply();
//ADD-END PTX824
    }

/**
 *  Byte扨埵偺抣傪KByte扨埵偺抣偵曄姺偡傞丏(彮悢揰愗傝忋偘)
 *
 *  @param[in]		aValue				曄姺懳徾抣 (扨埵Byte)
 *  @return   							曄姺偝傟偨KByte扨埵偺抣
 */
TUint CSmbMusicAPFileMgrStorageInfoFolderView::Byte2KByte(TUint aValue)
	{
    const TUint KUnitKB = 1024;

	TUint ret = aValue / KUnitKB;
	if ((aValue % KUnitKB) > 0)
		{
		ret++;		// 愗傝忋偘
		}

    return ret;
	}

/**
 *  Byte扨埵偺抣傪MByte扨埵偺抣偵曄姺偡傞丏(彮悢揰戞2埵愗傝忋偘)
 *
 *  @param[in]		aValue				曄姺懳徾抣 (扨埵Byte)
 *  @return   							曄姺偝傟偨MByte扨埵偺抣(彮悢揰戞1埵昞帵)
 */
TReal CSmbMusicAPFileMgrStorageInfoFolderView::Byte2MByte(TUint aValue)
	{
	const TUint KUnitMB = 1024 * 1024;

	TReal value = static_cast<TReal>(aValue) / static_cast<TReal>(KUnitMB);
	TReal ret = static_cast<TUint>(value * 10.0) / 10.0;
	if (ret < value)
		{
		ret += 0.1;
		}

	return ret;
	}

//CQ-TRK7502 DEL-START PTX824
#if 0
/**
 * 梕検昞帵梡悅捈僐儞僥僫(CSmbMusicAPFileMgrStorageInfoFolderView::iCapacityContainer)
 *  / 審悢昞帵梡悅捈僐儞僥僫(CSmbMusicAPFileMgrStorageInfoFolderView::iCountContainer) 偵奿擺偝傟偰偄傞悢帤傪愝掕丒峏怴偡傞丏
 *
 * @param[in,out]	aContainer			悅捈僐儞僥僫
 * @param[in]		aIndex				0: 1峴栚 / 1: 2峴栚
 * @param[in]		aValue				擖椡抣
 * @retval			ETrue				峏怴偁傝
 * @retval			EFalse				峏怴側偟
 */
TBool CSmbMusicAPFileMgrStorageInfoFolderView::UpdateRightTextL(CSkonVerticalContainer& aContainer, TInt aIndex, const TDesC& aValue)
	{
	CSkonHorizontalContainer* container = static_cast<CSkonHorizontalContainer*>(aContainer.ControlByIndex(aIndex));
	CSkonTextLabel* label = static_cast<CSkonTextLabel*>(container->RightControl());
	
	if (label->Text() == NULL || *label->Text() != aValue)
		{
		// Layout傪峴偆偨傔偵堦扷嬻暥帤傪愝掕
		_LIT(KEmptyText, "");
		label->SetTextL(KEmptyText);
		label->SetSize(label->MinimumSize());
		container->Layout();
		if (aValue != KNullDesC)
			{
			// 暥帤楍傪愝掕偟丄Layout傪峏怴
			label->SetTextL(aValue);
			label->SetSize(label->MinimumSize());
			container->Layout();
			}
		return ETrue;
		}

	return EFalse;
	}
#endif
//CQ-TRK7502 DEL-END PTX824
	
//CQ-TRK7502 ADD-START PTX824
/**
 * 梕検昞帵梡悅捈僐儞僥僫(CSmbMusicAPFileMgrStorageInfoFolderView::iCapacityContainer)
 *  / 審悢昞帵梡悅捈僐儞僥僫(CSmbMusicAPFileMgrStorageInfoFolderView::iCountContainer) 偵奿擺偝傟偰偄傞悢帤傪愝掕丒峏怴偡傞丏
 *
 * @param[in,out]	aContainer			悅捈僐儞僥僫
 * @param[in]		aIndex				0: 1峴栚 / 1: 2峴栚
 * @param[in]		aValue				擖椡抣
 * @retval			ETrue				峏怴偁傝
 * @retval			EFalse				峏怴側偟
 */
TBool CSmbMusicAPFileMgrStorageInfoFolderView::UpdateRightTextL(CSkonHorizontalContainer& aContainer, const TDesC& aValue)
	{
	CSkonTextLabel* label = static_cast<CSkonTextLabel*>(aContainer.RightControl());
	
	if (label->Text() == NULL || *label->Text() != aValue)
		{
		// Layout傪峴偆偨傔偵堦扷嬻暥帤傪愝掕
		_LIT(KEmptyText, "");
		label->SetTextL(KEmptyText);
		label->SetSize(label->MinimumSize());
		aContainer.Layout();
		if (aValue != KNullDesC)
			{
			// 暥帤楍傪愝掕偟丄Layout傪峏怴
			label->SetTextL(aValue);
			label->SetSize(label->MinimumSize());
			aContainer.Layout();
			}
		Window().BeginRedraw(aContainer.Rect());
		Window().EndRedraw();
		return ETrue;
		}

	return EFalse;
	}
//CQ-TRK7502 ADD-END PTX824

//CQ-TRK14956 ADD-START PTX824
/**  
 * 巜掕Container偺塃Label偺峏怴嬮宍傪庢摼偡傞丅
 *
 *  @param[in] aContainer 峏怴懳徾偺HorizontalContainer僆僽僕僃僋僩丅
 *  @return    峏怴嬮宍丅
 */
TRect CSmbMusicAPFileMgrStorageInfoFolderView::GetLabelUpdateRect(const CSkonHorizontalContainer& aContainer)
	{
	TInt y = static_cast<CSkonTextLabel*>(aContainer.RightControl())->Position().iY;
	return TRect(TPoint(KLabelUpdateRect.TL().iX, y), KLabelUpdateRect.Size());
	}
//CQ-TRK14956 ADD-START PTX824

// end of SmbMusicAPFileMgrStorageInfoFolderView.cpp
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */

⌨️ 快捷键说明

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