basiclocationinfodisplay/blid/ui/src/CBlidNavigationView.cpp
branchRCL_3
changeset 17 1fc85118c3ae
parent 16 8173571d354e
child 18 870918037e16
--- a/basiclocationinfodisplay/blid/ui/src/CBlidNavigationView.cpp	Thu Aug 19 09:48:36 2010 +0300
+++ /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