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

📄 cjgprojectappui.cpp

📁 Symbian工程 九宫格界面
💻 CPP
字号:
/*
============================================================================
 Name        : CJGProjectAppUi.cpp
 Author      : 
 Version     :
 Copyright   : Your copyright notice
 Description : Main application UI class (controller)
============================================================================
*/

// INCLUDE FILES

#include <avkon.hrh>
#include <aknmessagequerydialog.h>
#include <aknnotewrappers.h>
#include <stringloader.h>
#include <CJGProject.rsg>
#include <f32file.h>
#include <s32file.h>
#include <bautils.h>
#include <charconv.h>
#include <hlplch.h>

#include "CJGProject.pan"
#include "CJGProjectApplication.h"
#include "CJGProjectAppUi.h"
#include "HsgTextView.h"
#include "CJGProject.hrh"
#include "LxdAD.h"
#include "LxdMessageManagement.h"
#include "CHsgEditTextView.h"
#include "CHsgNewTextView.h"
#include "CHsgOpenTextView.h"
#include "CHsgGriddingView.h"
#include "NewsRollText.h"
#include "CJGProject_0xeb0f87f4.hlp.hrh"

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


// -----------------------------------------------------------------------------
// CCJGProjectAppUi::ConstructL()
// Symbian 2nd phase constructor can leave.
// -----------------------------------------------------------------------------
//
void CCJGProjectAppUi::ConstructL()
	{
	// Initialise app UI with standard value.
	BaseConstructL();
	StatusPane()->MakeVisible(EFalse);
	Cba()->MakeVisible(EFalse);

	iSnowGridViewPointer = CHsgGriddingView::NewL();
	AddViewL(iSnowGridViewPointer);

	iSnowTextViewPointer=CHsgTextView::NewL();
	AddViewL(iSnowTextViewPointer);

	iHsgNewViewPointer=CHsgNewTextView::NewL();
	AddViewL(iHsgNewViewPointer);


	iHsgOpenViewPointer=CHsgOpenTextView::NewL();
	AddViewL(iHsgOpenViewPointer);

	iSnowEditViewPointer = CHsgEditTextView::NewL();
	AddViewL(iSnowEditViewPointer);
	
	iSnowADPointer=new(ELeave) CLxdAD ;
	iSnowADPointer->LxdReadFileAD();

	iSnowMessageMPointer = new(ELeave) CLxdMessageManagement;
	iSnowMessageMPointer->LxdFileRead();


	PrivacyStatementL();
	}
// -----------------------------------------------------------------------------
// CCJGProjectAppUi::CCJGProjectAppUi()
// C++ default constructor can NOT contain any code, that might leave.
// -----------------------------------------------------------------------------
//
CCJGProjectAppUi::CCJGProjectAppUi()
	{
		iSnowADPointer=NULL;
		iSnowMessageMPointer=NULL;

	}

CCJGProjectAppUi::~CCJGProjectAppUi()
	{
		if ( iSnowADPointer )
		{
			delete iSnowADPointer;
			iSnowADPointer = NULL;
		}
		if ( iSnowMessageMPointer )
		{
			delete iSnowMessageMPointer;
			iSnowMessageMPointer = NULL;
		}
	}

void CCJGProjectAppUi::HandleCommandL( TInt aCommand )
	{
	switch( aCommand )
		{
		case EEikCmdExit:
		case EAknSoftkeyExit:
			Exit();
			break;
		case ECJGProjectCommand1:
			{
				ActivateLocalViewL(TUid::Uid(1));
			}
			break;
		case EHelp:
			{
			CArrayFix<TCoeHelpContext>* buf = CCoeAppUi::AppHelpContextL();
			HlpLauncher::LaunchHelpApplicationL(iEikonEnv->WsSession(), buf);
			}
			break;
		case EAbout:
			{
			CAknMessageQueryDialog* dlg = new (ELeave)CAknMessageQueryDialog(); 
			dlg->PrepareLC(R_ABOUT_QUERY_DIALOG);
			HBufC* title = iEikonEnv->AllocReadResourceLC(R_ABOUT_DIALOG_TITLE);
			dlg->QueryHeading()->SetTextL(*title);
			CleanupStack::PopAndDestroy(); //title
			HBufC* msg = iEikonEnv->AllocReadResourceLC(R_ABOUT_DIALOG_TEXT);
			dlg->SetMessageTextL(*msg);
			CleanupStack::PopAndDestroy(); //msg
			dlg->RunLD(); 
			}
			break;

		default:
			Panic( ECJGProjectUi );
			break;
		}
	}

