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

📄 frmesappui.cpp

📁 symbian 3nd 实现短信息收发
💻 CPP
字号:
/* Copyright (c) 2008, Nokia. All rights reserved */

#include <avkon.hrh>
#include <aknnotewrappers.h> 
#include <FrMes.mbg>

#include "FrMes.pan"
#include "FrMesAppUi.h"
#include "RegisterView.h"
#include "LogonView.h"
#include "MainInterfaceView.h"
#include "PersonInfoView.h"
#include "CreatInfoView.h"
#include "DetailInfoView.h"
#include "HelpView.h"

#include "BookEngine.h"
#include "CardClipView.h"
#include "DetailCardView.h"
#include "ModifyCardView.h"
#include "CreateCardView.h"
#include "SelectCardView.h"

#include "MessageView.h"
#include "CreateMesView.h"
#include "ReceiveMesView.h"
#include "DetailMesView.h"
#include "SendingMesView.h"
#include "SendMesView.h"
#include "BookMesView.h"

#include "FrMes.hrh"
#include "s32file.h"
#include "FrMesDB.h"
#include <eikapp.h>

#include "MtmsEngine.h"
#include "MessageDB.h"

#include "ServerManager.h"


void CFrMesAppUi::ConstructL()
{
    BaseConstructL(EAknEnableSkin);
	m_pServerManager = CServerManager::NewL();
	
	m_pDB = CFrMesDB::NewL();
	CleanupStack::PushL(m_pDB);
	m_pDB->ReadDBL();
	CleanupStack::Pop();

	iBookEngine = CBookEngine::NewL();
	iPhoneBookArray = new(ELeave)CArrayPtrSeg<CBookInfo>(10);	
 	iBookEngine->UpdatePhoneBook(0,*iPhoneBookArray);

	iRegisterView = CRegisterView::NewL();
	AddViewL(iRegisterView);
	
	iLogonView = CLogonView::NewL();
	AddViewL(iLogonView);
	
	iMainInterfaceView = CMainInterfaceView::NewL();
    AddViewL(iMainInterfaceView);

	iPersonInfoView = CPersonInfoView::NewL();
	AddViewL(iPersonInfoView);

	iCreatInfoView = CCreatInfoView::NewL();
	AddViewL(iCreatInfoView);
    
	iDetailInfoView = CDetailInfoView::NewL();
	AddViewL(iDetailInfoView);

	iHelpView = CHelpView::NewL();
	AddViewL(iHelpView);
	
	iCardClipView = CCardClipView::NewL();
	AddViewL(iCardClipView);

	iDetailCardView = CDetailCardView::NewL();
	AddViewL(iDetailCardView);

	iModifyCardView = CModifyCardView::NewL();
	AddViewL(iModifyCardView);

	iCreateCardView = CCreateCardView::NewL();
	AddViewL(iCreateCardView);

	iMessageView = CMessageView::NewL();
	AddViewL(iMessageView);
	
	iCreateMesView = CCreateMesView::NewL();
	AddViewL(iCreateMesView);

	iSelectCardView = CSelectCardView::NewL(iCreateMesView);
	AddViewL(iSelectCardView);

	iReceiveMesView = CReceiveMesView::NewL(iCreateMesView);
	AddViewL(iReceiveMesView);

	iSendingMesView = CSendingMesView::NewL();
	AddViewL(iSendingMesView);

	iSendMesView = CSendMesView::NewL();
	AddViewL(iSendMesView);

	iDetailMesView = CDetailMesView::NewL(iReceiveMesView,iSendMesView);
	AddViewL(iDetailMesView);

	iBookMesView = CBookMesView::NewL(iCreateMesView);
	AddViewL(iBookMesView);
	
	m_pMessageDB = CMessageDB::NewL(*iSendingMesView);


	//pass pointer to servermanger
	iRegisterView->SetLoginNotifyPointer(m_pServerManager);
	iLogonView->SetLoginNotifyPointer(m_pServerManager);

//     if(!ReadINI())
// 		SetDefaultViewL(*iRegisterView);
// 	else
// 		SetDefaultViewL(*iLogonView);

	SetDefaultViewL(*iMainInterfaceView);
}

CFrMesAppUi::CFrMesAppUi()                              
{
    // add any construction that cannot leave here
}

CFrMesAppUi::~CFrMesAppUi()
{
	if(m_pMessageDB)
	{
		delete m_pMessageDB;
		m_pMessageDB = NULL;
	}
	if(m_pDB)
	{
		delete m_pDB;
		m_pDB = NULL;
	}
	if (iBookEngine)
	{
		delete iBookEngine;
		iBookEngine = NULL;
	}
	if(iPhoneBookArray)
	{
		for (TInt i = 0; i < iPhoneBookArray->Count(); i++)
		{
			delete iPhoneBookArray->At(i);
			iPhoneBookArray->At(i) = NULL;
		}
		iPhoneBookArray->Reset();
		delete iPhoneBookArray;
		iPhoneBookArray = NULL;
 	}
	delete m_pServerManager;
}

