📄 floatingwindow.cpp
字号:
#include "FloatingWindow.h"
#include <apgtask.h>
#include <eikenv.h>
#include <apgcli.h>
#include <apgwgnam.h>
#include <hal.h>
#include <avkon.mbg>
#include <akniconutils.h>
#include <AknBidiTextUtils.h>
CFloatingWindow::CFloatingWindow()
{
}
CFloatingWindow::~CFloatingWindow()
{
iSprite.Close();
iWindowGroup->Close();
delete iWindowGroup;
iWsSession.Close();
}
CFloatingWindow* CFloatingWindow::NewL(const TRect& aRect, CFbsBitmap* aIcon, CFbsBitmap* aIconMask)
{
CFloatingWindow* self = CFloatingWindow::NewLC(aRect, aIcon, aIconMask);
CleanupStack::Pop();
return self;
}
CFloatingWindow* CFloatingWindow::NewLC(const TRect& aRect, CFbsBitmap* aIcon, CFbsBitmap* aIconMask)
{
CFloatingWindow* self = new (ELeave) CFloatingWindow();
CleanupStack::PushL(self);
self->ConstructL(aRect, aIcon, aIconMask);
return self;
}
void CFloatingWindow::ConstructL(const TRect& aRect, CFbsBitmap* aIcon, CFbsBitmap* aIconMask)
{
iWinPoint = aRect.iTl;
iWinSize = aRect.Size();
TSize sizeInPixels = CEikonEnv::Static()->ScreenDevice()->SizeInPixels();
User::LeaveIfError(iWsSession.Connect());
iWsSession.ComputeMode( RWsSession::EPriorityControlDisabled );
iWindowGroup = new(ELeave) RWindowGroup(iWsSession);
User::LeaveIfError(iWindowGroup->Construct((TUint32) iWindowGroup, EFalse));
iWindowGroup->EnableReceiptOfFocus(EFalse);
iWindowGroup->SetOrdinalPosition(1, ECoeWinPriorityAlwaysAtFront + 1);
iWindowGroup->EnableScreenChangeEvents();
iWindowGroup->EnableFocusChangeEvents();
iWindowGroup->EnableGroupChangeEvents();
iSprite = RWsSprite(iWsSession);
User::LeaveIfError(iSprite.Construct(*iWindowGroup, iWinPoint, 0));
TSpriteMember iSpriteMember;
iSpriteMember.iBitmap = aIcon;
iSpriteMember.iMaskBitmap = aIconMask;
iSpriteMember.iInvertMask = EFalse;
iSpriteMember.iOffset = TPoint (0,0);
iSpriteMember.iInterval = TTimeIntervalMicroSeconds32 (500000);
iSpriteMember.iDrawMode = CGraphicsContext::EDrawModePEN;
User::LeaveIfError(iSprite.AppendMember(iSpriteMember));
User::LeaveIfError(iSprite.Activate());
iSprite.UpdateMember(0);
return;
}
void CFloatingWindow::SetRect(const TRect& aRect)
{
iWinPoint = aRect.iTl;
iWinSize = aRect.Size();
}
// end of file
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -