📄 smbmusicapsingleplayerutils.cpp
字号:
/*----------------------------------------------------------------------------*/
// Copyright (c) 2007Sony Ericsson Mobile Communications Japan, Inc.
// All rights reserved.
/*----------------------------------------------------------------------------*/
// FileName:
// SmbMusicAPSinglePlayerUtils.cpp
//
// Description:堦嬋嵞惗僾儗僀儎乕梡Util
//
// Modify:
// 2007-02-01 怴婯 K3Hirono
/*------------------------------------------------------------------------*/
// $NoKeywords: $
#ifndef SMBMUSICAPSINGLEPLAYERUTILS_H_
#include "SmbMusicAPSinglePlayerUtils.h" //堦嬋嵞惗僾儗僀儎乕Util
#endif //SMBMUSICAPSINGLEPLAYERUTILS_H_
#ifndef __BITDEV_H__
#include <bitdev.h> //Bitmap昤夋梡
#endif //__BITDEV_H__
SEMCJ_NAMESPACE_BEGIN
/**
* 傾僀僐儞傪撉傒崬傓
*
* @param TInt aId 價僢僩儅僢僾ID
* @param TInt aMaskId 價僢僩儅僢僾ID
* @param RPointerArray<CGulIcon>& aArray 傾僀僐儞傪奿擺偡傞攝楍
* @return void
*/
void SmbMusicAPSinglePlayerIconUtils::LoadIconL(TInt aId, TInt aMaskId, RPointerArray<CGulIcon>& aArray, const TDesC& aFileName)
{
// 傾僀僐儞偺惗惉偲搊榐
CGulIcon* icon = CreateIconL(aId, aMaskId, aFileName); // bmp偲bmpMask偺強桳尃偑埾忳偝傟傞
CleanupStack::PushL(icon);
User::LeaveIfError(aArray.Append(icon));
CleanupStack::Pop(icon);
}
void SmbMusicAPSinglePlayerIconUtils::LoadIconL(TInt aMaskId, TRgb aRgb, TSize aSize, RPointerArray<CGulIcon>& aArray, const TDesC& aFileName)
{
// 傾僀僐儞偺惗惉偲搊榐
CGulIcon* icon = CreateIconL(aMaskId, aRgb, aSize, aFileName); // bmp偲bmpMask偺強桳尃偑埾忳偝傟傞
CleanupStack::PushL(icon);
User::LeaveIfError(aArray.Append(icon));
CleanupStack::Pop(icon);
}
/**
* 傾僀僐儞傪嶌傞
*
* @memo 價僢僩儅僢僾偲儅僗僋夋憸偐傜傾僀僐儞傪惗惉偡傞
* @param TInt aId 價僢僩儅僢僾ID
* @param TInt aMaskedId 儅僗僋夋憸ID
* @param const TDesC& aFileName 夋憸偑奿擺偝傟偰偄傞僼傽僀儖柤
* @return CGulIcon* 惗惉偟偨傾僀僐儞
*/
CGulIcon* SmbMusicAPSinglePlayerIconUtils::CreateIconL(TInt aId, TInt aMaskId, const TDesC& aFileName)
{
// 夋憸
CFbsBitmap* bmp = new(ELeave) CFbsBitmap();
CleanupStack::PushL(bmp);
User::LeaveIfError(bmp->Load(aFileName, aId));
// 儅僗僋夋憸
CFbsBitmap* bmpMask = new(ELeave) CFbsBitmap();
CleanupStack::PushL(bmpMask);
User::LeaveIfError(bmpMask->Load(aFileName, aMaskId));
// 傾僀僐儞偺惗惉偲搊榐
CGulIcon* icon = CGulIcon::NewL(bmp, bmpMask); // bmp偲bmpMask偺強桳尃偑埾忳偝傟傞
CleanupStack::Pop(bmpMask);
CleanupStack::Pop(bmp);
return icon;
}
/**
* 傾僀僐儞傪嶌傞
*
* @memo 巜掕偟偨怓偱丄儅僗僋夋憸傪巊偭偰傾僀僐儞傪惗惉偡傞(僥僀僗僩昤夋梡)
* @param TInt aMaskId 儅僗僋夋憸ID
* @param TRgb aRgb 巜掕怓
* @param TSize aSize 夋憸僒僀僘
* @param const TDesC& aFileName 夋憸僼傽僀儖柤
* @return CGulIcon* 惗惉偟偨傾僀僐儞
*/
CGulIcon* SmbMusicAPSinglePlayerIconUtils::CreateIconL(TInt aMaskId, TRgb aRgb, TSize aSize, const TDesC& aFileName)
{
CFbsBitmap* bmp = new (ELeave) CFbsBitmap();
CleanupStack::PushL(bmp);
User::LeaveIfError(bmp->Create(aSize, EColor64K));
CFbsBitGc* gc = NULL;
CFbsBitmapDevice* bitmapDevice = CFbsBitmapDevice::NewL(bmp);
CleanupStack::PushL(bitmapDevice);
User::LeaveIfError(bitmapDevice->CreateContext(gc));
CleanupStack::PushL(gc);
gc->SetBrushStyle( CGraphicsContext::ESolidBrush );
gc->SetBrushColor(aRgb);
gc->DrawRect(TRect(aSize));
CleanupStack::PopAndDestroy(2);
// 儅僗僋夋憸
CFbsBitmap* bmpMask = new(ELeave) CFbsBitmap();
CleanupStack::PushL(bmpMask);
User::LeaveIfError(bmpMask->Load(aFileName, aMaskId));
// 傾僀僐儞偺惗惉偲搊榐
CGulIcon* icon = CGulIcon::NewL(bmp, bmpMask); // bmp偲bmpMask偺強桳尃偑埾忳偝傟傞
CleanupStack::Pop(bmpMask);
CleanupStack::Pop(bmp);
return icon;
}
/**
* 埵抲偺曗惓(TPoint)
*
* @param TPoint aPoint 曗惓慜偺嵗昗
* @param TPoint aAdjust 曗惓抣
* @return TPoint 曗惓屻偺嵗昗
*/
TPoint SmbMusicAPSinglePlayerIconUtils::AdjustPoint(TPoint aPoint, TPoint aAdjust)
{
TInt y = aPoint.iY + aAdjust.iY;
TInt x = aPoint.iX + aAdjust.iX;
return TPoint(x,y);
}
/**
* 埵抲偺曗惓(TRect)
*
* @param TRect aRect 曗惓慜偺嵗昗
+ @param TPoint aAdjust 曗惓抣
* @return 曗惓屻偺Rect
*/
TRect SmbMusicAPSinglePlayerIconUtils::AdjustRect(TRect aRect, TPoint aAdjust)
{
TRect rect = aRect;
rect.Normalize();
rect.Move(aAdjust);
return rect;
}
SEMCJ_NAMESPACE_END
// end of SmbMusicAPSinglePlayerUtils.cpp
/* Copyright (C) 2007 Sony Ericsson Mobile Communications Japan, Inc. */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -