diff -r 522cd55cc3d7 -r 13ae750350c9 basiclocationinfodisplay/blid/ui/src/CBlidTripMeterView.cpp --- a/basiclocationinfodisplay/blid/ui/src/CBlidTripMeterView.cpp Tue Feb 02 00:16:03 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,502 +0,0 @@ -/* -* Copyright (c) 2005-2008 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: Provides blid main view class methods. -* -*/ - -// SYSTEM INCLUDES -#include -//Added for HTK toolkit support -#include -#include -#include -#include -#include -//End of addition - -#include -#include - -// USER INCLUDES -#include "cblidnotedialog.h" -#include "CBlidTripMeterView.h" -#include "Blid.hrh" -#include "CHtkTripMeterControl.h" -#include "MBlidLocation.h" -#include "MBlidRouter.h" -#include "MBlidSettings.h" -#include "CBlidEng.h" -#include "CBlidDocument.h" -#include "CBlidAppUi.h" -#include "bliduiconsts.h" -#include "CBlidLocSettingLauncher.h" -#include "BlidUID.h" - -#include -#include - - -// ================= MEMBER FUNCTIONS ======================= -// ---------------------------------------------------------------------------- -// CBlidTripMeterView::NewLC -// Two-phased constructor. -// ---------------------------------------------------------------------------- -// -CBlidTripMeterView* CBlidTripMeterView::NewLC( MKeyProcessor& aKeyProcessor, - CAlfEnv& aEnv ) - { - CBlidTripMeterView* self = new (ELeave) CBlidTripMeterView(aKeyProcessor, aEnv ); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } -// ---------------------------------------------------------------------------- -// CBlidTripMeterView::CBlidTripMeterView -// C++ default constructor can NOT contain any code, that -// might leave. -// ---------------------------------------------------------------------------- -// -CBlidTripMeterView::CBlidTripMeterView( MKeyProcessor& aKeyProcessor, - CAlfEnv& aEnv ): - CBlidBaseView( aKeyProcessor ), - iEnv(aEnv) - { - } - -// ---------------------------------------------------------------------------- -// CBlidTripMeterView::ConstructL -// Symbian 2nd phase constructor can leave. -// ---------------------------------------------------------------------------- -// -void CBlidTripMeterView::ConstructL() - { - BaseConstructL( R_BLID_TRIPMETER_VIEW ); - - // Create an instance of our list control. - iTripCtrl = CHtkTripMeterControl::NewL(iEnv, - *this, - this, - ClientRect(), - iLocation, - iRouter, - *iEngine, - *this); - - // Create a control group. - iTripCtrlGroup = &( iEnv.NewControlGroupL( KPrimaryTripGroup ) ); - - // pass ownership of the list control to the control group - iTripCtrlGroup->AppendL(iTripCtrl); - - iCtrlDisplay = &( iEnv.NewDisplayL( ClientRect(), CAlfEnv::ENewDisplayAsCoeControl ) ); - // Use the Avkon skin background as the display background. - iCtrlDisplay->SetClearBackgroundL(CAlfDisplay::EClearWithSkinBackground); - - iNoteDialog = CBlidNoteDialog::NewL(); - - iLauncher = NULL; - } - -// ---------------------------------------------------------------------------- -// CBlidMainView::~CBlidMainView -// ---------------------------------------------------------------------------- -// -CBlidTripMeterView::~CBlidTripMeterView() - { - delete iNoteDialog; - delete iLauncher; - } - -// --------------------------------------------------------- -// CBlidTripMeterView::NotifyL -// --------------------------------------------------------- -// -void CBlidTripMeterView::NotifyL( const TBool aOnlineMode ) - { - if(iTripCtrl->HasTripStarted()) - { - if(aOnlineMode) - { - if(iTripCtrl->WasGPSDataLost()) - { - if(static_cast(AppUi())->IsForeground()) - { - iTripCtrl->SetGPSDataAvailability(EFalse); - iNoteDialog->ExecuteNoteDialog(); - } - } - } - } - - if( iTripCtrl ) - { - iTripCtrl->UpdateL(); - } - CBlidBaseView::NotifyL( aOnlineMode ); - } - -// --------------------------------------------------------- -// CBlidTripMeterView::NotifyErrorL -// --------------------------------------------------------- -// -void CBlidTripMeterView::NotifyErrorL( TInt aErrorCode ) - { - CBlidBaseView::NotifyErrorL( aErrorCode ); - - if( iTripCtrl ) - { - iTripCtrl->UpdateL(); - } - } - -// ---------------------------------------------------------------------------- -// TUid CBlidTripMeterView::Id -// ---------------------------------------------------------------------------- -// -TUid CBlidTripMeterView::Id() const - { - return TUid::Uid(EBlidTripMeterView); - } - -// ---------------------------------------------------------------------------- -// CBlidTripMeterView::HandleCommandL -// ---------------------------------------------------------------------------- -// -void CBlidTripMeterView::HandleCommandL(TInt aCommand) - { - switch ( aCommand ) - { - case EBlidCmdTripStart: - case EBlidCmdTripStop: - case EBlidCmdTripReset: - case EBlidCmdTripClear: - { - iTripCtrl->ProcessCommandL(aCommand); - break; - } - case EBlidCmdTripResume: - { - iTripCtrl->ProcessCommandL(aCommand); - break; - } - case EBlidCmdSavedWaypoints: - { - AppUi()->ActivateLocalViewL( TUid::Uid( EBlidSavedWayptsView ) ); - break; - } - case EBlidCmdLmk: - { - LaunchLandmarksDialogL(); - break; - } - case EBlidCmdWaypoint: - { - TInt index(0); - - if ( iRouter->Count() > 0 ) - { - index = SelectWaypointL(); - if ( index != KErrCancel ) - { - iRouter->SetWaypoint( index ); - } - } - break; - } - case EBlidCmdSaveLocation: - { - if ( !FeatureManager::FeatureSupported( KFeatureIdLandmarks ) ) - { - if ( InsertWaypointL() ) - { - static_cast(AppUi()->Document())->SaveL(); - } - } - else - { - SaveCurrentPositionAsLandmarkL(); - } - break; - } - case EBlidCmdShowDetails: - { - ShowCurrentPositionInfoL(); - break; - } - case EBlidCmdLaunchPositionSettings: - { - if(!iLauncher) - { - iLauncher = CBlidLocSettingsLauncher::NewL(); - } - iLauncher->LaunchL(); - break; - } - case EBlidNavigationMskInfo: - { - iTripCtrl->DisplayInfoPopUpMsgL(); - break; - } - case EBlidCmdSatelliteStatus: - { - TBool lBacklightNormal = EFalse; - MBlidSettings* setting = iEngine->SettingsModel(); - if(setting->GetBacklightOption() == EBlidBackLightOnDuringNavigation) - { - setting->SetBacklightOption(EBlidBackLightNormal); - iEngine->SetBackLightStateL(CBlidEng::EBlidBacklightNormal); - lBacklightNormal = ETrue; - } - (static_cast(AppUi()))->HandleCommandL( aCommand ); - if(lBacklightNormal) - { - iEngine->SetBackLightStateL(CBlidEng::EBlidBacklightAlwaysOn); - setting->SetBacklightOption(EBlidBackLightOnDuringNavigation); - } - break; - } - case EBlidCmdSettings: - { - iIsSettingsViewActive = ETrue; - (static_cast(AppUi()))->HandleCommandL( aCommand ); - break; - } - case EAknCmdHelp: - { - TCoeHelpContext context( TUid::Uid(KBLIDUID3), KHLP_BLID_TRIPMETER ); - CArrayFix* tripHelp = new CArrayFixFlat(1); - CleanupStack::PushL( tripHelp ); - tripHelp->AppendL(context); - HlpLauncher::LaunchHelpApplicationL(iCoeEnv->WsSession(), tripHelp ); - CleanupStack::Pop( tripHelp ); - break; - } - default: - { - static_cast(AppUi())->HandleCommandL( aCommand ); - break; - } - } //switch - } - -// ---------------------------------------------------------------------------- -// CBlidTripMeterView::DoActivateL -// ---------------------------------------------------------------------------- -// -void CBlidTripMeterView::DoActivateL( - const TVwsViewId& aPrevViewId,TUid /*aCustomMessageId*/, - const TDesC8& /*aCustomMessage*/) - { - #ifdef _DEBUG - RDebug::Print(_L("CBlidTripMeterView::DoActivateL() called")); - #endif - - iIsSettingsViewActive = EFalse; - - iLocation->SetObserver(*this, EBlidTripMeterView ); - - iTripCtrl->MakeTitleL( R_BLID_TITLE_TRIPMETER ); - iTripCtrl->UpdateL(); - - if( aPrevViewId.iViewUid.iUid != EBlidNavigationView ) - { - iTripCtrl->CreateNaviPaneL( EFalse ); - iTripCtrl->ActivateTabL( *( iTripCtrl->GetNiviDecorator( ) ), EBlidTripMeterView ); - } - - // Hide the navigation control group - iCtrlDisplay->Roster().Hide( iEnv.ControlGroup( KPrimaryGroup ) ); - - // Show the control group on the display. - iCtrlDisplay->Roster().ShowL( *iTripCtrlGroup ); - - MenuBar()->SetContextMenuTitleResourceId(R_BLID_TRIP_METER_VIEW_OK_MENUBAR); - MBlidSettings* setting = iEngine->SettingsModel(); - if(setting->GetBacklightOption() == EBlidBackLightOnDuringNavigation) - { - iEngine->SetBackLightStateL(CBlidEng::EBlidBacklightAlwaysOn); - } - - } - -// ---------------------------------------------------------------------------- -// CBlidTripMeterView::DoDeactivate -// ---------------------------------------------------------------------------- -// -void CBlidTripMeterView::DoDeactivate() - { - TRAP_IGNORE(iEngine->SetBackLightStateL(CBlidEng::EBlidBacklightNormal)); - } - -// --------------------------------------------------------- -// CBlidTripMeterView::DynInitMenuPaneL -// --------------------------------------------------------- -// -void CBlidTripMeterView::DynInitMenuPaneL( - TInt aResourceId, - CEikMenuPane* aMenuPane ) - { - switch( aResourceId ) - { - case R_BLID_TRIP_METER_VIEW_OK_MENU: - case R_BLID_TRIPMETER_MENU: - { - if(iLocation->HasTripStarted()) - { - aMenuPane->SetItemDimmed( EBlidCmdTripStart, ETrue ); - aMenuPane->SetItemDimmed( EBlidCmdTripResume, ETrue ); - aMenuPane->SetItemDimmed( EBlidCmdTripStop, EFalse ); - aMenuPane->SetItemDimmed( EBlidCmdTripReset, EFalse ); - - if(aResourceId != R_BLID_TRIP_METER_VIEW_OK_MENU) - { - aMenuPane->SetItemDimmed( EBlidCmdTripClear, ETrue ); - } - }else - if(iLocation->HasTripNotStarted()) - { - aMenuPane->SetItemDimmed( EBlidCmdTripStop, ETrue ); - aMenuPane->SetItemDimmed( EBlidCmdTripResume, ETrue ); - aMenuPane->SetItemDimmed( EBlidCmdTripStart, EFalse ); - aMenuPane->SetItemDimmed( EBlidCmdTripReset, ETrue ); - - if(aResourceId != R_BLID_TRIP_METER_VIEW_OK_MENU) - { - aMenuPane->SetItemDimmed( EBlidCmdTripClear, ETrue ); - } - }else - if(!iLocation->HasTripStarted()) - { - if(iLocation->IsTripCleared()) - { - aMenuPane->SetItemDimmed( EBlidCmdTripResume, ETrue ); - aMenuPane->SetItemDimmed( EBlidCmdTripReset, ETrue ); - } - else - { - aMenuPane->SetItemDimmed( EBlidCmdTripStart, ETrue ); - } - - if(iLocation->IsTripReset()) - { - aMenuPane->SetItemDimmed( EBlidCmdTripReset, ETrue ); - } - - aMenuPane->SetItemDimmed( EBlidCmdTripStop, ETrue ); - - if(aResourceId != R_BLID_TRIP_METER_VIEW_OK_MENU) - { - if(iLocation->IsTripCleared()) - { - aMenuPane->SetItemDimmed( EBlidCmdTripClear, ETrue ); - } - } - } - break; - } - case R_BLID_TRIP_VIEW_MENU: - { - // Hide the satellite status menu option - if ( !(iLocation->IsGPSDeviceConnected() && - iLocation->SatelliteCapability()) ) - { - aMenuPane->SetItemDimmed( EBlidCmdSatelliteStatus, ETrue ); - } - // hide the save position. - if(!iLocation->IsOnline()) - { - aMenuPane->SetItemDimmed( EBlidCmdCurrentLocation, ETrue ); - } - - if ( !iRouter->Count() ) - { - aMenuPane->SetItemDimmed( EBlidCmdSavedWaypoints, ETrue ); - } - - if ( FeatureManager::FeatureSupported( KFeatureIdLandmarks ) ) - { - aMenuPane->SetItemDimmed( EBlidCmdSavedWaypoints, ETrue ); - } - break; - } - case R_BLID_MAIN_MENU: - { - CBlidBaseView::HandleHelpFeature( aMenuPane ); - break; - } - case R_BLID_SAVE_CURRENT_LOCATION_MENU: - { - TInt settingsValue = 0; - CRepository* repository = CRepository::NewL( TUid::Uid( KCRUidLocLocalVariation) ); - CleanupStack::PushL( repository ); - User::LeaveIfError( repository->Get( KLocHideCoordinates, - settingsValue )); - CleanupStack::PopAndDestroy( repository ); - - if ( ELocCoordinatesHidden == settingsValue ) - { - aMenuPane->SetItemDimmed( EBlidCmdShowDetails, ETrue ); - } - else - { - aMenuPane->SetItemDimmed( EBlidCmdShowDetails, EFalse ); - } - } - default: - { - break; - } - } - } - -// ---------------------------------------------------------- -// Handle Resource Change Events: Display orientation switch -// ---------------------------------------------------------- -// -void CBlidTripMeterView::HandleResourceChangeL( TInt aType ) - { - if(aType == KEikDynamicLayoutVariantSwitch) - { - TRect rect; - AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, rect); - - // Notify skin of changed display size. - iEnv.PrimaryDisplay().SetVisibleArea(rect); - iTripCtrl->UpdateLayoutL(); - } - } - -// ---------------------------------------------------------------------------- -// CBlidTripMeterView::GetControl -// ---------------------------------------------------------------------------- -// -CHtkTripMeterControl* CBlidTripMeterView::GetControl() - { - return iTripCtrl; - } - - -#ifdef RD_SCALABLE_UI_V2 -// --------------------------------------------------------------------------- -// CBlidTripMeterView::HandleListBoxSelectionL -// --------------------------------------------------------------------------- -// -void CBlidTripMeterView::HandleListBoxSelectionL() - { - //Nothing to do here - } -#endif // RD_SCALABLE_UI_V2 -// End of File - -