--- a/basiclocationinfodisplay/blid/ui/src/CBlidNavigationView.cpp Tue Feb 02 00:16:03 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,533 +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 compass view class methods.
-*
-*/
-
-
-// SYSTEM INCLUDE FILES
-#include <Blid.rsg>
-//Added for HTK toolkit support
-#include <alf/alfenv.h>
-#include <alf/alfcontrolgroup.h>
-#include <alf/alfdisplay.h>
-#include <alf/alftransformation.h>
-#include <alf/alfroster.h>
-//End of addition
-
-#include <csxhelp/blid.hlp.hrh>
-#include <hlplch.h>
-
-// USER INCLUDE
-#include "CBlidNavigationView.h"
-#include "Blid.hrh"
-#include "CBlidDocument.h"
-#include "CBlidAppUi.h"
-#include "CBlidEng.h"
-#include "CHtkNavigationControl.h"
-#include "CHtkTripMeterControl.h"
-#include "MBlidSettings.h"
-#include "CBlidLocSettingLauncher.h"
-#include "bliduiconsts.h"
-#include "BlidUID.h"
-
-
-// ================= MEMBER FUNCTIONS =======================
-// ----------------------------------------------------------------------------
-// CBlidNavigationView::NewLC
-// Two-phased constructor.
-// ----------------------------------------------------------------------------
-//
-CBlidNavigationView* CBlidNavigationView::NewLC( MKeyProcessor& aKeyProcessor,
- CAlfEnv& aEnv )
- {
- CBlidNavigationView* self = new (ELeave) CBlidNavigationView( aKeyProcessor,aEnv );
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-// ----------------------------------------------------------------------------
-// CBlidNavigationView::CBlidNavigationView
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// ----------------------------------------------------------------------------
-//
-CBlidNavigationView::CBlidNavigationView( MKeyProcessor& aKeyProcessor,
- CAlfEnv& aEnv ):
- CBlidBaseView( aKeyProcessor ),
- iEnv(aEnv)
- {
- }
-
-// ----------------------------------------------------------------------------
-// CBlidNavigationView::ConstructL
-// Symbian 2nd phase constructor can leave.
-// ----------------------------------------------------------------------------
-//
-void CBlidNavigationView::ConstructL()
- {
- BaseConstructL( R_BLID_NAVIGATION_VIEW );
-
- // Create an instance of our list control.
- iNavigationCtrl = CHtkNavigationControl::NewL(iEnv,
- this,
- ClientRect(),
- *iLocation,
- *iRouter,
- *iEngine,
- *this );
-
-
- // Create a control group.
- iNavigationCtrlGroup = &( iEnv.NewControlGroupL( KPrimaryGroup ) );
-
- // pass ownership of the list control to the control group
- iNavigationCtrlGroup->AppendL(iNavigationCtrl);
-
- iCtrlDisplay = &( iEnv.NewDisplayL( ClientRect(), CAlfEnv::ENewDisplayAsCoeControl ) );
- // Use the Avkon skin background as the display background.
- iCtrlDisplay->SetClearBackgroundL(CAlfDisplay::EClearWithSkinBackground);
-
- }
-
-// ----------------------------------------------------------------------------
-// CBlidNavigationView::~CBlidNavigationView
-// ----------------------------------------------------------------------------
-//
-CBlidNavigationView::~CBlidNavigationView()
- {
- delete iLauncher;
- }
-
-// ----------------------------------------------------------------------------
-// CBlidNavigationView::NotifyL
-// ----------------------------------------------------------------------------
-//
-void CBlidNavigationView::NotifyL( const TBool aOnlineMode )
- {
- iNavigationCtrl->UpdateL();
- CBlidBaseView::NotifyL( aOnlineMode );
- }
-
-// ----------------------------------------------------------------------------
-// CBlidNavigationView::NotifyError
-// ----------------------------------------------------------------------------
-//
-void CBlidNavigationView::NotifyErrorL( TInt aErrorCode )
- {
- CBlidBaseView::NotifyErrorL( aErrorCode );
- iNavigationCtrl->UpdateL();
- }
-
-// ----------------------------------------------------------------------------
-// CBlidNavigationView::ProcessKeyEventL
-// ----------------------------------------------------------------------------
-//
-TBool CBlidNavigationView::ProcessKeyEventL( const TKeyEvent& aKeyEvent,
- TEventCode aType )
- {
- return CBlidBaseView::ProcessKeyEventL( aKeyEvent,aType );
- }
-
-// ----------------------------------------------------------------------------
-// TUid CBlidNavigationView::Id
-// ----------------------------------------------------------------------------
-//
-TUid CBlidNavigationView::Id() const
- {
- return TUid::Uid(EBlidNavigationView);
- }
-
-// ----------------------------------------------------------------------------
-// CBlidNavigationView::HandleCommandL
-// ----------------------------------------------------------------------------
-//
-void CBlidNavigationView::HandleCommandL(TInt aCommand)
- {
- switch ( aCommand )
- {
- case EBlidCmdWaypoint:
- {
- TInt index(0);
-
- if ( iRouter->Count() > 0 )
- {
- index = SelectWaypointL();
- if ( index != KErrCancel )
- {
- iRouter->SetWaypoint( index );
- }
- }
- iNavigationCtrl->ClearNavigationInfoL();
- iNavigationCtrl->SetUpdateOptionL( ETrue );
- iLocation->SetNavigationStart( ETrue );
- iNavigationCtrl->SetFlagVisualL( );
- iNavigationCtrl->SetAccRacyVisualL();
- CHtkNavigationControl::iInArrivedZone = EFalse;
- if(iEngine->HasArrivedToDestination())
- {
- CHtkNavigationControl::iInArrivedZone = ETrue;
- }
- iNavigationCtrl->UpdateL();
- break;
- }
- case EBlidCmdSavedWaypoints:
- {
- AppUi()->ActivateLocalViewL( TUid::Uid( EBlidSavedWayptsView ) );
- break;
- }
- case EBlidCmdStopNavigation:
- {
- iRouter->ClearSetPoints();
- iNavigationCtrl->ClearNavigationInfoL();
- iLocation->SetNavigationStart( EFalse );
- static_cast<CHtkTripMeterControl*>( &( iEnv.ControlGroup( KPrimaryTripGroup ).Control( 0 ) ) )->ChangeTripFocus( ETrue );
- iNavigationCtrl->UpdateL();
- break;
- }
- case EBlidCmdLmk:
- {
- if(LaunchLandmarksDialogL())
- {
- iNavigationCtrl->ClearNavigationInfoL();
- iNavigationCtrl->SetFlagVisualL( );
- iNavigationCtrl->SetAccRacyVisualL();
- iNavigationCtrl->SetUpdateOptionL( ETrue );
- iLocation->SetNavigationStart( ETrue );
- static_cast<CHtkTripMeterControl*>( &( iEnv.ControlGroup( KPrimaryTripGroup ).Control( 0 ) ) )->ReChangeTripFocus();
- CHtkNavigationControl::iInArrivedZone = EFalse;
- if(iEngine->HasArrivedToDestination())
- {
- CHtkNavigationControl::iInArrivedZone = ETrue;
- }
- iNavigationCtrl->UpdateL();
- }
- break;
- }
- case EBlidCmdManualWaypoint:
- {
- if(LaunchManualWaypointDialogL())
- {
- iNavigationCtrl->ClearNavigationInfoL();
- iNavigationCtrl->SetFlagVisualL( );
- iNavigationCtrl->SetAccRacyVisualL();
- iNavigationCtrl->SetUpdateOptionL( ETrue );
- iLocation->SetNavigationStart( ETrue );
- static_cast<CHtkTripMeterControl*>( &( iEnv.ControlGroup( KPrimaryTripGroup ).Control( 0 ) ) )->ReChangeTripFocus();
- CHtkNavigationControl::iInArrivedZone = EFalse;
- if(iEngine->HasArrivedToDestination())
- {
- CHtkNavigationControl::iInArrivedZone = ETrue;
- }
- iNavigationCtrl->UpdateL();
- }
- break;
- }
- case EBlidCmdSaveLocation:
- {
- if ( !FeatureManager::FeatureSupported( KFeatureIdLandmarks ) )
- {
- if ( InsertWaypointL() )
- {
- static_cast<CBlidDocument*>(AppUi()->Document())->SaveL();
- }
- else
- {
- User::Leave( KErrGeneral );
- }
- }
- else
- {
- SaveCurrentPositionAsLandmarkL();
- }
- break;
- }
- case EBlidCmdSatelliteStatus:
- {
- TBool lBacklightNormal = EFalse;
- iNavigationCtrl->StopPlayerL();
- MBlidSettings* setting = iEngine->SettingsModel();
- if(setting->GetBacklightOption() == EBlidBackLightOnDuringNavigation)
- {
- setting->SetBacklightOption(EBlidBackLightNormal);
- iEngine->SetBackLightStateL(CBlidEng::EBlidBacklightNormal);
- lBacklightNormal = ETrue;
- }
- (static_cast<CBlidAppUi*>(AppUi()))->HandleCommandL( aCommand );
- if(lBacklightNormal)
- {
- iEngine->SetBackLightStateL(CBlidEng::EBlidBacklightAlwaysOn);
- setting->SetBacklightOption(EBlidBackLightOnDuringNavigation);
- }
- break;
- }
- case EBlidCmdSettings:
- {
- iIsSettingsViewActive = ETrue;
- (static_cast<CBlidAppUi*>(AppUi()))->HandleCommandL( aCommand );
- break;
- }
- case EBlidCmdShowDetails:
- {
- iNavigationCtrl->StopPlayerL();
- ShowCurrentPositionInfoL();
- break;
- }
- case EBlidCmdLaunchPositionSettings:
- {
- iNavigationCtrl->StopPlayerL();
- if(!iLauncher)
- {
- iLauncher = CBlidLocSettingsLauncher::NewL();
- }
- iLauncher->LaunchL();
- break;
- }
- case EBlidSoftKeyStop:
- {
- iNavigationCtrl->StopPlayerL();
- break;
- }
- case EBlidNavigationMskInfo:
- {
- iNavigationCtrl->DisplayInfoPopUpMsgL();
- break;
- }
- case EAknCmdHelp:
- {
- TCoeHelpContext context( TUid::Uid(KBLIDUID3), KHLP_BLID_NAVIGATION );
- CArrayFix<TCoeHelpContext>* navHelp = new CArrayFixFlat<TCoeHelpContext>(1);
- CleanupStack::PushL( navHelp );
- navHelp->AppendL(context);
- HlpLauncher::LaunchHelpApplicationL(iCoeEnv->WsSession(), navHelp );
- CleanupStack::Pop( navHelp );
- break;
- }
- default:
- {
- (static_cast<CBlidAppUi*>(AppUi()))->HandleCommandL( aCommand );
- break;
- }
- }
- }
-
-// ----------------------------------------------------------------------------
-// CBlidNavigationView::DoActivateL
-// ----------------------------------------------------------------------------
-//
-void CBlidNavigationView::DoActivateL(
- const TVwsViewId& aPrevViewId,TUid /*aCustomMessageId*/,
- const TDesC8& /*aCustomMessage*/)
- {
- #ifdef _DEBUG
- RDebug::Print(_L("CBlidNavigationView::DoActivateL() called"));
- #endif
-
- iIsSettingsViewActive = EFalse;
-
- iLocation->SetObserver(*this, EBlidNavigationView);
- iNavigationCtrl->MakeTitleL(R_BLID_TITLE_NAVIGATION);
- iNavigationCtrl->UpdateL();
-
- if( aPrevViewId.iViewUid.iUid != EBlidTripMeterView )
- {
- iNavigationCtrl->CreateNaviPaneL( EFalse );
- iNavigationCtrl->ActivateTabL( *( iNavigationCtrl->GetNiviDecorator( ) ), EBlidNavigationView );
-
- // Hide the trip meter control
- iCtrlDisplay->Roster().Hide( iEnv.ControlGroup( KBlidMainSatelliteGroup ) );
- }
-
- // Hide the trip meter control
- iCtrlDisplay->Roster().Hide( iEnv.ControlGroup( KPrimaryTripGroup ) );
-
- // Show the control group on the display.
- iCtrlDisplay->Roster().ShowL( *iNavigationCtrlGroup );
-
- MenuBar()->SetContextMenuTitleResourceId(R_BLID_VIEW_OK_MENUBAR);
- MBlidSettings* setting = iEngine->SettingsModel();
- if(setting->GetBacklightOption() == EBlidBackLightOnDuringNavigation)
- {
- iEngine->SetBackLightStateL(CBlidEng::EBlidBacklightAlwaysOn);
- }
- }
-
-// ----------------------------------------------------------------------------
-// CBlidNavigationView::DoDeactivate
-// ----------------------------------------------------------------------------
-//
-void CBlidNavigationView::DoDeactivate()
- {
- TRAP_IGNORE(iEngine->SetBackLightStateL(CBlidEng::EBlidBacklightNormal));
- }
-
-// ----------------------------------------------------------------------------
-// CBlidNavigationView::SelectWaypointL
-// ----------------------------------------------------------------------------
-//
-TInt CBlidNavigationView::SelectWaypointL()
- {
- TBool lBacklightNormal = EFalse;
- MBlidSettings* setting = iEngine->SettingsModel();
- iNavigationCtrl->StopPlayerL();
- if(setting->GetBacklightOption() == EBlidBackLightOnDuringNavigation)
- {
- setting->SetBacklightOption(EBlidBackLightNormal);
- iEngine->SetBackLightStateL(CBlidEng::EBlidBacklightNormal);
- lBacklightNormal = ETrue;
- }
- TInt index = CBlidBaseView::SelectWaypointL();
- if(lBacklightNormal)
- {
- iEngine->SetBackLightStateL(CBlidEng::EBlidBacklightAlwaysOn);
- setting->SetBacklightOption(EBlidBackLightOnDuringNavigation);
- }
- return index;
- }
-
-// ----------------------------------------------------------------------------
-// CBlidNavigationView::LaunchLandmarksDialogL
-// ----------------------------------------------------------------------------
-//
-TInt CBlidNavigationView::LaunchLandmarksDialogL()
- {
- TBool lBacklightNormal = EFalse;
- MBlidSettings* setting = iEngine->SettingsModel();
- iNavigationCtrl->StopPlayerL();
- if(setting->GetBacklightOption() == EBlidBackLightOnDuringNavigation)
- {
- setting->SetBacklightOption(EBlidBackLightNormal);
- iEngine->SetBackLightStateL(CBlidEng::EBlidBacklightNormal);
- lBacklightNormal = ETrue;
- }
- TInt lResult = CBlidBaseView::LaunchLandmarksDialogL();
- if(lBacklightNormal)
- {
- iEngine->SetBackLightStateL(CBlidEng::EBlidBacklightAlwaysOn);
- setting->SetBacklightOption(EBlidBackLightOnDuringNavigation);
- }
- return lResult;
- }
-
-// ----------------------------------------------------------------------------
-// CBlidNavigationView::LaunchManualWaypointDialogL
-// ----------------------------------------------------------------------------
-//
-TInt CBlidNavigationView::LaunchManualWaypointDialogL()
- {
- TBool lBacklightNormal = EFalse;
- MBlidSettings* setting = iEngine->SettingsModel();
- iNavigationCtrl->StopPlayerL();
- if(setting->GetBacklightOption() == EBlidBackLightOnDuringNavigation)
- {
- setting->SetBacklightOption(EBlidBackLightNormal);
- iEngine->SetBackLightStateL(CBlidEng::EBlidBacklightNormal);
- lBacklightNormal = ETrue;
- }
- TInt lResult = CBlidBaseView::LaunchManualWaypointDialogL();
- if(lBacklightNormal)
- {
- iEngine->SetBackLightStateL(CBlidEng::EBlidBacklightAlwaysOn);
- setting->SetBacklightOption(EBlidBackLightOnDuringNavigation);
- }
- return lResult;
- }
-
-
-// ----------------------------------------------------------------------------
-// CBlidNavigationView::InsertWaypointL
-// ----------------------------------------------------------------------------
-//
-TBool CBlidNavigationView::InsertWaypointL()
- {
- TBool lBacklightNormal = EFalse;
- MBlidSettings* setting = iEngine->SettingsModel();
- iNavigationCtrl->StopPlayerL();
- if(setting->GetBacklightOption() == EBlidBackLightOnDuringNavigation)
- {
- setting->SetBacklightOption(EBlidBackLightNormal);
- iEngine->SetBackLightStateL(CBlidEng::EBlidBacklightNormal);
- lBacklightNormal = ETrue;
- }
- TBool lResult = CBlidBaseView::InsertWaypointL();
- if(lBacklightNormal)
- {
- iEngine->SetBackLightStateL(CBlidEng::EBlidBacklightAlwaysOn);
- setting->SetBacklightOption(EBlidBackLightOnDuringNavigation);
- }
- return lResult;
- }
-
-
-// ----------------------------------------------------------------------------
-// CBlidNavigationView::SaveCurrentPositionAsLandmarkL
-// ----------------------------------------------------------------------------
-//
-void CBlidNavigationView::SaveCurrentPositionAsLandmarkL()
- {
- TBool lBacklightNormal = EFalse;
- MBlidSettings* setting = iEngine->SettingsModel();
- iNavigationCtrl->StopPlayerL();
- if(setting->GetBacklightOption() == EBlidBackLightOnDuringNavigation)
- {
- setting->SetBacklightOption(EBlidBackLightNormal);
- iEngine->SetBackLightStateL(CBlidEng::EBlidBacklightNormal);
- lBacklightNormal = ETrue;
- }
- CBlidBaseView::SaveCurrentPositionAsLandmarkL();
- if(lBacklightNormal)
- {
- iEngine->SetBackLightStateL(CBlidEng::EBlidBacklightAlwaysOn);
- setting->SetBacklightOption(EBlidBackLightOnDuringNavigation);
- }
- }
-
-// ----------------------------------------------------------------------------
-// CBlidNavigationView::GetControl
-// ----------------------------------------------------------------------------
-//
-CHtkNavigationControl* CBlidNavigationView::GetControl()
- {
- return iNavigationCtrl;
- }
-
-// ----------------------------------------------------------
-// Handle Resource Change Events: Display orientation switch
-// ----------------------------------------------------------
-//
-void CBlidNavigationView::HandleResourceChangeL( TInt aType )
- {
- if(aType == KEikDynamicLayoutVariantSwitch)
- {
- TRect rect;
- AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, rect);
-
- // Notify skin of changed display size.
- iEnv.PrimaryDisplay().SetVisibleArea(rect);
- iNavigationCtrl->UpdateLayoutL();
- }
- }
-
-#ifdef RD_SCALABLE_UI_V2
-// ---------------------------------------------------------------------------
-// CBlidNavigationView::HandleListBoxSelectionL
-// ---------------------------------------------------------------------------
-//
-void CBlidNavigationView::HandleListBoxSelectionL()
- {
- //Do something if needed
- }
-#endif //RD_SCALABLE_UI_V2
-
-// End of File