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

📄 s60testappview.cpp

📁 《基于symbian os的手机开发与应用》
💻 CPP
字号:
#include <coemain.h>
#include <eikenv.h>

#include "S60TestAppView.h"
#include "S60TestDocument.h"
#include "S60TestEngine.h"
#include "S60Test.mbg"
#include "Step6.rsg"
#include "MyToneClass.h"

const TUint32 CS60TestAppView::KColors[10]=
  {0xffffff, 0xff0000, 0x00ff00, 0x0000ff, 0xff00ff,
   0xcc00dd, 0xadbeef, 0x000000, 0xffff00, 0xaaaaaa};

CS60TestAppView *CS60TestAppView::NewL(const TRect& aRect, CS60TestDocument *aDoc, CS60TestEngine *aEngine)
{
  CS60TestAppView *self=CS60TestAppView::NewLC(aRect, aDoc, aEngine);
  CleanupStack::Pop(self);
  return self;
}

CS60TestAppView* CS60TestAppView::NewLC(const TRect& aRect, CS60TestDocument *aDoc, CS60TestEngine *aEngine)
{
  CS60TestAppView *self=new(ELeave) CS60TestAppView(aDoc, aEngine);
  CleanupStack::PushL(self);
  self->ConstructL(aRect);
  return self;
}

CS60TestAppView::CS60TestAppView(CS60TestDocument *aDoc, CS60TestEngine *aEngine)
{
  iDoc=aDoc;
  iFocus=true;
  iEngine=aEngine;
  CEikonEnv::Static()->ReadResource(iFormatLevel, R_FORMAT_LEVEL);
  CEikonEnv::Static()->ReadResource(iFormatScore, R_FORMAT_SCORE);
}

CS60TestAppView::~CS60TestAppView()
{
  delete iBackground;
  delete iSound;
}

void CS60TestAppView::ConstructL(const TRect& aRect)
{
  _LIT(iPathName, "\\System\\Apps\\Step6\\S60Test.mbm");
  iBackground=CEikonEnv::Static()->CreateBitmapL(iPathName, EMbmS60testTlo);
  CreateWindowL();
  iSound=CMyToneClass::NewL();
  
  iSound->PlayClipL();
  SetRect(aRect);
  ActivateL();
}

void CS60TestAppView::FocusChanged(TDrawNow aDrawNow)
{
  if (IsFocused())
  {
    if (!iFocus)
    {
      iFocus=true;
      iEngine->TechUnpause();
    }
  } else
  {
    if (iFocus)
    {
      iFocus=false;
      iEngine->TechPause();
    }
  }
}

const int KCellSize=7;
const int KBoardOffset=2;

void CS60TestAppView::Draw(const TRect& /*aRect*/) const
{
  CWindowGc &gc=SystemGc();
  TRect rect=Rect();

  gc.UseFont(iCoeEnv->NormalFont());
  gc.DrawBitmap(TPoint(0, 0), iBackground);
  TBuf<32> napis, format;
  napis.Format(iFormatScore, iDoc->iScore);
  gc.DrawText(napis, TPoint(83, 90));
  napis.Format(iFormatLevel, iDoc->iLevel);
  gc.DrawText(napis, TPoint(83, 126));

  int i, j;
  TFixedArray<TInt8, KGridX> arr;
  gc.SetPenColor(TRgb(0));
  gc.SetBrushStyle(CWindowGc::ESolidBrush);
  for (i=0; i<KGridY; i++)
  {
    iDoc->GetRowContent(i, arr);
    for (j=0; j<KGridX; j++)
    {
      gc.SetBrushColor(KColors[arr[j]]);
      if (arr[j])
        gc.DrawRect(TRect(KBoardOffset+KCellSize*j, KBoardOffset+KCellSize*i,
              KBoardOffset+KCellSize*(j+1)+1, KBoardOffset+KCellSize*(i+1)+1));
    }
  }
}

⌨️ 快捷键说明

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