📄 helpview.cpp
字号:
/* Copyright (c) 2007, Nokia. All rights reserved */
#include <gulicon.h>
#include <eikseced.h>
#include <eikccpu.h>
#include <coemain.h>
#include <aknnotewrappers.h>
#include <eikspane.h>
#include <akntitle.h>
#include <akncontext.h>
#include "HelpView.h"
#include "HelpContainer.h"
#include "AssistantAppUi.h"
#include "Assistant.hrh"
#include "Assistant.rsg"
#include "Assistant.mbg"
CHelpView* CHelpView::NewL()
{
CHelpView* self = NewLC();
CleanupStack::Pop(self);
return self;
}
CHelpView* CHelpView::NewLC()
{
CHelpView* self = new (ELeave) CHelpView();
CleanupStack::PushL(self);
self->ConstructL();
return self;
}
void CHelpView::ConstructL()
{
BaseConstructL(R_ASSISTANT_HELP);
SetStatus(EAssistantStatusMain);
}
CHelpView::CHelpView()
{
m_pAppContainer = NULL;
m_pFilePiner = NULL;
}
CHelpView::~CHelpView()
{
}
TUid CHelpView::Id() const
{
return TUid::Uid(4);
}
void CHelpView::HandleCommandL(TInt aCommand)
{
switch(aCommand)
{
case EAssistantBack:
{
switch(m_Status)
{
case EAssistantStatusMain:
AppUi()->ActivateLocalViewL(TUid::Uid(3));
break;
case EAssistantStatusEdit:
AppUi()->ActivateLocalViewL(TUid::Uid(5));
break;
case EAssistantStatusBook:
AppUi()->ActivateLocalViewL(TUid::Uid(10));
break;
case EAssistantStatusMessage:
AppUi()->ActivateLocalViewL(TUid::Uid(7));
break;
default:
AppUi()->HandleCommandL(aCommand);
break;
}
}
break;
}
}
void CHelpView::HandleClientRectChange()
{
if(m_pAppContainer)
{
m_pAppContainer->SetRect(ClientRect());
}
}
void CHelpView::DoActivateL(const TVwsViewId&, TUid, const TDesC8&)
{
m_pAppContainer = new( ELeave ) CHelpContainer();
m_pAppContainer->SetMopParent(this);
ReadFileExL();
m_pAppContainer->SetFilePointers(m_pFilePiner);
TRect rc;
rc.SetRect(ClientRect().iTl, TSize(176,144));
m_pAppContainer->ConstructL(rc);
AppUi()->AddToStackL( *this, m_pAppContainer);
CEikStatusPane* sp=iEikonEnv->AppUiFactory()->StatusPane();
//Set View icon
CAssistantAppUi* pApp = (CAssistantAppUi*)CEikonEnv::Static()->AppUi();
CFbsBitmap* pIcon = pApp->LoadGraphicsL1(16);
CAknContextPane* contextPane = (CAknContextPane*) sp->ControlL(TUid::Uid(EEikStatusPaneUidContext));
contextPane->SetPicture(pIcon);
//Set View Title
TBuf<32> sTmpTitle;
CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_ASSISTANT_HELP);
CAknTitlePane* tp=(CAknTitlePane*)sp->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
tp->SetTextL(sTmpTitle);
}
void CHelpView::DoDeactivate()
{
if(m_pAppContainer)
{
AppUi()->RemoveFromStack( m_pAppContainer );
delete m_pAppContainer;
}
MEMORY_FREE(m_pFilePiner);
}
void CHelpView::SetStatus(TInt aStatus)
{
m_Status = aStatus;
}
void CHelpView::ReadFileExL()
{
RFs& fs = CEikonEnv::Static()->FsSession();
RFile file;
TBuf<50> sFileName;
switch (m_Status)
{
case EAssistantStatusMain:
sFileName.Copy(_L("C:\\system\\Apps\\Assistant\\mainhelp.txt"));
/*{
#ifdef __WINS__
sFileName.Copy(_L("c:\\myfiles.str"));
#else*/
/*sFileName.Copy(_L("c:\\file.str"));*/
/*CAssistantAppUi* pApp = (CAssistantAppUi*)CEikonEnv::Static()->AppUi();
pApp->GetAppPath(sFileName);
sFileName.Append(_L("myfiles.str"));
#endif
}*/
break;
case EAssistantStatusBook:
sFileName.Copy(_L("C:\\system\\Apps\\Assistant\\bookhelp.txt"));
break;
case EAssistantStatusEdit:
sFileName.Copy(_L("C:\\system\\Apps\\Assistant\\memohelp.txt"));
break;
case EAssistantStatusMessage:
sFileName.Copy(_L("C:\\system\\Apps\\Assistant\\messagehelp.txt"));
break;
default:
break;
}
TInt err = file.Open(fs, sFileName, EFileRead);
if(err == KErrNotFound)
{
err = file.Create(fs, sFileName, EFileWrite);
}
if(err!=KErrNone)
{
return ;
}
RFileReadStream readStream;
if(KErrNone != readStream.Open(fs, sFileName,EFileRead))
{
fs.Close();
return;
}
readStream.PushL();
TInt nCount = readStream.ReadInt32L();
if(nCount > 0)
{
MEMORY_FREE(m_pFilePiner);
m_pFilePiner = HBufC::NewLC(nCount);
readStream >> m_pFilePiner->Des();
CleanupStack::Pop();
}
readStream.Pop();
readStream.Release();
fs.Close();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -