diff -r 522cd55cc3d7 -r 13ae750350c9 locationlandmarksrefappfors60/Src/LandmarksView.cpp --- a/locationlandmarksrefappfors60/Src/LandmarksView.cpp Tue Feb 02 00:16:03 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,237 +0,0 @@ -/* -* Copyright (c) 2004-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: -* Implements the CLandmarksView class -* -*/ - - - -#include -#include -#include - -#include -#include - -#include -#include "LmRefApp.hrh" -#include "LandmarksView.h" -#include "LandmarksAppUi.h" -#include "LandmarksApplicationEngine.h" -#include "LandmarksContainer.h" -#include "LandmarksEditDialog.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// -CLandmarksView::CLandmarksView( - CAknNavigationDecorator* aNaviDecorator, - CLandmarksApplicationEngine& aEngine ) -: iEngine( aEngine ), - iNaviDecorator( aNaviDecorator ) - { - // No implementation required - } - -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// -void CLandmarksView::ConstructL() - { - BaseConstructL( R_LMREFAPP_VIEW ); - } - -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// -CLandmarksView* CLandmarksView::NewLC( - CAknNavigationDecorator* aNaviDecorator, - CLandmarksApplicationEngine& aEngine ) - { - CLandmarksView* self = new ( ELeave ) CLandmarksView( - aNaviDecorator, aEngine ); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// -CLandmarksView::~CLandmarksView() - { - delete iContainer; - } - -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// -TUid CLandmarksView::Id() const - { - return TUid::Uid( ELandmarksViewId ); - } - -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// -void CLandmarksView::HandleCommandL( TInt aCommand ) - { - { - switch ( aCommand ) - { - case ELandmarksAddCurrent: - AddLandmarkL( ETrue ); // use current location - break; - - case ELandmarksAddBlank: - AddLandmarkL( EFalse ); // create blank - break; - - case ELandmarksDelete: - iContainer->DeleteLandmarkL(); - break; - - case ELandmarksOpen: - { - TPckgC lmId( iContainer->CurrentLandmark() ); - - AppUi()->ActivateLocalViewL( - TUid::Uid( ELandmarksInfoViewId ), - TUid::Uid( ELandmarksViewInfoById ), - lmId ); - break; - } - - default: - AppUi()->HandleCommandL( aCommand ); - break; - } - } - } - -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// -void CLandmarksView::DoActivateL( - const TVwsViewId& /*aPrevViewId*/, - TUid /*aCustomMessageId*/, - const TDesC8& /*aCustomMessage*/ ) - { - if ( !iContainer ) - { - iContainer = new ( ELeave ) CLandmarksContainer( - *this, iEngine, iNaviDecorator ); - iContainer->SetMopParent( this ); - iContainer->ConstructL( ClientRect() ); - } - - // Enable receiving of keyboard events. - AppUi()->AddToStackL( *this, iContainer ); - - // Make view visible. - iContainer->MakeVisible( ETrue ); - - // Notify that this view is active - iEngine.NotifyViewActivated( Id(), ETrue ); - } - -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// -void CLandmarksView::DoDeactivate() - { - // Hide view. - iContainer->MakeVisible( EFalse ); - - // Notify that this view is inactive - iEngine.NotifyViewActivated( Id(), EFalse ); - - // Disable receiving keyboard events. - AppUi()->RemoveFromStack( iContainer ); - } - -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// -void CLandmarksView::HandleResourceChange( TInt aType ) - { - if ( iContainer ) - { - iContainer->HandleResourceChange( aType ); - } - } - -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// -void CLandmarksView::DynInitMenuPaneL( - TInt aResourceId, - CEikMenuPane* aMenuPane ) - { - { - if ( aResourceId == R_LMREFAPP_MENU ) - { - // If no landmark is selected we need to hide some command options. - TBool isListEmpty = !iContainer->IsItemSelected(); - aMenuPane->SetItemDimmed( ELandmarksDelete, isListEmpty ); - aMenuPane->SetItemDimmed( ELandmarksOpen, isListEmpty ); - } - } - - CAknView::DynInitMenuPaneL( aResourceId, aMenuPane ); - } - -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// -void CLandmarksView::AddLandmarkL( TBool aUseCurrentLocation ) - { - // Create new landmark - CPosLandmark* newLandmark = CPosLandmark::NewLC(); - - if ( EditNewLandmarkL( *newLandmark, aUseCurrentLocation ) ) - { - iEngine.AddLandmarkL( *newLandmark ); - } - - CleanupStack::PopAndDestroy( newLandmark ); - } - -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// -TBool CLandmarksView::EditNewLandmarkL( CPosLandmark& aLandmark, TBool aFetchCurrentLocation ) - { - // Create edit dialog - TBool isEdited( EFalse ); - CLandmarksEditDialog* editDialog = CLandmarksEditDialog::NewLC( - aLandmark, aFetchCurrentLocation, isEdited, iEngine ); - - // Remove tabs from this view - iNaviDecorator->MakeVisible( EFalse ); - - // Dialog must not leave without restoring tab group. Must be trapped. - TRAPD( err, editDialog->ExecuteLD( R_LMREFAPP_EDIT_DIALOG ) ); - - // Restore tabs to this view - iNaviDecorator->MakeVisible( ETrue ); - - User::LeaveIfError( err ); - CleanupStack::Pop( editDialog ); - return isEdited; - } -