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

📄 mementoeditview.cpp

📁 symbian手机加密记事本
💻 CPP
字号:
/*
* ============================================================================
*  Name     : CMementoEditView from CAknView
*  Part of  : CMementoEditView
*  Copyright (c) 2003 Nokia. All rights reserved.
* ============================================================================
*/

// INCLUDE FILES
#include <aknviewappui.h>
#include <avkon.hrh>

#include <Memento.rsg>
#include "Memento.hrh"
#include "MementoEditView.h"
#include "MementoEditContainer.h" 

//Myself MBM
#include "Memento.mbg"//for mbm
#include <akncontext.h>//for CAknContextPane
#include "akntitle.h"//for CAknTitlePane
#include "MementoAppUi.h"
//end
#include <aknnotewrappers.h> //?



// ================= MEMBER FUNCTIONS =======================

// C++ default constructor can NOT contain any code, that
// might leave.
//
CMementoEditView* CMementoEditView::NewL()
{
    CMementoEditView* self = NewLC();
    CleanupStack::Pop(self);
    return self;
}

CMementoEditView* CMementoEditView::NewLC()
{
    CMementoEditView* self = new (ELeave) CMementoEditView;
    CleanupStack::PushL(self);
    self->ConstructL();
    return self;
}

CMementoEditView::CMementoEditView()
    {
    }

// EPOC default constructor can leave.
void CMementoEditView::ConstructL()
    {
 	BaseConstructL(R_EDIT_VIEW);//把Add的CBA传入
    }

// Destructor
CMementoEditView::~CMementoEditView()
    {
    }

// ---------------------------------------------------------
// TUid CMementoEditView::Id()
// Returns Id of the view.
// ---------------------------------------------------------
TUid CMementoEditView::Id() const
    {
    return KViewId4;
    }

// ---------------------------------------------------------
// CMementoEditView::HandleCommandL(TInt aCommand)
// Handles commands
// ---------------------------------------------------------
void CMementoEditView::HandleCommandL(TInt aCommand)
    {   

	switch(aCommand)
	{
	case EMyeditCmdSaveofAdd://保存用户输入
		{
			if(iContainer->GetTitleEdwin()->TextLength()<=0 || iContainer->GetTitleEdwin()->TextLength() >10)
			{
				TBuf<32> Error4;
				CEikonEnv::Static()->ReadResource(Error4, R_QTN_MH_EDIT_REEOR5);
//				_LIT(Error4, "yumen!");
				CAknInformationNote* informationNote = new (ELeave) CAknInformationNote;
				informationNote->ExecuteLD(Error4);
				break;
			}
			else
			{
				if(iState1 == EModify)
				{
					CMementoAppUi* pUI = (CMementoAppUi*)CEikonEnv::Static()->AppUi();
					CDataManage* pDataMangae = pUI->GetDataManage();
					HBufC* BufTitle = HBufC::NewL(iContainer->GetTitleEdwin()->TextLength());
					HBufC* BufContent = HBufC::NewL(iContainer->GetContentEdwin()->TextLength());
					iContainer->GetTitleEdwin()->GetText(BufTitle->Des());
					iContainer->GetContentEdwin()->GetText(BufContent->Des());
					pDataMangae->SetUserFileInfo(iFileIndex,*BufTitle,*BufContent);
					delete BufTitle;
					delete BufContent;

					pDataMangae->SaveFileData();
	// 				Cba()->SetCommandSetL(R_LOG_CBA);
	// 				Cba()->DrawNow();
					AppUi()->ActivateLocalViewL(KViewId2);
					break;
				}
				else if(iState1 == ENew)
				{
					CMementoAppUi* pUI = (CMementoAppUi*)CEikonEnv::Static()->AppUi();
					CDataManage* pDataMangae = pUI->GetDataManage();
					HBufC* BufTitle = HBufC::NewL(iContainer->GetTitleEdwin()->TextLength());
					HBufC* BufContent = HBufC::NewL(iContainer->GetContentEdwin()->TextLength());
					iContainer->GetTitleEdwin()->GetText(BufTitle->Des());
					iContainer->GetContentEdwin()->GetText(BufContent->Des());
					pDataMangae->CreateUserFileInfoL(BufTitle->Des(),BufContent->Des());
					delete BufTitle;
					delete BufContent;


					pDataMangae->SaveFileData();

					AppUi()->ActivateLocalViewL(KViewId2);
					break;
				}
				Cba()->SetCommandSetL(R_LOG_CBA);
				Cba()->DrawNow();
			}
		break;
		}

	case EMementoReturn:
		{
//			iContainer->setHelp(EFalse);
			Cba()->SetCommandSetL(R_LOG_CBA);
			Cba()->DrawNow();
			AppUi()->ActivateLocalViewL(KViewId2);
			break;
		}

	case EAknSoftkeyExit:
		{
// 			CEikStatusPane* statusPane = StatusPane();
// 			
// 			//set icon			在.mmp中加库文件 LIBRARY		eikcoctl.lib
// 			CAknContextPane* contextPane = (CAknContextPane*) statusPane->ControlL(TUid::Uid(EEikStatusPaneUidContext));
// 			CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(pathMbm, EMbmMementoSnoopy_11_icon);//图片名_在symbain目录下LDD2.bmg中得到
// 			CFbsBitmap* bitmapMask = iEikonEnv->CreateBitmapL(pathMbm, EMbmMementoSnoopy_11_mask);//掩码名_在symbain目录下LDD2.bmg中得到
// 			
// 			//contextPane->SetPicture(bitmap);
// 			contextPane->SetPicture(bitmap, bitmapMask);
// 			
// 			//set title
// 			// 	CAknTitlePane* titlePane = (CAknTitlePane*) statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
// 			// 	titlePane->SetTextL(_L("Hello view!"));//显示英文
// 			
// 			//load chinese words//显示中文
// 			TBuf<32> sTmpTitle;
// 			CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_MH_EDIT_TITLE);//读入内存可在下面的show中显示——ReadResource()是个重要的函数。所有的中文都可以由它读到内存中再操作
// 			
// 			CAknTitlePane* titlePane = (CAknTitlePane*) statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
// 			titlePane->SetTextL(sTmpTitle);

			AppUi()->ActivateLocalViewL(KViewId2);
			break;
		}
	default:
		{
			break;
		}
	}

	}

