browserutilities/schemehandler/SchemeApp/src/SchemeAppUi.cpp
changeset 0 dd21522fd290
child 36 0ed94ceaa377
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/browserutilities/schemehandler/SchemeApp/src/SchemeAppUi.cpp	Mon Mar 30 12:54:55 2009 +0300
@@ -0,0 +1,167 @@
+/*
+* 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 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:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*      Implementation of class CSchemeAppUi.   
+*      
+*
+*/
+
+#include "SchemeDocument.h"
+#include "SchemeAppLogger.h"
+#include "SchemeDialog.h" 
+#include <SchemeHandler.h>
+#include "SchemeAppUi.h"
+#include "Scheme.hrh"
+#include <SchemeApp.rsg>
+#include <apgcli.h>
+#include <avkon.hrh>
+#include <apparc.h>
+
+#include <e32std.h>
+#include <s32mem.h>
+
+// CONSTANTS
+
+// ================= MEMBER FUNCTIONS =======================
+
+// ----------------------------------------------------------
+// CSchemeAppUi::CSchemeAppUi()
+// ----------------------------------------------------------
+//
+CSchemeAppUi::CSchemeAppUi( CSchemeDocument* aSchemeDocument )
+    {
+    CLOG_ENTERFN( "CSchemeAppUi::CSchemeAppUi" );
+    iSchemeDocument = aSchemeDocument;
+    CLOG_LEAVEFN( "CSchemeAppUi::CSchemeAppUi" );
+    }
+
+// ----------------------------------------------------------
+// CSchemeAppUi::ConstructL()
+// ----------------------------------------------------------
+//
+void CSchemeAppUi::ConstructL()
+    {
+    CLOG_ENTERFN( "CSchemeAppUi::ConstructL" );
+    // SKAI-6YUEEA EAknEnableMSK is needed, EAknEnableSkin should be given as well
+    // in case the app wants to enable default skin parameters for the Avkon controls 
+    BaseConstructL( EAknEnableSkin | EAknEnableMSK ); 
+    iAppDialog = new (ELeave) CSchemeDialog;
+    iAppDialog->SetMopParent( this );
+    iAppDialog->ExecuteLD( R_SCHEME_DIALOG );
+    CLOG_LEAVEFN( "CSchemeAppUi::ConstructL" );
+    }
+
+// ----------------------------------------------------------
+// CSchemeAppUi::~CSchemeAppUi()
+// ----------------------------------------------------------
+//
+CSchemeAppUi::~CSchemeAppUi()
+    {
+	CLOG_ENTERFN( "CSchemeAppUi::~CSchemeAppUi" );
+
+    if( iDoorObserver )
+        {
+        iDoorObserver->NotifyExit( MApaEmbeddedDocObserver::ENoChanges );
+        }
+
+    if( iSchemeHandler )
+        {
+        delete iSchemeHandler;
+        }
+
+    delete iAppDialog;
+
+    CLOG_LEAVEFN( "CSchemeAppUi::~CSchemeAppUi" );
+    }
+
+// ----------------------------------------------------------
+// CSchemeAppUi::ProcessCommandParametersL()
+// ----------------------------------------------------------
+//
+TBool CSchemeAppUi::ProcessCommandParametersL( TApaCommand aCommand, 
+                                               TFileName& aDocumentName, 
+                                               const TDesC8& aTail )
+	{
+    CLOG_ENTERFN( "CSchemeAppUi::ProcessCommandParametersL" );
+	if ( aCommand == EApaCommandCreate )
+        {
+        CLOG_WRITE( "EApaCommandCreate" );
+		iSchemeHandler = CSchemeHandler::NewL( aDocumentName );
+	    iSchemeHandler->Observer( iSchemeDocument );
+        
+
+        if( aTail.Length() != 0 )
+            {
+            CAiwGenericParamList* paramsList = CAiwGenericParamList::NewLC();
+            CBufFlat* store = CBufFlat::NewL( aTail.Length() );
+            CleanupStack::PushL( store );
+            store->InsertL( 0, aTail );
+
+	        RBufReadStream inStream;
+            inStream.Open( *store );
+            CleanupClosePushL<RBufReadStream>( inStream );
+
+            paramsList->InternalizeL( inStream );
+            iSchemeHandler->SetParameterList( paramsList ); // Takes ownership
+            CleanupStack::PopAndDestroy( 2 );  // store, close inStream
+            CleanupStack::Pop( paramsList ); //paramsList
+            }
+
+		TRAP_IGNORE( iSchemeHandler->HandleUrlEmbeddedL() );
+        }
+
+    CLOG_LEAVEFN( "CSchemeAppUi::ProcessCommandParametersL" );
+
+	return CEikAppUi::ProcessCommandParametersL
+                      ( aCommand, aDocumentName, aTail );
+	}
+
+// ----------------------------------------------------------
+// CSchemeAppUi::HandleCommandL()
+// ----------------------------------------------------------
+//
+void CSchemeAppUi::HandleCommandL( TInt aCommand )
+    {
+    CLOG_ENTERFN( "CSchemeAppUi::HandleCommandL" );
+
+    switch ( aCommand )
+        {
+        case EEikCmdExit:
+            {
+            Exit();
+            break;
+            }
+
+        default:
+            {
+            break;
+            }
+        }
+
+    CLOG_LEAVEFN( "CSchemeAppUi::HandleCommandL" );
+    }
+    
+// ---------------------------------------------------------
+// CBrowserAppUi::HandleScreenDeviceChangedL()
+// ---------------------------------------------------------
+//
+void CSchemeAppUi::HandleScreenDeviceChangedL()
+    {
+    CEikAppUi::HandleScreenDeviceChangedL();
+    }
+
+// End of File
+    
+
+// End of File