diff -r 8173571d354e -r 1fc85118c3ae basiclocationinfodisplay/blid/ui/src/CBlidAppUi.cpp --- a/basiclocationinfodisplay/blid/ui/src/CBlidAppUi.cpp Thu Aug 19 09:48:36 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,434 +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 UI class methods. -* -*/ - - -// INCLUDE FILES -#include -#include -#include -#include -#include -#include -#include - -#include "CBlidAppUi.h" -#include "Blid.hrh" -#include "CBlidDocument.h" -#include "CBlidMainView.h" -#include "CBlidNavigationView.h" -#include "CBlidTripMeterView.h" -#include "CBlidSettingsView.h" -#include "CBlidSavedWayptsView.h" -#include "CBlidSatelliteView.h" -#include "CBlidEng.h" -#include "Blidutils.h" -#include "CHtkNavigationControl.h" -#include "CHtkTripMeterControl.h" -#include "FileSystemInfo.h" -#include "BlidUID.h" -#include "CBlidSatelliteControl.h" - -#ifdef _DEBUG -_LIT( KPanicMsg, "CBlidAppUi::TabChangedL"); - -enum TPanicCode - { - KBlidNullPointer = 1 - }; -#endif - -// ================= MEMBER FUNCTIONS ======================= -// -// ---------------------------------------------------------- -// CBlidAppUi::ConstructL -// Second phase construction -// ---------------------------------------------------------- -// -void CBlidAppUi::ConstructL() - - { - RDebug::Print(_L("CBlidAppUi::ConstructL() called")); - - TLocale locale; - locale.SetUnitsGeneral(EUnitsMetric); - locale.Set(); - - - BaseConstructL( EAknEnableSkin | EAknEnableMSK | EAknSingleClickCompatible); - - //Code added for HTK tool kit support - // Create the environment - iAlfEnv = CAlfEnv::NewL(); - - // assign private path to the texture manager - CFileSystemInfo* fileSystemInfo = CFileSystemInfo::NewLC(TUid::Uid(KBLIDUID3)); - TFileName path = fileSystemInfo->PrivatePath(); - CleanupStack::PopAndDestroy(fileSystemInfo); - - iAlfEnv->TextureManager().SetImagePathL( path ); - - //End of addition. - iContextPane = ETrue; - iIsSatViewActive = EFalse; - - CBlidBaseView* navigationView = CBlidNavigationView::NewLC( *this, *iAlfEnv ); - AddViewL( navigationView ); // transfer ownership to CAknViewAppUi - CleanupStack::Pop( navigationView ); // navigationView - - CBlidBaseView* tripMeterView = CBlidTripMeterView::NewLC( *this, *iAlfEnv ); - AddViewL( tripMeterView ); - CleanupStack::Pop( tripMeterView ); // tripMeterView - - CBlidBaseView* settingsView = CBlidSettingsView::NewLC(*this); - AddViewL( settingsView ); - CleanupStack::Pop( settingsView ); // settingsView - - CBlidBaseView* savedwayptsView = CBlidSavedWayptsView::NewLC(*this); - AddViewL( savedwayptsView ); - CleanupStack::Pop( savedwayptsView ); // savedwayptsView - - CBlidMainView* mainview = CBlidMainView::NewLC( *this, *iAlfEnv ); - AddViewL( mainview ); - CleanupStack::Pop( mainview ); // mainview - - CBlidSatelliteView* mainSatview = CBlidSatelliteView::NewLC( *this, *iAlfEnv ); - AddViewL( mainSatview ); - CleanupStack::Pop( mainSatview ); // mainSatview - - SetDefaultViewL( *mainview ); - - //start requesting - CBlidEng* engine = BlidDocument()->Engine(); - - if( engine->LocationModel() ) - { - HBufC* srvName = StringLoader::LoadLC( - R_BLID_SERVICE_RULE_NAME, iCoeEnv ); - - engine->LocationModel()->InitialLocationRequestL( *srvName ); - CleanupStack::PopAndDestroy(srvName); //srvName - engine->LocationModel()->StartRequesting(); - } - } - -// ---------------------------------------------------- -// CBlidAppUi::~CBlidAppUi -// Destructor -// Frees reserved resources -// ---------------------------------------------------- -// -CBlidAppUi::~CBlidAppUi() - { - delete iAlfEnv; - } - -// ---------------------------------------------------- -// CBlidAppUi::LocDocument -// Returns the Location document object. -// ---------------------------------------------------- -// -CBlidDocument* CBlidAppUi::BlidDocument() const - { - // Explicit cast: the document must always be of type CBlidDocument - return static_cast(Document()); - } - -// ---------------------------------------------------- -// CBlidAppUi::ShowDialog -// Displayes Overwrite waypoint note -// ---------------------------------------------------- -// -void CBlidAppUi::ShowDialogL( const BlidNotes::TBlidNotes /*aNoteId*/ ) - { - BlidNotes::OverWriteWaypointNoteL(); - } - - - -// ---------------------------------------------------- -// CBlidAppUi::SkinChange -// Handle skin change -// ---------------------------------------------------- -// -void CBlidAppUi::SkinChange() - { - iContextPane = !iContextPane; - } - -// ---------------------------------------------------- -// CBlidAppUi::HandleCommandL -// Handle options menu commands -// ---------------------------------------------------- -// -void CBlidAppUi::HandleCommandL(TInt aCommand) - { - switch ( aCommand ) - { - case EAknCmdHelp: - { - HlpLauncher::LaunchHelpApplicationL(iCoeEnv->WsSession(), - AppHelpContextL()); - break; - } - // these all are same: save & exit - case EAknSoftkeyBack: - case EAknSoftkeyExit: - case EEikCmdExit: - { - CBlidTripMeterView* view = static_cast( View( TUid::Uid( EBlidTripMeterView ) ) ); - if( view ) - { - view->GetControl()->SaveOdometerValue(); - } - ////////////////////////////////////// - RWsSession& ws = iCoeEnv->WsSession(); - TApaTaskList taskList(ws); - TUid appUid = { KBLIDUID3 }; - TApaTask task = taskList.FindApp( appUid ); - if ( task.Exists() ) - { - // stop any task runing for this application. - task.EndTask(); - } - //////////////////////////////////////// - Exit(); - break; - } - case EBlidCmdSettings: - { - ActivateLocalViewL( TUid::Uid(EBlidSettingsView) ); - break; - } - case EBlidCmdSatelliteStatus: - { - TRAPD( error, LaunchSatelliteInfoDlgL() ); - if ( error != KErrNone ) - { - // need to be NULL, before leave - iSatelliteInfo = NULL; - User::Leave( error ); - } - break; - } - default: - break; - } - } - -// ---------------------------------------------------- -// CBlidAppUi::TabChangedL -// Called when Tab is changed, activates appropriate view -// ---------------------------------------------------- -// -void CBlidAppUi::TabChangedL(TInt aIndex) - { - // Gets a subpane control by ID - CAknNavigationControlContainer* naviCtrlContainer = - static_cast - ( StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) ); - __ASSERT_DEBUG( naviCtrlContainer, - User::Panic(KPanicMsg, KBlidNullPointer) ); - - // Return topmost object from navigation pane's object stack. - CAknNavigationDecorator* decorator = naviCtrlContainer->Top(); - __ASSERT_DEBUG( decorator && decorator->ControlType() == - CAknNavigationDecorator::ETabGroup, - User::Panic( KPanicMsg, KBlidNullPointer ) ); - - CAknTabGroup* tabGroup = - static_cast< CAknTabGroup* > ( decorator->DecoratedControl() ); - __ASSERT_DEBUG( tabGroup && aIndex >= 0 && aIndex < tabGroup->TabCount(), - User::Panic(KPanicMsg, KBlidNullPointer)); - ActivateLocalViewL(TUid::Uid(tabGroup->TabIdFromIndex(aIndex))); - } - -// ---------------------------------------------------- -// CBlidAppUi::HandleForegroundEventL -// Called whenever app goes to background or comes to foreground -// ---------------------------------------------------- -// -void CBlidAppUi::HandleForegroundEventL(TBool aForeground) - { - CAknAppUi::HandleForegroundEventL( aForeground ); - iForeground = aForeground; - - CBlidEng* engine = BlidDocument()->Engine(); - if (aForeground) - { - engine->SetAppMode(CBlidEng::EAppForeground); - if (engine->LocationModel()) - { - if (engine->LocationModel()->GetRegisteredViewId() - == EBlidNavigationView) - { - CBlidNavigationView* view = - static_cast (View(TUid::Uid( - EBlidNavigationView))); - view->GetControl()->UpdateL(); - } - if (engine->LocationModel()->GetRegisteredViewId() - == EBlidTripMeterView) - { - CBlidTripMeterView* view = - static_cast (View(TUid::Uid( - EBlidTripMeterView))); - view->GetControl()->UpdateL(); - } - if (engine->LocationModel()->GetRegisteredViewId() - == EBlidMainSatelliteView) - { - CBlidSatelliteView* view = static_cast (View( - TUid::Uid(EBlidMainSatelliteView))); - view->GetControl()->UpdateL(); - } - if (engine->LocationModel()->GetRegisteredViewId() - == EBlidMainView) - { - CBlidMainView* view = static_cast (View( - TUid::Uid(EBlidMainView))); - view->GetControl()->UpdateL(); - } - } - } - else - { - engine->SetAppMode(CBlidEng::EAppBackground); - engine->SetBackLightStateL(CBlidEng::EBlidBacklightNormal); - if (engine->LocationModel()->GetRegisteredViewId() - == EBlidNavigationView) - { - CBlidNavigationView* view = - static_cast (View(TUid::Uid( - EBlidNavigationView))); - view->GetControl()->StopPlayerL(); - } - } - - if (iSatelliteInfo) - { - iSatelliteInfo->HandleForegroundEventL( aForeground ); - } - - } - -// ---------------------------------------------------- -// CBlidAppUi::ProcessKeyEventL -// Process key event -// ---------------------------------------------------- -// -TBool CBlidAppUi::ProcessKeyEventL( const TKeyEvent& /*aKeyEvent*/, - TEventCode /*aType*/ ) - { - return EKeyWasNotConsumed; - } - -// ---------------------------------------------------- -// CBlidAppUi::TabObserver -// Retruns CBlidAppUi pointer, which is Tab observer -// ---------------------------------------------------- -// -MAknTabObserver* CBlidAppUi::TabObserver() - { - return this; - } - -// ---------------------------------------------------- -// CBlidAppUi::LaunchSatelliteInfoDlgL -// Launches Satellite info dialog -// ---------------------------------------------------- -// -void CBlidAppUi::LaunchSatelliteInfoDlgL() - { - HBufC* srvName = StringLoader::LoadLC( - R_BLID_SERVICE_RULE_NAME, - iCoeEnv ); - iSatelliteInfo = CSatelliteInfoUI::NewL(); - iSatelliteInfo->ExecuteLD( *srvName ); - CleanupStack::PopAndDestroy(srvName); //srvName - iSatelliteInfo = NULL; - } - -// ---------------------------------------------------- -// CBlidAppUi::IsForeground -// Checks if App is in foreground -// ---------------------------------------------------- -// -TBool CBlidAppUi::IsForeground() - { - return iForeground; - } - -// ---------------------------------------------------- -// CBlidAppUi::HandleResourceChangeL -// Handles a change to the resources -// ---------------------------------------------------- -// -void CBlidAppUi::HandleResourceChangeL( TInt aType ) - { - CAknAppUi::HandleResourceChangeL( aType ); - CBlidEng* engine = BlidDocument()->Engine(); - - if( engine->LocationModel() ) - { - CBlidNavigationView* NavView = static_cast(View(TUid::Uid(EBlidNavigationView))); - NavView->HandleResourceChangeL( aType ); - - CBlidTripMeterView* TripView = static_cast(View(TUid::Uid(EBlidTripMeterView))); - TripView->HandleResourceChangeL( aType ); - - CBlidMainView* MainView = static_cast(View(TUid::Uid(EBlidMainView))); - MainView->HandleResourceChangeL( aType ); - - CBlidSatelliteView* SatView = static_cast(View(TUid::Uid(EBlidMainSatelliteView))); - SatView->HandleResourceChangeL( aType ); - } - } - -// ---------------------------------------------------- -// CBlidAppUi::SetSatelliteViewActive -// Set satellite view active or inactive -// ---------------------------------------------------- -// -void CBlidAppUi::SetSatelliteViewActive( TBool aActive ) - { - iIsSatViewActive = aActive; - } - -// ---------------------------------------------------- -// CBlidAppUi::IsSatelliteViewActive -// Check if Satellite view is active -// ---------------------------------------------------- -// -TBool CBlidAppUi::IsSatelliteViewActive( ) - { - return iIsSatViewActive; - } - -// ---------------------------------------------------- -// CBlidAppUi::ResetOdoMeterValueL -// Resets the odometer value -// ---------------------------------------------------- -// -void CBlidAppUi::ResetOdoMeterValueL() - { - CBlidTripMeterView* view = static_cast(View(TUid::Uid(EBlidTripMeterView))); - if( view ) - { - view->GetControl()->ResetOdometerDistanceL(); - } - } -// End of File