diff -r 594d59766373 -r 7d48bed6ce0c satui/satapp/SATUISrc/CSatUiView.cpp --- a/satui/satapp/SATUISrc/CSatUiView.cpp Thu Aug 19 10:28:14 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1134 +0,0 @@ -/* -* Copyright (c) 2002-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: -* Defines CSatUiView class -* -* -*/ - - -// INCLUDE FILES -#include //for CCoeControl class -#include -#include -#include -#include // for descriptor arrays -#include -#include -#include //for Context pane -#include //for iocn bitmap -#include -#include -#include "satui.hrh" -#include -#include -#include -#include -#include -#include -#include -#include // Used for FeatureManager -#include - -#include "CSatUiApplication.h" -#include "CSatUiViewAppUi.h" -#include "CSatUiViewContainer.h" -#include "CSatUiView.h" -#include "tflogger.h" - -// CONSTANTS -// From Ui spec 60 sec delay user response -const TInt KNoResponseFromUserDelay = 60; - -_LIT( KTab, "\t" ); -_LIT( KIconTab, "%d\t" ); -// ================= MEMBER FUNCTIONS ======================= - -// C++ default constructor can NOT contain any code, that -// might leave. -// -CSatUiView::CSatUiView( TBool aSetUpMenu, CSatUiViewAppUi* aAppUi, - TBool aEmpty ): - iSetUpMenu( aSetUpMenu ), - iSatUiAppUi( aAppUi ), - iModel( NULL ), - iIconsOn( EFalse ), - iIconStateChange( EFalse ), - iSelfExplanatoryItems( EFalse ), - iListBoxVisible( ETrue ), - iEmpty( aEmpty ) - { - } - -// Symbian OS default constructor can leave. -void CSatUiView::ConstructL() - { - TFLOGSTRING( "CSatUiView::ConstructL() called" ) - - TInt recource( R_SATUI_SELECTITEM_VIEW ); - - if ( iSetUpMenu ) - { - if ( iEmpty ) - { - recource = R_SATUI_EMPTYMENU_VIEW; - } - else - { - recource = R_SATUI_SETUPMENU_VIEW; - } - } - - BaseConstructL( recource ); - - iItemsIconArray = new(ELeave) CAknIconArray( 1 ); - TFLOGSTRING( "CSatUiView::ConstructL() exit" ) - } - -// Two-phased constructor. -CSatUiView* CSatUiView::NewL( TBool aSetUpMenu, - CSatUiViewAppUi* aAppUi, - TBool aEmpty ) - { - TFLOGSTRING( "CSatUiView::NewL called" ) - CSatUiView* self = new ( ELeave ) CSatUiView( aSetUpMenu, aAppUi, aEmpty ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - TFLOGSTRING( "CSatUiView::NewL exit" ) - return self; - } - -// Destructor. -CSatUiView::~CSatUiView() - { - TFLOGSTRING( "CSatUiView::~CSatUiView() called" ) - - delete iContainer; - delete iMenuItemNextActions; - delete iMenuItems; - - if ( iItemsIconArray ) - { - iItemsIconArray->ResetAndDestroy(); - delete iItemsIconArray; - iItemsIconArray = NULL; - } - - TFLOGSTRING( "CSatUiView::~CSatUiView() exit" ) - } - -// --------------------------------------------------------- -// CSatUiView::SetTitle -// Sets the title needed for showing the view. -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CSatUiView::SetTitle( const HBufC* aTitle ) - { - TFLOGSTRING( "CSatUiView::SetTitle called" ) - iTitle = aTitle; - TFLOGSTRING( "CSatUiView::SetTitle exit" ) - } - -// --------------------------------------------------------- -// CSatUiView::SetIconL -// Sets the icon needed to the view. -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CSatUiView::SetIconL( const CFbsBitmap* aIconBitmap ) - { - TFLOGSTRING( "CSatUiView::SetIconL called" ) - if ( StatusPane()->PaneCapabilities( TUid::Uid( - EEikStatusPaneUidContext ) ).IsPresent() ) - { - TFLOGSTRING( "CSatUiView::SetIconL pane is present" ) - CEikStatusPane* sp=iEikonEnv->AppUiFactory()->StatusPane(); - CleanupStack::PushL( sp ); - CAknContextPane* contextPane=( CAknContextPane * )sp-> - ControlL( TUid::Uid( EEikStatusPaneUidContext ) ); - CleanupStack::Pop( sp ); //sp - if ( aIconBitmap ) //icon from SIM - { - TFLOGSTRING( "CSatUiView::SetIconL icon from SIM" ) - contextPane->SetPicture( aIconBitmap ); - } - else //set default icon - { - TFLOGSTRING( "CSatUiView::SetIconL default icon" ) - contextPane->SetPictureToDefaultL(); - } - } - TFLOGSTRING( "CSatUiView::SetIconL exit" ) - } - -// --------------------------------------------------------- -// CSatUiView::SetItemsIconL -// Sets the items icon array. -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CSatUiView::SetItemsIconL( - const CAknIconArray* aItemsIconArray, - const TBool aSelfExplanatoryItems ) - { - TFLOGSTRING( "CSatUiView::SetItemsIconL called" ) - iItemsIconArray->ResetAndDestroy(); - //if items icon array available - if ( aItemsIconArray->Count() ) - { - TFLOGSTRING( "CSatUiView::SetItemsIconL icon array available" ) - if( !iIconsOn ) - { - //last view not with icons - iIconStateChange = ETrue; - } - iItemsIconArray->InsertL( 0, &aItemsIconArray->operator[]( 0 ), - aItemsIconArray->Count() ); - iIconsOn = ETrue; - iSelfExplanatoryItems = aSelfExplanatoryItems; - } - else - { - TFLOGSTRING( "CSatUiView::SetItemsIconL icon array not available" ) - if( iIconsOn ) - { - TFLOGSTRING( "CSatUiView::SetItemsIconL iIconsOn true" ) - iIconStateChange = ETrue; - } - else - { - TFLOGSTRING( "CSatUiView::SetItemsIconL iIconsOn false" ) - iIconStateChange = EFalse; - } - iIconsOn = EFalse; - iSelfExplanatoryItems = EFalse; - } - TFLOGSTRING( "CSatUiView::SetItemsIconL exit" ) - } - -// --------------------------------------------------------- -// CSatUiView::SetItemsL -// Sets all parameters needed for showing the view. -// (other items were commented in a header). -// --------------------------------------------------------- -// -TSatUiResponse CSatUiView::SetItemsL( - HBufC* aTitle, - const MDesCArray& aMenuItems, - const CArrayFixFlat* aMenuItemNextActions, - const TBool aHelpIsAvailable ) - { - TFLOGSTRING( "CSatUiView::SetItemsL called" ) - iKeypadBlocked = EFalse; - - delete iMenuItemNextActions; - iMenuItemNextActions = NULL; - - if( !iMenuItems ) - { - iMenuItems = new ( ELeave ) CDesCArrayFlat( 1 ); - } - // This reset is required - iMenuItems->Reset(); - - // Remove NULL characters from title - TPtr titleptr = aTitle->Des(); - TInt nullLocation; - while ( ( nullLocation = titleptr.Locate( NULL ) ) >= 0 ) - { - titleptr.Delete( nullLocation, 1 ); - } - - iTitle = aTitle; - - //no memory is allocated to the array buffers here: - iMenuItemNextActions = new ( ELeave ) CArrayFixFlat( 1 ); - - iNItems = aMenuItems.MdcaCount(); - - TBool nextActions( EFalse ); - - TFLOGSTRING2( "CSatUiView::SetItemsL, iNItems: %d", iNItems ) - if ( iNItems == ( aMenuItemNextActions->Count() ) ) - { - nextActions = ETrue; - } - - if (iNItems > 0) - { - for ( TInt i(0); i < iNItems; i++ ) - { - TInt itemLength = aMenuItems.MdcaPoint(i).Length(); - HBufC* tmpBuf = HBufC::NewLC( - aMenuItems.MdcaPoint(i).Length() + KTabLength ); - TPtr tmpPtr( tmpBuf->Des() ); - - // Item text - TPtrC16 text ( aMenuItems.MdcaPoint(i) ); - - // Needed for NULL check - HBufC* correctText = HBufC::NewLC( itemLength ); - TPtr ptr = correctText->Des(); - - // Check item text through - for ( TInt j(0); j < itemLength; j++) - { - TChar ch = text[j]; - // Remove NULL characters from item text - if ( ch ) - { - ptr.Append( ch ); - } - } - - //if view includes icons - if( iIconsOn ) - { - TFLOGSTRING( "CSatUiView::SetItemsL iIconsOn true" ) - //with icons - TBuf lineTab; - lineTab.Format( KIconTab,i ); - tmpPtr.Copy( lineTab ); - } - else - { - TFLOGSTRING( "CSatUiView::SetItemsL iIconsOn false" ) - //without icons - tmpPtr.Copy( KTab ); - } - - if( !iSelfExplanatoryItems ) - { - //icons not selfexplanatory show text - tmpPtr.Append( ptr ); - } - - //memory is allocated here: - TRAPD( err, iMenuItems->AppendL(tmpPtr) ); - - if ( err ) - { - iMenuItems->Reset(); - iMenuItemNextActions->Reset(); - CleanupStack::PopAndDestroy( correctText ); - CleanupStack::PopAndDestroy( tmpBuf ); //tmpBuf, correctText - TFLOGSTRING( "CSatUiView::SetItemsL having error" ) - return ESatFailure; - } - TFLOGSTRING2( "CSatUiView::SetItemsL tmpPtr=%S", &tmpPtr ) - CleanupStack::PopAndDestroy( correctText ); - CleanupStack::PopAndDestroy( tmpBuf ); //tmpBuf, correctText - //select options menu command - if ( nextActions ) - { - TRAP( err, iMenuItemNextActions->AppendL( - aMenuItemNextActions->At( i ) ) ); - - if ( err ) - { - iMenuItems->Reset(); - iMenuItemNextActions->Reset(); - TFLOGSTRING( "CSatUiView::SetItemsL return ESatFailure" ) - return ESatFailure; - } - } - } - } - - iHelpIsAvailable = aHelpIsAvailable; - - TFLOGSTRING( "CSatUiView::SetItemsL return ESatSuccess" ) - return ESatSuccess; - } - -// --------------------------------------------------------- -// CSatUiView::SetUpMenuL -// Checks whether the same view should be refreshed or another -// one activated and do it. -// (other items were commented in a header). -// --------------------------------------------------------- -// -TSatUiResponse CSatUiView::SetUpMenuL( - HBufC* aTitle, - const MDesCArray& aMenuItems, - const CArrayFixFlat* aMenuItemNextActions, - const TBool aHelpIsAvailable ) - { - TFLOGSTRING( "CSatUiView::SetUpMenuL called" ) - iDefaultItem = 0; //could be iSelection - - CSatUiView* setUpMenuView = STATIC_CAST( CSatUiView*, - AppUi()->View( KSetUpMenuViewId ) ); - - TVwsViewId setUpMenuViewId( KUidSATUI, KSetUpMenuViewId ); - TVwsViewId viewId; - - AppUi()->GetActiveViewId( viewId ); - - setUpMenuView->SetItemsL( aTitle, aMenuItems, aMenuItemNextActions, - aHelpIsAvailable ); - - // Incase empty view is created before the actual SetUpMenu view - // CBA resource has to be updated - if ( iEmpty ) - { - TFLOGSTRING( "CSatUiView::SetUpMenuL empty view" ) - iEmpty = EFalse; - CEikButtonGroupContainer* cba = Cba(); - - if ( cba ) - { - TFLOGSTRING( "CSatUiView::SetUpMenuL cba" ) - cba->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_EXIT ); - cba->DrawDeferred(); - } - } - - if ( viewId.iAppUid == setUpMenuViewId.iAppUid ) - { - TFLOGSTRING( "CSatUiView::SetUpMenuL activate SetUpMenuView" ) - //Activate SetUpMenuView - AppUi()->ActivateLocalViewL( KSetUpMenuViewId ); - - if ( iContainer ) - { - RefreshL(); - } - } - TFLOGSTRING( "CSatUiView::SetUpMenuL return ESatSuccess" ) - return ESatSuccess; - } - -// --------------------------------------------------------- -// CSatUiView::SetAdapter -// Sets a pointer to MSatUiAdapter provided by SatCli. -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CSatUiView::SetAdapter( MSatUiAdapter* aAdapter ) - { - TFLOGSTRING( "CSatUiView::SetAdapter called" ) - iAdapter = aAdapter; - TFLOGSTRING( "CSatUiView::SetAdapter exit" ) - } - -// --------------------------------------------------------- -// CSatUiSelectItemView::SelectItemL -// Checks whether the same view should be refreshed or another -// one activated and do it. -// (other items were commented in a header). -// --------------------------------------------------------- -// -TSatUiResponse CSatUiView::SelectItemL( - HBufC* aTitle, - const MDesCArray& aMenuItems, - const CArrayFixFlat* aMenuItemNextActions, - const TInt aDefaultItem, TUint8& aSelection, - const TBool aHelpIsAvailable ) - { - TFLOGSTRING( "CSatUiView::SelectItemL called" ) - iDefaultItem = aDefaultItem; - TFLOGSTRING2( "CSatUiView::SelectItemL in aDefaultItem = %d", aDefaultItem ) - CSatUiView* selectItemView = STATIC_CAST( CSatUiView*, - AppUi()->View( KSelectItemViewId ) ); - - TVwsViewId selectItemViewId( KUidSATUI,KSelectItemViewId ); - TVwsViewId viewId; - - AppUi()->GetActiveViewId( viewId ); - - selectItemView->SetItemsL( aTitle, aMenuItems, aMenuItemNextActions, - aHelpIsAvailable); - - if ( viewId.iAppUid == selectItemViewId.iAppUid ) - { - TFLOGSTRING( "CSatUiView::SelectItemL activate SelectItemview" ) - //Activate SelectItemview - AppUi()->ActivateLocalViewL( KSelectItemViewId ); - - if ( iContainer ) - { - RefreshL(); - } - } - - iResponse = ESatSuccess; - - iNoResponseFromUserAfterDelay = EFalse; - - //activitymanager for wait user actions - CUserActivityManager* activityManager = - CUserActivityManager::NewL( EPriorityNormal ); - - CleanupStack::PushL( activityManager ); - - User::ResetInactivityTime(); - activityManager->Start( TTimeIntervalSeconds( KNoResponseFromUserDelay ), - TCallBack( DispatchUserInactive, this ), 0 ); - - if ( !iWait.IsStarted() ) - { - TFLOGSTRING( "CSatUiView::SelectItemL start iWait" ) - iSatUiAppUi->DispatchTimer( iWait ); - iWait.Start(); - } - - CleanupStack::PopAndDestroy( activityManager ); // activityManager - - if ( iNoResponseFromUserAfterDelay ) - { - iResponse = ESatNoResponseFromUser; - } - - aSelection= STATIC_CAST(TUint8,iSelection); - TFLOGSTRING2( "CSatUiView::SelectItemL out aDefaultItem = %d", aDefaultItem ) - TFLOGSTRING2( "CSatUiView::SelectItemL exit, return: %d", iResponse ) - return iResponse; - } - -// --------------------------------------------------------- -// CSatUiView::Id -// Returns the id of the view. -// (other items were commented in a header). -// --------------------------------------------------------- -// -TUid CSatUiView::Id() const - { - TFLOGSTRING( "CSatUiView::Id() called" ) - //this should be an UID. - if ( iSetUpMenu ) - { - TFLOGSTRING( "CSatUiView::Id() setupmenu-exit" ) - return KSetUpMenuViewId; - } - else - { - TFLOGSTRING( "CSatUiView::Id() selectitem-exit" ) - return KSelectItemViewId; - } - } - -// --------------------------------------------------------- -// CSatUiView::HandleCommandL -// Called by the UI framework when a command has been issued. -// A command can originate by pressing a softkey or -// by selection of the options menu item. -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CSatUiView::HandleCommandL( - TInt aCommandId) - { - TFLOGSTRING( "CSatUiView::HandleCommandL called" ) - if ( iKeypadBlocked || ( EAknSoftkeyEmpty == aCommandId ) ) - { - return; - } - - TFLOGSTRING2( "CSatUiView::HandleCommandL iNItems: %d", iNItems ) - if ( iNItems > 0 ) - { - iSelection = iContainer->ListBox()->CurrentItemIndex(); - } - - TBool taskSwapper ( EFalse ); - - TFLOGSTRING2( "CSatUiView::HandleCommandL aCommandId: %d", aCommandId ) - switch ( aCommandId ) - { - case ESatUiCmdSelect: - { - iSatUiAppUi->HelpStatus( EFalse ); - - if ( iSetUpMenu ) - { - TFLOGSTRING( "CSatUiView::HandleCommandL setupmenu" ) - iSatUiAppUi->ShowWaitNoteL(); - iAdapter->MenuSelection( iSelection, EFalse ); - } - else - { - TFLOGSTRING( "CSatUiView::HandleCommandL others" ) - iResponse = ESatSuccess; - iWait.AsyncStop(); - } - break; - } - - case EAknSoftkeyBack: - { - iResponse = ESatBackwardModeRequestedByUser; - iWait.AsyncStop(); - break; - } - - case EAknSoftkeyExit: - case EEikCmdExit: - { - AknSelectionService::HandleMarkableListProcessCommandL( - EAknCmdExit, iContainer->ListBox() ); - STATIC_CAST( CSatUiViewAppUi*, - AppUi())->HandleCommandL( EEikCmdExit ); - break; - } - case ESatUiCmdExit: - { - TFLOGSTRING( "CSatUiView::HandleCommandL ESatUiCmdExit" ) - iResponse = ESatSessionTerminatedByUser; - if ( iWait.IsStarted() ) - { - iWait.AsyncStop(); - TFLOGSTRING( "CSatUiView::HandleCommandL iWait stopped" ) - } - break; - } - case EAknCmdHelp: - if ( iHelpIsAvailable ) - { - TFLOGSTRING( "CSatUiView::HandleCommandL help available" ) - iSatUiAppUi->HelpStatus( ETrue ); - - if ( iSetUpMenu ) - { - TFLOGSTRING( "CSatUiView::HandleCommandL setupmenu" ) - iAdapter->MenuSelection( iSelection, ETrue ); - } - else - { - TFLOGSTRING( "CSatUiView::HandleCommandL others" ) - iResponse = EHelpRequestedByUser; - iWait.AsyncStop(); - } - } - else - { - TFLOGSTRING( "CSatUiView::HandleCommandL help not available" ) - // Show Help - STATIC_CAST( CSatUiViewAppUi*, - AppUi())->HandleCommandL( EAknCmdHelp ); - } - break; - case EAknCmdTaskSwapper: - { - taskSwapper = ETrue; - break; - } - default: - break; - } - - if ( ( ( iNItems > 0 )) && ( iContainer->ListBox()->ScrollBarFrame() ) ) - { - iContainer->ListBox()->ScrollBarFrame()->MoveVertThumbTo( - iSelection ); - } - - if ( ( ( EAknCmdHelp == aCommandId ) && !iHelpIsAvailable ) || taskSwapper ) - { - TFLOGSTRING( "CSatUiView::HandleCommandL iKeypadBlocked false" ) - iKeypadBlocked = EFalse; - } - else - { - TFLOGSTRING( "CSatUiView::HandleCommandL iKeypadBlocked true" ) - iKeypadBlocked = ETrue; - } - - TFLOGSTRING( "CSatUiView::HandleCommandL exit" ) - } - -// --------------------------------------------------------- -// CSatUiView::DynInitMenuPaneL -// Update the options menu when opened. -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CSatUiView::DynInitMenuPaneL( - TInt aResourceId, - CEikMenuPane* aMenuPane ) - { - TFLOGSTRING( "CSatUiView::DynInitMenuPaneL called" ) - if (( aResourceId == R_SATUI_SETUPMENU_OPTIONS_MENU ) || - ( aResourceId == R_SATUI_SELECTITEM_OPTIONS_MENU ) ) - { - - FeatureManager::InitializeLibL(); - - if ( !FeatureManager::FeatureSupported( KFeatureIdHelp ) ) - { - aMenuPane->SetItemDimmed( EAknCmdHelp, ETrue ); - } - - FeatureManager::UnInitializeLib(); - - TInt nItems( aMenuPane->NumberOfItemsInPane() ); - - TFLOGSTRING2( "CSatUiView::DynInitMenuPaneL nItems: %d", nItems ) - if ( nItems > 0 ) //number of items in the options menu - { - TFLOGSTRING2( "CSatUiView::DynInitMenuPaneL iNItems: %d", \ - iNItems ) - if ( iNItems > 0 ) //number of items in the main pane - { - TInt sItem = iContainer->ListBox()->CurrentItemIndex(); - TFLOGSTRING2( "CSatUiView::DynInitMenuPaneL sItem: %d", sItem ) - HBufC* menuItemNextActions; - TInt resource( R_QTN_SAT_OPTION_SELECT ); - - if ( iMenuItems->MdcaCount() == - iMenuItemNextActions->Count() ) - { - switch ( ( *iMenuItemNextActions )[ sItem ] ) - { - case ESatSetUpCallAction: - { - TFLOGSTRING( "CSatUiView::DynInitMenuPaneL \ - setupcall" ) - resource = R_QTN_SAT_OPTION_CALL; - break; - } - case ESatSendSsAction: // flow through - case ESatSendUssdAction: // flow through - case ESatSendSmAction: - { - TFLOGSTRING( "CSatUiView::DynInitMenuPaneL \ - sendss,sendussd or sendsm" ) - resource = R_QTN_SAT_OPTION_SEND; - break; - } - case ESatPlayToneAction: - { - TFLOGSTRING( "CSatUiView::DynInitMenuPaneL \ - playtone" ) - resource = R_QTN_SAT_OPTION_PLAY_TONE; - break; - } - case ESatDisplayTextAction: - { - TFLOGSTRING( "CSatUiView::DynInitMenuPaneL \ - displaytext" ) - resource = R_QTN_SAT_OPTION_READ; - break; - } - case ESatSetUpMenuAction: - case ESatSelectItemAction: - { - TFLOGSTRING( "CSatUiView::DynInitMenuPaneL \ - setupmenu or selectitem" ) - resource = R_QTN_SAT_OPTION_OPEN; - break; - } - case ESatLaunchBrowserAction: - { - TFLOGSTRING( "CSatUiView::DynInitMenuPaneL \ - launchbrowser" ) - resource = R_QTN_SAT_OPTION_GOTO; - break; - } - default: - { - TFLOGSTRING( "CSatUiView::DynInitMenuPaneL \ - others" ) - resource = R_QTN_SAT_OPTION_SELECT; - break; - } - } - } - menuItemNextActions = StringLoader::LoadLC( - resource, iCoeEnv ); - aMenuPane->SetItemTextL( ESatUiCmdSelect, - *menuItemNextActions ); - aMenuPane->SetItemSpecific( ESatUiCmdSelect, ETrue ); - // menuItemNextActions - CleanupStack::PopAndDestroy( menuItemNextActions ); - } - else - { - aMenuPane->SetItemDimmed( ESatUiCmdSelect, ETrue ); - aMenuPane->SetItemDimmed( EAknCmdHelp, ETrue ); - } - } - } - TFLOGSTRING( "CSatUiView::DynInitMenuPaneL exit" ) - } - -// --------------------------------------------------------- -// CSatUiView::HandleListBoxEventL -// Handles events that occur by selection of the menu item. -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CSatUiView::HandleListBoxEventL( - CEikListBox* /*aListBox*/, - TListBoxEvent aEventType) - { - TFLOGSTRING( "CSatUiView::HandleListBoxEventL called" ) - - if ( iKeypadBlocked || - ( EEventEnterKeyPressed != aEventType && - EEventItemSingleClicked != aEventType ) ) - { - return; - } - - TFLOGSTRING2( "CSatUiView::HandleListBoxEventL aEventType: %d", \ - aEventType ) - switch ( aEventType ) - { - case EEventItemSingleClicked: - case EEventEnterKeyPressed: - - iSatUiAppUi->HelpStatus( EFalse ); - - if ( iNItems > 0 ) - { - iSelection = iContainer->ListBox()->CurrentItemIndex(); - } - - if ( iSetUpMenu ) - { - TFLOGSTRING( "CSatUiView::HandleListBoxEventL setupmenu" ) - iSatUiAppUi->ShowWaitNoteL(); - iAdapter->MenuSelection( iSelection, EFalse ); - } - else - { - TFLOGSTRING( "CSatUiView::HandleListBoxEventL others" ) - iResponse = ESatSuccess; - - iWait.AsyncStop(); - } - break; - - default: - break; - } - - iKeypadBlocked = ETrue; - - TFLOGSTRING( "CSatUiView::HandleListBoxEventL exit" ) - } - -// --------------------------------------------------------- -// CSatUiView::DoActivateL -// Called by the view framework when this view is activated. -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CSatUiView::DoActivateL( - const TVwsViewId& PrevViewId, - TUid /*aCustomMessageId*/, - const TDesC8& /*aCustomMessage*/) - { - TFLOGSTRING( "CSatUiView::DoActivateL called" ) - - TVwsViewId viewId; - AppUi()->GetActiveViewId( viewId ); - - if ( ( viewId == PrevViewId ) && ( !iIconStateChange ) ) - { - TFLOGSTRING( "CSatUiView::DoActivateL refresh" ) - //if selectitems and icon state changed - RefreshL(); - } - else - { - TFLOGSTRING( "CSatUiView::DoActivateL draw" ) - iContainer = CSatUiViewContainer::NewL( iIconsOn, this ); - - iContainer->SetMopParent( this ); - iContainer->ListBox()->SetListBoxObserver( this ); - - iModel = STATIC_CAST( CTextListBoxModel*, - iContainer->ListBox()->Model() ); - - if ( !iMenuItems ) - { - //no memory is allocated to the array buffers here: - iMenuItems = new (ELeave) CDesCArrayFlat(1); - iMenuItemNextActions = new (ELeave) CArrayFixFlat( 1 ); - } - - iRect = ClientRect(); - - AppUi()->AddToStackL( iContainer ); - - DrawL(); - } - TFLOGSTRING( "CSatUiView::DoActivateL exit" ) - } - -// --------------------------------------------------------- -// CSatUiView::DoDeactivateL -// Called by the view framework when this view is deactivated. -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CSatUiView::DoDeactivate() - { - TFLOGSTRING( "CSatUiView::DoDeactivate() called" ) - if ( iContainer ) - { - TFLOGSTRING( "CSatUiView::DoActivateL iContainer" ) - AppUi()->RemoveFromStack( iContainer ); - delete iContainer; - iContainer = NULL; - } - TFLOGSTRING( "CSatUiView::DoDeactivate() exit" ) - } - -// --------------------------------------------------------- -// CSatUiView::MakeListBoxVisible -// Hides and makes list box visible if needed. -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CSatUiView::MakeListBoxVisible( TBool aVisible ) - { - - TFLOGSTRING( "CSatUiView::MakeListBoxVisible() called" ) - iListBoxVisible = aVisible; - TFLOGSTRING( "CSatUiView::MakeListBoxVisible() exit" ) - - } - -// --------------------------------------------------------- -// CSatUiView::RefreshL -// Called by SetUpMenuL and SelectItemL when view is the same but -// data is changed. -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CSatUiView::RefreshL() - { - TFLOGSTRING( "CSatUiView::RefreshL() called" ) - if ( !iIconStateChange ) - { - TFLOGSTRING( "CSatUiView::RefreshL() iIconStateChange false" ) - iRect = ClientRect(); - DrawL(); - } - else - { - TFLOGSTRING( "CSatUiView::RefreshL() iIconStateChange true" ) - //deactivate last selectitem view with other icon state - DoDeactivate(); - - iContainer = CSatUiViewContainer::NewL( iIconsOn, this ); - - iContainer->SetMopParent( this ); - iContainer->ListBox()->SetListBoxObserver( this ); - - iModel = STATIC_CAST( CTextListBoxModel*, - iContainer->ListBox()->Model() ); - - if ( !iMenuItems ) - { - //no memory is allocated to the array buffers here: - iMenuItems = new ( ELeave ) CDesCArrayFlat(1); - iMenuItemNextActions = new ( ELeave ) CArrayFixFlat( 1 ); - } - - iRect = ClientRect(); - - AppUi()->AddToStackL( iContainer ); - - DrawL(); - } - TFLOGSTRING( "CSatUiView::RefreshL() exit" ) - } - -// --------------------------------------------------------- -// CSatUiView::DrawL -// Called by DoActivateL and RefreshL to draw the view. -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CSatUiView::DrawL() - { - TFLOGSTRING( "CSatUiView::DrawL() called" ) - - if ( iContainer ) - { - TFLOGSTRING( "CSatUiView::DrawL make ListBox visible" ) - iContainer->ListBox()->MakeVisible( iListBoxVisible ); - } - - if ( ( iTitle ) && ( StatusPane()->PaneCapabilities( TUid::Uid( - EEikStatusPaneUidTitle ) ).IsPresent() ) - && iListBoxVisible ) - { - TFLOGSTRING( "CSatUiView::DrawL set title pane" ) - CAknTitlePane* titlePane = STATIC_CAST( CAknTitlePane*, - StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) ); - titlePane->SetTextL( *iTitle ); - titlePane->DrawNow(); - } - - if( iIconsOn ) - { - TFLOGSTRING( "CSatUiView::DrawL set icons" ) - //set icons to view - CAknIconArray* itemIconsArray = new( ELeave ) CAknIconArray(1); - CleanupStack::PushL( itemIconsArray ); - itemIconsArray->InsertL( 0, &iItemsIconArray->operator[]( 0 ), - iItemsIconArray->Count() ); - iContainer->ListBox()->ItemDrawer()->ColumnData()-> - SetIconArray( itemIconsArray ); - CleanupStack::Pop( itemIconsArray ); - iItemsIconArray->Reset(); - } - - iModel->SetItemTextArray( iMenuItems ); - iModel->SetOwnershipType( ELbmDoesNotOwnItemArray ); - - iContainer->MakeVisible( ETrue ); - iContainer->SetRect( iRect ); - iContainer->ActivateL(); - - if ( iSetUpMenu ) - { - TFLOGSTRING( "CSatUiView::DrawL() SetupMenu" ) - UpdateMskL( 0, ETrue ); // SetupMenu starts at beginning - } - else - { - TFLOGSTRING( "CSatUiView::DrawL() others" ) - UpdateMskL( iDefaultItem, ETrue ); // SelectItem may have default item - } - iContainer->ListBox()->SetCurrentItemIndex( iDefaultItem ); - iContainer->ListBox()->DrawNow(); - TFLOGSTRING2( "CSatUiView::DrawL() iDefaultItem=%d", iDefaultItem ) - TFLOGSTRING( "CSatUiView::DrawL() exit" ) - } - -// --------------------------------------------------------- -// CSatUiView::DispatchUserInactive -// Called when user has been inactive for a pre-defined time period -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CSatUiView::DispatchUserInactive( TAny* aPtr ) - { - TFLOGSTRING( "CSatUiView::DispatchUserInactive called-exit" ) - if ( ( ( CSatUiView* )aPtr )->iWait.IsStarted() ) - { - ( ( CSatUiView* )aPtr )->iNoResponseFromUserAfterDelay = ETrue; - ( ( CSatUiView* )aPtr )->iWait.AsyncStop(); - } - return ( EFalse ); - } - - -// --------------------------------------------------------- -// CSatUiView::UpdateMskL -// Updates the middle soft key -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CSatUiView::UpdateMskL( TInt aIndex, TBool aNew ) - { - TFLOGSTRING( "CSatUiView::UpdateMskL() enter" ) - CEikButtonGroupContainer* cba = Cba(); - - if ( cba && ( aNew || ( iMenuItems->MdcaCount() == - iMenuItemNextActions->Count() ) ) ) - { - TInt resource ( R_QTN_MSK_SELECT ); - TInt commandId ( ESatUiCmdSelect ); - - if ( iEmpty ) - { - TFLOGSTRING( "CSatUiView::UpdateMskL iEmpty" ) - resource = R_TEXT_SOFTKEY_EMPTY; - commandId = EAknSoftkeyEmpty; - } - else if ( iMenuItems->MdcaCount() == - iMenuItemNextActions->Count() && iNItems ) - { - switch ( ( *iMenuItemNextActions )[ aIndex ] ) - { - case ESatSetUpCallAction: - { - TFLOGSTRING( "CSatUiView::UpdateMskL \ - setupcall" ) - resource = R_QTN_MSK_CALL_SAT; - break; - } - case ESatSendSsAction: // flow through - case ESatSendUssdAction: // flow through - case ESatSendSmAction: - { - TFLOGSTRING( "CSatUiView::UpdateMskL \ - sendss,sendussd or sendsm" ) - resource = R_QTN_MSK_SEND; - break; - } - case ESatPlayToneAction: - { - TFLOGSTRING( "CSatUiView::UpdateMskL \ - playtone" ) - resource = R_QTN_MSK_PLAY; - break; - } - case ESatDisplayTextAction: - { - TFLOGSTRING( "CSatUiView::UpdateMskL \ - displaytext" ) - resource = R_QTN_MSK_READ_SAT; - break; - } - case ESatSetUpMenuAction: - case ESatSelectItemAction: - { - TFLOGSTRING( "CSatUiView::UpdateMskL \ - setupmenu or selectitem" ) - resource = R_QTN_MSK_OPEN; - break; - } - case ESatLaunchBrowserAction: - { - TFLOGSTRING( "CSatUiView::UpdateMskL \ - launchbrowser" ) - resource = R_QTN_MSK_GOTO_SAT; - break; - } - default: - { - TFLOGSTRING( "CSatUiView::UpdateMskL \ - others" ) - resource = R_QTN_MSK_SELECT ; - break; - } - } - TFLOGSTRING2( "CSatUiView::UpdateMskL:aIndex=%d", aIndex ) - } - else // Basic aNew - { - // No need to to do anything here, default values are used - } - - HBufC* msk = StringLoader::LoadLC( resource, iCoeEnv ); - cba->SetCommandL( CEikButtonGroupContainer::EMiddleSoftkeyPosition, - commandId, *msk ); - cba->DrawDeferred(); - CleanupStack::PopAndDestroy( msk ); - } - - TFLOGSTRING( "CSatUiView::UpdateMskL() exit" ) - } -