perfapps/memspyui/ui/avkon/src/MemSpyAppUi.cpp
author hgs
Fri, 17 Sep 2010 14:22:55 +0300
changeset 52 36d60d12b4af
parent 51 b048e15729d6
permissions -rw-r--r--
201037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
51
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include "MemSpyAppUi.h"
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
// System includes
hgs
parents:
diff changeset
    21
#include <AknQueryDialog.h>
hgs
parents:
diff changeset
    22
#include <aknmessagequerydialog.h> 
hgs
parents:
diff changeset
    23
#include <aknradiobuttonsettingpage.h>
hgs
parents:
diff changeset
    24
#include <eikaufty.h>
hgs
parents:
diff changeset
    25
#include <eikmenub.h>
hgs
parents:
diff changeset
    26
#include <avkon.hrh>
hgs
parents:
diff changeset
    27
#include <barsread.h>
hgs
parents:
diff changeset
    28
#include <f32file.h>
hgs
parents:
diff changeset
    29
#include <memspyui.rsg>
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
// Engine includes
hgs
parents:
diff changeset
    32
#include <memspy/engine/memspyengine.h>
hgs
parents:
diff changeset
    33
#include <memspy/engine/memspyengineoutputsink.h>
hgs
parents:
diff changeset
    34
#include <memspy/engine/memspyengineobjectcontainer.h>
hgs
parents:
diff changeset
    35
#include <memspy/engine/memspyengineobjectprocess.h>
hgs
parents:
diff changeset
    36
#include <memspy/engine/memspyengineobjectthread.h>
hgs
parents:
diff changeset
    37
#include <memspy/engine/memspyengineobjectthreadinfoobjects.h>
hgs
parents:
diff changeset
    38
#include <memspy/engine/memspyenginehelperchunk.h>
hgs
parents:
diff changeset
    39
#include <memspy/engine/memspyenginehelperthread.h>
hgs
parents:
diff changeset
    40
#include <memspy/engine/memspyenginehelperprocess.h>
hgs
parents:
diff changeset
    41
#include <memspy/engine/memspyenginehelperkernelcontainers.h>
hgs
parents:
diff changeset
    42
#include <memspy/engine/memspyenginehelperfbserv.h>
hgs
parents:
diff changeset
    43
#include <memspyengineclientinterface.h>
hgs
parents:
diff changeset
    44
#include <memspy/driver/memspydriverenumerationsshared.h>
hgs
parents:
diff changeset
    45
#include <memspy/engine/memspyenginehelperkernelcontainers.h>
hgs
parents:
diff changeset
    46
//cigasto
hgs
parents:
diff changeset
    47
#include <memspysession.h>
hgs
parents:
diff changeset
    48
hgs
parents:
diff changeset
    49
// User includes
hgs
parents:
diff changeset
    50
#include "MemSpyContainer.h"
hgs
parents:
diff changeset
    51
#include "MemSpyDocument.h"
hgs
parents:
diff changeset
    52
#include "MemSpySettings.h"
hgs
parents:
diff changeset
    53
#include "MemSpyDeviceWideOperationDialog.h"
hgs
parents:
diff changeset
    54
#include "MemSpyViewRAMInfo.h" // for aknicon config check
hgs
parents:
diff changeset
    55
#include "MemSpyExportBitmapsToMemoryCardDialog.h"
hgs
parents:
diff changeset
    56
#include "MemSpy.hrh"
hgs
parents:
diff changeset
    57
#include "viewcli.h"
hgs
parents:
diff changeset
    58
hgs
parents:
diff changeset
    59
// Constants
hgs
parents:
diff changeset
    60
const TInt KMemSpyDefaultAutoCaptureTimerPeriod = 60;
hgs
parents:
diff changeset
    61
const TUint32 KMemSpyEikSrvSID = 0x10003a4a;
hgs
parents:
diff changeset
    62
hgs
parents:
diff changeset
    63
/*
hgs
parents:
diff changeset
    64
CMemSpyAppUi::CMemSpyAppUi( CMemSpyEngine& aEngine )
hgs
parents:
diff changeset
    65
:   iEngine( aEngine ), iAutoCaptureTimerPeriod( KMemSpyDefaultAutoCaptureTimerPeriod ), iAutoCaptureOperationType( CMemSpyDeviceWideOperations::EPerEntityHeapInfo )
hgs
parents:
diff changeset
    66
    {
hgs
parents:
diff changeset
    67
    iEngine.SetObserver( this );
hgs
parents:
diff changeset
    68
    }
hgs
parents:
diff changeset
    69
*/
hgs
parents:
diff changeset
    70
CMemSpyAppUi::CMemSpyAppUi( RMemSpySession &aSession )
hgs
parents:
diff changeset
    71
:   iMemSpySession( aSession ), iAutoCaptureTimerPeriod( KMemSpyDefaultAutoCaptureTimerPeriod ), iAutoCaptureOperationType( CMemSpyDeviceWideOperations::EPerEntityHeapInfo )
hgs
parents:
diff changeset
    72
    {
hgs
parents:
diff changeset
    73
    //iEngine.SetObserver( this );
hgs
parents:
diff changeset
    74
    }
hgs
parents:
diff changeset
    75
hgs
parents:
diff changeset
    76
CMemSpyAppUi::~CMemSpyAppUi()
hgs
parents:
diff changeset
    77
    {
hgs
parents:
diff changeset
    78
    RDebug::Printf( "[MemSpy] MemSpy is now closing." );
hgs
parents:
diff changeset
    79
    //
hgs
parents:
diff changeset
    80
    delete iAutoCaptureTimer;
hgs
parents:
diff changeset
    81
    //
hgs
parents:
diff changeset
    82
    if (iAppContainer)
hgs
parents:
diff changeset
    83
        {
hgs
parents:
diff changeset
    84
        RemoveFromStack( iAppContainer );
hgs
parents:
diff changeset
    85
        delete iAppContainer;
hgs
parents:
diff changeset
    86
        }
hgs
parents:
diff changeset
    87
    //
hgs
parents:
diff changeset
    88
    //iEngine.SetObserver( NULL );
hgs
parents:
diff changeset
    89
    SetViewServerTimeOutStatus( ETrue );
hgs
parents:
diff changeset
    90
    }
hgs
parents:
diff changeset
    91
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
void CMemSpyAppUi::ConstructL()
hgs
parents:
diff changeset
    94
    {
hgs
parents:
diff changeset
    95
    BaseConstructL( EAknEnableSkin );
hgs
parents:
diff changeset
    96
    //
hgs
parents:
diff changeset
    97
    //iAppContainer = new (ELeave) CMemSpyContainer( iEngine, *this );
hgs
parents:
diff changeset
    98
    iAppContainer = new (ELeave) CMemSpyContainer( iMemSpySession, *this );
hgs
parents:
diff changeset
    99
    iAppContainer->SetMopParent(this);
hgs
parents:
diff changeset
   100
    iAppContainer->ConstructL( ClientRect() );
hgs
parents:
diff changeset
   101
    iAppContainer->SetObserver( this );
hgs
parents:
diff changeset
   102
    iAppContainer->SetFocus( ETrue );
hgs
parents:
diff changeset
   103
    AddToStackL( iAppContainer );
hgs
parents:
diff changeset
   104
    //
hgs
parents:
diff changeset
   105
    iAutoCaptureTimer = CPeriodic::NewL( CActive::EPriorityIdle );
hgs
parents:
diff changeset
   106
	//
hgs
parents:
diff changeset
   107
	iEikonEnv->SetSystem( ETrue );
hgs
parents:
diff changeset
   108
    //
hgs
parents:
diff changeset
   109
    SetViewServerTimeOutStatus( EFalse );
hgs
parents:
diff changeset
   110
    }
hgs
parents:
diff changeset
   111
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
CMemSpyDocument& CMemSpyAppUi::MemSpyDocument()
hgs
parents:
diff changeset
   114
    {
hgs
parents:
diff changeset
   115
	CMemSpyDocument* doc = static_cast< CMemSpyDocument* >( Document() );
hgs
parents:
diff changeset
   116
    return *doc;
hgs
parents:
diff changeset
   117
    }
hgs
parents:
diff changeset
   118
hgs
parents:
diff changeset
   119
hgs
parents:
diff changeset
   120
const CMemSpyDocument& CMemSpyAppUi::MemSpyDocument() const
hgs
parents:
diff changeset
   121
    {
hgs
parents:
diff changeset
   122
	const CMemSpyDocument* doc = static_cast< const CMemSpyDocument* >( Document() );
hgs
parents:
diff changeset
   123
    return *doc;
hgs
parents:
diff changeset
   124
    }
hgs
parents:
diff changeset
   125
hgs
parents:
diff changeset
   126
hgs
parents:
diff changeset
   127
void CMemSpyAppUi::HandleStatusPaneSizeChange()
hgs
parents:
diff changeset
   128
	{
hgs
parents:
diff changeset
   129
	iAppContainer->SetRect( ClientRect() );
hgs
parents:
diff changeset
   130
	} 
hgs
parents:
diff changeset
   131
hgs
parents:
diff changeset
   132
hgs
parents:
diff changeset
   133
void CMemSpyAppUi::HandleControlEventL( CCoeControl* aControl, TCoeEvent /*aEventType*/ )
hgs
parents:
diff changeset
   134
    {
hgs
parents:
diff changeset
   135
    if  ( aControl == iAppContainer )
hgs
parents:
diff changeset
   136
        {
hgs
parents:
diff changeset
   137
        UpdateCBAL();
hgs
parents:
diff changeset
   138
        }
hgs
parents:
diff changeset
   139
    }
hgs
parents:
diff changeset
   140
hgs
parents:
diff changeset
   141
hgs
parents:
diff changeset
   142
void CMemSpyAppUi::DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane )
hgs
parents:
diff changeset
   143
    {
hgs
parents:
diff changeset
   144
    CMemSpyViewBase& view = iAppContainer->ActiveView();
hgs
parents:
diff changeset
   145
    const TMemSpyViewType viewType = iAppContainer->ActiveViewType();
hgs
parents:
diff changeset
   146
    //
hgs
parents:
diff changeset
   147
    const TBool openableView = MemSpyViewTypeUtils::IsOpenableItem( viewType );
hgs
parents:
diff changeset
   148
    const TBool exitable = MemSpyViewTypeUtils::IsExitableView( viewType );
hgs
parents:
diff changeset
   149
    //
hgs
parents:
diff changeset
   150
#ifdef _DEBUG
hgs
parents:
diff changeset
   151
    RDebug::Printf( "[MemSpy] CMemSpyAppUi::DynInitMenuPaneL() - START - aResourceId: 0x%08x (%8d), iAutoCaptureOperationType: %d, iAutoCaptureTimer is active: %d, viewType: %d, openableView: %d, exitable: %d", aResourceId, aResourceId, iAutoCaptureOperationType, iAutoCaptureTimer->IsActive(), viewType, openableView, exitable );
hgs
parents:
diff changeset
   152
#endif
hgs
parents:
diff changeset
   153
    //
hgs
parents:
diff changeset
   154
    if  ( aResourceId == R_MEMSPY_MENUPANE )
hgs
parents:
diff changeset
   155
        {
hgs
parents:
diff changeset
   156
        const TInt count = aMenuPane->NumberOfItemsInPane();
hgs
parents:
diff changeset
   157
        for( TInt i=0; i<count; i++ )
hgs
parents:
diff changeset
   158
            {
hgs
parents:
diff changeset
   159
            TBool dimItem = EFalse;
hgs
parents:
diff changeset
   160
            CEikMenuPaneItem::SData& menuPaneMetaData = aMenuPane->ItemDataByIndexL( i );
hgs
parents:
diff changeset
   161
hgs
parents:
diff changeset
   162
            // If the command is inside the view-specific range then we'll hide it
hgs
parents:
diff changeset
   163
            // unless the view and command id matches.
hgs
parents:
diff changeset
   164
            const TBool isViewSpecific = ( menuPaneMetaData.iCommandId >= KMemSpyMenuCommandViewSpecific );
hgs
parents:
diff changeset
   165
            if  ( isViewSpecific )
hgs
parents:
diff changeset
   166
                {
hgs
parents:
diff changeset
   167
                // Check whether this view requires this command item.
hgs
parents:
diff changeset
   168
                dimItem = ( view.MenuCascadeCommandId() != menuPaneMetaData.iCommandId );
hgs
parents:
diff changeset
   169
                }
hgs
parents:
diff changeset
   170
hgs
parents:
diff changeset
   171
            aMenuPane->SetItemDimmed( menuPaneMetaData.iCommandId, dimItem );
hgs
parents:
diff changeset
   172
            }
hgs
parents:
diff changeset
   173
hgs
parents:
diff changeset
   174
        aMenuPane->SetItemDimmed( EMemSpyCmdOpen, !openableView );
hgs
parents:
diff changeset
   175
        aMenuPane->SetItemDimmed( EAknSoftkeyBack, exitable );
hgs
parents:
diff changeset
   176
        aMenuPane->SetItemDimmed( EAknCmdExit, !exitable );
hgs
parents:
diff changeset
   177
        }
hgs
parents:
diff changeset
   178
    else if ( aResourceId == R_MEMSPY_MENUPANE_TOOLS )
hgs
parents:
diff changeset
   179
        {
hgs
parents:
diff changeset
   180
        const TBool inOpenFilesView = ( viewType == EMemSpyViewTypeOpenFiles );
hgs
parents:
diff changeset
   181
        aMenuPane->SetItemDimmed( EMemSpyCmdToolsListOpenFiles, !inOpenFilesView );
hgs
parents:
diff changeset
   182
        }
hgs
parents:
diff changeset
   183
    else if ( aResourceId == R_MEMSPY_MENUPANE_VIEW )
hgs
parents:
diff changeset
   184
        {
hgs
parents:
diff changeset
   185
        // Hide the refresh item when in the thread info container view
hgs
parents:
diff changeset
   186
        aMenuPane->SetItemDimmed( EMemSpyCmdViewRefresh, viewType == EMemSpyViewTypeThreadInfoItemList );
hgs
parents:
diff changeset
   187
        aMenuPane->SetItemDimmed( EMemSpyCmdViewOutputToSink, viewType == EMemSpyViewTypeThreadInfoItemList );
hgs
parents:
diff changeset
   188
        }
hgs
parents:
diff changeset
   189
    else if ( aResourceId == R_MEMSPY_MENUPANE_OUTPUT )
hgs
parents:
diff changeset
   190
        {
hgs
parents:
diff changeset
   191
        TMemSpySinkType currentSink;
hgs
parents:
diff changeset
   192
        iMemSpySession.GetOutputSink( currentSink );
hgs
parents:
diff changeset
   193
		aMenuPane->SetItemDimmed( EMemSpyCmdOutputToDebug, currentSink == ESinkTypeDebug );
hgs
parents:
diff changeset
   194
        aMenuPane->SetItemDimmed( EMemSpyCmdOutputToFile, currentSink == ESinkTypeFile );                
hgs
parents:
diff changeset
   195
        }
hgs
parents:
diff changeset
   196
    else if ( aResourceId == R_MEMSPY_MENUPANE_AUTO_CAPTURE )
hgs
parents:
diff changeset
   197
        {
hgs
parents:
diff changeset
   198
        // Change the auto-capture toggle caption appropriately...
hgs
parents:
diff changeset
   199
        TInt resId = R_MEMSPY_AUTO_CAPTURE_ENABLE;
hgs
parents:
diff changeset
   200
        if  ( iAutoCaptureTimer->IsActive() )
hgs
parents:
diff changeset
   201
            {
hgs
parents:
diff changeset
   202
            resId = R_MEMSPY_AUTO_CAPTURE_DISABLE;
hgs
parents:
diff changeset
   203
            }
hgs
parents:
diff changeset
   204
        aMenuPane->SetItemTextL( EMemSpyCmdAutoCaptureToggle, resId );
hgs
parents:
diff changeset
   205
        }
hgs
parents:
diff changeset
   206
hgs
parents:
diff changeset
   207
#ifdef _DEBUG
hgs
parents:
diff changeset
   208
    RDebug::Printf( "[MemSpy] CMemSpyAppUi::DynInitMenuPaneL() - sending to view..." );
hgs
parents:
diff changeset
   209
#endif
hgs
parents:
diff changeset
   210
hgs
parents:
diff changeset
   211
    view.DynInitMenuPaneL( aResourceId, aMenuPane );
hgs
parents:
diff changeset
   212
hgs
parents:
diff changeset
   213
#ifdef _DEBUG
hgs
parents:
diff changeset
   214
    RDebug::Printf( "[MemSpy] CMemSpyAppUi::DynInitMenuPaneL() - END - aResourceId: 0x%08x (%8d), iAutoCaptureOperationType: %d, iAutoCaptureTimer is active: %d, viewType: %d, openableView: %d, exitable: %d", aResourceId, aResourceId, iAutoCaptureOperationType, iAutoCaptureTimer->IsActive(), viewType, openableView, exitable );
hgs
parents:
diff changeset
   215
#endif
hgs
parents:
diff changeset
   216
    }
hgs
parents:
diff changeset
   217
hgs
parents:
diff changeset
   218
hgs
parents:
diff changeset
   219
TKeyResponse CMemSpyAppUi::HandleKeyEventL( const TKeyEvent& /*aKeyEvent*/, TEventCode /*aType*/ )
hgs
parents:
diff changeset
   220
    {
hgs
parents:
diff changeset
   221
    return EKeyWasNotConsumed;
hgs
parents:
diff changeset
   222
    }
hgs
parents:
diff changeset
   223
hgs
parents:
diff changeset
   224
hgs
parents:
diff changeset
   225
void CMemSpyAppUi::HandleCommandL( TInt aCommand )
hgs
parents:
diff changeset
   226
    {
hgs
parents:
diff changeset
   227
#ifdef _DEBUG
hgs
parents:
diff changeset
   228
    RDebug::Printf( "[MemSpy] CMemSpyAppUi::HandleCommandL() - START - aCommand: %8d, iAutoCaptureOperationType: %d, iAutoCaptureTimer is active: %d", aCommand, iAutoCaptureOperationType, iAutoCaptureTimer->IsActive() );
hgs
parents:
diff changeset
   229
#endif
hgs
parents:
diff changeset
   230
hgs
parents:
diff changeset
   231
    switch ( aCommand )
hgs
parents:
diff changeset
   232
        {
hgs
parents:
diff changeset
   233
    case EAknSoftkeyBack:
hgs
parents:
diff changeset
   234
        OnCmdBackL();
hgs
parents:
diff changeset
   235
        break;
hgs
parents:
diff changeset
   236
hgs
parents:
diff changeset
   237
    case EEikCmdExit:
hgs
parents:
diff changeset
   238
    case EAknCmdExit:
hgs
parents:
diff changeset
   239
    case EAknSoftkeyExit:
hgs
parents:
diff changeset
   240
        OnCmdExitL();
hgs
parents:
diff changeset
   241
        break;
hgs
parents:
diff changeset
   242
hgs
parents:
diff changeset
   243
    case EMemSpyCmdOpen:
hgs
parents:
diff changeset
   244
        OnCmdOpenL();
hgs
parents:
diff changeset
   245
        break;
hgs
parents:
diff changeset
   246
hgs
parents:
diff changeset
   247
    case EMemSpyCmdOutputToDebug:
hgs
parents:
diff changeset
   248
        OnCmdOutputToDebugL();
hgs
parents:
diff changeset
   249
		break;
hgs
parents:
diff changeset
   250
    case EMemSpyCmdOutputToFile:
hgs
parents:
diff changeset
   251
        OnCmdOutputToFileL();
hgs
parents:
diff changeset
   252
		break;
hgs
parents:
diff changeset
   253
hgs
parents:
diff changeset
   254
    case EMemSpyCmdToolsAbout:
hgs
parents:
diff changeset
   255
        OnCmdAboutL();
hgs
parents:
diff changeset
   256
        break;
hgs
parents:
diff changeset
   257
    //         
hgs
parents:
diff changeset
   258
    case EMemSpyCmdPhoneInfoGeneralSummary:
hgs
parents:
diff changeset
   259
        //OnCmdPhoneInformationOperationL( CMemSpyDeviceWideOperations::EPerEntityGeneralSummary );
hgs
parents:
diff changeset
   260
    	OnCmdPhoneInformationOperationL( OutputPhoneInfo );
hgs
parents:
diff changeset
   261
        break;        
hgs
parents:
diff changeset
   262
    case EMemSpyCmdPhoneInfoGeneralDetailed:
hgs
parents:
diff changeset
   263
        //OnCmdPhoneInformationOperationL( CMemSpyDeviceWideOperations::EPerEntityGeneralDetailed );
hgs
parents:
diff changeset
   264
        OnCmdPhoneInformationOperationL( OutputDetailedPhoneInfo );
hgs
parents:
diff changeset
   265
        break;
hgs
parents:
diff changeset
   266
    /*
hgs
parents:
diff changeset
   267
    case EMemSpyCmdPhoneInfoGeneralHandles:
hgs
parents:
diff changeset
   268
        OnCmdPhoneInformationOperationL( CMemSpyDeviceWideOperations::EPerEntityGeneralHandles );
hgs
parents:
diff changeset
   269
        break;
hgs
parents:
diff changeset
   270
    case EMemSpyCmdPhoneInfoGeneralKernelContainers:
hgs
parents:
diff changeset
   271
        OnCmdPhoneInformationOperationKernelContainersL();
hgs
parents:
diff changeset
   272
        break;
hgs
parents:
diff changeset
   273
    //
hgs
parents:
diff changeset
   274
    */
hgs
parents:
diff changeset
   275
    case EMemSpyCmdPhoneInfoHeapInfoSummary:
hgs
parents:
diff changeset
   276
        //OnCmdPhoneInformationOperationL( CMemSpyDeviceWideOperations::EPerEntityHeapInfo );
hgs
parents:
diff changeset
   277
    	OnCmdPhoneInformationOperationL (OutputHeapInfo );
hgs
parents:
diff changeset
   278
        break;
hgs
parents:
diff changeset
   279
    case EMemSpyCmdPhoneInfoHeapInfoCompact:
hgs
parents:
diff changeset
   280
        //OnCmdPhoneInformationOperationL( CMemSpyDeviceWideOperations::EEntireDeviceHeapInfoCompact );
hgs
parents:
diff changeset
   281
    	OnCmdPhoneInformationOperationL( OutputCompactHeapInfo );
hgs
parents:
diff changeset
   282
        break;
hgs
parents:
diff changeset
   283
    case EMemSpyCmdPhoneInfoHeapCellListing:
hgs
parents:
diff changeset
   284
        //OnCmdPhoneInformationOperationL( CMemSpyDeviceWideOperations::EPerEntityHeapCellListing );
hgs
parents:
diff changeset
   285
        OnCmdPhoneInformationOperationL( OutputHeapCellListing );
hgs
parents:
diff changeset
   286
        break;
hgs
parents:
diff changeset
   287
        
hgs
parents:
diff changeset
   288
    case EMemSpyCmdPhoneInfoHeapDump:
hgs
parents:
diff changeset
   289
        //OnCmdPhoneInformationOperationL( CMemSpyDeviceWideOperations::EPerEntityHeapData );
hgs
parents:
diff changeset
   290
    	OnCmdPhoneInformationOperationL( OutputHeapData );
hgs
parents:
diff changeset
   291
        break;
hgs
parents:
diff changeset
   292
    //		   		    		
hgs
parents:
diff changeset
   293
    case EMemSpyCmdPhoneInfoStackInfo:
hgs
parents:
diff changeset
   294
        //OnCmdPhoneInformationOperationL( CMemSpyDeviceWideOperations::EPerEntityStackInfo );
hgs
parents:
diff changeset
   295
        OnCmdPhoneInformationOperationL( OutputStackInfo );
hgs
parents:
diff changeset
   296
        break;
hgs
parents:
diff changeset
   297
    case EMemSpyCmdPhoneInfoStackInfoCompact:
hgs
parents:
diff changeset
   298
        //OnCmdPhoneInformationOperationL( CMemSpyDeviceWideOperations::EEntireDeviceStackInfoCompact );
hgs
parents:
diff changeset
   299
        OnCmdPhoneInformationOperationL( OutputCompactStackInfo );
hgs
parents:
diff changeset
   300
        break;
hgs
parents:
diff changeset
   301
    case EMemSpyCmdPhoneInfoStackDumpUser:
hgs
parents:
diff changeset
   302
        //OnCmdPhoneInformationOperationL( CMemSpyDeviceWideOperations::EPerEntityStackDataUser );
hgs
parents:
diff changeset
   303
    	OnCmdPhoneInformationOperationL( OutputUserStackData );
hgs
parents:
diff changeset
   304
        break;
hgs
parents:
diff changeset
   305
    case EMemSpyCmdPhoneInfoStackDumpKernel:
hgs
parents:
diff changeset
   306
        //OnCmdPhoneInformationOperationL( CMemSpyDeviceWideOperations::EPerEntityStackDataKernel );
hgs
parents:
diff changeset
   307
        OnCmdPhoneInformationOperationL( OutputKernelStackData );
hgs
parents:
diff changeset
   308
        break;
hgs
parents:
diff changeset
   309
hgs
parents:
diff changeset
   310
    case EMemSpyCmdAutoCaptureToggle:
hgs
parents:
diff changeset
   311
        OnCmdAutoCaptureToggleL();
hgs
parents:
diff changeset
   312
        break;
hgs
parents:
diff changeset
   313
    case EMemSpyCmdAutoCaptureRetryTime:
hgs
parents:
diff changeset
   314
        OnCmdAutoCaptureRetryTimeL();
hgs
parents:
diff changeset
   315
        break;
hgs
parents:
diff changeset
   316
    case EMemSpyCmdAutoCaptureOperationType:
hgs
parents:
diff changeset
   317
        OnCmdAutoCaptureOperationTypeL();
hgs
parents:
diff changeset
   318
        break;
hgs
parents:
diff changeset
   319
hgs
parents:
diff changeset
   320
    default:
hgs
parents:
diff changeset
   321
        iAppContainer->HandleCommandL( aCommand );
hgs
parents:
diff changeset
   322
        break;
hgs
parents:
diff changeset
   323
        }
hgs
parents:
diff changeset
   324
hgs
parents:
diff changeset
   325
#ifdef _DEBUG
hgs
parents:
diff changeset
   326
    RDebug::Printf( "[MemSpy] CMemSpyAppUi::HandleCommandL() - END - aCommand: %8d, iAutoCaptureOperationType: %d, iAutoCaptureTimer is active: %d", aCommand, iAutoCaptureOperationType, iAutoCaptureTimer->IsActive() );
hgs
parents:
diff changeset
   327
#endif
hgs
parents:
diff changeset
   328
    }