void CCJGProjectAppUi::HandleStatusPaneSizeChange()
	{
	
	}

CArrayFix<TCoeHelpContext>* CCJGProjectAppUi::HelpContextL() const
	{

	CArrayFixFlat<TCoeHelpContext>* ctxs = new(ELeave)CArrayFixFlat<TCoeHelpContext>(1);
	CleanupStack::PushL(ctxs);
	ctxs->AppendL(TCoeHelpContext(KUidCJGProjectApp, KGeneral_Information));
	CleanupStack::Pop(ctxs);
	return ctxs;
	}
	
void CCJGProjectAppUi::PrivacyStatementL() 
	{
	
	HBufC * fileName = StringLoader::LoadLC(R_PRIVACY_STATEMENT_FILENAME);
	RFs &fs= iCoeEnv->FsSession();
	
	TFileName fullFileName;
	TFileName privatePath;
	fs.PrivatePath(privatePath);
	TParse parser;
	TFileName processFileName(RProcess().FileName());
	User::LeaveIfError(parser.Set(*fileName, &privatePath, &processFileName));
	fullFileName = parser.FullName();
	CleanupStack::PopAndDestroy(fileName);
	
	if(BaflUtils::FileExists(fs, fullFileName)) 
		{
		RBuf text(CCJGProjectAppUi::ReadUnicodeFileL(fs, fullFileName));
		CleanupClosePushL(text);
		CAknMessageQueryDialog *dialog = CAknMessageQueryDialog::NewL(text);
		if(dialog->ExecuteLD(R_PRIVSTMT_DIALOG) == EAknSoftkeyYes) 
			{
			BaflUtils::DeleteFile(fs, fullFileName);
			}
		CleanupStack::PopAndDestroy(&text);
		}
	}

HBufC * CCJGProjectAppUi::ReadUnicodeFileL(RFs& aFs, const TDesC& aFileName)
	{
	RFile file;
	User::LeaveIfError(file.Open(aFs, aFileName, EFileShareReadersOnly | EFileStreamText | EFileRead));
	CleanupClosePushL(file);

	TInt size;
	User::LeaveIfError(file.Size(size));

	RBuf8 tmp;
	tmp.CreateL(size);
	CleanupClosePushL(tmp);
	User::LeaveIfError(file.Read(tmp));

	CCnvCharacterSetConverter * converter = CCnvCharacterSetConverter::NewLC();
	converter->PrepareToConvertToOrFromL(KCharacterSetIdentifierUtf8, aFs);

	HBufC *text = HBufC::NewL(size);

	TInt state = CCnvCharacterSetConverter::KStateDefault;
	TPtrC8 remainderOfForeignText(tmp);
	for(;;)
		{
		TPtr textPtr(text->Des());
		TInt retValue = converter->ConvertToUnicode(textPtr, remainderOfForeignText, state);
		if(retValue == CCnvCharacterSetConverter::EErrorIllFormedInput)
			User::Leave(KErrCorrupt);
		else if(retValue < 0)
			User::Leave(KErrGeneral);
		
		if(retValue == 0)
			break;
			
		remainderOfForeignText.Set(remainderOfForeignText.Right(retValue));
		}	
	
	CleanupStack::PopAndDestroy(converter);
	CleanupStack::PopAndDestroy(2);
	return text;
	}
void CCJGProjectAppUi::MayLeaveL()
{
	//User::LeaveNoMemory();
	User::Leave(1);
}

void CCJGProjectAppUi::GetMbmPath(TDes& aPath)
{
	TFileName appFullName;
	appFullName = Application()->AppFullName();
	TParsePtr parse(appFullName);
	aPath.Copy(parse.DriveAndPath().Mid(0,2));
	aPath.Append(_L("\\resource\\apps\\"));
}

CLxdAD* CCJGProjectAppUi::LxdGetADPointer()
{
	return iSnowADPointer;
}
CLxdMessageManagement* CCJGProjectAppUi::LxdGetMessage()
{
	return iSnowMessageMPointer;
}
CHsgTextView* CCJGProjectAppUi::GetHsgTextView()
{
	return iSnowTextViewPointer;
}
CHsgNewTextView* CCJGProjectAppUi::NewsGetHsgNewTextView()
{
	return iHsgNewViewPointer;
}
CHsgOpenTextView* CCJGProjectAppUi::NewsGetHsgOpenTextView()
{
	return iHsgOpenViewPointer;
}
CHsgEditTextView* CCJGProjectAppUi::NewsGetHsgEditTextView()
{
	return iSnowEditViewPointer;
}
// End of File

⌨️ 快捷键说明

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