📄 noteeditview.cpp
字号:
/* Copyright (c) 2007, Nokia. All rights reserved */
#include <gulicon.h>
#include <eikseced.h>
#include <eikccpu.h>
#include <aknnotewrappers.h>
#include <eikspane.h>
#include <akntitle.h>
#include <akncontext.h>
#include "NoteEditView.h"
#include "NoteEditContainer.h"
#include "AssistantAppUi.h"
#include "Assistant.rsg"
#include "Assistant.hrh"
CNoteEditView* CNoteEditView::NewL()
{
CNoteEditView* self = NewLC();
CleanupStack::Pop(self);
return self;
}
CNoteEditView* CNoteEditView::NewLC()
{
CNoteEditView* self = new (ELeave) CNoteEditView();
CleanupStack::PushL(self);
self->ConstructL();
return self;
}
void CNoteEditView::ConstructL()
{
BaseConstructL(R_ASSISTANT_EDIT);
m_pTitle = NULL;
m_pContent = NULL;
}
CNoteEditView::CNoteEditView()
{
m_pAppContainer = NULL;
}
CNoteEditView::~CNoteEditView()
{
MEMORY_FREE(m_pTitle);
MEMORY_FREE(m_pContent);
}
TUid CNoteEditView::Id() const
{
return TUid::Uid(6);
}
void CNoteEditView::HandleCommandL(TInt aCommand)
{
switch (aCommand)
{
case EAssistantOk:
MEMORY_FREE(m_pTitle);
m_pTitle = HBufC::NewL(32);
MEMORY_FREE(m_pContent);
m_pContent = HBufC::NewL(512);
m_pAppContainer->GetData(m_pTitle->Des(), m_pContent->Des());
if(m_pTitle->Des().Length() == 0)
{
CEikonEnv::Static()->ReadResource(m_pContent->Des(), R_QTN_ASSISTANT_TITLE_ERROR);
CAknInformationNote* informationNote = new (ELeave) CAknInformationNote;
informationNote->ExecuteLD(m_pContent->Des());
}
else
{
AppUi()->ActivateLocalViewL(TUid::Uid(5));
}
break;
case EAssistantCancel:
case EAssistantBack:
{
m_Status = EAssistantStatusCancel;
AppUi()->ActivateLocalViewL(TUid::Uid(5));
break;
}
default:
AppUi()->HandleCommandL(aCommand);
break;
}
}
void CNoteEditView::HandleClientRectChange()
{
if(m_pAppContainer)
{
m_pAppContainer->SetRect(ClientRect());
}
}
void CNoteEditView::DoActivateL(const TVwsViewId&, TUid, const TDesC8&)
{
m_pAppContainer = new( ELeave ) CNoteEditContainer();
m_pAppContainer->SetMopParent(this);
TRect rc;
rc.SetRect(ClientRect().iTl, TSize(176, 144));
m_pAppContainer->ConstructL( rc );
AppUi()->AddToStackL( *this, m_pAppContainer );
if(m_Status!=EAssistantStatusNew)
{
if(m_pTitle && m_pContent)
{
m_pAppContainer->SetData(m_Status,m_pTitle->Des(),m_pContent->Des());
}
}
CEikStatusPane* sp=iEikonEnv->AppUiFactory()->StatusPane();
TBuf<32> sTmpTitle;
if(m_Status == EAssistantStatusNew)
{
//Set View icon
CAssistantAppUi* pApp = (CAssistantAppUi*)CEikonEnv::Static()->AppUi();
//CFbsBitmap* pIcon = pApp->LoadGraphicsL(7);
// CAknContextPane* contextPane = (CAknContextPane*) sp->ControlL(TUid::Uid(EEikStatusPaneUidContext));
// contextPane->SetPicture(pIcon);
//Set View Title
CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_ASSISTANT_NEW);
this->Cba()->SetCommandSetL(R_CBA_OK_CANCEL);
this->Cba()->DrawNow();
}
else if(m_Status == EAssistantStatusModify)
{
CAssistantAppUi* pApp = (CAssistantAppUi*)CEikonEnv::Static()->AppUi();
// CFbsBitmap* pIcon = pApp->LoadGraphicsL(8);
// CAknContextPane* contextPane = (CAknContextPane*) sp->ControlL(TUid::Uid(EEikStatusPaneUidContext));
// contextPane->SetPicture(pIcon);
//Set View Title
CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_ASSISTANT_MODIFY);
this->Cba()->SetCommandSetL(R_CBA_OK_CANCEL);
this->Cba()->DrawNow();
}
else if(m_Status == EAssistantStatusOpen)
{
CAssistantAppUi* pApp = (CAssistantAppUi*)CEikonEnv::Static()->AppUi();
// CFbsBitmap* pIcon = pApp->LoadGraphicsL(9);
// CAknContextPane* contextPane = (CAknContextPane*) sp->ControlL(TUid::Uid(EEikStatusPaneUidContext));
// contextPane->SetPicture(pIcon);
//Set View Title
CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_ASSISTANT_OPEN);
this->Cba()->SetCommandSetL(R_CBA_BACK);
this->Cba()->DrawNow();
}
CAknTitlePane* tp=(CAknTitlePane*)sp->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
tp->SetTextL(sTmpTitle);
}
void CNoteEditView::DoDeactivate()
{
if(m_pAppContainer)
{
AppUi()->RemoveFromStack( m_pAppContainer );
delete m_pAppContainer;
}
}
void CNoteEditView::SetData(TInt aStatus,const TDesC& aTitle, const TDesC& aContent)
{
m_Status = aStatus;
MEMORY_FREE(m_pTitle);
m_pTitle = HBufC::NewL(aTitle.Length());
m_pTitle->Des().Copy(aTitle);
MEMORY_FREE(m_pContent);
m_pContent = HBufC::NewL(aContent.Length());
m_pContent->Des().Copy(aContent);
}
void CNoteEditView::SetData(TInt aStatus)
{
m_Status = aStatus;
}
void CNoteEditView::GetData(TInt& aStatus, TDes& aTitle, TDes& aContent)
{
aStatus = m_Status;
if(aStatus != EAssistantStatusCancel)
{
aTitle.Copy(m_pTitle->Des());
if (m_pContent->Des().Length()==0)
{
m_pContent->Des().Copy(_L(" "));
}
aContent.Copy(m_pContent->Des());
}
MEMORY_FREE(m_pTitle);
MEMORY_FREE(m_pContent);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -