diff -r fc7b30ed2058 -r 05bc53fe583b cmmanager/cmmgr/Framework/Src/cmconnselectrbpage.cpp --- a/cmmanager/cmmgr/Framework/Src/cmconnselectrbpage.cpp Thu Aug 19 10:18:49 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,426 +0,0 @@ -/* -* Copyright (c) 2006 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: Implementation of plugin base class -* -*/ - - -#include -#include - -#include "cmconnselectrbpage.h" -#include "cmmanager.hrh" -#include "cmconnsettingsuiimpl.h" -#include "cmlogger.h" - -using namespace CMManager; - -// --------------------------------------------------------------------------- -// CCMConnSelectRBPage::CCMConnSelectRBPage -// --------------------------------------------------------------------------- -// -CCMConnSelectRBPage::CCMConnSelectRBPage( TInt aDialogResourceId, - TInt& aCurrentSelectionIndex, - const MDesCArray* aItemArray, - CCmManagerImpl& aCmManagerImpl, - TCmDCSettingSelectionMode& aSelectionMode, - RArray& aDestinations, - TBool areDestinations, - TBool aOpenDestination, - TCoeContextName& aContext ) - : CAknRadioButtonSettingPage( aDialogResourceId, - aCurrentSelectionIndex, - aItemArray ) - , iDialogResourceId (aDialogResourceId) - , iCmManagerImpl( aCmManagerImpl ) - , iSelectionMode( aSelectionMode ) - , iDestinations( aDestinations ) - , iAreDestinations( areDestinations ) - , iOpenDestination( aOpenDestination ) - , iHelpContext ( aContext ) - , iFirstEnter( ETrue ) - { - CLOG_CREATE; - iPrevItem = iDestinations[aCurrentSelectionIndex]; - } - -// --------------------------------------------------------------------------- -// CCMConnSelectRBPage::~CCMConnSelectRBPage -// --------------------------------------------------------------------------- -// -CCMConnSelectRBPage::~CCMConnSelectRBPage() - { - CLOG_CLOSE; - } - -// --------------------------------------------------------------------------- -// CCMConnSelectRBPage::OkToExitL -// Good to know : EAknSoftkeyCancel is never called, because -// EEikDialogFlagNotifyEsc flag is not set in the resource. -// --------------------------------------------------------------------------- -// -TBool CCMConnSelectRBPage::OkToExitL( TInt aButtonId ) - { - LOGGER_ENTERFN("CCMConnSelectRBPage::OkToExitL"); - - // Convert the button presses into commands for the appui & current - // view to handle - TBool retval( EFalse ); - if ( aButtonId == EAknSoftkeyOk ) - { - ProcessCommandL( ECmManagerUiCmdDestSelect ); - retval = ETrue; - } - else - { - if ( aButtonId == EAknSoftkeyOptions ) - { - //*iSelected = iListbox->CurrentItemUid(); - //retval = ETrue; - DisplayMenuL(); - retval = EFalse; - } - else - { - retval = ETrue; - } - } - - return retval; - } - -// --------------------------------------------------------------------------- -// CCMConnSelectRBPage::ProcessCommandL -// --------------------------------------------------------------------------- -// -void CCMConnSelectRBPage::ProcessCommandL( TInt aCommandId ) - { - LOGGER_ENTERFN("CCMConnSelectRBPage::ProcessCommandL"); - - if ( MenuShowing() ) - { - HideMenu(); - } - - switch ( aCommandId ) - { - case EAknSoftkeyOptions: - { - DisplayMenuL(); - break; - } - - case EAknSoftkeyCancel: - { - AttemptExitL(EFalse); - break; - } - - case EAknSoftkeyOk: - case EAknSoftkeySelect: - case ECmManagerUiCmdDestSelect: - { - TUint selectedItem = - iDestinations[ ListBoxControl()->CurrentItemIndex() ]; - if ( selectedItem == KDestItemAlwaysAsk ) - { - iSelectionMode = EDCAlwaysAsk; - } - else if ( selectedItem == KDestItemAskOnce ) - { - iSelectionMode = EDCAskOnce; - } - else if ( selectedItem == KDestItemDefaultConnection ) - { - iSelectionMode = EDCDefaultConnection; - } - else if ( selectedItem == KDestItemUncategorized ) - { - iSelectionMode = EDCConnectionMethod; - } - else - { - if (iAreDestinations) - { - iSelectionMode = EDCDestination; - } - else - { - iSelectionMode = EDCConnectionMethod; - } - } - //iId is to be defined in the caller class - SelectCurrentItemL(); - AttemptExitL(ETrue); - break; - } - - case ECmManagerUiCmdCMSelect: - { - iSelectionMode = EDCConnectionMethod; - SelectCurrentItemL(); - AttemptExitL( ETrue ); - break; - } - case EAknCmdHelp: - { - HlpLauncher::LaunchHelpApplicationL( iEikonEnv->WsSession(), - iEikonEnv->EikAppUi()->AppHelpContextL() ); - } - break; - default: - { - break; - } - } - } - -// --------------------------------------------------------------------------- -// CCMConnSelectRBPage::DynInitMenuPaneL -// --------------------------------------------------------------------------- -// -void CCMConnSelectRBPage::DynInitMenuPaneL( TInt aResourceId, - CEikMenuPane* aMenuPane ) - { - LOGGER_ENTERFN("CCMConnSelectRBPage::DynInitMenuPaneL"); - - CAknSettingPage::DynInitMenuPaneL( aResourceId, aMenuPane ); - if ( aResourceId == R_SELECT_NETW_CONN_MENU ) - { - if (!iCmManagerImpl.IsHelpOn()) - { - aMenuPane->DeleteMenuItem( EAknCmdHelp ); - } - TUint32 currentItem = - iDestinations[ ListBoxControl()->CurrentItemIndex() ]; - - // Always Ask ( always the first item ) - if ( (currentItem == KDestItemAlwaysAsk) || - (currentItem == KDestItemAskOnce) || - (currentItem == KDestItemDefaultConnection) || - !iOpenDestination ) - { - aMenuPane->SetItemDimmed( ECmManagerUiCmdCMSelect, ETrue ); - } - else if ( ( currentItem != KDestItemAlwaysAsk ) && - ( currentItem != KDestItemAskOnce ) && - ( currentItem != KDestItemDefaultConnection ) && - ( currentItem != KDestItemUncategorized )) - { - CCmDestinationImpl* destImpl = iCmManagerImpl.DestinationL( currentItem ); - - if ( !destImpl->ConnectionMethodCount() ) - { - aMenuPane->SetItemDimmed( ECmManagerUiCmdCMSelect, ETrue ); - } - - delete destImpl; - } - else - { - RArray uncatArray( KCmArraySmallGranularity ); - CleanupClosePushL( uncatArray ); - iCmManagerImpl.ConnectionMethodL( uncatArray ); - - // Uncategorised - cannot be selected - if ( currentItem == KDestItemUncategorized ) - { - aMenuPane->SetItemDimmed( ECmManagerUiCmdDestSelect, ETrue ); - } - CleanupStack::PopAndDestroy( &uncatArray ); - } - } - } - - -// --------------------------------------------------------------------------- -// CCMConnSelectRBPage::OfferKeyEventL -// --------------------------------------------------------------------------- -// -TKeyResponse CCMConnSelectRBPage::OfferKeyEventL( const TKeyEvent& aKeyEvent, - TEventCode aType ) - { - LOGGER_ENTERFN("CCMConnSelectRBPage::OfferKeyEventL"); - - TKeyResponse retVal ( EKeyWasNotConsumed ); - // save for the future use - iPrevItem = iDestinations[ListBoxControl()->CurrentItemIndex()]; - - TKeyEvent aKeyEventmy = aKeyEvent; - if ( aKeyEventmy.iCode == EKeyEnter ) - { - if ( iFirstEnter ) - {//pressing the enter key at the first time will be changed - //to an up arrow key so the first item in the list will be highlighted - iFirstEnter = EFalse; - aKeyEventmy.iScanCode = EStdKeyUpArrow; - aKeyEventmy.iCode = EKeyUpArrow; - } - else - {//change back to true for the next session - iFirstEnter=ETrue; - } - } - else if ( aKeyEventmy.iScanCode == EStdKeyDownArrow || aKeyEventmy.iScanCode == EStdKeyUpArrow ) - { - //we will have highligt so the following enter key should select the item - iFirstEnter = EFalse; - } - - switch ( aKeyEventmy.iScanCode ) - { - case EStdKeyDownArrow: - case EStdKeyUpArrow: - { - if ( iOpenDestination ) //only if we are on 'destination level' and we are able to - //open destinations - { - // If focus is on the 'uncategorised' destination, - // change the soft key to 'Open' - if ( iDestinations[ ListBoxControl()->CurrentItemIndex() ] == - KDestItemUncategorized ) - { - HBufC* text = StringLoader::LoadLC( R_QTN_MSK_OPEN ); - Cba()->SetCommandL( EAknSoftkeySelect, *text ); - Cba()->DrawNow(); - CleanupStack::PopAndDestroy( text ); - } - else - { - HBufC* text = StringLoader::LoadLC( R_QTN_MSK_SELECT ); - Cba()->SetCommandL( EAknSoftkeySelect, *text ); - Cba()->DrawNow(); - CleanupStack::PopAndDestroy( text ); - } - } - break; - } - default: - { - break; - } - } - retVal = CAknRadioButtonSettingPage::OfferKeyEventL( aKeyEventmy, aType ); - - return retVal; - } - -// -------------------------------------------------------------------------- -// CCMConnSelectRBPage::GetHelpContext -// -------------------------------------------------------------------------- -// -void CCMConnSelectRBPage::GetHelpContext( TCoeHelpContext& aContext ) const - { - LOGGER_ENTERFN("CCMConnSelectRBPage::GetHelpContext"); - - aContext.iMajor = KHelpUidPlugin; - aContext.iContext = iHelpContext; - } - -// --------------------------------------------------------------------------- -// CCMConnSelectRBPage::HandleListBoxEventL -// --------------------------------------------------------------------------- -// -void CCMConnSelectRBPage::HandleListBoxEventL(CEikListBox* aListBox, - MEikListBoxObserver::TListBoxEvent aEventType) - { - LOGGER_ENTERFN("CCMConnSelectRBPage::HandleListBoxEventL"); - - if ( AknLayoutUtils::PenEnabled() ) - { - - if (iDialogResourceId == R_RADIO_BUTTON_SETTING_PAGE_OK_CANCEL) - { - // Call base class implementation and return if no options menu - CAknRadioButtonSettingPage::HandleListBoxEventL(aListBox, aEventType); - - switch ( aEventType ) - { - case EEventEnterKeyPressed: - case EEventItemDoubleClicked: - case EEventItemSingleClicked: - case EEventItemClicked: - { - ProcessCommandL(ECmManagerUiCmdDestSelect); - break; - } - - default: - { - break; - } - } - return; - } - - switch ( aEventType ) - { - // All these actions are activating the listbox item - case MEikListBoxObserver::EEventEnterKeyPressed: - case MEikListBoxObserver::EEventItemActioned: - CAknRadioButtonSettingPage::HandleListBoxEventL(aListBox, aEventType); - break; - - case MEikListBoxObserver::EEventItemClicked: - case MEikListBoxObserver::EEventItemSingleClicked: - if (iPrevItem == iDestinations[ListBoxControl()->CurrentItemIndex()]) - { - ProcessCommandL(ECmManagerUiCmdDestSelect); - } - else - { - // save for the later use - iPrevItem = iDestinations[ListBoxControl()->CurrentItemIndex()]; - - if ( iOpenDestination ) //only if we are on 'destination level' and we are able to - //open destinations - { - // If focus is on the 'uncategorised' destination, - // change the soft key to 'Open' - if ( iDestinations[ ListBoxControl()->CurrentItemIndex() ] == - KDestItemUncategorized ) - { - HBufC* text = StringLoader::LoadLC( R_QTN_MSK_OPEN ); - Cba()->SetCommandL( EAknSoftkeySelect, *text ); - Cba()->DrawNow(); - CleanupStack::PopAndDestroy( text ); - } - else - { - HBufC* text = StringLoader::LoadLC( R_QTN_MSK_SELECT ); - Cba()->SetCommandL( EAknSoftkeySelect, *text ); - Cba()->DrawNow(); - CleanupStack::PopAndDestroy( text ); - } - CAknRadioButtonSettingPage::SelectCurrentItemL(); - } - } - break; - - case MEikListBoxObserver::EEventItemDoubleClicked: - ProcessCommandL(ECmManagerUiCmdDestSelect); - break; - - default: - CAknRadioButtonSettingPage::HandleListBoxEventL(aListBox, aEventType); - break; - } - } - else - { - CAknRadioButtonSettingPage::HandleListBoxEventL(aListBox, aEventType); - } - } - -