diff -r 522cd55cc3d7 -r 13ae750350c9 basiclocationinfodisplay/blid/ui/src/CBlidBaseView.cpp --- a/basiclocationinfodisplay/blid/ui/src/CBlidBaseView.cpp Tue Feb 02 00:16:03 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1088 +0,0 @@ -/* -* Copyright (c) 2005 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. -* -*/ - -// INCLUDE FILES -#include -#include -#include -#include // CEikMenuBar -#include -#include -#include -#include -#include -#include -#include - -#include "CBlidBaseView.h" -#include "CBlidAppUi.h" -#include "CBlidBaseContainer.h" -#include "MBlidRouter.h" -#include "MBlidSettings.h" -#include "MBlidLocation.h" -#include "CBlidEng.h" -#include "CBlidDocument.h" -#include "Blid.hrh" -#include "bliduiconsts.h" -#include "CBlidCurrentPositionDlg.h" - -#include -#include - -enum TPanicCode - { - KBlidNullPointer = 1 - }; - -// Start with the assumption that PSY is not connected -TInt CBlidBaseView::iPSYTimeoutCount = 0; -TBool CBlidBaseView::iOnline = EFalse; - -const TInt KMiddleSKId = 3; - - -// ================= MEMBER FUNCTIONS ======================= - -// --------------------------------------------------------- -// CBlidBaseView::CBlidBaseView -// First phase constructor, should not leave -// --------------------------------------------------------- -// -CBlidBaseView::CBlidBaseView( MKeyProcessor& aKeyProcessor ) - : iKeyProcessor(aKeyProcessor) - { - StringLoader::Load( iManualWaypointName, R_BLID_DESTINATION_COORDINATES, iCoeEnv ); - } - -// --------------------------------------------------------- -// CBlidBaseView::BaseConstructL -// Symbian 2nd phase constructor can leave. -// --------------------------------------------------------- -// -void CBlidBaseView::BaseConstructL( TInt aResId ) - { - FeatureManager::InitializeLibL(); - CAknView::BaseConstructL( aResId ); - - iEngine = static_cast(AppUi()->Document())->Engine(); - - if( !iEngine->LocationModel() ) - { - iEngine->CreateModelL( CBlidEng::EBlidLocation ); - } - iLocation = iEngine->LocationModel(); - __ASSERT_DEBUG( iLocation, User::Panic(_L("CBlidOwnPosView"), - KBlidNullPointer)); - - iRouter = iEngine->RouterModel(); - - iImageLoaderUtil = new (ELeave) CAlfImageLoaderUtil(); - - iConFileName.Zero(); - iConFileName.Append( _L("z") ); - iConFileName.Append( KBlidSystemIconPath ); - - iIsSettingsViewActive = EFalse; - - __ASSERT_DEBUG( iRouter, User::Panic(_L("CBlidOwnPosView"), - KBlidNullPointer)); - } - -// --------------------------------------------------------- -// CBlidBaseView::~CLocBaseView() -// Destructor, frees allocated resources -// --------------------------------------------------------- -// -CBlidBaseView::~CBlidBaseView() - { - FeatureManager::UnInitializeLib(); - delete iImageLoaderUtil; - } - -// --------------------------------------------------------- -// CBlidBaseView::ProcessKeyEventL -// Processes the key event -// --------------------------------------------------------- -// -TBool CBlidBaseView::ProcessKeyEventL( const TKeyEvent& aKeyEvent, - TEventCode aType ) - { - return iKeyProcessor.ProcessKeyEventL( aKeyEvent, aType ); - } - -// --------------------------------------------------------- -// CBlidBaseView::TabObserver() -// Returns the tab observer -// --------------------------------------------------------- -// -MAknTabObserver* CBlidBaseView::TabObserver() - { - return iKeyProcessor.TabObserver(); - } - -// --------------------------------------------------------- -// CBlidBaseView::DynInitMenuPaneL -// Called to initialize the menu pane at run time -// --------------------------------------------------------- -// -void CBlidBaseView::DynInitMenuPaneL( - TInt aResourceId, CEikMenuPane* aMenuPane ) - { - #ifdef _DEBUG - RDebug::Print(_L("CBlidCompassView::DynInitMenuPaneL() called")); - #endif - switch( aResourceId ) - { - case R_BLID_VIEW_MENU: - { - if ( !(iLocation->IsGPSDataAvailable() && - iLocation->SatelliteCapability()) ) - { - aMenuPane->SetItemDimmed( EBlidCmdSatelliteStatus, ETrue ); - } - if ( (!iRouter->Count()) || FeatureManager::FeatureSupported( KFeatureIdLandmarks ) ) - { - aMenuPane->SetItemDimmed( EBlidCmdSavedWaypoints, ETrue ); - } - - // hide the save position. - if(!iLocation->IsOnline()) - { - aMenuPane->SetItemDimmed( EBlidCmdCurrentLocation, ETrue ); - } - - - - } - //-fallthrough - case R_BLID_VIEW_OK_MENU: - { - if ( !iRouter->IsAnyPointSet() ) - { - aMenuPane->SetItemDimmed( EBlidCmdStopNavigation, ETrue ); - } - break; - } - case R_BLID_MAIN_MENU: - { - CBlidBaseView::HandleHelpFeature( aMenuPane ); - break; - } - - case R_BLID_SET_DESTINATION_MENU: - { - if ( iRouter->Count() <= 0 ) - { - aMenuPane->SetItemDimmed( EBlidCmdWaypoint, ETrue ); - } - else - { - aMenuPane->SetItemDimmed( EBlidCmdWaypoint, EFalse ); - } - - // Features manager checks for waypoint/landmarks variation - if ( FeatureManager::FeatureSupported( KFeatureIdLandmarks ) ) - { - aMenuPane->SetItemDimmed( EBlidCmdWaypoint, ETrue ); - } - else - { - aMenuPane->SetItemDimmed( EBlidCmdLmk, ETrue ); - } - - if ( FeatureManager::FeatureSupported( KFeatureIdLandmarks ) ) - { - if( IsLmAvailableL() ) - { - aMenuPane->SetItemDimmed( EBlidCmdLmk, EFalse ); - } - else - { - aMenuPane->SetItemDimmed( EBlidCmdLmk, ETrue ); - } - } - 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 ); - } - - break; - } - default: - { - break; - } - } - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::NotifyL -// Called by location model to notify about updates in location -// ---------------------------------------------------------------------------- -// -void CBlidBaseView::NotifyL( const TBool /*aOnlineMode*/ ) - { - if( iPopupDialog ) - { - iPopupDialog->ChangeDlgSoftKey(); - } - // GPS available - CBlidBaseContainer::SetGPSAvailability(ETrue); - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::NotifyError -// Called by location model to notify about error in location -// ---------------------------------------------------------------------------- -// -void CBlidBaseView::NotifyErrorL( TInt /*aErrorCode*/ ) - { - if( iPopupDialog ) - { - iPopupDialog->ChangeDlgSoftKey(); - } - } - -// --------------------------------------------------------- -// CBlidBaseView::HandleHelpFeature -// Handles the Help option command -// --------------------------------------------------------- -// -void CBlidBaseView::HandleHelpFeature( CEikMenuPane* aMenuPane ) const - { - //implementation for req 406-917. Hide position view based on feature variation flag - TInt helpSettingValue = ELocHelpNotHidden; - CRepository* repository = CRepository::NewL( TUid::Uid( KCRUidLocLocalVariation) ); - CleanupStack::PushL( repository ); - User::LeaveIfError( repository->Get( KLocHideHelp, - helpSettingValue )); - CleanupStack::PopAndDestroy( repository ); - - - if ( FeatureManager::FeatureSupported( KFeatureIdHelp ) && !helpSettingValue) - { - aMenuPane->SetItemDimmed( EAknCmdHelp, EFalse ); - } - else - { - aMenuPane->SetItemDimmed( EAknCmdHelp, ETrue ); - } - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::InsertWaypointL -// Insers a waypoint -// ---------------------------------------------------------------------------- -// -TBool CBlidBaseView::InsertWaypointL() - { - TInt index(KErrCancel); - TBuf textData; - StringLoader::Load( textData, R_BLID_WAYPOINT_NAME, iCoeEnv ); - TInt errorCode(KErrNone); - TBool returnValue(ETrue); - TInt removedIndex; - - do - { - if(errorCode != KErrNone) - { - return EFalse; - } - - CAknTextQueryDialog* dlg = new(ELeave) CAknTextQueryDialog(textData, - CAknQueryDialog::ENoTone); - - if (!dlg->ExecuteLD(R_BLID_WAYPOINT_QUERY)) - { - return EFalse; - } - - }while( CheckIfExistL( textData, errorCode, removedIndex ) ); - - if(errorCode != KErrNone) - { - return EFalse; - } - - /// if KMaxNumberOfWaypoints or more than that is already present - /// display note. - if ( iRouter->Count() >= KMaxNumberOfWaypoints ) - { - static_cast(AppUi() - )->ShowDialogL( BlidNotes::EBlidOverWriteWaypointNote ); - return EFalse; - } - - TInt retVal(KErrNone); - if ( index >=0 ) - { - if ( iRouter->IndexOfWaypoint() >=0 && - index >= iRouter->IndexOfWaypoint() ) - { - index++; - } - retVal = iRouter->RemoveL( index ); - if(retVal == KErrDiskFull) - { - BlidNotes::OutOfMemoryNoteL(); - } - } - - if(retVal == KErrNone) - { - TNamedCoordinate* waypoint = new(ELeave)TNamedCoordinate(); - CleanupStack::PushL( waypoint ); - waypoint->SetName( textData ); - TPosition position = iLocation->GetCurrentPosition(); - waypoint->SetCoordinate( position.Latitude(), - position.Longitude(), - position.Altitude() ); - position.SetHorizontalAccuracy(position.HorizontalAccuracy()); - waypoint->SetAccuracy(position.HorizontalAccuracy()); - //iRouter takes waypoint's ownership - TInt retVal = iRouter->AppendL( waypoint, ETrue); - if(retVal == KErrDiskFull) - { - delete waypoint; - BlidNotes::OutOfMemoryNoteL(); - returnValue = EFalse; - } - CleanupStack::Pop(); //waypoint - } - return returnValue; - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::SelectWaypoint -// Select a waypoint -// ---------------------------------------------------------------------------- -// -TInt CBlidBaseView::SelectWaypointL() - { - TInt index(KErrCancel); - TInt currentIndex(0); - CEikFormattedCellListBox* listBox = - new(ELeave)CAknSinglePopupMenuStyleListBox; - CleanupStack::PushL( listBox ); - - HBufC* name = NULL; - TInt count( iRouter->Count() ); - TNamedCoordinate* waypoint = iRouter->Waypoint(); - - CDesCArray* array = new(ELeave)CDesCArrayFlat(KMaxNumberOfWaypoints); - CleanupStack::PushL( array ); - - TInt waypointAdditionCount = 0; - // fill up the array with waypoint's names from the engine. - for ( TInt i = 0; i < count; i++ ) - { - name = iRouter->At(i).Name(); - if ( name ) - { - CleanupStack::PushL( name ); - array->AppendL( *name ); - waypointAdditionCount ++; - CleanupStack::PopAndDestroy(name); //name - } - else - { - currentIndex = i; - } - } - - - CAknPopupList* popupList = CAknPopupList::NewL( listBox, - R_AVKON_SOFTKEYS_OK_CANCEL, - AknPopupLayouts::EPopupSNotePopupWindow); - CleanupStack::PushL(popupList); - - HBufC* title = iCoeEnv->AllocReadResourceLC( R_BLID_QUERY_WAYPOINT ); - popupList->SetTitleL( *title ); - CleanupStack::PopAndDestroy(title); //title - title = NULL; - - listBox->ConstructL( popupList, - EAknListBoxSelectionList | EAknListBoxLoopScrolling); - - listBox->CreateScrollBarFrameL(ETrue); - listBox->ScrollBarFrame()->SetScrollBarVisibilityL( - CEikScrollBarFrame::EAuto, - CEikScrollBarFrame::EAuto); - - //listbox's model take ownership of array - listBox->Model()->SetItemTextArray(array); - - CleanupStack::Pop(popupList); // popupList - CleanupStack::Pop(array); //array - TBool isEmpty = array->Count() == 0; - - if ( popupList->ExecuteLD() ) - { - index = listBox->CurrentItemIndex(); - } - CleanupStack::PopAndDestroy(listBox); //listBox - - if(isEmpty) - { - return KErrCancel; - } - - if(waypoint && waypointAdditionCount != iRouter->Count()) - { - if(index >= currentIndex) - { - index += 1; - } - } - if ( index != KErrCancel ) - { - TNamedCoordinate waypoint = iRouter->At(index); - if(waypoint.Accuracy() >= KBlidPoorAccuracy) - { - HBufC* noteText = StringLoader::LoadLC( R_BLID_CONF_DEST_INACCURATE , iCoeEnv ); - CAknQueryDialog* dlg = CAknQueryDialog::NewL(CAknQueryDialog::ENoTone); - if(dlg->ExecuteLD(R_BLID_CONFIRMATION_QUERY, *noteText)) - { - CleanupStack::PopAndDestroy( noteText ); - return index; - } - else - { - CleanupStack::PopAndDestroy( noteText ); - return KErrCancel; - } - } - } - return index; - } - -// --------------------------------------------------------- -// CBlidBaseView::CheckIfExist -// Checks if a waypoint exists -// --------------------------------------------------------- -// -TBool CBlidBaseView::CheckIfExistL( const TDes& aName, TInt& aErrorCode, TInt& aRemovedIndex ) - { - TInt i(0); - TInt count( iRouter->Count() ); - HBufC* name = NULL; - TBool retVal; - aRemovedIndex = KErrNotFound; - - for ( i = 0; i < count; i++ ) - { - name = iRouter->At( i ).Name(); - if ( name && name->Compare( aName ) == 0 ) - { - CleanupStack::PushL(name); - HBufC* text; - text = StringLoader::LoadLC(R_BLID_QUERY_WAYPOINT_NAME_EXISTS, - *name, - iCoeEnv); - - CAknQueryDialog* dlg = CAknQueryDialog::NewL(); - CleanupStack::PushL(dlg); - dlg->SetPromptL( *text ); - CleanupStack::Pop( dlg ); - retVal = dlg->ExecuteLD(R_BLID_CONFIRMATION_QUERY); - - if(retVal) - { - TInt retVal = iRouter->RemoveL(i); - aRemovedIndex = i; - if(retVal == KErrDiskFull) - { - aErrorCode = KErrDiskFull; - BlidNotes::OutOfMemoryNoteL(); - } - } - CleanupStack::PopAndDestroy(2); //name and text - return !retVal; - } - delete name; - name = NULL; - } - return EFalse; - } - -// ---------------------------------------------------- -// CBlidBaseView::LaunchLandmarksDialogL -// Launch the landmarks dialog -// ---------------------------------------------------- -// -TInt CBlidBaseView::LaunchLandmarksDialogL() - { - CPosLandmarkDatabase* lDb = NULL; - TPosLmItemId selectedItem; - iLandmarkInfo = CLmkLandmarkSelectorDlg::NewL(); - iLandmarkInfo->SetMopParent(this); - TLmkItemIdDbCombiInfo* selected = new (ELeave) TLmkItemIdDbCombiInfo(); - CleanupStack::PushL(selected); - TInt retVal = iLandmarkInfo->ExecuteLD( *selected ); - if( retVal != KErrNone ) - { - selectedItem = selected->GetItemId(); - lDb = selected->GetLmDb(); - if(lDb) - { - CleanupStack::PushL( lDb ); - CPosLandmark *landmarkInfo = lDb->ReadLandmarkLC(selectedItem); - CleanupStack::PushL( landmarkInfo ); - CPosLandmark* landMark = CPosLandmark::NewL(*landmarkInfo); - CleanupStack::Pop( landmarkInfo ); - TLocality lmkPosition; - TInt error = landMark->GetPosition(lmkPosition); - if( Math::IsNaN(lmkPosition.Latitude()) || - Math::IsNaN(lmkPosition.Longitude()) ) - { - TPtrC landmarkname; - landMark->GetLandmarkName(landmarkname); - // Fix done for TSW error EPZO-75PBW8 - HBufC* lmkName = NULL; - lmkName = HBufC::NewL( landmarkname.Length() ); - lmkName->Des().Copy( landmarkname ); - TPtr lmkActualName( lmkName->Des() ); - TBuf<1> charsToRemove; - charsToRemove.Append(TChar(TInt(CEditableText::EParagraphDelimiter))); - AknTextUtils::ReplaceCharacters( lmkActualName, charsToRemove, TChar(TInt(CEditableText::ESpace))); - BlidNotes::EmptyLandmarkNoteL( *lmkName ); - delete lmkName; - // end of error fix. - delete landMark; - retVal = 0; - } - else - { - TLocality lmkPosition; - landMark->GetPosition(lmkPosition); - TReal accuracy = lmkPosition.HorizontalAccuracy(); - if(accuracy >= KBlidPoorAccuracy) - { - HBufC* noteText = StringLoader::LoadLC( R_BLID_CONF_DEST_INACCURATE , iCoeEnv ); - CAknQueryDialog* dlg = CAknQueryDialog::NewL(CAknQueryDialog::ENoTone); - if(dlg->ExecuteLD(R_BLID_CONFIRMATION_QUERY, *noteText)) - { - iRouter->SetLandmark(landMark); - } - else - { - delete landMark; - } - CleanupStack::PopAndDestroy(noteText); - } - else - { - iRouter->SetLandmark(landMark); - } - - } - CleanupStack::PopAndDestroy(1); // ReadLandmarkLC - landMark = NULL; - landmarkInfo = NULL; - CleanupStack::PopAndDestroy( lDb ); - } - } - CleanupStack::Pop(1); //selectedItem - iLandmarkInfo = NULL; - delete selected; - return retVal; - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::SaveCurrentPositionAsLandmarkL -// Called to save the current location as a landmark in landmark database -// ---------------------------------------------------------------------------- -// -void CBlidBaseView::SaveCurrentPositionAsLandmarkL() - { - CLmkEditorDlg::TLmkEditorParams editParams; - editParams.iAttributes = CLmkEditorDlg::ELmkAll; - editParams.iEditorMode = CLmkEditorDlg::ELmkEditor; - - TPosition position = iLocation->GetCurrentPosition(); - - CPosLandmark* landmark = CPosLandmark::NewLC(); - TLocality location; - location.SetCoordinate(position.Latitude(), - position.Longitude(), - position.Altitude()); - location.SetHorizontalAccuracy(position.HorizontalAccuracy()); - location.SetVerticalAccuracy(position.VerticalAccuracy()); - - landmark->SetPositionL(location); - CPosLandmarkDatabase* db = CPosLandmarkDatabase::OpenL(); - CleanupStack::PushL(db); - - CPosLmOperation* operation = db->InitializeL(); - CleanupStack::PushL(operation); - operation->ExecuteL(); - CLmkEditorDlg *dlg = CLmkEditorDlg::NewL(*db, - *landmark, - editParams); - dlg->ExecuteLD(); - CleanupStack::PopAndDestroy(3); // landmark, operation and db - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::LaunchManualWaypointDialogL -// Launches the manual waypoint dialog -// ---------------------------------------------------------------------------- -// -TInt CBlidBaseView::LaunchManualWaypointDialogL() - { - TInt retVal; - TCoordinate coord(0,0); - TLocality loc(coord,0); - TTime time; - time.HomeTime(); - TPosition pos(loc, time); - - CAknMultiLineDataQueryDialog* dlg = CAknMultiLineDataQueryDialog::NewL(pos); - retVal = dlg->ExecuteLD(R_BLID_MANUAL_LOCATION_QUERY_DIALOG); - if( retVal ) - { - iRouter->SetManualWaypoint(pos.Latitude(), pos.Longitude(), iManualWaypointName); - } - return retVal; - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::Update -// ---------------------------------------------------------------------------- -// -void CBlidBaseView::Update(CBlidBaseContainer* aContainer) - { - aContainer->SetRect(ClientRect()); - aContainer->DrawNow(); - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::CBAPtr -// Returns the current CBA -// ---------------------------------------------------------------------------- -// -CEikButtonGroupContainer* CBlidBaseView::CBAPtr() const - { - return (Cba()); - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::SetMiddleSoftKeyLabelL -// Sets the Middle Soft Key label. -// ---------------------------------------------------------------------------- -// -void CBlidBaseView::SetMiddleSoftKeyLabelL( - const TInt aResourceId, - const TInt aCommandId ) - { - CEikButtonGroupContainer* cbaGroup = Cba(); - if ( cbaGroup ) - { - HBufC* middleSKText = StringLoader::LoadLC( aResourceId ); - cbaGroup->AddCommandToStackL(KMiddleSKId, - aCommandId, - *middleSKText ); - CleanupStack::PopAndDestroy( middleSKText ); - } - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::RemoveMiddleSoftKeyLabel -// Remove the Middle Soft Key label. -// ---------------------------------------------------------------------------- -// -void CBlidBaseView::RemoveMiddleSoftKeyLabel( const TInt aCommandId ) - { - CEikButtonGroupContainer* cbaGroup = Cba(); - if ( cbaGroup ) - { - cbaGroup->RemoveCommandFromStack(KMiddleSKId, - aCommandId ); - } - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::SetMSKDimmed -// Sets the Middle Soft Key as not visible. -// ---------------------------------------------------------------------------- -// -void CBlidBaseView::SetMSKNotVisible() - { - CEikButtonGroupContainer* cbaGroup = Cba(); - if ( cbaGroup ) - { - cbaGroup->MakeCommandVisible(EAknSoftkeyContextOptions, EFalse); - iMSKVisible = EFalse; - } - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::SetMSKVisible -// Sets the Middle Soft Key as visible. -// ---------------------------------------------------------------------------- -// -void CBlidBaseView::SetMSKVisible() - { - CEikButtonGroupContainer* cbaGroup = Cba(); - if ( cbaGroup ) - { - cbaGroup->MakeCommandVisible(EAknSoftkeyContextOptions, ETrue); - iMSKVisible = ETrue; - } - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::UpdateMskStateL -// Update Middle Soft Key label/Icon. -// ---------------------------------------------------------------------------- -// -void CBlidBaseView::UpdateMskStateL() - { - if (!iLocation->IsGPSDataAvailable()) - { - SetMSKNotVisible(); - } - else - { - if(!iMSKVisible) - { - SetMSKVisible(); - MenuBar()->SetContextMenuTitleResourceId( - R_BLID_OWN_POS_VIEW_OK_MENUBAR); - } - } - } - -#ifdef RD_SCALABLE_UI_V2 -// --------------------------------------------------------------------------- -// CBlidBaseView::HandleListBoxEventL -// Handles listbox item selection -// --------------------------------------------------------------------------- -// -void CBlidBaseView::HandleListBoxEventL( - CEikListBox* /*aListBox*/, TListBoxEvent aEventType) - { - switch ( aEventType ) - { - case EEventEnterKeyPressed: - case EEventItemSingleClicked: - HandleListBoxSelectionL(); - break; - default: - break; - } - } - -#endif //RD_SCALABLE_UI_V2 -// --------------------------------------------------------------------------- -// CBlidBaseView::IsLmFeatureAvailable -// Checks if Landmarks feature i available -// --------------------------------------------------------------------------- -// -TBool CBlidBaseView::IsLmFeatureAvailable() - { - return FeatureManager::FeatureSupported( KFeatureIdLandmarks ); - } - -// --------------------------------------------------------------------------- -// CBlidBaseView::IsLmAvailableL -// Checks if there are any landmarks in the default database -// --------------------------------------------------------------------------- -// -TBool CBlidBaseView::IsLmAvailableL() - { - TBool lResult = ETrue; - // Check if there are any landmarks present. If not the - // dim the landmark item from the set destination menu pane - CPosLandmarkDatabase* lmkDb; - lmkDb = CPosLandmarkDatabase::OpenL(); - CleanupStack::PushL(lmkDb); - // Initialize Landmarks data base if required - CPosLmOperation* operation = lmkDb->InitializeL(); - CleanupStack::PushL(operation); - operation->ExecuteL(); - CPosLmItemIterator* iterator = lmkDb->LandmarkIteratorL(); - CleanupStack::PushL(iterator); - - if( iterator->NumOfItemsL() == 0 ) - { - lResult = EFalse; - } - else - { - lResult = ETrue; - } - CleanupStack::PopAndDestroy(3); //lmkDb, iterator and operation - return lResult; - } - -// --------------------------------------------------------------------------- -// CBlidBaseView::IsWpAvailable -// Checks if waypoints are available -// --------------------------------------------------------------------------- -// -TBool CBlidBaseView::IsWpAvailable() - { - if ( iRouter->Count() <= 0 ) - { - return EFalse; - } - return ETrue; - } - - -// ---------------------------------------------------------------------------- -// CBlidBaseView::ActivateCorrectViewL -// Activates the view -// ---------------------------------------------------------------------------- -// -void CBlidBaseView::ActivateCorrectViewL( TInt aIndex ) - { - switch( aIndex ) - { - case EBlidNavigationViewId: - { - AppUi()->ActivateLocalViewL( TUid::Uid( EBlidNavigationView ) ); - break; - } - case EBlidTripMeterViewId: - { - AppUi()->ActivateLocalViewL( TUid::Uid( EBlidTripMeterView ) ); - break; - } - default: - break; - } - } - - -// ---------------------------------------------------------------------------- -// CBlidBaseView::ShowCurrentPositionInfoL -// Launches the current position dialog -// ---------------------------------------------------------------------------- -// -void CBlidBaseView::ShowCurrentPositionInfoL() - { - iPopupDialog = CBlidCurrentPositionDlg::NewL( *this, iLocation, iEngine ); - iPopupDialog->ExecuteLD(); - iPopupDialog = NULL; - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::SaveCurrentPositionL -// Saves current position as landmark or as waypoint -// ---------------------------------------------------------------------------- -// -void CBlidBaseView::SaveCurrentPositionL() - { - if ( !FeatureManager::FeatureSupported( KFeatureIdLandmarks ) ) - { - if ( InsertWaypointL() ) - { - static_cast(AppUi()->Document())->SaveL(); - } - } - else - { - SaveCurrentPositionAsLandmarkL(); - } - } - -// ---------------------------------------------------- -// CBlidBaseView::BlidDocument -// Returns the Location document object. -// ---------------------------------------------------- -// -CBlidDocument* CBlidBaseView::BlidDocument() - { - // Explicit cast: the document must always be of type CBlidDocument - return static_cast(AppUi()->Document()); - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::ActivateSatelliteViewL -// Activates the Satellite view -// ---------------------------------------------------------------------------- -// -void CBlidBaseView::ActivateSatelliteViewL( ) - { - AppUi()->ActivateLocalViewL( TUid::Uid( EBlidMainSatelliteView ) ); - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::IsSatViewActive -// Checks if Satellite view is active -// ---------------------------------------------------------------------------- -// -TBool CBlidBaseView::IsSatViewActive( ) - { - return (static_cast(AppUi()))->IsSatelliteViewActive(); - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::IsForeGroundApp -// Checks if Blid app is in foreground -// ---------------------------------------------------------------------------- -// -TBool CBlidBaseView::IsForeGroundApp( ) - { - return ( static_cast(AppUi())->IsForeground() ); - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::ExitMainApplicationL -// Exit the application -// ---------------------------------------------------------------------------- -// -void CBlidBaseView::ExitMainApplicationL( TInt aButtonId ) - { - static_cast(AppUi())->HandleCommandL( aButtonId ); - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::LaunchTripContextMenuL -// Launches the context menu for tripmeter view -// ---------------------------------------------------------------------------- -// -void CBlidBaseView::LaunchTripContextMenuL() - { - CEikMenuBar* menubar = static_cast - (iAvkonAppUi)->View(TUid::Uid( EBlidTripMeterView ))->MenuBar(); - if ( menubar ) - { - menubar->SetContextMenuTitleResourceId(R_BLID_TRIP_METER_VIEW_OK_MENUBAR); - menubar->TryDisplayContextMenuBarL(); - } - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::LaunchNavigationContextMenuL -// Launches the context menu for Navigation view -// ---------------------------------------------------------------------------- -// -void CBlidBaseView::LaunchNavigationContextMenuL() - { - CEikMenuBar* menubar = static_cast - (iAvkonAppUi)->View(TUid::Uid( EBlidNavigationView ))->MenuBar(); - - if ( menubar ) - { - menubar->SetContextMenuTitleResourceId(R_BLID_VIEW_OK_MENUBAR); - menubar->StopDisplayingMenuBar(); - menubar->TryDisplayContextMenuBarL(); - } - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::LaunchSatelliteInfoDlgL -// Launches the Satellite info dialog -// ---------------------------------------------------------------------------- -// -void CBlidBaseView::LaunchSatelliteInfoDlgL() - { - static_cast(AppUi())->LaunchSatelliteInfoDlgL( ); - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::ActivateNavigationViewL -// Activates the navigation view -// ---------------------------------------------------------------------------- -// -void CBlidBaseView::ActivateNavigationViewL( ) - { - AppUi()->ActivateLocalViewL( TUid::Uid( EBlidNavigationView ) ); - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::ChangeViewSoftKeyL -// Changes the soft key -// ---------------------------------------------------------------------------- -// -void CBlidBaseView::ChangeViewSoftKeyL( ) - { - CBAPtr()->SetCommandSetL( R_BLID_SOFTKEYS_INFO_EXIT ); - CBAPtr()->DrawDeferred(); - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::ApplicationRect -// Returns the application rect -// ---------------------------------------------------------------------------- -// -TRect CBlidBaseView::ApplicationRect( ) const - { - return AppUi()->ApplicationRect(); - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::ImageLoaderUtils -// Returns the image loader utils -// ---------------------------------------------------------------------------- -// -CAlfImageLoaderUtil* CBlidBaseView::ImageLoaderUtils( ) const - { - return iImageLoaderUtil; - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::ImagePathName -// Returns the image path -// ---------------------------------------------------------------------------- -// -TFileName CBlidBaseView::ImagePathName( ) const - { - return iConFileName; - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::IsSettingsViewActive -// Checks if settings view is active -// ---------------------------------------------------------------------------- -// -TBool CBlidBaseView::IsSettingsViewActive() - { - return iIsSettingsViewActive; - } - -// ---------------------------------------------------------------------------- -// CBlidBaseView::CoeEnv -// Returns the control environment -// ---------------------------------------------------------------------------- -// -CCoeEnv* CBlidBaseView::CoeEnv() - { - return iCoeEnv; - } -// End of File -