// ---------------------------------------------------------
// CMementoEditView::HandleClientRectChange()
// Handles client rect change.
// ---------------------------------------------------------
void CMementoEditView::HandleClientRectChange()
    {
    if (iContainer)
        {
        iContainer->SetRect(ClientRect());
        }
    }

// ---------------------------------------------------------
// CMementoEditView::DoActivateL(...)
// Creates the Container class object.
// ---------------------------------------------------------
void CMementoEditView::DoActivateL(const TVwsViewId& /*aPrevViewId*/,
                                    TUid /*aCustomMessageId*/,
                                    const TDesC8& /*aCustomMessage*/)
    {

    iContainer = new (ELeave) CMementoEditContainer;
    iContainer->SetMopParent(this);
//     iContainer->ConstructL(ClientRect());
//     AppUi()->AddToStackL(*this, iContainer);// 下面对显示区域重做调整
	TRect rc;
	rc.SetRect(ClientRect().iTl, TSize(176, 144));
	iContainer->ConstructL(rc);
    AppUi()->AddToStackL(*this, iContainer);
	
	TBuf<KMaxPath> pathMbm;
#ifdef __WINS__
	pathMbm.Copy(_L("z:\\system\\apps\\Memento\\Memento.mbm"));
#else
	CMementoAppUi* pApp = (CMementoAppUi*)CEikonEnv::Static()->AppUi();
	pApp->GetAppPath(pathMbm);//自己写的函数,在*ui.h中定义,在*ui.cpp中实现。所以这个文件要包含*ui.h
	pathMbm.Append(_L("Memento.mbm"));
#endif
	switch(iState1)
	{
	case ENew:
	{
//		iContainer->SetStata(CMementoEditContainer::ENew);//设置Edit的属性,然后显示Add的Edit


		CEikStatusPane* statusPane = StatusPane();
		
		//set icon			在.mmp中加库文件 LIBRARY		eikcoctl.lib
		CAknContextPane* contextPane = (CAknContextPane*) statusPane->ControlL(TUid::Uid(EEikStatusPaneUidContext));
		CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(pathMbm, EMbmMementoSnoopy_11_icon);//图片名_在symbain目录下LDD2.bmg中得到
		CFbsBitmap* bitmapMask = iEikonEnv->CreateBitmapL(pathMbm, EMbmMementoSnoopy_11_mask);//掩码名_在symbain目录下LDD2.bmg中得到
		
		//contextPane->SetPicture(bitmap);
		contextPane->SetPicture(bitmap, bitmapMask);
		
		//set title
		// 	CAknTitlePane* titlePane = (CAknTitlePane*) statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
		// 	titlePane->SetTextL(_L("Hello view!"));//显示英文
		
		//load chinese words//显示中文
		TBuf<32> sTmpTitle;
		CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_MH_EDIT_TITLE);//读入内存可在下面的show中显示——ReadResource()是个重要的函数。所有的中文都可以由它读到内存中再操作
		
		CAknTitlePane* titlePane = (CAknTitlePane*) statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
		titlePane->SetTextL(sTmpTitle);
		iContainer->GetTitleEdwin()->SetFocus(ETrue);

		Cba()->SetCommandSetL(R_CBA_EDIT);
		Cba()->DrawNow();


		break;
	}
	case EOpens:
		{
//			iContainer->SetStata(CMementoEditContainer::EOpens);//设置Edit的属性,然后显示Look的Edit
			

			CEikStatusPane* statusPane = StatusPane();
			
			//set icon			在.mmp中加库文件 LIBRARY		eikcoctl.lib
			CAknContextPane* contextPane = (CAknContextPane*) statusPane->ControlL(TUid::Uid(EEikStatusPaneUidContext));
			CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(pathMbm, EMbmMementoSnoopy_12_icon);//图片名_在symbain目录下LDD2.bmg中得到
			CFbsBitmap* bitmapMask = iEikonEnv->CreateBitmapL(pathMbm, EMbmMementoSnoopy_12_mask);//掩码名_在symbain目录下LDD2.bmg中得到
			
			//contextPane->SetPicture(bitmap);
			contextPane->SetPicture(bitmap, bitmapMask);
			
			//set title
			// 	CAknTitlePane* titlePane = (CAknTitlePane*) statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
			// 	titlePane->SetTextL(_L("Hello view!"));//显示英文
			
			//load chinese words//显示中文
			TBuf<32> sTmpTitle;
			CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_MH_LOOK_TITLE);//读入内存可在下面的show中显示——ReadResource()是个重要的函数。所有的中文都可以由它读到内存中再操作
			
			CAknTitlePane* titlePane = (CAknTitlePane*) statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
			titlePane->SetTextL(sTmpTitle);
		
			CMementoAppUi* pUI = (CMementoAppUi*)CEikonEnv::Static()->AppUi();
			CDataManage* pDataMangae = pUI->GetDataManage();
			TInt nn = pDataMangae->GetUserDirInfo().Count();
			iContainer->GetTitleEdwin()->SetTextL(&(pDataMangae->GetUserDirInfo().At(iFileIndex)->GetFileTitle()));
			iContainer->GetTitleEdwin()->SetReadOnly(ETrue);
			iContainer->GetTitleEdwin()->SetFocus(EFalse);
			iContainer->GetContentEdwin()->SetTextL(&(pDataMangae->GetUserDirInfo().At(iFileIndex)->GetFileConstext()));
			iContainer->GetContentEdwin()->SetReadOnly(ETrue);
			iContainer->GetContentEdwin()->SetFocus(EFalse);
			Cba()->SetCommandSetL(R_CBA_HELP);
			Cba()->DrawNow();

			break;
		}
	case EModify:
		{
//			iContainer->SetStata(CMementoEditContainer::EModify);//设置Edit的属性,然后显示Change的Edit
			

			CEikStatusPane* statusPane = StatusPane();
			
			//set icon			在.mmp中加库文件 LIBRARY		eikcoctl.lib
			CAknContextPane* contextPane = (CAknContextPane*) statusPane->ControlL(TUid::Uid(EEikStatusPaneUidContext));
			CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(pathMbm, EMbmMementoSnoopy_13_icon);//图片名_在symbain目录下LDD2.bmg中得到
			CFbsBitmap* bitmapMask = iEikonEnv->CreateBitmapL(pathMbm, EMbmMementoSnoopy_13_mask);//掩码名_在symbain目录下LDD2.bmg中得到
			
			//contextPane->SetPicture(bitmap);
			contextPane->SetPicture(bitmap, bitmapMask);
			
			//set title
			// 	CAknTitlePane* titlePane = (CAknTitlePane*) statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
			// 	titlePane->SetTextL(_L("Hello view!"));//显示英文
			
			//load chinese words//显示中文
			TBuf<32> sTmpTitle;
			CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_MH_CHANGE_TITLE);//读入内存可在下面的show中显示——ReadResource()是个重要的函数。所有的中文都可以由它读到内存中再操作
			
			CAknTitlePane* titlePane = (CAknTitlePane*) statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
			titlePane->SetTextL(sTmpTitle);

			CMementoAppUi* pUI = (CMementoAppUi*)CEikonEnv::Static()->AppUi();
			CDataManage* pDataMangae = pUI->GetDataManage();
			TInt nn = pDataMangae->GetUserDirInfo().Count();
			iContainer->GetTitleEdwin()->SetTextL(&(pDataMangae->GetUserDirInfo().At(iFileIndex)->GetFileTitle()));
			iContainer->GetContentEdwin()->SetTextL(&(pDataMangae->GetUserDirInfo().At(iFileIndex)->GetFileConstext()));
			iContainer->GetTitleEdwin()->SetFocus(ETrue);
			iContainer->GetContentEdwin()->SetFocus(EFalse);

			Cba()->SetCommandSetL(R_CBA_EDIT);
			Cba()->DrawNow();

			break;
		}

	default:
		{
			break;
		}
	}

