memana/analyzetoolclient/consoleui/src/atconsoleviews.cpp
changeset 2 6a82cd05fb1e
parent 1 3ff3fecb12fe
--- a/memana/analyzetoolclient/consoleui/src/atconsoleviews.cpp	Thu Feb 11 15:52:57 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1247 +0,0 @@
-/*
-* Copyright (c) 2009 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: 
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <e32base.h>
-#include <e32cons.h>
-#include <e32svr.h>
-#include <utf.h>
-#include <apgtask.h>
-#include "atconsoleui.h"
-#include "atconsoleviews.h"
-
-// LOCAL FUNCTION PROTOTYPES
-LOCAL_C void LimitedAppend( TDes& aOriginal, const TDesC& aAppend);
-
-// FORWARD DECLARATIONS
-
-// ==================== LOCAL FUNCTIONS =======================================
-// -----------------------------------------------------------------------------
-// LimitedAppend()
-// Appends texts.
-// -----------------------------------------------------------------------------
-//
-LOCAL_C void LimitedAppend( TDes& aOriginal, const TDesC& aAppend )
-    {
-
-    TInt spaceLeft = aOriginal.MaxLength() - aOriginal.Length();
-    
-    if ( spaceLeft > aAppend.Length() )
-        {
-        aOriginal.Append ( aAppend );
-        }
-    else
-        {       
-        aOriginal.Append ( aAppend.Left ( spaceLeft ) );
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CView::NewL()
-// First phase constructor.
-// -----------------------------------------------------------------------------
-//
-CView* CView::NewL( CConsoleMain* aConsole,
-                    CView* aParent,
-                    const TDesC& aName,
-                    TInt64 aProcessId
-                  )
-    {
-
-    CView* self = new ( ELeave ) CView();
-    CleanupStack::PushL( self );
-    self->ConstructL( aConsole, aParent, aName, aProcessId );
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CView::ConstructL()
-// Second phase constructor.
-// -----------------------------------------------------------------------------
-//
-void CView::ConstructL( CConsoleMain* aConsole,
-                        CView* aParent,
-                        const TDesC& aName, TInt64 aProcessId
-                      )
-    {
-    // Store the parameters
-    iMain = aConsole;
-    iConsole = aConsole->GetConsole();
-    iParent = aParent;
-    iViewName = aName;
-    iProcessId = aProcessId;
-
-    // Get display size
-    const TInt KOverHead = 5;
-    iSize = iConsole->ScreenSize();
-    iScreenSize = iSize.iHeight - KOverHead;   // Size available for menus
-    }
-
-// -----------------------------------------------------------------------------
-// CView::CView()
-// C++ default constructor.
-// -----------------------------------------------------------------------------
-//
-CView::CView()
-    {
-    iDirection = 1;
-    iPrevPos  = -1;     // Invalid starting value
-    }
-
-// -----------------------------------------------------------------------------
-// CView::~CView()
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CView::~CView()
-    {    
-    iItems.ResetAndDestroy();
-    }
-
-// -----------------------------------------------------------------------------
-// CView::TimerUpdate()
-// Handles screen updates.
-// -----------------------------------------------------------------------------
-//
-void CView::TimerUpdate()
-    {   
-    RArray<TDesC> texts;
-    if( ItemTexts( texts ) != KErrNone )
-        {
-        texts.Close();
-        return;
-        }
-    TInt count = texts.Count();
-    // If list is empty, do not scroll.
-    if ( count < 1 )
-        {
-        texts.Close();
-        return;
-        }
-    else if( iFirstItem + iPositionOnScreen > count )
-        {
-        iFirstItem = iPositionOnScreen = 0;
-        }
-
-    // If menu selection is updated, then restart scrolling
-    if (iPrevPos != iFirstItem + iPositionOnScreen)
-        {
-        iPrevPos = iFirstItem + iPositionOnScreen;
-        iStart = 0;
-        iDirection = 1;
-        }
-
-    // If menu item have not been changed after last timer, then
-    // start scrolling  
-    const TDesC& name = texts[ iFirstItem + iPositionOnScreen ]; 
-    if ( name.Length() > iSize.iWidth)
-        {
-        TInt y = iConsole->WhereY();
-        TInt x = iConsole->WhereX();
-        TBuf<80> iTmp;
-
-        iStart = iStart + iDirection;
-
-        // "Right end"
-        if ( iStart + iSize.iWidth > name.Length() + KViewOverhead )
-            {
-            iStart--;
-            iDirection = -1;
-            }
-        
-        // "Left end"
-        if ( iStart == -1 )
-            {
-            iStart++;
-            iDirection = 1;
-            }
-        
-        if( iStart > name.Length() )
-            {
-            iStart = 0;
-            }
-
-        iTmp=_L(" *");
-        LimitedAppend( iTmp, name.Mid ( iStart ) );
-            
-        iConsole->SetPos( 0, iPositionOnScreen + 1 );
-        iConsole->Printf ( iTmp.Left( iSize.iWidth -2 )  );
-
-        iConsole->SetPos(x,y);
-        }
-    texts.Close();
-    }
-
-// -----------------------------------------------------------------------------
-// CView::AppendBefore()
-// Appends cursor to the line.
-// -----------------------------------------------------------------------------
-//
-void CView::AppendBefore( TInt aLineNum, TDes& aLine )
-    {    
-    if( ( aLine.MaxLength() - aLine.Length() ) < 2 )
-        {
-        return;
-        }        
-    
-    // If printing active line, print the marker
-    if ( aLineNum == iPositionOnScreen + iFirstItem )
-        {
-        aLine.Append( _L(" *") );
-        }
-    else
-        {
-        aLine.Append( _L("  ") );
-        }        
-    }
-
-// -----------------------------------------------------------------------------
-// CView::PrintViewL()
-// Prints view.
-// -----------------------------------------------------------------------------
-//
-void CView::PrintViewL( TUpdateType aType )
-    {
-    iUpdateType = aType;
-    TBuf<KMaxLineLength> line;
-
-    // Clear display
-    iConsole->ClearScreen();
-
-    // Print menu title
-    Print( Name() );
-    
-    RArray<TDesC> texts;
-    if( ItemTexts( texts ) != KErrNone )
-        {
-		texts.Close();
-        return;
-        }
-    
-    TInt oldItemCount = iItemCount;
-     
-    iItemCount = texts.Count();
-
-    // If first time in menu, update start and end positions
-    if( ( iFirstItem == iLastItem ) ||        // First time here..
-        ( iLastItem >= iItemCount ) ||
-        ( oldItemCount != iItemCount ) )      // Menu size changed
-        {
-        iLastItem = iItemCount - 1;
-        iPositionOnScreen = 0;
-
-        // If "overflow", then adjust the end
-        if (iLastItem > iScreenSize )
-            {
-            iLastItem = iScreenSize;
-            }
-        }
-    
-    // Print items
-    for ( TInt i = iFirstItem; i <= iLastItem; i++ )
-        {
-        line.Zero();
-        
-        // Append text before line
-        AppendBefore( i, line );
-        TBuf<2*KMaxName> temp;
-        if ( i < iItems.Count() )
-            {
-            temp.Copy( iItems[ i ]->Name() );
-            TATLogOption loggingMode;
-            iMain->StorageServer().GetLoggingModeL( iMain->Processes()[ i ].iProcessId, loggingMode );
-            if ( EATLoggingOff != loggingMode )
-                {
-                if ( iMain->IsSubTestRunning( iMain->Processes()[ i ].iProcessId ) > KErrNotFound )
-                    {
-                    temp.Append( _L(": ") );
-                    temp.Append( _L("subtest running") );
-                    }                   
-                }
-            else
-                {
-                temp.Append( _L(": ") );
-                temp.Append( _L("logging cancelled") );
-                }
-            // TEST START
-            /*if ( i == iFirstItem )
-                {
-                temp.Append( _L(": ") );
-                temp.Append( _L("subtest running") );
-                }
-            else if ( i == iFirstItem + 1 )
-                {
-                temp.Append( _L(": ") );
-                temp.Append( _L("logging cancelled") );
-                }
-            else if ( i == iFirstItem + 2 )
-                {
-                temp.Append( _L(": ") );
-                temp.Append( _L("subtest running") );
-                }*/
-            // TEST END
-            LimitedAppend ( line, temp /*texts[i]*/ );
-            }
-        else
-            LimitedAppend ( line, KExitTxt );
-
-        // Print the line
-        Print(line);
-        }
-    texts.Close();
-    }
-
-// -----------------------------------------------------------------------------
-// CView::SelectL()
-// Handles line selections.
-// -----------------------------------------------------------------------------
-//
-CView* CView::SelectL( TKeyCode aSelection, TBool& aContinue )
-    {
-    MapKeyCode( aSelection );
-    
-    switch ( ( TInt )aSelection )
-        {
-        // Exit
-        case EKeyEscape:
-            aContinue = EFalse;
-            return this;
-        // SelectL item
-        case EKeyEnter:
-        case EKeyRightArrow:
-            {
-            // Print items
-            for ( TInt i = iFirstItem; i <= iLastItem; i++ )
-                {
-                if ( i < iItems.Count() )
-                    {
-                    TATLogOption loggingMode;
-                    TInt processCount ( iMain->Processes().Count() );
-                    if ( i <  processCount )
-                        {
-                        iMain->StorageServer().GetLoggingModeL( iMain->Processes()[ i ].iProcessId, loggingMode );
-                        if ( EATLoggingOff != loggingMode )
-                            {
-                            return iItems[ iPositionOnScreen ];
-                            }
-                        else
-                            {
-                            return this;
-                            }
-                        }
-                    }
-                }                    
-            //return iItems[ iPositionOnScreen ];
-            } 
-        // Going back
-        case EKeyLeftArrow:
-            {
-            TBool tmp = iShowLibraries | iSetLoggingMode;
-            iShowLibraries = EFalse;
-            iSetLoggingMode = EFalse;
-            if ( tmp )
-                return this;
-            else
-                return iParent;
-            }
-        // Go down
-        case EKeyDownArrow:
-            {
-            if ( iFirstItem + iPositionOnScreen == iItemCount - 1 )
-                {
-                // If end of the list, go to beginning
-                iLastItem = iLastItem - iFirstItem;
-                iFirstItem = 0;
-                iPositionOnScreen = 0;
-                }
-            else 
-                {
-                if ( iPositionOnScreen == iScreenSize )
-                    {
-                    // If in end of screen, update items
-                    if ( iLastItem != ( iItemCount - 1 ) )
-                        {
-                        // If not end of the list, then update first and last
-                        // but do not update position in screen.
-                        iLastItem++;
-                        iFirstItem++;
-                        }
-                    }
-                else
-                    {
-                    // Going down "in-screen", no need to update items
-                    iPositionOnScreen++;
-                    }
-                }
-            break;
-            }   
-        // Go Up
-        case EKeyUpArrow:
-            {
-            if ( iFirstItem + iPositionOnScreen == 0 )
-                {
-                // If in the beginning of the list
-    
-                if ( iItemCount <= iScreenSize ) 
-                    {
-                    // Wrap around when the list is not full
-                        iPositionOnScreen = iItemCount-1;
-                    }
-                else
-                    {
-                    // Wrap around when there are more items than
-                    // can be shown at once.            
-                    iPositionOnScreen = iScreenSize;
-                    iLastItem = iItemCount-1;
-                    iFirstItem = iItemCount - iPositionOnScreen - 1;
-                    }
-                }
-            else if ( iPositionOnScreen == 0 )
-                {
-                // If not at the beginning of the list, then update first and
-                // last  but do not update position in screen.
-                if ( iFirstItem != 0 )
-                    {
-                    iLastItem--;
-                    iFirstItem--;
-                    }
-                }
-            else
-                {
-                // Going up "in-screen", no need to update items
-                iPositionOnScreen--;
-                }
-            
-            break;
-            }                
-
-        // Additional keys
-        case EKeyHome:
-        case '3':
-            iPositionOnScreen = 0;
-            iFirstItem = 0;
-            iLastItem = iScreenSize;
-    
-            if ( iLastItem > iItemCount-1 )
-                {
-                iLastItem = iItemCount-1;
-                }
-            break;
-        case EKeyEnd:
-        case '9':
-            iPositionOnScreen = iScreenSize;
-            iLastItem = iItemCount-1;
-            iFirstItem = iLastItem - iScreenSize;
-    
-            if ( iFirstItem < 0 )
-                {
-                iFirstItem = 0;
-                iPositionOnScreen = iLastItem-1;
-                }
-            break;
-        case EKeyPageUp:
-        case '1':
-    
-            iFirstItem = iFirstItem - iScreenSize - 1;
-            iLastItem = iLastItem - iScreenSize - 1;
-    
-            if ( iFirstItem < 0 )
-                {
-                iFirstItem = 0;
-                iPositionOnScreen = 0;
-                iLastItem = iScreenSize;
-                if ( iLastItem > iItemCount-1 )
-                    {
-                    iLastItem = iItemCount-1;
-                    }
-                }
-            break;
-        case EKeyPageDown:
-        case '7':
-            iFirstItem = iFirstItem + iScreenSize + 1;
-            iLastItem = iLastItem + iScreenSize + 1;
-    
-            // Going too far
-            if ( iLastItem > iItemCount - 1 )
-                {
-                iLastItem = iItemCount-1;
-                iFirstItem = iLastItem - iScreenSize;
-                iPositionOnScreen = iScreenSize;
-                }
-    
-            // Ok, list is smaller than screen
-            if ( iFirstItem < 0 )
-                {
-                iFirstItem = 0;
-                iLastItem = iItemCount-1;
-                iPositionOnScreen = iLastItem;
-                }
-            break;
-        default:  // Bypass the keypress
-            break;
-        }
-
-    // Continue normally and keep in the same menu
-    aContinue = ETrue;
-    return this;
-
-    }
-
-// -----------------------------------------------------------------------------
-// CView::ItemTexts()
-// Formats menu texts
-// -----------------------------------------------------------------------------
-//
-TInt CView::ItemTexts( RArray<TDesC>& aArray )
-    {
-    
-    TInt count = iItems.Count();
-    for( TInt i=0; i<count; i++ )
-        {
-        TBuf<50> temp;
-        temp.Copy( iItems[i]->Name() );
-        if( aArray.Append( iItems[i]->Name() ) != KErrNone )
-            {
-            return KErrNoMemory;
-            }
-        }
-
-    return KErrNone;
-
-    }
-
-// -----------------------------------------------------------------------------
-// CView::SetParent()
-// Sets menu parent menu
-// -----------------------------------------------------------------------------
-//
-void CView::SetParent ( CView* aMenu )
-    {
-
-    iParent = aMenu;
-
-    }
-
-// -----------------------------------------------------------------------------
-// CView::Print()
-// Prints line to the screen.
-// -----------------------------------------------------------------------------
-//
-void CView::Print( const TDesC& aPrint )
-    {    
-    iConsole->Printf ( aPrint.Left( iSize.iWidth - KViewOverhead ) );   
-    iConsole->Printf(_L("\n"));
-    }
-
-// -----------------------------------------------------------------------------
-// CView::AddItemL()
-// Adds item to the list.
-// -----------------------------------------------------------------------------
-//
-void CView::AddItemL( CView* aMenu )
-    {
-
-    User::LeaveIfError ( iItems.Append( aMenu ) );
-    
-    }
-
-// -----------------------------------------------------------------------------
-// CView::ResetItems()
-// Resets the item list.
-// -----------------------------------------------------------------------------
-//
-void CView::ResetItems()
-    {
-    iItems.ResetAndDestroy();
-    }
-// -----------------------------------------------------------------------------
-// CView::Name()
-// Returns the name of view.
-// -----------------------------------------------------------------------------
-//
-const TDesC& CView::Name( ) const
-    {
-
-    return iViewName;
-
-    }
-
-// -----------------------------------------------------------------------------
-// CView::MapKeyCode()
-// Maps numeric keycodes to proper TKeyCode values.
-// -----------------------------------------------------------------------------
-//
-void CView::MapKeyCode(TKeyCode &aSelection)
-    {
-    
-    TInt asciiCode = (TInt) aSelection;
-    
-    // Handling numeric keys 2,4,6 and 8
-    
-    if(asciiCode == KMyKeyUpAsciiCode)
-        {
-        aSelection = EKeyUpArrow;
-        }
-        
-    if(asciiCode == KMyKeyLeftAsciiCode)
-        {
-        aSelection = EKeyLeftArrow;
-        }
-
-    if(asciiCode == KMyKeyRightAsciiCode)
-        {
-        aSelection = EKeyEnter;
-        }
-
-    if(asciiCode == KMyKeyDownAsciiCode)
-        {
-        aSelection = EKeyDownArrow;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CMainView::NewL()
-// First phase constructor.
-// -----------------------------------------------------------------------------
-//
-CMainView* CMainView::NewL( CConsoleMain* aConsole,
-                            CView* aParent,
-                            const TDesC& aName )
-    {
-
-    CMainView* self = new ( ELeave ) CMainView();
-    CleanupStack::PushL( self );
-    self->ConstructL( aConsole, aParent, aName );
-    CleanupStack::Pop( self );
-    return self;
-
-    }
-
-// -----------------------------------------------------------------------------
-// CMainView::ItemTexts()
-// Format menu texts.
-// -----------------------------------------------------------------------------
-//
-TInt CMainView::ItemTexts( RArray<TDesC>& aArray )
-    {
-    
-    CView::ItemTexts( aArray );
-    // Add Exit to last one in menu
-    if( aArray.Append( KExitTxt ) != KErrNone )
-        {
-        return KErrNoMemory;
-        }
-
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// CMainView::ConstructL()
-// Second phase constructor.
-// -----------------------------------------------------------------------------
-//
-void CMainView::ConstructL( CConsoleMain* aConsole, 
-                            CView* aParent,
-                            const TDesC& aName
-                          )
-    {
-
-    CView::ConstructL( aConsole, aParent, aName, NULL );
-
-    }
-
-// -----------------------------------------------------------------------------
-// CMainView::SelectL()
-// Process keypresses in menu.
-// -----------------------------------------------------------------------------
-//
-CView* CMainView::SelectL( TKeyCode aSelection, TBool& aContinue )
-    {
-
-    MapKeyCode( aSelection );
-    
-    // If SelectLion == "exit" and right or enter
-    if ( aSelection == EKeyEnter || aSelection == EKeyRightArrow )
-        {
-        if ( iPositionOnScreen == iItemCount - 1 )
-            {
-            // Exit
-            aContinue = EFalse;
-            return this;
-            }
-        }
-
-    // Normal menu handling
-    CView* tmp = CView::SelectL( aSelection, aContinue );
-    return tmp;
-
-    }
-
-// -----------------------------------------------------------------------------
-// CProcessInfoView::NewL()
-// First phase constructor.
-// -----------------------------------------------------------------------------
-//
-CProcessInfoView* CProcessInfoView::NewL( CConsoleMain* aConsole,
-                                        CView* aParent,
-                                        const TDesC& aName, TInt64 aProcessId )
-    {    
-
-        CProcessInfoView* self = new ( ELeave ) CProcessInfoView();
-    CleanupStack::PushL( self );
-    self->ConstructL( aConsole, aParent, aName, aProcessId );
-    CleanupStack::Pop( self );
-    return self;
-    
-    }
-
-// -----------------------------------------------------------------------------
-// CProcessInfoView::~CProcessInfoView()
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CProcessInfoView::~CProcessInfoView()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CProcessInfoView::ConstructL()
-// First phase constructor.
-// -----------------------------------------------------------------------------
-//
-void CProcessInfoView::ConstructL( CConsoleMain* aConsole,
-                                  CView* aParent,
-                                  const TDesC& aName, TInt64 aProcessId
-                                 )
-    {
-    CView::ConstructL( aConsole, aParent, aName, aProcessId );
-    }
-
-// -----------------------------------------------------------------------------
-// CProcessInfoView::ItemTexts()
-// Formats menu item texts.
-// -----------------------------------------------------------------------------
-//
-TInt CProcessInfoView::ItemTexts( RArray<TDesC>& /*aArray*/ )
-    {      
-    return KErrNone; 
-    }
-
-// -----------------------------------------------------------------------------
-// CProcessInfoView::PrintViewL()
-// Prints process info view.
-// -----------------------------------------------------------------------------
-//
-void CProcessInfoView::PrintViewL( TUpdateType /*aType*/ )
-    {
-    if ( !iShowLibraries && !iSetLoggingMode )
-        {
-        // Get module names
-        RArray<TATProcessInfo> processes;
-        // Clear display
-        iConsole->ClearScreen();
-        // Print menu title
-        TBuf<2*KMaxName> title;
-        title.Copy( Name() );
-        TInt subTest = iMain->IsSubTestRunning( iProcessId );
-        if ( subTest > KErrNotFound )
-            {
-            // Append subtest running text
-            title.Append( _L(": ") );
-            title.Append( _L( "subtest running" ) );
-            }
-        
-        Print( title /*Name()*/ );
-        // Update positions
-        RArray<TDesC> texts;
-        if( ItemTexts( texts ) != KErrNone )
-            {
-            return;
-            }
-        
-        TInt oldItemCount = iItemCount;
-        iItemCount = texts.Count();
-
-        // If first time in menu, update start and end positions
-        if( ( iFirstItem == iLastItem ) ||        // First time here..
-            ( iLastItem >= iItemCount ) ||
-            ( oldItemCount != iItemCount ) )      // Menu size changed
-            {
-            iLastItem = iItemCount - 1;
-            iPositionOnScreen = 0;
-
-            // If "overflow", then adjust the end
-            if ( iLastItem > iScreenSize )
-                {
-                iLastItem = iScreenSize;
-                }
-            }
-        // Update pos screen
-        if ( iPositionOnScreen > ( TInt )ECancelLoggingTxtItem - 1 )
-            iPositionOnScreen = 0;
-        else if ( iPositionOnScreen < ( TInt )EStartSubtestTxtItem )
-            iPositionOnScreen = ( TInt )ECancelLoggingTxtItem - 1;
-        
-        // Get processes
-        processes = iMain->Processes();
-        // Get current opened process
-        for ( TInt num = 0 ; num < processes.Count() ; num++ )
-            {
-            TATProcessInfo tmpProcessInfo;
-            tmpProcessInfo = processes[ num ];
-            if ( tmpProcessInfo.iProcessId == iProcessId )
-                {
-                iCurrentProcessInfo = tmpProcessInfo;
-                break;
-                }    
-            }
-
-        TBuf<KMaxLineLength> line;
-        // Get curr. and max. allocations
-        TUint32 number( KErrNone );
-        TUint32 size( KErrNone );
-        TUint32 maxNumber( KErrNone );
-        TUint32 maxSize( KErrNone );
-        TInt currErr = iMain->StorageServer().GetCurrentAllocsL( iProcessId, number, size );
-        TInt maxErr = iMain->StorageServer().GetMaxAllocsL( iProcessId, maxNumber, maxSize );
-        // Get logging mode
-        TATLogOption loggingMode;
-        TInt loggingErr = iMain->StorageServer().GetLoggingModeL( iProcessId, loggingMode );
-        
-        // Print curr. allocations
-        line = _L("    ");
-        LimitedAppend ( line, _L( "Curr. allocations: " ) );
-        // Append curr. allocs
-        if ( currErr == KErrNone )
-            line.AppendNum( number );
-        
-        Print( line );
-        line = _L("        ");
-        if ( currErr == KErrNone )
-            {
-            if ( size >= KATThousand && size < KATMillion ) // kiloByte range
-                {
-                TReal value( size );
-                value = value / KATThousand;
-                line.Format( _L("     %.1f"), value );
-                line.Append( _L(" ") );
-                line.Append( KATKB );  
-                }
-            else if ( size >= KATMillion ) // megaByte range
-                {
-                TReal value( size );
-                value = value / KATMillion;
-                line.Format( _L("     %.1f"), value );
-                line.Append( _L(" ") );
-                line.Append( KATMB );
-                }
-            else
-                {
-                line.Copy( _L("     ") );
-                line.AppendNum( size );
-                line.Append( _L(" ") );
-                line.Append( KATB );
-                }
-            }
-        else
-            {
-            LimitedAppend ( line, _L( "unavailable" ) );
-            }       
-        Print( line );
-        
-        // Print max. allocations
-        line = _L("    ");
-        LimitedAppend ( line, _L( "Max. allocations: " ) );
-        // Append curr. allocs
-        if ( maxErr == KErrNone )
-            line.AppendNum( maxNumber );
-        
-        Print( line );
-        line = _L("        ");
-        if ( maxErr == KErrNone )
-            {
-            if ( size >= KATThousand && size < KATMillion ) // kiloByte range
-                {
-                TReal value( maxSize );
-                value = value / KATThousand;
-                line.Format( _L("     %.1f"), value );
-                line.Append( _L(" ") );
-                line.Append( KATKB );  
-                }
-            else if ( size >= KATMillion ) // megaByte range
-                {
-                TReal value( maxSize );
-                value = value / KATMillion;
-                line.Format( _L("     %.1f"), value );
-                line.Append( _L(" ") );
-                line.Append( KATMB );
-                }
-            else
-                {
-                line.Copy( _L("     ") );
-                line.AppendNum( maxSize );
-                line.Append( _L(" ") );
-                line.Append( KATB );
-                }
-            }
-        else
-            {
-            LimitedAppend ( line, _L( "unavailable") );
-            }
-        Print( line ); 
-        
-        // Print starting time
-        line = _L("    ");
-        LimitedAppend ( line, _L( "Process started:") );
-        Print( line );
-        line = _L("     ");
-        TTime time( iCurrentProcessInfo.iStartTime );
-        TBuf<50> dateString;
-        _LIT( KDateString3,"%D%M%Y%/0%1%/1%2%/2%3%/3 %-B%:0%J%:1%T%:2%S%:3%+B" );
-        time.FormatL( dateString, KDateString3 );
-        LimitedAppend ( line, dateString );
-        Print( line );
-        
-        // Print logging mode
-        line = _L("    ");
-        LimitedAppend ( line, _L( "Logging mode:") );
-        Print( line );
-        line = _L("     ");
-        if ( KErrNone == loggingErr )
-            {
-            if ( EATUseDefault == loggingMode )
-                {
-                LimitedAppend ( line, _L( "External" ) );
-                }
-            else if ( EATLogToFile == loggingMode )
-                {
-                LimitedAppend ( line, _L( "Internal" ) );
-                }
-            else if ( EATLogToXti == loggingMode )
-                {
-                LimitedAppend ( line, _L( "External" ) );
-                }
-            else if( EATLoggingOff == loggingMode )
-                {
-                LimitedAppend ( line, _L( "None" ) );
-                }
-            }
-        else
-            {
-            LimitedAppend ( line, _L( "unavailable" ) );
-            }
-        Print(line);
-        
-        // Print mode information (UDEB/UREL)
-        line = _L("    ");
-        LimitedAppend ( line, _L( "Mode:") );
-        Print( line );
-        line = _L("     ");
-        TUint32 isUdeb;
-        TInt udebErr = iMain->StorageServer().GetUdebL( iProcessId, isUdeb );
-        if ( KErrNone == udebErr )
-            {
-            if ( isUdeb > KErrNone )
-                {
-                LimitedAppend ( line, _L( "UDEB" ) );
-                }
-            else
-                {
-                LimitedAppend ( line, _L( "UREL" ) );
-                }
-            }
-        else
-            {
-            LimitedAppend ( line, _L( "unavailable" ) );
-            }
-        Print( line );
-
-        // Print logging file information
-        line = _L("    ");
-        LimitedAppend ( line, _L( "Logging file:") );
-        Print( line );
-        line = _L("     ");  
-        TBuf8<KMaxFileName> fileName;
-        TInt fileErr = iMain->StorageServer().GetLoggingFileL( iProcessId, fileName );
-        if ( KErrNone == fileErr )
-            {
-            if ( fileName.Length() > KErrNone )
-                {
-                TBuf<KMaxFileName> unicodeFile;
-                CnvUtfConverter::ConvertToUnicodeFromUtf8( unicodeFile, fileName );
-                LimitedAppend ( line, unicodeFile );
-                }
-            else
-                {               
-                LimitedAppend ( line, _L( "None" ) );
-                }
-            }
-        else
-            {
-            LimitedAppend ( line, _L( "unavailable" ) );
-            }        
-        Print( line );
-        
-        line = _L("\n");
-        Print( line );
-        
-        // Print process info menu
-        TInt cursor( KErrNone );
-        while ( cursor <= ( TInt )ECancelLoggingTxtItem - 1 ) // -1, dyninitmenupane
-            {
-            line.Zero();
-            if ( cursor == 0 && iMain->IsSubTestRunning( iProcessId ) == KErrNotFound )
-                {
-                AppendBefore( cursor, line );
-                LimitedAppend ( line, _L( "Start subtest") );
-                // Print the line
-                Print( line );
-                }
-            else if ( cursor == 0 && iMain->IsSubTestRunning( iProcessId ) > KErrNotFound )
-                {
-                AppendBefore( cursor, line );
-                LimitedAppend ( line, _L( "Stop subtest") );
-                // Print the line
-                Print( line );
-                } 
-            else if ( cursor == 1 )
-                {
-                AppendBefore( cursor, line );
-                LimitedAppend ( line, _L( "View libraries") );
-                // Print the line
-                Print( line );
-                }
-            else if ( cursor == 2 )
-                {
-                AppendBefore( cursor, line );
-                LimitedAppend ( line, _L( "End process") );
-                // Print the line
-                Print( line );
-                }
-            else if ( cursor == 3 )
-                {
-                AppendBefore( cursor, line );
-                LimitedAppend ( line, _L( "Kill process") );
-                // Print the line
-                Print( line );
-                }
-            else if ( cursor == 4 )
-                {
-                AppendBefore( cursor, line );
-                LimitedAppend ( line, _L( "Cancel logging") );
-                // Print the line
-                Print( line );
-                }
-            cursor++;
-            }
-        texts.Close();
-        }
-    else if ( iShowLibraries && !iSetLoggingMode )
-        {
-        ViewLibrariesL();
-        }
-    else if ( !iShowLibraries && iSetLoggingMode )
-        {
-        SetLoggingModeL();
-        }
-
-    }
-
-// -----------------------------------------------------------------------------
-// CProcessInfoView::SelectL()
-// Process keypresses in menu.
-// -----------------------------------------------------------------------------
-//
-CView* CProcessInfoView::SelectL( TKeyCode aSelection, TBool& aContinue )
-    {
-    MapKeyCode( aSelection );
-    
-    if( ( aSelection == EKeyRightArrow ||
-            aSelection == EKeyEnter ) )
-        {
-        if ( !iSetLoggingMode )
-            {
-            if( iPositionOnScreen == EStartSubtestTxtItem )
-                {
-                if ( iMain->IsSubTestRunning( iProcessId ) == KErrNotFound )
-                    iMain->SetProcessSubTestStart( iProcessId );
-                else
-                    iMain->SetProcessSubTestStop( iProcessId );
-                return NULL;
-                }
-            else if( iPositionOnScreen == EViewLibrariesTxtItem - 1 )
-                {
-                iShowLibraries = ETrue;
-                return NULL;
-                }
-            else if( iPositionOnScreen == EEndProcessTxtItem - 1 )
-                {
-                EndProcessL( ETryToEnd );
-                // Trying to end process -> go processes view
-                return iParent;
-                }
-            else if( iPositionOnScreen == EKillProcessTxtItem - 1 )
-                {
-                EndProcessL( ETryToKill );
-                // Trying to kill process -> go processes view
-                return iParent;
-                }
-            else if( iPositionOnScreen == ECancelLoggingTxtItem - 1 )
-                {
-                iMain->StorageServer().CancelLogging( iProcessId );
-                return iParent;
-                }
-            else
-                {
-                return this;
-                }               
-            }
-        else if ( iSetLoggingMode )
-            {
-            return NULL;
-            }
-        }
-
-    return CView::SelectL( aSelection, aContinue );
-    }
-
-// -----------------------------------------------------------------------------
-// CProcessInfoView::ViewLibrariesL()
-// Prints libraries loaded by current process.
-// -----------------------------------------------------------------------------
-//
-void CProcessInfoView::ViewLibrariesL()
-    { 
-    // Clear display
-    iConsole->ClearScreen();
-    // Print menu title
-    Print( _L( "Loaded libraries:") );
-
-    TBuf<KMaxLineLength> line;  
-    // Loaded libraries for this process
-    RArray< TBuf8<KMaxLibraryName> > libraries;
-    iMain->StorageServer().GetLoadedDllsL( iCurrentProcessInfo.iProcessId, libraries );
-    TInt lCount = libraries.Count();
-    for ( TInt count = 0 ; count < lCount ; count++ )
-        {
-        TBuf<KMaxLibraryName> library;
-        library.Copy( libraries[ count ] );
-        line = _L("    ");
-        LimitedAppend ( line, library );
-        Print(line);
-        }
-    libraries.Close();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CProcessInfoView::SetLoggingModeL()
-// Prints logging modes which user wants to select to current process.
-// -----------------------------------------------------------------------------
-//
-void CProcessInfoView::SetLoggingModeL()
-    { 
-    // Clear display
-    iConsole->ClearScreen();
-    // Print menu title
-    Print( _L( "Logging mode:") );
-
-    // Update pos screen
-    if ( iPositionOnScreen > 2 )
-        iPositionOnScreen = 0;
-    else if ( iPositionOnScreen < 0 )
-        iPositionOnScreen = 2;
-    
-    TBuf<KMaxLineLength> line;  
-
-    // Print logging modes
-    TInt cursor( KErrNone );
-    while ( cursor <= 2 ) // Three items
-        {
-        line.Zero();
-        if ( cursor == 0 )
-            {
-            AppendBefore( cursor, line );
-            LimitedAppend ( line, _L( "External") );
-            // Print the line
-            Print( line );
-            }
-        else if ( cursor == 1 )
-            {
-            AppendBefore( cursor, line );
-            LimitedAppend ( line, _L( "Internal") );
-            // Print the line
-            Print( line );
-            } 
-        else if ( cursor == 2 )
-            {
-            AppendBefore( cursor, line );
-            LimitedAppend ( line, _L( "None") );
-            // Print the line
-            Print( line );
-            }
-        cursor++;
-        }  
-    }
-
-// -----------------------------------------------------------------------------
-// CProcessInfoView::EndProcessL()
-// Ends process with a specific method.
-// -----------------------------------------------------------------------------
-//
-void CProcessInfoView::EndProcessL( TInt aCommand )
-    {
-     RProcess endProcess;
-     TUint processId = iProcessId;
-     TBuf<KMaxProcessName> processName;
-     processName.Copy( Name() );
-     TInt find = processName.Find( _L( "." ) );
-     if ( find > KErrNotFound )
-         processName.Delete( find, processName.Length() - find );
-     
-     TInt openErr = endProcess.Open( TProcessId( processId ) );
-     if ( openErr ==KErrNone )
-         {
-         if ( aCommand == ETryToEnd )
-             {
-             endProcess.Close();
-             RWsSession wsSession;
-             TInt wsErr = wsSession.Connect();
-             if ( KErrNone == wsErr )
-                 {
-                 TApaTaskList apList = TApaTaskList( wsSession );
-                 TApaTask apTask = apList.FindApp( processName );
-                 if ( apTask.Exists() )
-                     {
-                     apTask.EndTask();
-                     }
-                 wsSession.Close();
-                 }
-
-             }
-         else if ( aCommand == ETryToKill )
-             {               
-             endProcess.Kill( KErrNone );
-             endProcess.Close();
-             }
-         }
-    }
-
-// End of file