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

📄 emailexampleaui.cpp

📁 Symbian C++ of Nokia下的源码
💻 CPP
字号:
/*
* ============================================================================
*  Name     : CEmailExampleAppUi from EmailExampleAppUi.cpp
*  Part of  : EmailExample
*  Created  : 09/11/2003 by Forum Nokia
*  Implementation notes:
*		Basic framework class constructed initially with appwizard
*
*  Version  : 1.0
*  Copyright: Nokia Corporation
* ============================================================================
*/

//application
#include "EmailExampleAui.h"
#include "EmailExampleWin.h"
#include "EmailExampleVer.h"
#include "EmailExample.hrh"

//symbian
#include <EikEnv.h>
#include <EikApp.h>
#include <EikDoc.h>
#include <EikTBar.h>	//for CEikButtonGroup
#include <EikMenuP.h>	//for menupane
#include <eikspane.h>	//for statuspane

//resource specific
#include <EmailExample.rsg>
#include <Eikon.rsg>

CEmailExampleAppUi::CEmailExampleAppUi()
	{}

CEmailExampleAppUi::~CEmailExampleAppUi()
	{
	RemoveFromStack(iMainWindow);
	delete iMainWindow;
	}

void CEmailExampleAppUi::ConstructL()
	{
    BaseConstructL();
	iMainWindow=new(ELeave) CEmailMainWindow(*this);
	iMainWindow->ConstructL();
	LoadIniFileL();
	iMainWindow->ActivateL();
	ShowToolBar();
	AddToStackL(iMainWindow);
	}

// save current applciation settings to INI file
void CEmailExampleAppUi::SaveIniFileL()
	{
	CEikApplication* app=(CEikApplication*)Document()->Application();
	CDictionaryStore* iniFile=app->OpenIniFileLC(iEikonEnv->FsSession());
	if(!iniFile)
		{
		return;
		}
	RDictionaryWriteStream writeStream;
	writeStream.AssignLC(*iniFile,KUidEmailExample);
	writeStream.WriteInt32L(iFullScreen);
	writeStream.CommitL();
	CleanupStack::PopAndDestroy(); // writeStream
	iniFile->CommitL();
	CleanupStack::PopAndDestroy(); // iniFile
	}

// load application settings from INI file
void CEmailExampleAppUi::LoadIniFileL()
	{
	CEikApplication* app=(CEikApplication*)Document()->Application();
	CDictionaryStore* iniFile=app->OpenIniFileLC(iEikonEnv->FsSession());
	TBool missingOrCorrupt=ETrue;
	if(iniFile)
		{
		TBool present=EFalse;
		TRAPD(err,present=iniFile->IsPresentL(KUidEmailExample));
		if(present)
			{
			RDictionaryReadStream readStream;
			readStream.OpenLC(*iniFile,KUidEmailExample);
			TRAP(err,iFullScreen=readStream.ReadInt32L());
			if(err==KErrNone)
				{
				if(err==KErrNone)
					{
					missingOrCorrupt=EFalse;
					}
				}
			CleanupStack::PopAndDestroy(); // readStream
			}
		CleanupStack::PopAndDestroy(); // iniFile
		}
	if(missingOrCorrupt)
		{ // INI file missing or corrupt - use default settings
		iFullScreen=EFalse;
		}
	}

void CEmailExampleAppUi::ShowToolBar()
	{
	iEikonEnv->AppUiFactory()->ToolBar()->MakeVisible(!iFullScreen);
	CEikStatusPane* statusPane=iEikonEnv->AppUiFactory()->StatusPane();
	if (statusPane)
		{
		statusPane->MakeVisible(!iFullScreen);
		}
	iMainWindow->SetRect(ClientRect());
	}

TBool CEmailExampleAppUi::ProcessCommandParametersL(TApaCommand aCommand,TFileName& aDocumentName,const TDesC& /*aTail*/)
	{
	return CEikAppUi::ProcessCommandParametersL(aCommand,aDocumentName);
	}

void CEmailExampleAppUi::DynInitMenuPaneL(TInt aResource,CEikMenuPane* aMenuPane)
	{
	switch(aResource)
		{
		case R_EMAILEXAMPLEAPP_VIEW_MENU:
			if(iFullScreen)
				{
				aMenuPane->SetItemButtonState(EEmailExampleCmdFullScreen,EEikMenuItemSymbolOn);
				}
			break;
		default:
			break;
		}
	}

void CEmailExampleAppUi::HandleCommandL(TInt aCommand)
	{
	switch(aCommand)
		{
		case EEmailExampleCmdFullScreen:
			{
			iFullScreen=!iFullScreen;
			ShowToolBar();
			iMainWindow->DrawDeferred();
			}
			break;
		case EEikCmdExit:
			{
			SaveIniFileL();
			SaveL();
			Exit();
			}
			break;
		default:
			{
			iMainWindow->HandleCommandL(aCommand);
			}
			break;
		}
	}

void CEmailExampleAppUi::HandleForegroundEventL(TBool /*aForeground*/)
	{}

⌨️ 快捷键说明

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