hgs
parents:
diff changeset
   329
hgs
parents:
diff changeset
   330
hgs
parents:
diff changeset
   331
void CMemSpyAppUi::HandleForegroundEventL( TBool aForeground)
hgs
parents:
diff changeset
   332
    {
hgs
parents:
diff changeset
   333
    // Refresh the container when coming to the foreground
hgs
parents:
diff changeset
   334
    if  ( aForeground )
hgs
parents:
diff changeset
   335
        {
hgs
parents:
diff changeset
   336
        iAppContainer->OnCmdViewRefreshL();
hgs
parents:
diff changeset
   337
        }
hgs
parents:
diff changeset
   338
    }
hgs
parents:
diff changeset
   339
hgs
parents:
diff changeset
   340
hgs
parents:
diff changeset
   341
void CMemSpyAppUi::HandleThreadSelectedL( const CMemSpyThread& /*aThread*/ )
hgs
parents:
diff changeset
   342
    {
hgs
parents:
diff changeset
   343
	MEikAppUiFactory* appUiFactory = (iEikonEnv)->AppUiFactory();
hgs
parents:
diff changeset
   344
    appUiFactory->MenuBar()->TryDisplayMenuBarL();
hgs
parents:
diff changeset
   345
    }
hgs
parents:
diff changeset
   346
hgs
parents:
diff changeset
   347
hgs
parents:
diff changeset
   348
void CMemSpyAppUi::HandleMemSpyEngineEventL( MMemSpyEngineObserver::TEvent aEvent, TAny* aContext )
hgs
parents:
diff changeset
   349
    {
hgs
parents:
diff changeset
   350
    if  ( aEvent == MMemSpyEngineObserver::EHandleThreadsOrProcessesChanged )
hgs
parents:
diff changeset
   351
        {
hgs
parents:
diff changeset
   352
        // Get the original container
hgs
parents:
diff changeset
   353
        const CMemSpyEngineObjectContainer& oldContainer = *reinterpret_cast< CMemSpyEngineObjectContainer* >( aContext );
hgs
parents:
diff changeset
   354
        (void) oldContainer;
hgs
parents:
diff changeset
   355
hgs
parents:
diff changeset
   356
        // Refresh the container
hgs
parents:
diff changeset
   357
        iAppContainer->OnCmdViewRefreshL();
hgs
parents:
diff changeset
   358
        }
hgs
parents:
diff changeset
   359
    else if ( aEvent == MMemSpyEngineObserver::EHandleClientServerOperationRequest )
hgs
parents:
diff changeset
   360
        {
hgs
parents:
diff changeset
   361
        const TInt function = reinterpret_cast<TInt>( aContext );
hgs
parents:
diff changeset
   362
        InitiateMemSpyClientServerOperationL( function );
hgs
parents:
diff changeset
   363
        }
hgs
parents:
diff changeset
   364
    }
hgs
parents:
diff changeset
   365
hgs
parents:
diff changeset
   366
hgs
parents:
diff changeset
   367
void CMemSpyAppUi::DWOperationStarted()
hgs
parents:
diff changeset
   368
    {
hgs
parents:
diff changeset
   369
#ifdef _DEBUG
hgs
parents:
diff changeset
   370
    RDebug::Printf( "[MemSpy] CMemSpyAppUi::DWOperationStarted() - START - iRunningDeviceWideOperation: %d, iAutoCaptureTimer is active: %d", iRunningDeviceWideOperation, iAutoCaptureTimer->IsActive() );
hgs
parents:
diff changeset
   371
#endif
hgs
parents:
diff changeset
   372
hgs
parents:
diff changeset
   373
    iRunningDeviceWideOperation = ETrue;
hgs
parents:
diff changeset
   374
hgs
parents:
diff changeset
   375
#ifdef _DEBUG
hgs
parents:
diff changeset
   376
    RDebug::Printf( "[MemSpy] CMemSpyAppUi::DWOperationStarted() - END - iRunningDeviceWideOperation: %d, iAutoCaptureTimer is active: %d", iRunningDeviceWideOperation, iAutoCaptureTimer->IsActive() );
hgs
parents:
diff changeset
   377
#endif
hgs
parents:
diff changeset
   378
    }
hgs
parents:
diff changeset
   379
hgs
parents:
diff changeset
   380
hgs
parents:
diff changeset
   381
void CMemSpyAppUi::DWOperationCancelled()
hgs
parents:
diff changeset
   382
    {
hgs
parents:
diff changeset
   383
#ifdef _DEBUG
hgs
parents:
diff changeset
   384
    RDebug::Printf( "[MemSpy] CMemSpyAppUi::DWOperationCancelled() - START - iRunningDeviceWideOperation: %d, iAutoCaptureTimer is active: %d", iRunningDeviceWideOperation, iAutoCaptureTimer->IsActive() );
hgs
parents:
diff changeset
   385
#endif
hgs
parents:
diff changeset
   386
hgs
parents:
diff changeset
   387
    iAutoCaptureTimer->Cancel();
hgs
parents:
diff changeset
   388
hgs
parents:
diff changeset
   389
#ifdef _DEBUG
hgs
parents:
diff changeset
   390
    RDebug::Printf( "[MemSpy] CMemSpyAppUi::DWOperationCancelled() - END - iRunningDeviceWideOperation: %d, iAutoCaptureTimer is active: %d", iRunningDeviceWideOperation, iAutoCaptureTimer->IsActive() );
hgs
parents:
diff changeset
   391
#endif
hgs
parents:
diff changeset
   392
    }
hgs
parents:
diff changeset
   393
hgs
parents:
diff changeset
   394
hgs
parents:
diff changeset
   395
void CMemSpyAppUi::DWOperationCompleted()
hgs
parents:
diff changeset
   396
    {
hgs
parents:
diff changeset
   397
#ifdef _DEBUG
hgs
parents:
diff changeset
   398
    RDebug::Printf( "[MemSpy] CMemSpyAppUi::DWOperationCompleted() - START - iRunningDeviceWideOperation: %d, iAutoCaptureTimer is active: %d", iRunningDeviceWideOperation, iAutoCaptureTimer->IsActive() );
hgs
parents:
diff changeset
   399
#endif
hgs
parents:
diff changeset
   400
hgs
parents:
diff changeset
   401
    iRunningDeviceWideOperation = EFalse;
hgs
parents:
diff changeset
   402
hgs
parents:
diff changeset
   403
#ifdef _DEBUG
hgs
parents:
diff changeset
   404
    RDebug::Printf( "[MemSpy] CMemSpyAppUi::DWOperationCompleted() - END - iAutoCaptureTimer is active: %d", iAutoCaptureTimer->IsActive() );
hgs
parents:
diff changeset
   405
#endif
hgs
parents:
diff changeset
   406
    }
hgs
parents:
diff changeset
   407
hgs
parents:
diff changeset
   408
hgs
parents:
diff changeset
   409
void CMemSpyAppUi::UpdateCBAL()
hgs
parents:
diff changeset
   410
    {
hgs
parents:
diff changeset
   411
    CEikButtonGroupContainer* cba = CEikButtonGroupContainer::Current();
hgs
parents:
diff changeset
   412
    const TMemSpyViewType viewType = iAppContainer->ActiveViewType();
hgs
parents:
diff changeset
   413
    //
hgs
parents:
diff changeset
   414
    if  ( MemSpyViewTypeUtils::IsExitableView( viewType ) )
hgs
parents:
diff changeset
   415
        {
hgs
parents:
diff changeset
   416
        cba->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_EXIT );
hgs
parents:
diff changeset
   417
        }
hgs
parents:
diff changeset
   418
    else
hgs
parents:
diff changeset
   419
        {
hgs
parents:
diff changeset
   420
        cba->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_BACK );
hgs
parents:
diff changeset
   421
        }
hgs
parents:
diff changeset
   422
hgs
parents:
diff changeset
   423
    cba->MakeVisible( ETrue );
hgs
parents:
diff changeset
   424
    cba->DrawNow();
hgs
parents:
diff changeset
   425
    }
hgs
parents:
diff changeset
   426
hgs
parents:
diff changeset
   427
hgs
parents:
diff changeset
   428
void CMemSpyAppUi::InitiateMemSpyClientServerOperationL( TInt aOpCode )
hgs
parents:
diff changeset
   429
    {
hgs
parents:
diff changeset
   430
#ifdef _DEBUG
hgs
parents:
diff changeset
   431
    RDebug::Printf( "[MemSpy] CMemSpyAppUi::InitiateMemSpyClientServerOperationL() - START - aOpCode: %d", aOpCode );
hgs
parents:
diff changeset
   432
#endif
hgs
parents:
diff changeset
   433
hgs
parents:
diff changeset
   434
    switch( aOpCode )
hgs
parents:
diff changeset
   435
        {
hgs
parents:
diff changeset
   436
    case EMemSpyClientServerOpSummaryInfo:
hgs
parents:
diff changeset
   437
        HandleCommandL( EMemSpyCmdPhoneInfoGeneralSummary );
hgs
parents:
diff changeset
   438
        break;
hgs
parents:
diff changeset
   439
    case EMemSpyClientServerOpSummaryInfoDetailed:
hgs
parents:
diff changeset
   440
        HandleCommandL( EMemSpyCmdPhoneInfoGeneralDetailed );
hgs
parents:
diff changeset
   441
        break;
hgs
parents:
diff changeset
   442
    //
hgs
parents:
diff changeset
   443
    case EMemSpyClientServerOpHeapInfo:
hgs
parents:
diff changeset
   444
        HandleCommandL( EMemSpyCmdPhoneInfoHeapInfoSummary );
hgs
parents:
diff changeset
   445
        break;
hgs
parents:
diff changeset
   446
    case EMemSpyClientServerOpHeapCellListing:
hgs
parents:
diff changeset
   447
        HandleCommandL( EMemSpyCmdPhoneInfoHeapCellListing );
hgs
parents:
diff changeset
   448
        break;
hgs
parents:
diff changeset
   449
    case EMemSpyClientServerOpHeapData:
hgs
parents:
diff changeset
   450
        HandleCommandL( EMemSpyCmdPhoneInfoHeapDump );
hgs
parents:
diff changeset
   451
        break;
hgs
parents:
diff changeset
   452
    //
hgs
parents:
diff changeset
   453
    case EMemSpyClientServerOpStackInfo:
hgs
parents:
diff changeset
   454
        HandleCommandL( EMemSpyCmdPhoneInfoStackInfo );
hgs
parents:
diff changeset
   455
        break;
hgs
parents:
diff changeset
   456
    case EMemSpyClientServerOpStackDataUser:
hgs
parents:
diff changeset
   457
        HandleCommandL( EMemSpyCmdPhoneInfoStackDumpUser );
hgs
parents:
diff changeset
   458
        break;
hgs
parents:
diff changeset
   459
    case EMemSpyClientServerOpStackDataKernel:
hgs
parents:
diff changeset
   460
        HandleCommandL( EMemSpyCmdPhoneInfoStackDumpKernel );
hgs
parents:
diff changeset
   461
        break;
hgs
parents:
diff changeset
   462
    //
hgs
parents:
diff changeset
   463
    case EMemSpyClientServerOpBitmapsSave:
hgs
parents:
diff changeset
   464
        OnCmdToolsBitmapsSaveToMemoryCardL();
hgs
parents:
diff changeset
   465
        break;
hgs
parents:
diff changeset
   466
    case EMemSpyClientServerOpSendToBackground:
hgs
parents:
diff changeset
   467
        OnCmdToolsSendToBackgroundL();
hgs
parents:
diff changeset
   468
        break;
hgs
parents:
diff changeset
   469
    case EMemSpyClientServerOpBringToForeground:
hgs
parents:
diff changeset
   470
        OnCmdToolsBringToForegroundL();
hgs
parents:
diff changeset
   471
        break;
hgs
parents:
diff changeset
   472
    case EMemSpyClientServerOpExit:
hgs
parents:
diff changeset
   473
        OnCmdExitL();
hgs
parents:
diff changeset
   474
        break;
hgs
parents:
diff changeset
   475
    //
hgs
parents:
diff changeset
   476
    default:
hgs
parents:
diff changeset
   477
        User::Leave( KErrNotSupported );
hgs
parents:
diff changeset
   478
        break;
hgs
parents:
diff changeset
   479
        }
hgs
parents:
diff changeset
   480
hgs
parents:
diff changeset
   481
#ifdef _DEBUG
hgs
parents:
diff changeset
   482
    RDebug::Printf( "[MemSpy] CMemSpyAppUi::InitiateMemSpyClientServerOperationL() - END - aOpCode: %d", aOpCode );
hgs
parents:
diff changeset
   483
#endif
hgs
parents:
diff changeset
   484
    }
