All pastes #474101 Raw Edit

Untitled

public c v1 · immutable
·published 2007-05-06 16:52 UTC
rendered paste body
Name		: helloworldAppUi.cpp Author	  :  Copyright   : Your copyright notice Description : ChelloworldAppUi implementation============================================================================*/// INCLUDE FILES#include <avkon.hrh>#include <aknmessagequerydialog.h>#include <aknnotewrappers.h>#include <stringloader.h>#include <f32file.h>#include <s32file.h>#include <hlplch.h>#include <helloworld_0xE6282AB6.rsg>#include "helloworld_0xE6282AB6.hlp.hrh"#include "helloworld.hrh"#include "helloworld.pan"#include "helloworldApplication.h"#include "helloworldAppUi.h"#include "helloworldAppView.h"_LIT( KFileName, "C:\\private\\E6282AB6\\helloworld.txt" );_LIT( KText, "Hello World!");// ============================ MEMBER FUNCTIONS ===============================// -----------------------------------------------------------------------------// ChelloworldAppUi::ConstructL()// Symbian 2nd phase constructor can leave.// -----------------------------------------------------------------------------//void ChelloworldAppUi::ConstructL()	{	// Initialise app UI with standard value.	BaseConstructL(CAknAppUi::EAknEnableSkin);	// Create view object	iAppView = ChelloworldAppView::NewL( ClientRect() );	// Create a file to write the text to	RFs fsSession;	User::LeaveIfError(fsSession.Connect());	CleanupClosePushL( fsSession );	TInt err = fsSession.MkDirAll(KFileName);	if ( (KErrNone != err) && (KErrAlreadyExists != err) )		{		CleanupStack::PopAndDestroy(1); //  fsSession		return;		}		RFile file;	err = file.Replace(fsSession, KFileName, EFileWrite );	CleanupClosePushL( file );	if ( KErrNone != err )		{		CleanupStack::PopAndDestroy(2); // file, fsSession		return;		}		RFileWriteStream outputFileStream( file );	CleanupClosePushL( outputFileStream );	outputFileStream << KText;	CleanupStack::PopAndDestroy(3); // outputFileStream, file, fsSession	}// -----------------------------------------------------------------------------// ChelloworldAppUi::ChelloworldAppUi()// C++ default constructor can NOT contain any code, that might leave.// -----------------------------------------------------------------------------//ChelloworldAppUi::ChelloworldAppUi()	{	// No implementation required	}// -----------------------------------------------------------------------------// ChelloworldAppUi::~ChelloworldAppUi()// Destructor.// -----------------------------------------------------------------------------//ChelloworldAppUi::~ChelloworldAppUi()	{	if ( iAppView )		{		delete iAppView;		iAppView = NULL;		}	}// -----------------------------------------------------------------------------// ChelloworldAppUi::HandleCommandL()// Takes care of command handling.// -----------------------------------------------------------------------------//void ChelloworldAppUi::HandleCommandL( TInt aCommand )	{	switch( aCommand )		{		case EEikCmdExit:		case EAknSoftkeyExit:			Exit();			break;		case ECommand1:			{						// Load a string from the resource file and display it			HBufC* textResource = StringLoader::LoadLC( R_COMMAND1_TEXT );			CAknInformationNote* informationNote;			informationNote = new ( ELeave ) CAknInformationNote;			// Show the information Note with			// textResource loaded with StringLoader.			informationNote->ExecuteLD( *textResource );			// Pop HBuf from CleanUpStack and Destroy it.			CleanupStack::PopAndDestroy( textResource );			}			break;		case ECommand2:			{						RFs fsSession;			RFile rFile;						// Connects a client process to the fileserver			User::LeaveIfError(fsSession.Connect());			CleanupClosePushL(fsSession);						//Open file where the stream text is			User::LeaveIfError(rFile.Open(fsSession,KFileName, EFileStreamText));//EFileShareReadersOnly));// EFileStreamText));			CleanupClosePushL(rFile);						// copy stream from file to RFileStream object			RFileReadStream inputFileStream(rFile);			CleanupClosePushL(inputFileStream);						// HBufC descriptor is created from the RFileStream object.			HBufC* fileData = HBufC::NewLC(inputFileStream, 32);			CAknInformationNote* informationNote;			informationNote = new ( ELeave ) CAknInformationNote;			// Show the information Note			informationNote->ExecuteLD( *fileData);									// Pop loaded resources from the cleanup stack			CleanupStack::PopAndDestroy(4); // filedata, inputFileStream, rFile, fsSession			fsSession.Close();			}			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( EhelloworldUi );			break;		}	}// -----------------------------------------------------------------------------//  Called by the framework when the application status pane//  size is changed.  Passes the new client rectangle to the//  AppView// -----------------------------------------------------------------------------//void ChelloworldAppUi::HandleStatusPaneSizeChange()	{	iAppView->SetRect( ClientRect() );	} CArrayFix<TCoeHelpContext>* ChelloworldAppUi::HelpContextL() const	{	#warning "Please see comment about help and UID3..."	// Note: help will not work if the application uid3 is not in the	// protected range.  The default uid3 range for projects created	// from this template (0xE0000000 - 0xEFFFFFFF) are not in the protected range so they	// can be self signed and installed on the device during testing.	// Once you get your official uid3 from Symbian Ltd. and find/replace	// all occurrences of uid3 in your project, the context help will	// work.	CArrayFixFlat<TCoeHelpContext>* array = new(ELeave)CArrayFixFlat<TCoeHelpContext>(1);	CleanupStack::PushL(array);	array->AppendL(TCoeHelpContext(KUidhelloworldApp, KGeneral_Information));	CleanupStack::Pop(array);	return array;	}// End of File