notedisplayview.cpp
来自「symbian 2rd 备忘录」· C++ 代码 · 共 231 行
CPP
231 行
/* 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 "NoteDisplayView.h"
#include "NoteDisplayContainer.h"
#include "AssistantAppUi.h"
#include "Assistant.rsg"
#include "Assistant.hrh"
CNoteDisplayView* CNoteDisplayView::NewL()
{
CNoteDisplayView* self = NewLC();
CleanupStack::Pop(self);
return self;
}
CNoteDisplayView* CNoteDisplayView::NewLC()
{
CNoteDisplayView* self = new (ELeave) CNoteDisplayView();
CleanupStack::PushL(self);
self->ConstructL();
return self;
}
void CNoteDisplayView::ConstructL()
{
BaseConstructL(R_ASSISTANT_EDIT);
m_pEditInfoManage = CNoteInfoManage::NewL();
}
CNoteDisplayView::CNoteDisplayView()
{
m_pAppContainer = NULL;
m_pEditInfoManage = NULL;
m_Status = EAssistantStatusMain;
}
CNoteDisplayView::~CNoteDisplayView()
{
MEMORY_FREE(m_pEditInfoManage);
}
TUid CNoteDisplayView::Id() const
{
return TUid::Uid(5);
}
void CNoteDisplayView::HandleCommandL(TInt aCommand)
{
HBufC* m_pTitle = HBufC::NewL(32);
HBufC* m_pDate = HBufC::NewL(32);
HBufC* m_pContent = HBufC::NewL(512);
m_nIndex = m_pAppContainer->GetIndex();
switch(aCommand)
{
case EAssistantNew:
{
m_Status = EAssistantStatusNew;
m_pEditDataTransimit->SetData(EAssistantStatusNew);
AppUi()->ActivateLocalViewL(TUid::Uid(6));
}
break;
case EAssistantOpen:
{
m_Status = EAssistantStatusOpen;
m_pEditInfoManage->GetNoteInfo(m_nIndex,m_pDate->Des(),m_pTitle->Des(), m_pContent->Des());
m_pEditDataTransimit->SetData(EAssistantStatusOpen, m_pTitle->Des(), m_pContent->Des());
AppUi()->ActivateLocalViewL(TUid::Uid(6));
}
break;
case EAssistantModify:
{
m_Status = EAssistantStatusModify;
m_pEditInfoManage->GetNoteInfo(m_nIndex,m_pDate->Des(),m_pTitle->Des(), m_pContent->Des());
m_pEditDataTransimit->SetData(EAssistantStatusModify, m_pTitle->Des(), m_pContent->Des());
AppUi()->ActivateLocalViewL(TUid::Uid(6));
}
break;
case EAssistantDelete:
{
TBuf<32> sTmpTitle;
CAknNoteDialog* note = new (ELeave) CAknNoteDialog;
note->PrepareLC(R_DELETE_MESSAGE_NOTE);
CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_ASSISTANT_DELETEMESSAGE);
note->SetTextL(sTmpTitle);
if(note->RunLD())
{
m_pAppContainer->DelTnforFromList(m_nIndex);
m_pEditInfoManage->Delete(m_nIndex);
}
}
break;
case EAssistantHelp:
{
m_pHelpStatus->SetStatus(EAssistantStatusEdit);
// AppUi()->ActivateLocalViewL(TUid::Uid(4));
}
break;
case EAknSoftkeyBack:
case EAssistantBack:
{
m_pEditInfoManage->SaveNoteInfo();
m_Status = EAssistantStatusMain;
AppUi()->ActivateLocalViewL(TUid::Uid(3));
}
break;
default:
AppUi()->HandleCommandL(aCommand);
break;
}
MEMORY_FREE(m_pDate);
MEMORY_FREE(m_pTitle);
MEMORY_FREE(m_pContent);
}
void CNoteDisplayView::HandleClientRectChange()
{
if(m_pAppContainer)
{
m_pAppContainer->SetRect(ClientRect());
}
}
void CNoteDisplayView::DoActivateL(const TVwsViewId&, TUid, const TDesC8&)
{
m_pAppContainer = new( ELeave ) CNoteDisplayContainer();
m_pAppContainer->SetMopParent(this);
TRect rc;
rc.SetRect(ClientRect().iTl, TSize(176, 144));
m_pAppContainer->ConstructL( rc );
AppUi()->AddToStackL( *this, m_pAppContainer );
CEikStatusPane* sp=iEikonEnv->AppUiFactory()->StatusPane();
CAssistantAppUi* pApp = (CAssistantAppUi*)CEikonEnv::Static()->AppUi();
CFbsBitmap* pIcon = pApp->LoadGraphicsL1(0);
CFbsBitmap* pMask = pApp->LoadGraphicsL1(29);
CAknContextPane* contextPane = (CAknContextPane*) sp->ControlL(TUid::Uid(EEikStatusPaneUidContext));
contextPane->SetPicture(pIcon,pMask);
HBufC* m_pDate = HBufC::NewL(32);
HBufC* m_pTitle = HBufC::NewL(32);
HBufC* m_pContent = HBufC::NewL(512);
//Set View Title
TBuf<32> sTmpTitle;
CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_ASSISTANT_EDIT);
CAknTitlePane* tp=(CAknTitlePane*)sp->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
tp->SetTextL(sTmpTitle);
if(m_Status == EAssistantStatusNew || m_Status == EAssistantStatusModify)
{
m_pEditDataTransimit->GetData(m_Status, m_pTitle->Des(), m_pContent->Des());
if(m_Status != EAssistantStatusCancel)
{
TTime tTime;
tTime.HomeTime();
tTime.FormatL(m_pDate->Des(), _L("%M%Y%/0%4%/1%5%/3"));
if(m_Status == EAssistantStatusNew)
{
m_pEditInfoManage->Add(m_pDate->Des(), m_pTitle->Des(), m_pContent->Des());
}
else if(m_Status == EAssistantStatusModify)
{
m_pEditInfoManage->Modify(m_nIndex ,m_pTitle->Des(), m_pContent->Des());
}
}
}
for(TInt i=0; i<m_pEditInfoManage->GetCount(); i++)
{
m_pEditInfoManage->GetNoteInfo(i,m_pDate->Des(),m_pTitle->Des(),m_pContent->Des());
m_pAppContainer->AddInfoToList(m_pDate->Des(), m_pTitle->Des());
}
MEMORY_FREE(m_pDate);
MEMORY_FREE(m_pTitle);
MEMORY_FREE(m_pContent);
}
void CNoteDisplayView::DoDeactivate()
{
if(m_pAppContainer)
{
AppUi()->RemoveFromStack( m_pAppContainer );
delete m_pAppContainer;
}
}
void CNoteDisplayView::DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane)
{
if(aResourceId != R_ASSISTANT_EDIT_MENU) return;
if(m_pEditInfoManage->GetCount() == 0)
{
aMenuPane->SetItemDimmed(EAssistantOpen,ETrue);
aMenuPane->SetItemDimmed(EAssistantModify,ETrue);
aMenuPane->SetItemDimmed(EAssistantDelete,ETrue);
}
else
{
aMenuPane->SetItemDimmed(EAssistantOpen,EFalse);
aMenuPane->SetItemDimmed(EAssistantModify,EFalse);
aMenuPane->SetItemDimmed(EAssistantDelete,EFalse);
}
}
void CNoteDisplayView::SetMEditDataTransmitPtr(MEditDataTransmit * aPtr)
{
m_pEditDataTransimit = aPtr;
}
void CNoteDisplayView::SetHelpStatusPtr(MStatus* aPtr)
{
m_pHelpStatus = aPtr;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?