--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/memana/analyzetoolclient/configurationappgui/src/atconfigurationappguiprocesscontainer.cpp Thu Feb 11 15:51:35 2010 +0200
@@ -0,0 +1,715 @@
+/*
+* 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:
+*
+*/
+
+
+// INCLUDES
+#include <barsread.h>
+#include <stringloader.h>
+#include <aknlists.h>
+#include <eikenv.h>
+#include <akniconarray.h>
+#include <eikclbd.h>
+#include <aknviewappui.h>
+#include <eikappui.h>
+#include <utf.h>
+#include <atconfigurationappgui.rsg>
+#include <analyzetool/atstorageserverclnt.h>
+
+#include "atconfigurationappguiprocesscontainer.h"
+#include "atconfigurationappguiprocessview.h"
+#include "atconfigurationappgui.hrh"
+#include "atconfigurationappguiprocesscontainer.hrh"
+#include "atconfigurationappguiappui.h"
+#include "atlog.h"
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiProcessContainer::CATConfigurationAppGuiProcessContainer()
+// First phase of Symbian two-phase construction.
+// -----------------------------------------------------------------------------
+//
+CATConfigurationAppGuiProcessContainer::CATConfigurationAppGuiProcessContainer()
+ {
+ LOGSTR1( "ATCU CATConfigurationAppGuiProcessContainer::CATConfigurationAppGuiProcessContainer()" );
+
+ iListBox = NULL;
+ }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiProcessContainer::~CATConfigurationAppGuiProcessContainer()
+// Destructor.
+// -----------------------------------------------------------------------------
+//
+CATConfigurationAppGuiProcessContainer::~CATConfigurationAppGuiProcessContainer()
+ {
+ LOGSTR1( "ATCU CATConfigurationAppGuiProcessContainer::~CATConfigurationAppGuiProcessContainer()" );
+
+ delete iListBox;
+ iListBox = NULL;
+ }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiProcessContainer::NewL()
+// Construct the control (first phase).
+// -----------------------------------------------------------------------------
+//
+CATConfigurationAppGuiProcessContainer* CATConfigurationAppGuiProcessContainer::NewL(
+ const TRect& aRect, CATConfigurationAppGuiProcessView* aParent,
+ MEikCommandObserver* aCommandObserver, TUint aProcessId,
+ TInt64 aProcessStartTime )
+ {
+ LOGSTR1( "ATCU CATConfigurationAppGuiProcessContainer::NewL()" );
+
+ CATConfigurationAppGuiProcessContainer* self =
+ CATConfigurationAppGuiProcessContainer::NewLC(
+ aRect,
+ aParent,
+ aCommandObserver, aProcessId, aProcessStartTime );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiProcessContainer::NewLC()
+// Construct the control (first phase).
+// -----------------------------------------------------------------------------
+//
+CATConfigurationAppGuiProcessContainer* CATConfigurationAppGuiProcessContainer::NewLC(
+ const TRect& aRect, CATConfigurationAppGuiProcessView* aParent,
+ MEikCommandObserver* aCommandObserver, TUint aProcessId,
+ TInt64 aProcessStartTime )
+ {
+ LOGSTR1( "ATCU CATConfigurationAppGuiProcessContainer::NewLC()" );
+
+ CATConfigurationAppGuiProcessContainer* self =
+ new ( ELeave ) CATConfigurationAppGuiProcessContainer();
+ CleanupStack::PushL( self );
+ self->ConstructL( aRect,
+ aParent,
+ aCommandObserver,
+ aProcessId, aProcessStartTime );
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiProcessContainer::ConstructL()
+// Construct the control (second phase).
+// -----------------------------------------------------------------------------
+//
+void CATConfigurationAppGuiProcessContainer::ConstructL(
+ const TRect& aRect, CATConfigurationAppGuiProcessView* aParent,
+ MEikCommandObserver* aCommandObserver, TUint aProcessId,
+ TInt64 aProcessStartTime )
+ {
+ LOGSTR1( "ATCU CATConfigurationAppGuiProcessContainer::ConstructL()" );
+
+ //if ( aParent == NULL )
+ //{
+ CreateWindowL();
+ //}
+ /*else
+ {
+ SetContainerWindowL( *aParent );
+ }*/
+ iFocusControl = NULL;
+ iParent = aParent;
+ iCommandObserver = aCommandObserver;
+ iProcessId = aProcessId;
+ iProcessStartTime = aProcessStartTime;
+ InitializeControlsL();
+ SetRect( aRect );
+ ActivateL();
+ }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiProcessContainer::CountComponentControls()
+// Returns the number of controls in the container.
+// -----------------------------------------------------------------------------
+//
+TInt CATConfigurationAppGuiProcessContainer::CountComponentControls() const
+ {
+ LOGSTR1( "ATCU CATConfigurationAppGuiProcessContainer::CountComponentControls()" );
+ return ( int ) ELastControl;
+ }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiProcessContainer::ComponentControl()
+// Get the control with the given index.
+// -----------------------------------------------------------------------------
+//
+CCoeControl* CATConfigurationAppGuiProcessContainer::ComponentControl(
+ TInt aIndex ) const
+ {
+ LOGSTR1( "ATCU CATConfigurationAppGuiProcessContainer::ComponentControl()" );
+
+ switch ( aIndex )
+ {
+ case EListBox:
+ return iListBox;
+ }
+ return NULL;
+ }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiProcessContainer::SizeChanged()
+// Handle resizing of the container.
+// -----------------------------------------------------------------------------
+//
+void CATConfigurationAppGuiProcessContainer::SizeChanged()
+ {
+ LOGSTR1( "ATCU CATConfigurationAppGuiProcessContainer::SizeChanged()" );
+
+ CCoeControl::SizeChanged();
+ LayoutControls();
+ }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiProcessContainer::LayoutControls()
+// Layout components.
+// -----------------------------------------------------------------------------
+//
+void CATConfigurationAppGuiProcessContainer::LayoutControls()
+ {
+ LOGSTR1( "ATCU CATConfigurationAppGuiProcessContainer::LayoutControls()" );
+
+ iListBox->SetExtent( TPoint( 0, 0 ), iListBox->MinimumSize() );
+ }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiProcessContainer::OfferKeyEventL()
+// Handle key events.
+// -----------------------------------------------------------------------------
+//
+TKeyResponse CATConfigurationAppGuiProcessContainer::OfferKeyEventL(
+ const TKeyEvent& aKeyEvent,
+ TEventCode aType )
+ {
+ LOGSTR1( "ATCU CATConfigurationAppGuiProcessContainer::OfferKeyEventL()" );
+
+ if ( aKeyEvent.iCode == EKeyLeftArrow
+ || aKeyEvent.iCode == EKeyRightArrow )
+ {
+ // Listbox takes all events even if it doesn't use them
+ return EKeyWasNotConsumed;
+ }
+
+ if ( iFocusControl != NULL
+ && iFocusControl->OfferKeyEventL( aKeyEvent, aType ) == EKeyWasConsumed )
+ {
+ return EKeyWasConsumed;
+ }
+ return CCoeControl::OfferKeyEventL( aKeyEvent, aType );
+ }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiProcessContainer::InitializeControlsL()
+// Initialize each control upon creation.
+// -----------------------------------------------------------------------------
+//
+void CATConfigurationAppGuiProcessContainer::InitializeControlsL()
+ {
+ LOGSTR1( "ATCU CATConfigurationAppGuiProcessContainer::InitializeControlsL()" );
+
+ iListBox = new ( ELeave ) CAknDoubleStyleListBox;
+ iListBox->SetContainerWindowL( *this );
+ {
+ TResourceReader reader;
+ iEikonEnv->CreateResourceReaderLC( reader, R_ATCONFIGURATION_APP_GUI_LIST_BOX );
+ iListBox->ConstructFromResourceL( reader );
+ CleanupStack::PopAndDestroy(); // Reader internal state
+ }
+ // The listbox owns the items in the list and will free them
+ iListBox->Model()->SetOwnershipType( ELbmOwnsItemArray );
+
+ iListBox->CreateScrollBarFrameL( ETrue );
+ iListBox->ScrollBarFrame()->
+ SetScrollBarVisibilityL( CEikScrollBarFrame::EOn, CEikScrollBarFrame::EOn );
+
+ // Enable marquee
+ iListBox->ItemDrawer()->ColumnData()->EnableMarqueeL( ETrue );
+
+ HBufC* noInfo = StringLoader::LoadLC( R_ATCONFIGURATION_APP_GUI_LBX_NO_INFO );
+ iListBox->View()->SetListEmptyTextL( noInfo->Des() );
+ CleanupStack::PopAndDestroy( noInfo );
+
+ // Setup the icon array so graphics-style boxes work
+ SetupListBoxIconsL();
+
+ // Add list items
+ AddListBoxResourceArrayItemL( R_ATCONFIGURATION_APP_GUI_PROCESS_LISTBOX_ITEM1 );
+ AddListBoxResourceArrayItemL( R_ATCONFIGURATION_APP_GUI_PROCESS_LISTBOX_ITEM2 );
+ AddListBoxResourceArrayItemL( R_ATCONFIGURATION_APP_GUI_PROCESS_LISTBOX_ITEM3 );
+ AddListBoxResourceArrayItemL( R_ATCONFIGURATION_APP_GUI_PROCESS_LISTBOX_ITEM4 );
+ AddListBoxResourceArrayItemL( R_ATCONFIGURATION_APP_GUI_PROCESS_LISTBOX_ITEM5 );
+ AddListBoxResourceArrayItemL( R_ATCONFIGURATION_APP_GUI_PROCESS_LISTBOX_ITEM6 );
+
+ iListBox->SetFocus( ETrue );
+ iFocusControl = iListBox;
+ }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiProcessContainer::HandleResourceChange()
+// Handle global resource changes.
+// -----------------------------------------------------------------------------
+//
+void CATConfigurationAppGuiProcessContainer::HandleResourceChange( TInt aType )
+ {
+ LOGSTR1( "ATCU CATConfigurationAppGuiProcessContainer::HandleResourceChange()" );
+
+ CCoeControl::HandleResourceChange( aType );
+ SetRect( iAvkonViewAppUi->View( TUid::Uid( EATConfigurationAppGuiProcessViewId ) )->ClientRect() );
+ }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiProcessContainer::Draw()
+// Draw container contents.
+// -----------------------------------------------------------------------------
+//
+void CATConfigurationAppGuiProcessContainer::Draw( const TRect& aRect ) const
+ {
+ LOGSTR1( "ATCU CATConfigurationAppGuiProcessContainer::Draw()" );
+
+ CWindowGc& gc = SystemGc();
+ gc.Clear( aRect );
+ }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiProcessContainer::AddListBoxItemL()
+// Add a list box item to a list.
+// -----------------------------------------------------------------------------
+//
+void CATConfigurationAppGuiProcessContainer::AddListBoxItemL(
+ CEikTextListBox* aListBox, const TDesC& aString )
+ {
+ LOGSTR1( "ATCU CATConfigurationAppGuiProcessContainer::AddListBoxItemL()" );
+
+ CTextListBoxModel* model = aListBox->Model();
+ CDesCArray* itemArray = static_cast< CDesCArray* > ( model->ItemTextArray() );
+ itemArray->AppendL( aString );
+ aListBox->HandleItemAdditionL();
+ }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiProcessContainer::GetSelectedListBoxItemsLC()
+// Get the array of selected item indices.
+// -----------------------------------------------------------------------------
+//
+RArray< TInt >* CATConfigurationAppGuiProcessContainer::GetSelectedListBoxItemsLC(
+ CEikTextListBox* aListBox )
+ {
+ LOGSTR1( "ATCU CATConfigurationAppGuiProcessContainer::GetSelectedListBoxItemsLC()" );
+
+ CAknFilteredTextListBoxModel* model =
+ static_cast< CAknFilteredTextListBoxModel *> ( aListBox->Model() );
+ if ( model->NumberOfItems() == 0 )
+ return NULL;
+
+ // Get currently selected indices
+ const CListBoxView::CSelectionIndexArray* selectionIndexes =
+ aListBox->SelectionIndexes();
+ TInt selectedIndexesCount = selectionIndexes->Count();
+ if ( selectedIndexesCount == 0 )
+ return NULL;
+
+ // Copy the indices and sort numerically
+ RArray<TInt>* orderedSelectedIndices =
+ new (ELeave) RArray< TInt >( selectedIndexesCount );
+
+ // Push the allocated array
+ CleanupStack::PushL( orderedSelectedIndices );
+
+ // Dispose the array resource
+ CleanupClosePushL( *orderedSelectedIndices );
+
+ // See if the search field is enabled
+ CAknListBoxFilterItems* filter = model->Filter();
+ if ( filter != NULL )
+ {
+ // When filtering enabled, translate indices back to underlying model
+ for ( TInt idx = 0; idx < selectedIndexesCount; idx++ )
+ {
+ TInt filteredItem = ( *selectionIndexes ) [ idx ];
+ TInt actualItem = filter->FilteredItemIndex ( filteredItem );
+ orderedSelectedIndices->InsertInOrder( actualItem );
+ }
+ }
+ else
+ {
+ // The selection indices refer directly to the model
+ for ( TInt idx = 0; idx < selectedIndexesCount; idx++ )
+ orderedSelectedIndices->InsertInOrder( ( *selectionIndexes ) [ idx ] );
+ }
+
+ return orderedSelectedIndices;
+ }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiProcessContainer::DeleteSelectedListBoxItemsL()
+// Delete the selected item or items from the list box.
+// -----------------------------------------------------------------------------
+//
+void CATConfigurationAppGuiProcessContainer::DeleteSelectedListBoxItemsL(
+ CEikTextListBox* aListBox )
+ {
+ LOGSTR1( "ATCU CATConfigurationAppGuiProcessContainer::DeleteSelectedListBoxItemsL()" );
+
+ CAknFilteredTextListBoxModel* model =
+ static_cast< CAknFilteredTextListBoxModel *> ( aListBox->Model() );
+ if ( model->NumberOfItems() == 0 )
+ return;
+
+ RArray< TInt >* orderedSelectedIndices = GetSelectedListBoxItemsLC( aListBox );
+ if ( !orderedSelectedIndices )
+ return;
+
+ // Delete selected items from bottom up so indices don't change on us
+ CDesCArray* itemArray = static_cast< CDesCArray* > ( model->ItemTextArray() );
+ TInt currentItem = 0;
+
+ for ( TInt idx = orderedSelectedIndices->Count(); idx-- > 0; )
+ {
+ currentItem = ( *orderedSelectedIndices )[ idx ];
+ itemArray->Delete ( currentItem );
+ }
+
+ // Dispose the array resources
+ CleanupStack::PopAndDestroy();
+
+ // Dispose the array pointer
+ CleanupStack::PopAndDestroy( orderedSelectedIndices );
+
+ // Refresh listbox's cursor now that items are deleted
+ AknListBoxUtils::HandleItemRemovalAndPositionHighlightL(
+ aListBox, currentItem, ETrue );
+ }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiProcessContainer::ListBox()
+// Get the listbox.
+// -----------------------------------------------------------------------------
+//
+CAknDoubleStyleListBox* CATConfigurationAppGuiProcessContainer::ListBox()
+ {
+ LOGSTR1( "ATCU CATConfigurationAppGuiProcessContainer::ListBox()" );
+
+ return iListBox;
+ }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiProcessContainer::CreateListBoxItemL()
+// Create a list box item with the given column values.
+// -----------------------------------------------------------------------------
+//
+void CATConfigurationAppGuiProcessContainer::CreateListBoxItemL( TDes& aBuffer,
+ const TDesC& aMainText, const TDesC& aSecondaryText )
+ {
+ LOGSTR1( "ATCU CATConfigurationAppGuiProcessContainer::CreateListBoxItemL()" );
+
+ _LIT ( KStringHeader, "\t%S\t%S" );
+
+ aBuffer.Format( KStringHeader(), &aMainText, &aSecondaryText );
+ }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiProcessContainer::AddListBoxResourceArrayItemL()
+// Add an item to the list by reading the text items from the array resource.
+// -----------------------------------------------------------------------------
+//
+void CATConfigurationAppGuiProcessContainer::AddListBoxResourceArrayItemL(
+ TInt aResourceId )
+ {
+ LOGSTR1( "ATCU CATConfigurationAppGuiProcessContainer::AddListBoxResourceArrayItemL()" );
+
+ CDesCArray* array = iCoeEnv->ReadDesCArrayResourceL( aResourceId );
+ CleanupStack::PushL( array );
+ _LIT( KSpace, " " );
+ TBuf<KATHundred> main;
+ TBuf<KMaxFileName + 1> secondary;
+ // Get handle to appUi
+ CATConfigurationAppGuiAppUi* appUi = ( CATConfigurationAppGuiAppUi* )iEikonEnv->AppUi();
+
+ switch ( aResourceId )
+ {
+ case R_ATCONFIGURATION_APP_GUI_PROCESS_LISTBOX_ITEM1:
+ {
+ TUint32 number( KErrNone );
+ TUint32 size( KErrNone );
+ TInt currErr = appUi->StorageServer().GetCurrentAllocsL( iProcessId, number, size );
+ if ( currErr == KErrNone )
+ {
+ main.Copy( KSpace );
+ main.AppendNum( number );
+ if ( size >= KATThousand && size < KATMillion ) // kiloByte range
+ {
+ TReal value( size );
+ value = value / KATThousand;
+ secondary.Format( _L(" %.1f"), value );
+ secondary.Append( KSpace );
+ secondary.Append( KATKB );
+ }
+ else if ( size >= KATMillion ) // megaByte range
+ {
+ TReal value( size );
+ value = value / KATMillion;
+ secondary.Format( _L(" %.1f"), value );
+ secondary.Append( KSpace );
+ secondary.Append( KATMB );
+ }
+ else
+ {
+ secondary.Copy( KSpace );
+ secondary.AppendNum( size );
+ secondary.Append( KSpace );
+ secondary.Append( KATB );
+ }
+ }
+ else
+ {
+ main.Copy( KSpace );
+ main.Append( _L("unavailable") );
+ secondary.Copy( KSpace );
+ secondary.Append( _L("unavailable") );
+ }
+ break;
+ }
+ case R_ATCONFIGURATION_APP_GUI_PROCESS_LISTBOX_ITEM2:
+ {
+ TUint32 number( KErrNone );
+ TUint32 size( KErrNone );
+ TInt maxErr = appUi->StorageServer().GetMaxAllocsL( iProcessId, number, size );
+ if ( maxErr == KErrNone )
+ {
+ main.Copy( KSpace );
+ main.AppendNum( number );
+ if ( size >= KATThousand && size < KATMillion ) // kiloByte range
+ {
+ TReal value( size );
+ value = value / KATThousand;
+ secondary.Format( _L(" %.1f"), value );
+ secondary.Append( KSpace );
+ secondary.Append( KATKB );
+ }
+ else if ( size >= KATMillion ) // megaByte range
+ {
+ TReal value( size );
+ value = value / KATMillion;
+ secondary.Format( _L(" %.1f"), value );
+ secondary.Append( KSpace );
+ secondary.Append( KATMB );
+ }
+ else
+ {
+ secondary.Copy( KSpace );
+ secondary.AppendNum( size );
+ secondary.Append( KSpace );
+ secondary.Append( KATB );
+ }
+ }
+ else
+ {
+ main.Copy( KSpace );
+ main.Append( _L("unavailable") );
+ secondary.Copy( KSpace );
+ secondary.Append( _L("unavailable") );
+ }
+ break;
+ }
+ case R_ATCONFIGURATION_APP_GUI_PROCESS_LISTBOX_ITEM3:
+ {
+ secondary.Copy( KSpace );
+ TTime time( iProcessStartTime );
+ 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 );
+ secondary.Append( dateString );
+ break;
+ }
+ case R_ATCONFIGURATION_APP_GUI_PROCESS_LISTBOX_ITEM4:
+ {
+ secondary.Copy( KSpace );
+ TATLogOption loggingMode;
+ TInt loggingErr = appUi->StorageServer().GetLoggingModeL( iProcessId, loggingMode );
+ if ( KErrNone == loggingErr )
+ {
+ if ( EATUseDefault == loggingMode )
+ {
+ HBufC* defaultLogging = StringLoader::LoadLC( R_ATCONFIGURATION_APP_XTI_LOGGING );
+ secondary.Append( defaultLogging->Des() );
+ CleanupStack::PopAndDestroy( defaultLogging );
+ }
+ else if ( EATLogToFile == loggingMode )
+ {
+ HBufC* fileLogging = StringLoader::LoadLC( R_ATCONFIGURATION_APP_FILE_LOGGING );
+ secondary.Append( fileLogging->Des() );
+ CleanupStack::PopAndDestroy( fileLogging );
+ }
+ else if ( EATLogToXti == loggingMode )
+ {
+ HBufC* xtiLogging = StringLoader::LoadLC( R_ATCONFIGURATION_APP_XTI_LOGGING );
+ secondary.Append( xtiLogging->Des() );
+ CleanupStack::PopAndDestroy( xtiLogging );
+ }
+ else if( EATLoggingOff == loggingMode )
+ {
+ HBufC* noneLogging = StringLoader::LoadLC( R_ATCONFIGURATION_APP_NONE_LOGGING );
+ secondary.Append( noneLogging->Des() );
+ CleanupStack::PopAndDestroy( noneLogging );
+ }
+ }
+ else
+ {
+ secondary.Append( _L("unavailable") );
+ }
+ break;
+ }
+ case R_ATCONFIGURATION_APP_GUI_PROCESS_LISTBOX_ITEM5:
+ {
+ secondary.Copy( KSpace );
+ TUint32 isUdeb;
+ TInt udebErr = appUi->StorageServer().GetUdebL( iProcessId, isUdeb );
+ if ( KErrNone == udebErr )
+ {
+ if ( isUdeb > KErrNone )
+ {
+ _LIT( KUdeb, "UDEB" );
+ secondary.Append( KUdeb() );
+ }
+ else
+ {
+ _LIT( KUrel, "UREL" );
+ secondary.Append( KUrel() );
+ }
+ }
+ else
+ {
+ secondary.Append( _L("unavailable") );
+ }
+ break;
+ }
+ case R_ATCONFIGURATION_APP_GUI_PROCESS_LISTBOX_ITEM6:
+ {
+ secondary.Copy( KSpace );
+ TBuf8<KMaxFileName> fileName;
+ TInt fileErr = appUi->StorageServer().GetLoggingFileL( iProcessId, fileName );
+ if ( KErrNone == fileErr )
+ {
+ if ( fileName.Length() > KErrNone )
+ {
+ TBuf<KMaxFileName> unicodeFile;
+ CnvUtfConverter::ConvertToUnicodeFromUtf8( unicodeFile, fileName );
+ secondary.Append( unicodeFile );
+ }
+ else
+ {
+ _LIT( KNone, "None" );
+ secondary.Append( KNone() );
+ }
+ }
+ else
+ {
+ _LIT( KUnavail, "unavailable" );
+ secondary.Append( KUnavail() );
+ }
+ break;
+ }
+ default:
+ {
+ break;
+ }
+ }
+ HBufC* mainText = HBufC::NewLC( ( *array ) [ 0 ].Length() + main.Length() );
+ HBufC* secondaryText = HBufC::NewLC(( *array ) [ 1 ].Length() + secondary.Length() );
+ mainText->Des().Copy( ( *array ) [ 0 ] );
+ mainText->Des().Append( main );
+ secondaryText->Des().Copy( ( *array ) [ 1 ] );
+ secondaryText->Des().Append( secondary );
+ // This is intended to be large enough, but if you get
+ // a USER 11 panic, consider reducing string sizes.
+ TBuf<512> listString;
+ CreateListBoxItemL( listString, mainText->Des(), secondaryText->Des() );
+ AddListBoxItemL( iListBox, listString );
+ CleanupStack::PopAndDestroy( secondaryText );
+ CleanupStack::PopAndDestroy( mainText );
+ CleanupStack::PopAndDestroy( array );
+ }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiProcessContainer::SetupListBoxIconsL()
+// Set up the list's icon array.
+// -----------------------------------------------------------------------------
+//
+void CATConfigurationAppGuiProcessContainer::SetupListBoxIconsL()
+ {
+ LOGSTR1( "ATCU CATConfigurationAppGuiProcessContainer::SetupListBoxIconsL()" );
+
+ CArrayPtr< CGulIcon >* icons = NULL;
+
+ if ( icons != NULL )
+ {
+ iListBox->ItemDrawer()->ColumnData()->SetIconArray( icons );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiProcessContainer::HandleMarkableListCommandL()
+// Handle commands relating to markable lists.
+// -----------------------------------------------------------------------------
+//
+TBool CATConfigurationAppGuiProcessContainer::HandleMarkableListCommandL(
+ TInt /*aCommand*/ )
+ {
+ LOGSTR1( "ATCU CATConfigurationAppGuiProcessContainer::HandleMarkableListCommandL()" );
+
+ return EFalse;
+ }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiProcessContainer::GetCurrentItemIndex()
+// Returns current listbox index.
+// -----------------------------------------------------------------------------
+//
+TInt CATConfigurationAppGuiProcessContainer::GetCurrentItemIndex()
+ {
+ LOGSTR1( "ATCU CATConfigurationAppGuiProcessContainer::GetCurrentItemIndex()" );
+
+ return iListBox->CurrentItemIndex();
+ }
+
+// -----------------------------------------------------------------------------
+// CATConfigurationAppGuiProcessContainer::UpdateViewL()
+// Update view's controls.
+// -----------------------------------------------------------------------------
+//
+void CATConfigurationAppGuiProcessContainer::UpdateViewL()
+ {
+ LOGSTR1( "ATCU CATConfigurationAppGuiProcessContainer::UpdateViewL()" );
+
+ CTextListBoxModel* model = iListBox->Model();
+ CDesCArray* itemArray = static_cast< CDesCArray* > ( model->ItemTextArray() );
+ itemArray->Reset();
+
+ // add list items
+ AddListBoxResourceArrayItemL( R_ATCONFIGURATION_APP_GUI_PROCESS_LISTBOX_ITEM1 );
+ AddListBoxResourceArrayItemL( R_ATCONFIGURATION_APP_GUI_PROCESS_LISTBOX_ITEM2 );
+ AddListBoxResourceArrayItemL( R_ATCONFIGURATION_APP_GUI_PROCESS_LISTBOX_ITEM3 );
+ AddListBoxResourceArrayItemL( R_ATCONFIGURATION_APP_GUI_PROCESS_LISTBOX_ITEM4 );
+ AddListBoxResourceArrayItemL( R_ATCONFIGURATION_APP_GUI_PROCESS_LISTBOX_ITEM5 );
+ AddListBoxResourceArrayItemL( R_ATCONFIGURATION_APP_GUI_PROCESS_LISTBOX_ITEM6 );
+
+ iListBox->DrawNow();
+ }
+
+// End of File