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

📄 noteeditview.cpp

📁 symbian 2rd 备忘录
💻 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 + -