hgs
parents:
diff changeset
   485
hgs
parents:
diff changeset
   486
hgs
parents:
diff changeset
   487
void CMemSpyAppUi::SetViewServerTimeOutStatus( TBool aEnabled )
hgs
parents:
diff changeset
   488
    {
hgs
parents:
diff changeset
   489
	/* TODO
hgs
parents:
diff changeset
   490
	iMemSpySession.SetServerTimeOutStatus( KMemSpyEikSrvSID, aEnabled );
hgs
parents:
diff changeset
   491
	*/
hgs
parents:
diff changeset
   492
	/*
hgs
parents:
diff changeset
   493
    TRAP_IGNORE(
hgs
parents:
diff changeset
   494
        iEngine.HelperProcess().ImpersonateL( KMemSpyEikSrvSID );
hgs
parents:
diff changeset
   495
        //
hgs
parents:
diff changeset
   496
        CVwsSessionWrapper* ses = CVwsSessionWrapper::NewLC();
hgs
parents:
diff changeset
   497
        ses->EnableServerEventTimeOut( aEnabled );
hgs
parents:
diff changeset
   498
        CleanupStack::PopAndDestroy( ses );
hgs
parents:
diff changeset
   499
        //
hgs
parents:
diff changeset
   500
        iEngine.HelperProcess().ImpersonateL( 0 );
hgs
parents:
diff changeset
   501
        );
hgs
parents:
diff changeset
   502
    */	
hgs
parents:
diff changeset
   503
    }
hgs
parents:
diff changeset
   504
hgs
parents:
diff changeset
   505
hgs
parents:
diff changeset
   506
void CMemSpyAppUi::OnCmdBackL()
hgs
parents:
diff changeset
   507
    {
hgs
parents:
diff changeset
   508
    const TMemSpyViewType viewType = iAppContainer->ActiveViewType();
hgs
parents:
diff changeset
   509
    //
hgs
parents:
diff changeset
   510
    if  ( !MemSpyViewTypeUtils::IsExitableView( viewType ) )
hgs
parents:
diff changeset
   511
        {
hgs
parents:
diff changeset
   512
        // Should go back one view
hgs
parents:
diff changeset
   513
        iAppContainer->NavigateToParentViewL();
hgs
parents:
diff changeset
   514
        }
hgs
parents:
diff changeset
   515
    }
hgs
parents:
diff changeset
   516
hgs
parents:
diff changeset
   517
hgs
parents:
diff changeset
   518
void CMemSpyAppUi::OnCmdExitL()
hgs
parents:
diff changeset
   519
    {
hgs
parents:
diff changeset
   520
    Exit();
hgs
parents:
diff changeset
   521
    }
hgs
parents:
diff changeset
   522
hgs
parents:
diff changeset
   523
hgs
parents:
diff changeset
   524
void CMemSpyAppUi::OnCmdOpenL()
hgs
parents:
diff changeset
   525
    {
hgs
parents:
diff changeset
   526
    const TMemSpyViewType viewType = iAppContainer->ActiveViewType();
hgs
parents:
diff changeset
   527
    //
hgs
parents:
diff changeset
   528
    if  ( MemSpyViewTypeUtils::IsOpenableItem( viewType ) )
hgs
parents:
diff changeset
   529
        {
hgs
parents:
diff changeset
   530
        // Should go back one view
hgs
parents:
diff changeset
   531
        iAppContainer->NavigateToChildViewL();
hgs
parents:
diff changeset
   532
        }
hgs
parents:
diff changeset
   533
    }
hgs
parents:
diff changeset
   534
hgs
parents:
diff changeset
   535
hgs
parents:
diff changeset
   536
void CMemSpyAppUi::OnCmdPhoneInformationOperationL( TDeviceWideOperation aOperation )
hgs
parents:
diff changeset
   537
    {	
hgs
parents:
diff changeset
   538
	//
hgs
parents:
diff changeset
   539
	//CMemSpyDeviceWideOperationDialog::ExecuteLD( iMemSpySession, aOperation );
hgs
parents:
diff changeset
   540
	CMemSpyDwoTracker* tracker = CMemSpyDeviceWideOperationDialog::CreateDeviceWideOperation( iMemSpySession, aOperation );
hgs
parents:
diff changeset
   541
	tracker->Start();		
hgs
parents:
diff changeset
   542
	/*
hgs
parents:
diff changeset
   543
#ifdef _DEBUG
hgs
parents:
diff changeset
   544
    RDebug::Printf( "[MemSpy] CMemSpyAppUi::OnCmdPhoneInformationOperationL() - START - aOp: %d, iRunningDeviceWideOperation: %d, iAutoCaptureTimer is active: %d", aOp, iRunningDeviceWideOperation, iAutoCaptureTimer->IsActive() );
hgs
parents:
diff changeset
   545
#endif
hgs
parents:
diff changeset
   546
hgs
parents:
diff changeset
   547
    if  ( !iRunningDeviceWideOperation )
hgs
parents:
diff changeset
   548
        {        
hgs
parents:
diff changeset
   549
		CMemSpyDeviceWideOperationDialog::ExecuteLD( iMemSpySession, *this, aOp );
hgs
parents:
diff changeset
   550
        }
hgs
parents:
diff changeset
   551
hgs
parents:
diff changeset
   552
#ifdef _DEBUG
hgs
parents:
diff changeset
   553
    RDebug::Printf( "[MemSpy] CMemSpyAppUi::OnCmdPhoneInformationOperationL() - END - aOp: %d, iRunningDeviceWideOperation: %d, iAutoCaptureTimer is active: %d", aOp, iRunningDeviceWideOperation, iAutoCaptureTimer->IsActive() );
hgs
parents:
diff changeset
   554
#endif
hgs
parents:
diff changeset
   555
	*/
hgs
parents:
diff changeset
   556
    }
