📄 tempview.cpp
字号:
/* Copyright (c) 2007, Nokia. All rights reserved */
#include <akncontext.h>
#include <aknnotewrappers.h>
#include <akntitle.h>
#include <HelloLDCI.rsg>
#include <Helloldci.mbg>
#include <s32file.h>
#include "HelloLDCIAppUi.h"
#include "TempView.h"
#include "TempContainer.h"
#include "HelloLDCI.hrh"
#include "AddressCenter.h"
#include <eikmenub.h>
#include <coecntrl.h>
//数据
_LIT(KNAME, "My Name is Jerry");
_LIT(KTEL, "13810010010");
CTempView* CTempView::NewL()
{
CTempView* self = NewLC();
CleanupStack::Pop(self);
return self;
}
CTempView* CTempView::NewLC()
{
CTempView* self = new (ELeave) CTempView();
CleanupStack::PushL(self);
self->ConstructL();
return self;
}
void CTempView::ConstructL()
{
BaseConstructL(R_HL_TEMP_VIEW);
m_pAddressCenter = CAddressCenter::NewL(KNAME,KTEL);
}
CTempView::CTempView()
{
m_pAppContainer = NULL;
aflag = ETrue;
}
CTempView::~CTempView()
{
// m_pAddressCenter->Distroy();
delete m_pAddressCenter;
}
TUid CTempView::Id() const
{
return TUid::Uid(ETempViewID);
}
void CTempView::HandleCommandL(TInt aCommand)
{
switch(aCommand)
{
//包含子菜单:EHLTempCCTV1、EHLTempCCTV2,操作大多在子菜单中进行处理
// case EHLTempCCTV: //goto colorView
// break;
case EHLTempHNTV:
aflag = !aflag;
break;
case EHLTempFHTV: //go to grid
AppUi()->ActivateLocalViewL(TUid::Uid(EGridViewID));
break;
case EHLTempCCTV1:
// WriteFileByText();
WriteFileByStream();
break;
case EHLTempCCTV2:
// ReadFileByText();
ReadFileByStream();
break;
default:
AppUi()->HandleCommandL(aCommand);
break;
}
}
void CTempView::HandleClientRectChange()
{
}
void CTempView::DoActivateL(const TVwsViewId&, TUid, const TDesC8&)
{
m_pAppContainer = new( ELeave ) CTempContainer();
m_pAppContainer->SetMopParent(this);
m_pAppContainer->ConstructL( TRect(TPoint(0,44),TPoint(176,188)));
//传递m_pAddressCenter的指针到CTempContainer
m_pAppContainer->SetAddress(m_pAddressCenter);
AppUi()->AddToStackL( *this, m_pAppContainer );
//加载位图(icon,mask)
TBuf<KMaxPath> pathMbm;
#ifdef __WINS__
pathMbm.Copy(_L("\\system\\apps\\HELLOLDCI\\helloldci.mbm"));
#else
//手机上执行如下代码:2009-02-10 15:00
CHelloLDCIAppUi* pApp = (CHelloLDCIAppUi*)CEikonEnv::Static()->AppUi();
pApp->GetAppPath(pathMbm);
pathMbm.Append(_L("helloldci.mbm"));
#endif
CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(pathMbm, EMbmHelloldciSnoopy_2_icon);
CFbsBitmap* bitmapmask = iEikonEnv->CreateBitmapL(pathMbm, EMbmHelloldciSnoopy_2_mask);
// CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(_L("\\system\\apps\\HELLOLDCI\\helloldci.mbm"), EMbmHelloldciSnoopy_2_icon);
// CFbsBitmap* bitmapmask = iEikonEnv->CreateBitmapL(_L("\\system\\apps\\HELLOLDCI\\helloldci.mbm"), EMbmHelloldciSnoopy_2_mask);
//修改视图图标:2009-02-10
//获取状态面板的指针
CEikStatusPane* sp=StatusPane(); //iEikonEnv->AppUiFactory()->StatusPane();
//Set view icon
CAknContextPane* contextPane = (CAknContextPane*) sp->ControlL(TUid::Uid(EEikStatusPaneUidContext));
//设置图片
contextPane->SetPicture(bitmap,bitmapmask);
//设置view标题
TBuf<32> title;
//从资源中加载文字
CEikonEnv::Static()->ReadResource(title, R_HD_TEMPVIEW_TITLE);
CAknTitlePane* titlePane = (CAknTitlePane*) sp->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
titlePane->SetTextL(title);
}
void CTempView::DoDeactivate()
{
if(m_pAppContainer)
{
AppUi()->RemoveFromStack( m_pAppContainer );
delete m_pAppContainer;
m_pAppContainer = NULL;
}
}
// void CTempView::DynInitMenuBarL(TInt aResourceId, CEikMenuBar* aMenuBar)
// {
// // if(aResourceId != R_TEMP_MENUBAR2)
// // {
// // aMenuBar->SetMenuTitleResourceId(R_TEMP_MENUBAR2);
// // }
// // else if(aResourceId != R_TEMP_MENUBAR)
// // {
// // aMenuBar->SetMenuTitleResourceId(R_TEMP_MENUBAR);
// // }
//
// }
//隐藏菜单栏
void CTempView::DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane)
{
if(aResourceId != R_HL_TEMP_MENU) return;
if (aflag)
{
aMenuPane->SetItemDimmed(EHLTempCCTV, ETrue);
aMenuPane->SetItemDimmed(EHLTempHNTV, EFalse);
aMenuPane->SetItemDimmed(EHLTempFHTV, ETrue);
}else
{
aMenuPane->SetItemDimmed(EHLTempCCTV, EFalse);
aMenuPane->SetItemDimmed(EHLTempHNTV, EFalse);
aMenuPane->SetItemDimmed(EHLTempFHTV, EFalse);
}
}
void CTempView::WriteFileByText()
{
RFs session = iCoeEnv->FsSession();
RFile file;
// User::LeaveIfError(file.Create(session,_L("c:\\T20.txt"),EFileWrite));
TInt err = file.Open(session,_L("c:\\T20.txt"),EFileWrite);
if (err == KErrNotFound)
{
file.Create(session,_L("c:\\T20.txt"),EFileWrite);
}
if (err != KErrNone)
{
return;
}
HBufC8* buf8 = HBufC8::NewL(100);
buf8->Des().Copy(_L(" KErrNone"));
file.Write(buf8->Des());
file.Close();
if (buf8)
{
delete buf8;
buf8 = NULL;
}
}
void CTempView::ReadFileByText()
{
RFs session = iCoeEnv->FsSession();
RFile file;
TInt err = file.Open(session,_L("c:\\T20.txt"),EFileRead);
if (err == KErrNotFound)
{
file.Create(session,_L("c:\\T20.txt"),EFileWrite);
}
if (err != KErrNone)
{
return;
}
TInt length;
file.Size(length);
HBufC8* pbuf8 = HBufC8::NewL(length);
file.Read(pbuf8->Des());
file.Close();
HBufC* pbuf16 = HBufC::NewL(length);
pbuf16->Des().Copy(pbuf8->Des());
if (pbuf8)
{
delete pbuf8;
pbuf8 = NULL;
}
if (pbuf16)
{
delete pbuf16;
pbuf16 = NULL;
}
}
void CTempView::WriteFileByStream()
{
RFs session = iCoeEnv->FsSession();
session.Delete(_L("C:\\T20.snow"));
RFileWriteStream writeStream;
User::LeaveIfError(writeStream.Create(session,_L("C:\\T20.snow"),EFileWrite));
writeStream.PushL();
//prepare the data
HBufC* pContent = HBufC::NewL(128);
pContent->Des().Copy(_L("session = iCoeEnv->FsSession()"));
if (pContent)
{
writeStream.WriteInt32L(pContent->Length());
writeStream << pContent->Des();
}
else
{
writeStream.WriteInt32L(0);
}
pContent->Des().Copy(_L("12345678901234567"));
if (pContent)
{
writeStream.WriteInt32L(pContent->Length());
writeStream << pContent->Des();
}
else
{
writeStream.WriteInt32L(0);
}
if (pContent)
{
delete pContent;
pContent = NULL;
}
writeStream.CommitL();
writeStream.Pop();
writeStream.Release();
//writeStream.Close();
}
void CTempView::ReadFileByStream()
{
RFs session = iCoeEnv->FsSession();
// session.Delete(_L("C:\\T20.snow"));
RFileReadStream readStream;
User::LeaveIfError(readStream.Open(session,_L("C:\\T20.snow"),EFileRead));
readStream.PushL();
//prepare the data
TInt length = readStream.ReadInt32L();
if (length > 0)
{
HBufC* pContent = HBufC::NewL(length);
readStream >> pContent->Des();
CAknInformationNote* pNote = new(ELeave)CAknInformationNote;
pNote->ExecuteLD(pContent->Des());
if (pContent)
{
delete pContent;
pContent = NULL;
}
}
length = readStream.ReadInt32L();
if (length > 0)
{
HBufC* pContent1 = HBufC::NewL(length);
readStream >> pContent1->Des();
CAknInformationNote* pNote = new(ELeave)CAknInformationNote;
pNote->ExecuteLD(pContent1->Des());
if (pContent1)
{
delete pContent1;
pContent1 = NULL;
}
}
readStream.Pop();
readStream.Release();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -