browserutilities/schemehandler/SchemeApp/src/SchemeAppUi.cpp
changeset 0 dd21522fd290
child 25 0ed94ceaa377
equal deleted inserted replaced
-1:000000000000 0:dd21522fd290
       
     1 /*
       
     2 * Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of the License "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: 
       
    15 *      Implementation of class CSchemeAppUi.   
       
    16 *      
       
    17 *
       
    18 */
       
    19 
       
    20 #include "SchemeDocument.h"
       
    21 #include "SchemeAppLogger.h"
       
    22 #include "SchemeDialog.h" 
       
    23 #include <SchemeHandler.h>
       
    24 #include "SchemeAppUi.h"
       
    25 #include "Scheme.hrh"
       
    26 #include <SchemeApp.rsg>
       
    27 #include <apgcli.h>
       
    28 #include <avkon.hrh>
       
    29 #include <apparc.h>
       
    30 
       
    31 #include <e32std.h>
       
    32 #include <s32mem.h>
       
    33 
       
    34 // CONSTANTS
       
    35 
       
    36 // ================= MEMBER FUNCTIONS =======================
       
    37 
       
    38 // ----------------------------------------------------------
       
    39 // CSchemeAppUi::CSchemeAppUi()
       
    40 // ----------------------------------------------------------
       
    41 //
       
    42 CSchemeAppUi::CSchemeAppUi( CSchemeDocument* aSchemeDocument )
       
    43     {
       
    44     CLOG_ENTERFN( "CSchemeAppUi::CSchemeAppUi" );
       
    45     iSchemeDocument = aSchemeDocument;
       
    46     CLOG_LEAVEFN( "CSchemeAppUi::CSchemeAppUi" );
       
    47     }
       
    48 
       
    49 // ----------------------------------------------------------
       
    50 // CSchemeAppUi::ConstructL()
       
    51 // ----------------------------------------------------------
       
    52 //
       
    53 void CSchemeAppUi::ConstructL()
       
    54     {
       
    55     CLOG_ENTERFN( "CSchemeAppUi::ConstructL" );
       
    56     // SKAI-6YUEEA EAknEnableMSK is needed, EAknEnableSkin should be given as well
       
    57     // in case the app wants to enable default skin parameters for the Avkon controls 
       
    58     BaseConstructL( EAknEnableSkin | EAknEnableMSK ); 
       
    59     iAppDialog = new (ELeave) CSchemeDialog;
       
    60     iAppDialog->SetMopParent( this );
       
    61     iAppDialog->ExecuteLD( R_SCHEME_DIALOG );
       
    62     CLOG_LEAVEFN( "CSchemeAppUi::ConstructL" );
       
    63     }
       
    64 
       
    65 // ----------------------------------------------------------
       
    66 // CSchemeAppUi::~CSchemeAppUi()
       
    67 // ----------------------------------------------------------
       
    68 //
       
    69 CSchemeAppUi::~CSchemeAppUi()
       
    70     {
       
    71 	CLOG_ENTERFN( "CSchemeAppUi::~CSchemeAppUi" );
       
    72 
       
    73     if( iDoorObserver )
       
    74         {
       
    75         iDoorObserver->NotifyExit( MApaEmbeddedDocObserver::ENoChanges );
       
    76         }
       
    77 
       
    78     if( iSchemeHandler )
       
    79         {
       
    80         delete iSchemeHandler;
       
    81         }
       
    82 
       
    83     delete iAppDialog;
       
    84 
       
    85     CLOG_LEAVEFN( "CSchemeAppUi::~CSchemeAppUi" );
       
    86     }
       
    87 
       
    88 // ----------------------------------------------------------
       
    89 // CSchemeAppUi::ProcessCommandParametersL()
       
    90 // ----------------------------------------------------------
       
    91 //
       
    92 TBool CSchemeAppUi::ProcessCommandParametersL( TApaCommand aCommand, 
       
    93                                                TFileName& aDocumentName, 
       
    94                                                const TDesC8& aTail )
       
    95 	{
       
    96     CLOG_ENTERFN( "CSchemeAppUi::ProcessCommandParametersL" );
       
    97 	if ( aCommand == EApaCommandCreate )
       
    98         {
       
    99         CLOG_WRITE( "EApaCommandCreate" );
       
   100 		iSchemeHandler = CSchemeHandler::NewL( aDocumentName );
       
   101 	    iSchemeHandler->Observer( iSchemeDocument );
       
   102         
       
   103 
       
   104         if( aTail.Length() != 0 )
       
   105             {
       
   106             CAiwGenericParamList* paramsList = CAiwGenericParamList::NewLC();
       
   107             CBufFlat* store = CBufFlat::NewL( aTail.Length() );
       
   108             CleanupStack::PushL( store );
       
   109             store->InsertL( 0, aTail );
       
   110 
       
   111 	        RBufReadStream inStream;
       
   112             inStream.Open( *store );
       
   113             CleanupClosePushL<RBufReadStream>( inStream );
       
   114 
       
   115             paramsList->InternalizeL( inStream );
       
   116             iSchemeHandler->SetParameterList( paramsList ); // Takes ownership
       
   117             CleanupStack::PopAndDestroy( 2 );  // store, close inStream
       
   118             CleanupStack::Pop( paramsList ); //paramsList
       
   119             }
       
   120 
       
   121 		TRAP_IGNORE( iSchemeHandler->HandleUrlEmbeddedL() );
       
   122         }
       
   123 
       
   124     CLOG_LEAVEFN( "CSchemeAppUi::ProcessCommandParametersL" );
       
   125 
       
   126 	return CEikAppUi::ProcessCommandParametersL
       
   127                       ( aCommand, aDocumentName, aTail );
       
   128 	}
       
   129 
       
   130 // ----------------------------------------------------------
       
   131 // CSchemeAppUi::HandleCommandL()
       
   132 // ----------------------------------------------------------
       
   133 //
       
   134 void CSchemeAppUi::HandleCommandL( TInt aCommand )
       
   135     {
       
   136     CLOG_ENTERFN( "CSchemeAppUi::HandleCommandL" );
       
   137 
       
   138     switch ( aCommand )
       
   139         {
       
   140         case EEikCmdExit:
       
   141             {
       
   142             Exit();
       
   143             break;
       
   144             }
       
   145 
       
   146         default:
       
   147             {
       
   148             break;
       
   149             }
       
   150         }
       
   151 
       
   152     CLOG_LEAVEFN( "CSchemeAppUi::HandleCommandL" );
       
   153     }
       
   154     
       
   155 // ---------------------------------------------------------
       
   156 // CBrowserAppUi::HandleScreenDeviceChangedL()
       
   157 // ---------------------------------------------------------
       
   158 //
       
   159 void CSchemeAppUi::HandleScreenDeviceChangedL()
       
   160     {
       
   161     CEikAppUi::HandleScreenDeviceChangedL();
       
   162     }
       
   163 
       
   164 // End of File
       
   165     
       
   166 
       
   167 // End of File