hgs
parents:
diff changeset
   557
hgs
parents:
diff changeset
   558
hgs
parents:
diff changeset
   559
void CMemSpyAppUi::OnCmdPhoneInformationOperationKernelContainersL()
hgs
parents:
diff changeset
   560
    {
hgs
parents:
diff changeset
   561
	/* TODO
hgs
parents:
diff changeset
   562
	iMemSpySession.OutputKernelObjects();
hgs
parents:
diff changeset
   563
	*/
hgs
parents:
diff changeset
   564
	/*
hgs
parents:
diff changeset
   565
    CMemSpyEngineGenericKernelObjectContainer* list = iEngine.HelperKernelContainers().ObjectsAllL();
hgs
parents:
diff changeset
   566
    CleanupStack::PushL( list );
hgs
parents:
diff changeset
   567
    iEngine.HelperKernelContainers().OutputL( *list );
hgs
parents:
diff changeset
   568
    CleanupStack::PopAndDestroy( list );
hgs
parents:
diff changeset
   569
    */	
hgs
parents:
diff changeset
   570
    }
hgs
parents:
diff changeset
   571
hgs
parents:
diff changeset
   572
hgs
parents:
diff changeset
   573
    
hgs
parents:
diff changeset
   574
    
hgs
parents:
diff changeset
   575
    
hgs
parents:
diff changeset
   576
    
hgs
parents:
diff changeset
   577
    
hgs
parents:
diff changeset
   578
    
hgs
parents:
diff changeset
   579
    
hgs
parents:
diff changeset
   580
    
hgs
parents:
diff changeset
   581
    
hgs
parents:
diff changeset
   582
    
hgs
parents:
diff changeset
   583
    
hgs
parents:
diff changeset
   584
    
hgs
parents:
diff changeset
   585
    
hgs
parents:
diff changeset
   586
    
hgs
parents:
diff changeset
   587
    
hgs
parents:
diff changeset
   588
    
hgs
parents:
diff changeset
   589
    
hgs
parents:
diff changeset
   590
    
hgs
parents:
diff changeset
   591
hgs
parents:
diff changeset
   592
hgs
parents:
diff changeset
   593
void CMemSpyAppUi::OnCmdAutoCaptureToggleL()
hgs
parents:
diff changeset
   594
    {
hgs
parents:
diff changeset
   595
#ifdef _DEBUG
hgs
parents:
diff changeset
   596
    RDebug::Printf( "[MemSpy] CMemSpyAppUi::OnCmdAutoCaptureToggleL() - START - iAutoCaptureOperationType: %d, iAutoCaptureTimer is active: %d", iAutoCaptureOperationType, iAutoCaptureTimer->IsActive() );
hgs
parents:
diff changeset
   597
#endif
hgs
parents:
diff changeset
   598
hgs
parents:
diff changeset
   599
    if  ( iAutoCaptureTimer->IsActive() )
hgs
parents:
diff changeset
   600
        {
hgs
parents:
diff changeset
   601
        iAutoCaptureTimer->Cancel();
hgs
parents:
diff changeset
   602
        }
hgs
parents:
diff changeset
   603
    else
hgs
parents:
diff changeset
   604
        {
hgs
parents:
diff changeset
   605
        iAutoCaptureTimer->Cancel();
hgs
parents:
diff changeset
   606
        //
hgs
parents:
diff changeset
   607
        const TTimeIntervalMicroSeconds32 interval( iAutoCaptureTimerPeriod * 1000000 );
hgs
parents:
diff changeset
   608
        iAutoCaptureTimer->Start( 0, interval, TCallBack(AutoCaptureCallBack, this) );
hgs
parents:
diff changeset
   609
        }
hgs
parents:
diff changeset
   610
hgs
parents:
diff changeset
   611
#ifdef _DEBUG
hgs
parents:
diff changeset
   612
    RDebug::Printf( "[MemSpy] CMemSpyAppUi::OnCmdAutoCaptureToggleL() - START - iAutoCaptureOperationType: %d, iAutoCaptureTimer is active: %d", iAutoCaptureOperationType, iAutoCaptureTimer->IsActive() );
hgs
parents:
diff changeset
   613
#endif
hgs
parents:
diff changeset
   614
    }
hgs
parents:
diff changeset
   615
hgs
parents:
diff changeset
   616
hgs
parents:
diff changeset
   617
void CMemSpyAppUi::OnCmdAutoCaptureRetryTimeL()
hgs
parents:
diff changeset
   618
    {
hgs
parents:
diff changeset
   619
    CAknNumberQueryDialog* dialog = new(ELeave) CAknNumberQueryDialog( iAutoCaptureTimerPeriod );
hgs
parents:
diff changeset
   620
    dialog->ExecuteLD( R_MEMSPY_DEVICE_WIDE_SETTINGS );
hgs
parents:
diff changeset
   621
    }
hgs
parents:
diff changeset
   622
hgs
parents:
diff changeset
   623
hgs
parents:
diff changeset
   624
void CMemSpyAppUi::OnCmdAutoCaptureOperationTypeL()
hgs
parents:
diff changeset
   625
    {
hgs
parents:
diff changeset
   626
    CDesCArrayFlat* items = iCoeEnv->ReadDesC16ArrayResourceL( R_MEMSPY_AUTO_CAPTURE_OPERATION_TYPES );
hgs
parents:
diff changeset
   627
    CleanupStack::PushL(items);
hgs
parents:
diff changeset
   628
    //
hgs
parents:
diff changeset
   629
    TInt currentItem = iAutoCaptureOperationType;
hgs
parents:
diff changeset
   630
    //
hgs
parents:
diff changeset
   631
    CAknRadioButtonSettingPage* dialog = new(ELeave) CAknRadioButtonSettingPage( R_MEMSPY_AUTO_CAPTURE_OPERATION_TYPES_SETTINGS_PAGE, currentItem, items );
hgs
parents:
diff changeset
   632
    if  ( dialog->ExecuteLD( CAknSettingPage::EUpdateWhenAccepted ) )
hgs
parents:
diff changeset
   633
        {
hgs
parents:
diff changeset
   634
        iAutoCaptureOperationType = static_cast< CMemSpyDeviceWideOperations::TOperation >( currentItem );
hgs
parents:
diff changeset
   635
        }
hgs
parents:
diff changeset
   636
    //
hgs
parents:
diff changeset
   637
    CleanupStack::PopAndDestroy( items ); 
hgs
parents:
diff changeset
   638
    }
hgs
parents:
diff changeset
   639
hgs
parents:
diff changeset
   640
hgs
parents:
diff changeset
   641
TInt CMemSpyAppUi::AutoCaptureCallBack( TAny* aSelf )
hgs
parents:
diff changeset
   642
    {
hgs
parents:
diff changeset
   643
    CMemSpyAppUi* self = reinterpret_cast< CMemSpyAppUi* >( aSelf );
hgs
parents:
diff changeset
   644
    TRAPD( err, self->AutoCaptureCallBackL() );
hgs
parents:
diff changeset
   645
    //
hgs
parents:
diff changeset
   646
    const TBool callMeBackAgain = ( err == KErrNone );
hgs
parents:
diff changeset
   647
    return callMeBackAgain;
hgs
parents:
diff changeset
   648
    }
