diff -r 000000000000 -r 0049171ecffb src/NPRAppUi.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/NPRAppUi.cpp Fri Jul 24 08:46:02 2009 +0100 @@ -0,0 +1,194 @@ +/* + ============================================================================ + Name : NPRAppUi.cpp + Author : John Kern + + Copyright (c) 2009 Symbian Foundation Ltd + This component and the accompanying materials are made available + under the terms of the License "Eclipse Public License v1.0" + which accompanies this distribution, and is available + at the URL "http://www.eclipse.org/legal/epl-v10.html". + + Initial Contributors: + - Symbian Foundation Ltd - initial contribution. + - Symsource + + Contributors: + - John Kern + - Symsource + + Description : CNPRAppUi implementation + ============================================================================ + */ + +// INCLUDE FILES +#include +#include +#include +#include + +#include "NPR_0xEEB0E481.hlp.hrh" +#include "NPR.hrh" +#include "NPR.pan" +#include "NPRApplication.h" +#include "NPRAppUi.h" +#include "NPRAppEngine.h" +#include "NPRListBoxView.h" +#include "NPRStoryListBoxView.h" +#include "NPRStationListBoxView.h" +#include "NPRSearchStationListBoxView.h" +#include "NPRBrowserAknView.h" + + +_LIT( KFileName, "C:\\private\\EEB0E481\\NPR.txt" ); +_LIT( KText, "Hello World!"); + +// ============================ MEMBER FUNCTIONS =============================== + + +// ----------------------------------------------------------------------------- +// CNPRAppUi::ConstructL() +// Symbian 2nd phase constructor can leave. +// ----------------------------------------------------------------------------- +// +void CNPRAppUi::ConstructL() + { + // Initialise app UI with standard value. + BaseConstructL(CAknAppUi::EAknEnableSkin); + + // Create a file to write the text to + TInt err = CCoeEnv::Static()->FsSession().MkDirAll(KFileName); + if ((KErrNone != err) && (KErrAlreadyExists != err)) + { + Exit(); + } + + RFile file; + err = file.Replace(CCoeEnv::Static()->FsSession(), KFileName, EFileWrite); + CleanupClosePushL(file); + if (KErrNone != err) + { + CleanupStack::PopAndDestroy(1); // file + Exit(); + } + + RFileWriteStream outputFileStream(file); + CleanupClosePushL(outputFileStream); + outputFileStream << KText; + this->Document(); + CleanupStack::PopAndDestroy(2); // outputFileStream, file + + TRAP(err, this->iNPRAppEngine = CNPRAppEngine::NewL(*this)); + if(err != KErrNone) + { + Exit(); + } + + CNPRListBoxView* mainListBoxView = CNPRListBoxView::NewL(); + AddViewL(mainListBoxView); + + CNPRStoryListBoxView* storyListBoxView = CNPRStoryListBoxView::NewL(); + AddViewL(storyListBoxView); + + CNPRStationListBoxView* StationListBoxView = CNPRStationListBoxView::NewL(); + AddViewL(StationListBoxView); + + CNPRSearchStationListBoxView* searchStationListBoxView = CNPRSearchStationListBoxView::NewL(); + AddViewL(searchStationListBoxView); + + CBrowserAknView* browserView = CBrowserAknView::NewL(*iNPRAppEngine); + AddViewL(browserView); + + ActivateLocalViewL(TUid::Uid(ENPRListBoxViewId)); + } +// ----------------------------------------------------------------------------- +// CNPRAppUi::CNPRAppUi() +// C++ default constructor can NOT contain any code, that might leave. +// ----------------------------------------------------------------------------- +// +CNPRAppUi::CNPRAppUi() + { + // No implementation required + } + +// ----------------------------------------------------------------------------- +// CNPRAppUi::~CNPRAppUi() +// Destructor. +// ----------------------------------------------------------------------------- +// +CNPRAppUi::~CNPRAppUi() + { + delete iNPRAppEngine; + } + +// ----------------------------------------------------------------------------- +// CNPRAppUi::HandleCommandL() +// Takes care of command handling. +// ----------------------------------------------------------------------------- +// +void CNPRAppUi::HandleCommandL(TInt aCommand) + { + switch (aCommand) + { + case EEikCmdExit: + case EAknSoftkeyExit: + { + Exit(); + } + 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(ENPRUi); + break; + } + } + +CNPRAppEngine& CNPRAppUi::Engine() + { + return *iNPRAppEngine; + } + +// ----------------------------------------------------------------------------- +// Called by the framework when the application status pane +// size is changed. Passes the new client rectangle to the +// AppView +// ----------------------------------------------------------------------------- +// +void CNPRAppUi::HandleStatusPaneSizeChange() + { + //iAppView->SetRect(ClientRect()); + } + +CArrayFix* CNPRAppUi::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 that 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. Alternatively, a patch now exists for the versions of + // HTML help compiler in SDKs and can be found here along with an FAQ: + // http://www3.symbian.com/faq.nsf/AllByDate/E9DF3257FD565A658025733900805EA2?OpenDocument + CArrayFixFlat* array = new (ELeave) CArrayFixFlat< + TCoeHelpContext> (1); + CleanupStack::PushL(array); + array->AppendL(TCoeHelpContext(KUidNPRApp, KGeneral_Information)); + CleanupStack::Pop(array); + return array; + } + +// End of File