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

📄 viewbase.cpp

📁 手机文件浏览器 Here are the sources to SMan v1.2c 1.2 is a major jump from v1.1. You will see this from the
💻 CPP
字号:
#include "viewbase.h"
#include "sman.h"
#include <sman.rsg>

CViewBase::CViewBase(CConfig *cData)
{
	configData = cData;	
	activateCount = 0;
	appPathNoExt.Copy(CEikonEnv::Static()->EikAppUi()->Application()->AppFullName());
	appPathNoExt.SetLength(appPathNoExt.Length() - 3);
	controlsArray = new (ELeave) CArrayPtrSeg<CCoeControl>(1);
	firstTime = ETrue;
}

CViewBase::~CViewBase()
{
	controlsArray->ResetAndDestroy();
	delete controlsArray;
}

void CViewBase::doViewActivated()
{
	if (activateCount <= 0)
	{
		TPixelsAndRotation sizeAndRotation;
		TRect rect;
		
		CEikonEnv::Static()->ScreenDevice()->GetDefaultScreenSizeAndRotation(sizeAndRotation);
		CEikonEnv::Static()->ScreenDevice()->SetScreenSizeAndRotation(sizeAndRotation);
		static_cast<CSMan2AppUi*>(iEikonEnv->AppUi())->switchView(viewId);
		static_cast<CSMan2AppUi*>(iEikonEnv->AppUi())->viewId = viewId;
		MakeVisible(ETrue);
		static_cast<CEikAppUi*>(iEikonEnv->AppUi())->AddToStackL(this);
		if (iCoeEnv->ScreenDevice()->CurrentScreenMode() == 1)
		{
			rect.iTl = TPoint(0, 0);
			rect.iBr = TPoint((CEikonEnv::Static()->ScreenDevice())->SizeInPixels().iWidth, (CEikonEnv::Static()->ScreenDevice())->SizeInPixels().iHeight);
		}
		else if (iCoeEnv->ScreenDevice()->CurrentScreenMode() == 0)
		{
			rect.iTl = static_cast<CEikAppUi*>(iEikonEnv->AppUi())->ClientRect().iTl;
			rect.iBr = static_cast<CEikAppUi*>(iEikonEnv->AppUi())->ClientRect().iBr;
		}
		SetRect(rect);
		activateCount++;
		drawBJackIcon(static_cast<CSMan2AppUi*>(iEikonEnv->AppUi())->iBJackView->oScanner->IsActive());
	}
}

void CViewBase::drawBJackIcon(TBool draw)
{
	bjackIconLabel[static_cast<CSMan2AppUi*>(iEikonEnv->AppUi())->bjackIconLabelCurrentImage]->MakeVisible(EFalse);
	if (draw)
	{
		static_cast<CSMan2AppUi*>(iEikonEnv->AppUi())->bjackIconLabelCurrentImage++;
		if (static_cast<CSMan2AppUi*>(iEikonEnv->AppUi())->bjackIconLabelCurrentImage >= NUM_BJACK_ICONS)
			static_cast<CSMan2AppUi*>(iEikonEnv->AppUi())->bjackIconLabelCurrentImage = 0;
		bjackIconLabel[static_cast<CSMan2AppUi*>(iEikonEnv->AppUi())->bjackIconLabelCurrentImage]->MakeVisible(ETrue);
	}
	else
	{
		for (int i = 0; i < NUM_BJACK_ICONS; i++)
			bjackIconLabel[i]->MakeVisible(EFalse);
	}	
}

void CViewBase::initBJackIcon()
{
	// Bluejack icon.
	TFileName bitmapFile;
	bitmapFile.Copy(appPathNoExt);
	bitmapFile.Append(_L("MBM"));

	for (int i = 0; i < NUM_BJACK_ICONS; i++)
	{
		bjackIconLabel[i] = new (ELeave) CEikImage();
		bjackIconLabel[i]->CreatePictureFromFileL(bitmapFile, EMbmMyheaderBjackframe1 + i, EMbmMyheaderBjackframe1 + i);
		bjackIconLabel[i]->SetContainerWindowL(*this);
		bjackIconLabel[i]->SetExtent(bjackIconPosition, TSize(16, 6));
		bjackIconLabel[i]->MakeVisible(EFalse);
		controlsArray->AppendL(bjackIconLabel[i]);
	}
}

void CViewBase::releaseFont()
{
	iEikonEnv->ScreenDevice()->ReleaseFont(font);
}

void CViewBase::generateZoomFont(TInt zoomLevel)
{
	TZoomFactor zoomFactor;
	zoomFactor.SetZoomFactor(zoomLevel);
	const CFont* normalFont = iEikonEnv->NormalFont();
	TFontSpec fontSpec = normalFont->FontSpecInTwips();
	if(!zoomFactor.GraphicsDeviceMap())
		zoomFactor.SetGraphicsDeviceMap(iEikonEnv->ScreenDevice()); 
	User::LeaveIfError(zoomFactor.GetNearestFontInTwips(font, fontSpec));
}

void CViewBase::Draw(const TRect& aRect) const
{
	CWindowGc& gc = SystemGc();
	gc.Clear(aRect);
}

int CViewBase::CountComponentControls() const
{
	return controlsArray->Count();
}

CCoeControl* CViewBase::ComponentControl(int aIndex) const
{
	if (aIndex < controlsArray->Count())
		return controlsArray->At(aIndex);
	else
		return NULL;
}

⌨️ 快捷键说明

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