/*
	CEikStatusPane* statusPane = StatusPane();
	
	//set icon			在.mmp中加库文件 LIBRARY		eikcoctl.lib
	CAknContextPane* contextPane = (CAknContextPane*) statusPane->ControlL(TUid::Uid(EEikStatusPaneUidContext));
	CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(pathMbm, EMbmCmementoeditviewSnoopy_1_icon);//图片名_在symbain目录下LDD2.bmg中得到
	CFbsBitmap* bitmapMask = iEikonEnv->CreateBitmapL(pathMbm, EMbmCmementoeditviewSnoopy_1_mask);//掩码名_在symbain目录下LDD2.bmg中得到
	
	//contextPane->SetPicture(bitmap);
	contextPane->SetPicture(bitmap, bitmapMask);
	
	//set title
	// 	CAknTitlePane* titlePane = (CAknTitlePane*) statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
	// 	titlePane->SetTextL(_L("Hello view!"));//显示英文
	
	//load chinese words//显示中文
	TBuf<32> sTmpTitle;
	CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_MH_EDIT_TITLE);//读入内存可在下面的show中显示——ReadResource()是个重要的函数。所有的中文都可以由它读到内存中再操作
	
	CAknTitlePane* titlePane = (CAknTitlePane*) statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
	titlePane->SetTextL(sTmpTitle);



	//show
	// 	CAknInformationNote* informationNote = new (ELeave) CAknInformationNote;
	// 			informationNote->ExecuteLD(sTmpTitle);

*/
    }

// ---------------------------------------------------------
// CMementoEditView::DoDeactivate()
// Deletes the Container class object.
// ---------------------------------------------------------
void CMementoEditView::DoDeactivate()
    {
    if (iContainer)
        {
		AppUi()->RemoveFromStack(iContainer);
		delete iContainer;
		iContainer = NULL;
        }
    }
void CMementoEditView::SetStata(TState1 aFlag)
{
	iState1 = aFlag;
}

void CMementoEditView::SetEditText(TInt aIndex)
{
	iFileIndex = aIndex;
}

CMementoEditContainer* CMementoEditView::getConPtr()
{
	return iContainer;
}

// End of File

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -