satengine/SatServer/SatInternalClient/src/CSatCActiveCommandHandler.cpp
changeset 0 ff3b6d0fd310
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/satengine/SatServer/SatInternalClient/src/CSatCActiveCommandHandler.cpp	Tue Feb 02 01:11:09 2010 +0200
@@ -0,0 +1,162 @@
+/*
+* Copyright (c) 2002-2008 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:  This is the handler for the SIM Application Toolkit
+*                active commands.
+*
+*/
+
+
+
+// INCLUDE FILES
+#include    <e32base.h>
+#include    <e32svr.h>
+#include    "RSatUiSession.h"
+#include    "MSatUiAdapter.h"
+#include    "CSatCActiveCommandHandler.h"
+#include    "CSatCCommandProcessor.h"
+#include    "SatSOpcodes.h"
+#include    "SatLog.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CSatCActiveCommandHandler::CSatCActiveCommandHandler
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CSatCActiveCommandHandler::CSatCActiveCommandHandler(
+    RSatUiSession* aSession ) :
+    iSession( aSession ),
+    iMenuSelectionData(),
+    iMenuSelectionPckg( iMenuSelectionData )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CSatCActiveCommandHandler::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CSatCActiveCommandHandler* CSatCActiveCommandHandler::NewL(
+    RSatUiSession* aSat )
+    {
+    LOG( SIMPLE, "SATINTERNALCLIENT: CSatCActiveCommandHandler::NewL calling" )
+
+    // Perform construction
+    CSatCActiveCommandHandler* self =
+        new ( ELeave ) CSatCActiveCommandHandler( aSat );
+
+    LOG( SIMPLE, "SATINTERNALCLIENT: CSatCActiveCommandHandler::NewL exiting" )
+    return self;
+    }
+
+// Destructor
+CSatCActiveCommandHandler::~CSatCActiveCommandHandler()
+    {
+    LOG( SIMPLE, 
+    "SATINTERNALCLIENT: CSatCActiveCommandHandler::~CSatCActiveCommandHandler calling" )
+    iSession = NULL;
+    LOG( SIMPLE, 
+    "SATINTERNALCLIENT: CSatCActiveCommandHandler::~CSatCActiveCommandHandler exiting" )
+    }
+
+// -----------------------------------------------------------------------------
+// CSatCActiveCommandHandler::MenuSelection
+// Sends the Menu Selection Active command
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CSatCActiveCommandHandler::MenuSelection(
+    TInt aMenuItem,
+    TBool aHelpRequested )
+    {
+    LOG( SIMPLE,
+        "SATINTERNALCLIENT: CSatCActiveCommandHandler::MenuSelection calling" )
+
+    // Empty the IPC data
+    RSat::TMenuSelectionV1 menuSelection;
+    iMenuSelectionData = menuSelection;
+
+    // Map the index into correct item ID.
+    RSat::TItem item;
+    iSession->CommandProcessor()->SetUpMenuHandler()->
+        OldSetUpMenuData().GetItem( static_cast<TUint>( aMenuItem + 1 ), item );
+
+    // Set the item ID of the selected item.
+    iMenuSelectionData.iItemId = item.iItemId;
+
+    // Set the help request identifier.
+    iMenuSelectionData.iHelp = RSat::EHelpNotRequested;
+    if ( aHelpRequested )
+        {
+        LOG( SIMPLE,
+        "SATINTERNALCLIENT: CSatCActiveCommandHandler::MenuSelection aHelpRequested" )
+        iMenuSelectionData.iHelp = RSat::EHelpRequested;
+        }
+
+    // Perform a synchronous service request.
+    TIpcArgs arguments( &iMenuSelectionPckg );
+    iSession->CreateRequest( ESatSActiveMenuSelection, arguments );
+
+    LOG( SIMPLE,
+        "SATINTERNALCLIENT: CSatCActiveCommandHandler::MenuSelection exiting" )
+    }
+
+// -----------------------------------------------------------------------------
+// CSatCActiveCommandHandler::SessionTerminated
+// Sends the Session Terminated Active command
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CSatCActiveCommandHandler::SessionTerminated( TInt8 aType )
+    {
+    LOG( SIMPLE,
+        "SATINTERNALCLIENT: CSatCActiveCommandHandler::SessionTerminated calling" )
+    TSatTermination termination;
+    //lint -e{603} termination used through terminationPckg.
+    TSatTerminationPckg terminationPckg ( termination );
+
+    switch ( aType )
+        {
+        case ESessionCancel:
+            {
+            termination.type = ETerminatedByCancel;
+            TIpcArgs arguments( &terminationPckg );
+            iSession->CreateRequest( ESatSSessionTerminated, arguments );
+            LOG( SIMPLE, "SATINTERNALCLIENT:   Terminated by cancel" )
+            break;
+            }
+
+        case EEndKeyUsed:
+            {
+            termination.type = ETerminatedByEndKey;
+            TIpcArgs arguments( &terminationPckg );
+            iSession->CreateRequest( ESatSSessionTerminated, arguments );
+            LOG( SIMPLE, "SATINTERNALCLIENT:   Terminated by end key" )
+            break;
+            }
+
+        default:
+            {
+            LOG( SIMPLE, "SATINTERNALCLIENT:   Not terminated" )
+            break;
+            }
+        }
+
+    LOG( SIMPLE,
+        "SATINTERNALCLIENT: CSatCActiveCommandHandler::SessionTerminated exiting" )
+    }
+
+//  End of File