MSendCardIndex* CFrMesAppUi::SetMSendCardIndex(MSendCardIndex* aMSendCardIndex)
{
	return aMSendCardIndex;
}

void CFrMesAppUi::HandleCommandL(TInt aCommand)
{
    switch(aCommand)
	{
	case EEikCmdExit:
	case EAknSoftkeyExit:
		{
			m_pDB->SaveDBL();
			Exit();
		}
		
		break;
		
	case EFrMesCmdRegisterMenu2:
		{
			ActivateLocalViewL(KLogonViewId);
		}
		break;
	case EFrMesCmdRegisterMenu1:
		{
			ActivateLocalViewL(KMainInterfaceViewId);
		}
		break;
	case EAknSoftkeyLogon:
		{
			ActivateLocalViewL(KMainInterfaceViewId);
		}
		break;

	case EFrMesCmdMainInterfaceMenu2:
		{
			KPreViewID = KMainInterfaceViewId;
			ActivateLocalViewL(KHelpViewId);
		}
		break;
	case EFrMesCmdPersonInfoMenu2:
		{
			ActivateLocalViewL(KCreatInfoViewId);
		}
		break;
	case EFrMesCmdPersonInfoMenu1:
		{
			KPreViewID = KPersonInfoViewId;
			ActivateLocalViewL(KDetailInfoViewId);
		}
		break;
	case EFrMesCmdPersonInfoMenu4:
		{
			KPreViewID = KPersonInfoViewId;
			ActivateLocalViewL(KHelpViewId);
		}
		break;
    case EAknSoftkeyBack:
		{
			ActivateLocalViewL(KPreViewID);
		}
		break;
	case EAknSoftkeyReturn:
		{
			ActivateLocalViewL(KMainInterfaceViewId);
		}
		break;
    case EAknSoftkeyOk:
	case EAknSoftkeyCancel:
		{
			ActivateLocalViewL(KPersonInfoViewId);
		}
		break;



	default:
		Panic(EFrMesBasicUi);
		break;
	}
}


TBool CFrMesAppUi::ReadINI()
{
#ifdef __WINS__
	_LIT(KFrMesUserFile,"c:\\system\\data\\user.ini");
#else
	_LIT(KFrMesUserFile,"c:\\system\\apps\\FrMes\\user.ini");
#endif
	
	RFs &iFession = CEikonEnv::Static()->FsSession();//声明一个RFs类型的句柄以访问File服务器
    RFile file;
	User::LeaveIfError( file.Open(iFession, KFrMesUserFile, EFileRead));//打开文件
	TInt aSize;
	file.Size(aSize);  //得到文件长度
	file.Close();
	
	if(aSize == 0)
		return EFalse;
	else
		return ETrue;	
}


CGulIcon* CFrMesAppUi::LoadGraphicsL(TInt aType)
{
	TBuf<KMaxPath> pathAppMbm;
#ifdef __WINS__
	pathAppMbm.Copy(_L("z:\\system\\apps\\frmes\\frmes.mbm"));
#else
	TFileName appFullName;
	appFullName = Application()->AppFullName();
	TParsePtr parse(appFullName);
	pathAppMbm.Copy(parse.DriveAndPath());
	pathAppMbm.Append(_L("frmes.mbm"));
#endif
	switch(aType)
	{
	case 0:
		return iEikonEnv->CreateIconL(pathAppMbm, EMbmFrmesDiskete,EMbmFrmesDiskete_mask);
	case 1:
		return iEikonEnv->CreateIconL(pathAppMbm, EMbmFrmesAlert,EMbmFrmesAlert_mask);
	case 2:
		return iEikonEnv->CreateIconL(pathAppMbm, EMbmFrmesCardclip,EMbmFrmesCardclip_mask);
	case 3:
		return iEikonEnv->CreateIconL(pathAppMbm, EMbmFrmesMessage,EMbmFrmesMessage_mask);
	case 4:
		return iEikonEnv->CreateIconL(pathAppMbm, EMbmFrmesCreatemes,EMbmFrmesCreatemesm);
	case 5:
		return iEikonEnv->CreateIconL(pathAppMbm, EMbmFrmesReveivemes,EMbmFrmesReveivemesm);
	case 6:
		return iEikonEnv->CreateIconL(pathAppMbm, EMbmFrmesNotebook,EMbmFrmesNotebookm);
	case 7:
		return iEikonEnv->CreateIconL(pathAppMbm, EMbmFrmesSendmes,EMbmFrmesSendmesm);
	case 8:
		return iEikonEnv->CreateIconL(pathAppMbm, EMbmFrmesSendingmes,EMbmFrmesSendingmesm);
	case 9:
		return iEikonEnv->CreateIconL(pathAppMbm, EMbmFrmesEnvelope,EMbmFrmesEnvelopem);
	case 10:
		return iEikonEnv->CreateIconL(pathAppMbm, EMbmFrmesOpenenvelope,EMbmFrmesOpenenvelopem);
	default:
		return NULL;
	}
}

⌨️ 快捷键说明

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