hgs
parents:
diff changeset
   649
hgs
parents:
diff changeset
   650
hgs
parents:
diff changeset
   651
void CMemSpyAppUi::AutoCaptureCallBackL()
hgs
parents:
diff changeset
   652
    {
hgs
parents:
diff changeset
   653
#ifdef _DEBUG
hgs
parents:
diff changeset
   654
    RDebug::Printf( "[MemSpy] CMemSpyAppUi::AutoCaptureCallBackL() - START - iAutoCaptureOperationType: %d, iAutoCaptureTimer is active: %d", iAutoCaptureOperationType, iAutoCaptureTimer->IsActive() );
hgs
parents:
diff changeset
   655
#endif
hgs
parents:
diff changeset
   656
hgs
parents:
diff changeset
   657
   // OnCmdPhoneInformationOperationL( iAutoCaptureOperationType );
hgs
parents:
diff changeset
   658
hgs
parents:
diff changeset
   659
#ifdef _DEBUG
hgs
parents:
diff changeset
   660
    RDebug::Printf( "[MemSpy] CMemSpyAppUi::AutoCaptureCallBackL() - END - iAutoCaptureOperationType: %d, iAutoCaptureTimer is active: %d", iAutoCaptureOperationType, iAutoCaptureTimer->IsActive() );
hgs
parents:
diff changeset
   661
#endif
hgs
parents:
diff changeset
   662
    }
hgs
parents:
diff changeset
   663
hgs
parents:
diff changeset
   664
hgs
parents:
diff changeset
   665
hgs
parents:
diff changeset
   666
hgs
parents:
diff changeset
   667
hgs
parents:
diff changeset
   668
hgs
parents:
diff changeset
   669
hgs
parents:
diff changeset
   670
hgs
parents:
diff changeset
   671
hgs
parents:
diff changeset
   672
hgs
parents:
diff changeset
   673
hgs
parents:
diff changeset
   674
hgs
parents:
diff changeset
   675
hgs
parents:
diff changeset
   676
hgs
parents:
diff changeset
   677
hgs
parents:
diff changeset
   678
hgs
parents:
diff changeset
   679
hgs
parents:
diff changeset
   680
hgs
parents:
diff changeset
   681
hgs
parents:
diff changeset
   682
hgs
parents:
diff changeset
   683
hgs
parents:
diff changeset
   684
void CMemSpyAppUi::OnCmdOutputToDebugL()
hgs
parents:
diff changeset
   685
    {
hgs
parents:
diff changeset
   686
	iMemSpySession.SwitchOutputSinkL( ESinkTypeDebug ); //set in engine
hgs
parents:
diff changeset
   687
	MemSpyDocument().Settings().SetSinkType( ESinkTypeDebug ); //set in settings
hgs
parents:
diff changeset
   688
    }
hgs
parents:
diff changeset
   689
hgs
parents:
diff changeset
   690
hgs
parents:
diff changeset
   691
void CMemSpyAppUi::OnCmdOutputToFileL()
hgs
parents:
diff changeset
   692
    {
hgs
parents:
diff changeset
   693
	iMemSpySession.SwitchOutputSinkL( ESinkTypeFile ); //set in engine
hgs
parents:
diff changeset
   694
	MemSpyDocument().Settings().SetSinkType( ESinkTypeFile ); //set in settings
hgs
parents:
diff changeset
   695
    }
hgs
parents:
diff changeset
   696
hgs
parents:
diff changeset
   697
hgs
parents:
diff changeset
   698
hgs
parents:
diff changeset
   699
hgs
parents:
diff changeset
   700
hgs
parents:
diff changeset
   701
hgs
parents:
diff changeset
   702
hgs
parents:
diff changeset
   703
hgs
parents:
diff changeset
   704
hgs
parents:
diff changeset
   705
hgs
parents:
diff changeset
   706
hgs
parents:
diff changeset
   707
void CMemSpyAppUi::OnCmdAboutL()
hgs
parents:
diff changeset
   708
    {
hgs
parents:
diff changeset
   709
    CAknMessageQueryDialog* dialog = new(ELeave) CAknMessageQueryDialog;
hgs
parents:
diff changeset
   710
    dialog->ExecuteLD( R_MEMSPYUI_ABOUT_DIALOG );
hgs
parents:
diff changeset
   711
    }
hgs
parents:
diff changeset
   712
hgs
parents:
diff changeset
   713
hgs
parents:
diff changeset
   714
hgs
parents:
diff changeset
   715
hgs
parents:
diff changeset
   716
hgs
parents:
diff changeset
   717
hgs
parents:
diff changeset
   718
hgs
parents:
diff changeset
   719
hgs
parents:
diff changeset
   720
hgs
parents:
diff changeset
   721
hgs
parents:
diff changeset
   722
hgs
parents:
diff changeset
   723
hgs
parents:
diff changeset
   724
void CMemSpyAppUi::OnCmdToolsBitmapsSaveToMemoryCardL()
hgs
parents:
diff changeset
   725
    {
hgs
parents:
diff changeset
   726
	/* TODO
hgs
parents:
diff changeset
   727
    // Get bitmap handles
hgs
parents:
diff changeset
   728
    RArray<TInt> handles;
hgs
parents:
diff changeset
   729
    CleanupClosePushL( handles );
hgs
parents:
diff changeset
   730
    iEngine.HelperFbServ().GetArrayOfBitmapHandlesL( handles );
hgs
parents:
diff changeset
   731
hgs
parents:
diff changeset
   732
    // Build bitmap list
hgs
parents:
diff changeset
   733
    CMemSpyEngineFbServBitmapArray* array = CMemSpyEngineFbServBitmapArray::NewL( handles );
hgs
parents:
diff changeset
   734
    CleanupStack::PopAndDestroy( &handles );
hgs
parents:
diff changeset
   735
    CleanupStack::PushL( array );
hgs
parents:
diff changeset
   736
hgs
parents:
diff changeset
   737
    // Export...
hgs
parents:
diff changeset
   738
    CMemSpyExportBitmapsToMemoryCardDialog* dialog = CMemSpyExportBitmapsToMemoryCardDialog::NewL( iCoeEnv->FsSession(), *array );
hgs
parents:
diff changeset
   739
    
hgs
parents:
diff changeset
   740
    // All done
hgs
parents:
diff changeset
   741
    CleanupStack::PopAndDestroy( array );
hgs
parents:
diff changeset
   742
    */
hgs
parents:
diff changeset
   743
    }
hgs
parents:
diff changeset
   744
hgs
parents:
diff changeset
   745
hgs
parents:
diff changeset
   746
void CMemSpyAppUi::OnCmdToolsSendToBackgroundL()
hgs
parents:
diff changeset
   747
    {
52
hgs
parents: 51
diff changeset
   748
	/*
51
hgs
parents:
diff changeset
   749
    TApaTask task( iCoeEnv->WsSession() );
hgs
parents:
diff changeset
   750
    task.SendToBackground();
52
hgs
parents: 51
diff changeset
   751
    */
51
hgs
parents:
diff changeset
   752
    }
hgs
parents:
diff changeset
   753
hgs
parents:
diff changeset
   754
hgs
parents:
diff changeset
   755
void CMemSpyAppUi::OnCmdToolsBringToForegroundL()
hgs
parents:
diff changeset
   756
    {
hgs
parents:
diff changeset
   757
    iCoeEnv->BringOwnerToFront();
hgs
parents:
diff changeset
   758
    }
hgs
parents:
diff changeset
   759
hgs
parents:
diff changeset
   760
hgs
parents:
diff changeset
   761
hgs
parents:
diff changeset
   762