notepad/notepad1/AppSrc/NpdAppUi.cpp
changeset 0 f979ecb2b13e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/notepad/notepad1/AppSrc/NpdAppUi.cpp	Tue Feb 02 10:12:19 2010 +0200
@@ -0,0 +1,148 @@
+/*
+* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "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:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of Notepad Application UI class.
+*
+*/
+
+
+
+// INCLUDE FILES
+#include <avkon.hrh>
+#include <NpdLib.rsg>
+#include <NpdApi.h>
+#include "NpdListDialog.h"
+#include "NpdAppUi.h"
+
+//UID of PinbMdl
+const TInt KUidApaMessagePinboardValue(0x1000590C);
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CNotepadAppUi::ConstructL
+// Initialize iApi and iDialog.
+// non-waiting CNotepadListDialog starts.
+// -----------------------------------------------------------------------------
+//
+void CNotepadAppUi::ConstructL()
+    {
+
+    BaseConstructL(EAknEnableSkin | EAknEnableMSK | EAknSingleClickCompatible);
+
+    iApi = CNotepadApi::NewL();
+
+    iDialog = CNotepadListDialog::NewL(R_NOTEPAD_LIST_DIALOG,
+        REINTERPRET_CAST( CEikDialog**, &iDialog ) );
+    iDialog->SetMopParent(this);
+    iDialog->ExecuteLD(); // non waiting    
+    }
+
+// -----------------------------------------------------------------------------
+// CNotepadAppUi::~CNotepadAppUi
+// -----------------------------------------------------------------------------
+//
+CNotepadAppUi::~CNotepadAppUi()
+    {
+    delete iDialog;
+    delete iApi;
+    }
+
+// -----------------------------------------------------------------------------
+// CNotepadAppUi::HandleCommandL
+// -----------------------------------------------------------------------------
+//
+void CNotepadAppUi::HandleCommandL(TInt aCommand)
+    {
+    if ( aCommand == EEikCmdExit )
+        {
+        TRAPD( err, iDialog->SaveL(); );
+        if ( err )
+            {
+            iEikonEnv->HandleError(err);
+            }
+        Exit();
+        }
+    else
+        {
+        CAknAppUi::HandleCommandL( aCommand );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CNotepadAppUi::ProcessCommandParametersL
+// From CEikAppUi
+// -----------------------------------------------------------------------------
+//
+TBool CNotepadAppUi::ProcessCommandParametersL(
+    TApaCommand aCommand,
+    TFileName& aDocumentName,
+    const TDesC8& aTail )
+    {
+    if ( aTail.Length() )
+        {
+        TLex8 lex(aTail);
+        TInt key;
+        if ( iDialog && lex.Val(key) == KErrNone)
+            {
+            // force change to edit mode
+            iDialog->EditByKeyL(key);
+            }
+        }
+    return CEikAppUi::ProcessCommandParametersL(aCommand, aDocumentName, 
+        aTail);
+    }
+
+// -----------------------------------------------------------------------------
+// CNotepadAppUi::HandleMessageL
+// from MCoeMessageObserver
+// -----------------------------------------------------------------------------
+//
+MCoeMessageObserver::TMessageResponse CNotepadAppUi::HandleMessageL(
+    TUint32 aClientHandleOfTargetWindowGroup, 
+    TUid aMessageUid, 
+    const TDesC8& aMessageParameters )
+    {
+    MCoeMessageObserver::TMessageResponse messageResponse(EMessageHandled);
+    if ( aMessageUid.iUid  == KUidApaMessagePinboardValue )
+        {
+        TLex8 lex(aMessageParameters);
+        TInt key;
+        if (lex.Val(key) == KErrNone)
+            {
+            iDialog->EditByKeyL(key);
+            }
+        }
+    else
+        {
+        messageResponse = CAknAppUi::HandleMessageL(
+            aClientHandleOfTargetWindowGroup, 
+            aMessageUid,
+            aMessageParameters);
+        }
+    return messageResponse;
+    }
+
+// -----------------------------------------------------------------------------
+// CNotepadAppUi::PrepareToExit()
+// from CCoeAppUiBase
+// -----------------------------------------------------------------------------
+//
+void CNotepadAppUi::PrepareToExit()
+    {
+    delete iDialog;
+    iDialog = NULL;
+    CAknAppUi::PrepareToExit();
+    }
+
+// End of File