diff -r 8173571d354e -r 1fc85118c3ae locationlandmarksrefappfors60/Inc/LandmarksEditDialog.h --- a/locationlandmarksrefappfors60/Inc/LandmarksEditDialog.h Thu Aug 19 09:48:36 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,328 +0,0 @@ -/* -* Copyright (c) 2004-2007 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: -* See class description below -* -*/ - - -#ifndef __LANDMARKS_EDIT_DIALOG_H__ -#define __LANDMARKS_EDIT_DIALOG_H__ - - -#include -#include -#include "LandmarksOperationObserver.h" - -class CLandmarksApplicationEngine; -class CLandmarksLmCategoriesModel; -class CLandmarksPositionRequest; -class CPosLandmarkCategory; -class CAknTitlePane; -class CAknWaitDialog; -class CPosLandmark; -class TLocality; -class TPositionInfo; - - - -/** -* A dialog that makes it possible to edit certain fields of a landmark. -*/ -class CLandmarksEditDialog : - public CAknForm, - public MLandmarksOperationObserver - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * - * @param aLandmark the landmark to edit - * @param aUseCurrentLocation whether to initiate landmark with - * current location - * @param aEdited ETrue if the landmark has been modified, - * EFalse otherwise - * @param aEngine the application engine used for accessing categories - * @param aInitialFocusFieldId Item to select on startup - */ - static CLandmarksEditDialog* NewLC( - CPosLandmark& aLandmark, - TBool aUseCurrentLocation, - TBool& aEdited, - CLandmarksApplicationEngine& aEngine, - TInt aInitialFocusFieldId = 0); - - /** - * Destructor. - */ - ~CLandmarksEditDialog(); - - public: // From CAknDialog - - /** - * DynInitMenuPaneL initializes the menu pane before it is displayed. - * - * @param aResourceId a resource ID indetifying the menu bar containing - * the menu pane to be initialized. - * @param aMenuPane the menu pane to initialize. - */ - void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane); - - /** - * Processes user commands. - * - * @param aCommandId id of the command to respond to - */ - void ProcessCommandL(TInt aCommandId); - - public: // From MLandmarksOperationObserver - - /** - * NotifyOperationProgressL notifies the progress and status of an - * asynchronous operation. - * - * @param aOperation the type of operation that is reported. - * @param aProgress the progress of the operation. - * @param aErrorCode the status of the operation. - */ - void NotifyOperationProgressL( - TOperation aOperation, - TInt aProgress, - TInt aErrorCode); - - protected: // From CAknForm - - /** - * Handles a dialog button press for the specified dialog button. - * - * @param aButtonId - * @return ETrue if OK to exit, EFalse to keep the dialog active - */ - TBool OkToExitL(TInt aButtonId); - - - /** - * SaveFormDataL deals with the occasion of a change from - * edit->view mode and the user wishes to save the changes. - * - * @return ETrue if the editable state can be left, EFalse otherwise - */ - TBool SaveFormDataL(); - - private: // From CEikDialog - - /** - * PreLayoutDynInitL initialises the dialog's controls before the dialog - * is sized and layed out. - */ - void PreLayoutDynInitL(); - - /** - * PostLayoutDynInitL initialises the dialog's controls after the dialog - * has been sized but before it has been activated. - */ - void PostLayoutDynInitL(); - - /** - * Selects desired line on startup - */ - void SetInitialCurrentLine(); - - /** - * Handles control events. - * - * @param aControl The control reporting the event - * @param aEventType The event type - */ - void HandleControlEventL( - CCoeControl* aControl, - TCoeEvent aEventType); - - /** Handles layout switch */ - void HandleResourceChange( TInt aType ); - - private: - - enum TErrorInForm - { - ENoErrors, - EWrongLatitude, - EWrongLongitude, - EWrongAltitude, - EWrongHorAcc, - EWrongVerAcc, - EWrongRadius, - EOnlyLatOrLon, - ENoLatLonButHorAcc, - ENoLatLonButAltitude, - ENoAltButVerAcc, - EEmptyLandmarkName, - }; - - /** Constructor - * - * @param aLandmark the landmark to edit - * @param aUseCurrentLocation whether to initiate landmark with current location - * @param aEdited ETrue if the landmark has been modified, EFalse otherwise - * @param aEngine the application engine used for accessing categories - * @param aInitialFocusFieldId Item to select on startup - */ - CLandmarksEditDialog( - CPosLandmark& aLandmark, - TBool aUseCurrentLocation, - TBool& aEdited, - CLandmarksApplicationEngine& aEngine, - TInt aInitialFocusFieldId); - - void ConstructL(); - - /** Configures the fields of the landmark to view/edit */ - void ConfigureFieldsL(); - - /** Copies address data from landmark to fields */ - void ConfigureAddressFieldsL(); - - /** Copies the location data from landmark to fields. - * @param aLocation contains the location data to update location fields with. - */ - void ConfigureLocationFieldsL(TLocality& aLocation); - - /** Configures the category field */ - void ConfigureCategoryFieldL(); - - /** Sets text to the specified field - * @param aControlId ID of control in the dialog - * @param aText Text to set to the control - */ - void SetTextFieldL(TInt aControlId, const TDesC& aText); - - /** Sets text to the specified location field - * @param aControlId ID of control in the dialog - * @param aPosition Position value to set to the editor - */ - void SetLocationFieldL( TInt aId, const TPosition& aPosition ); - - /** Updates the title bar based on the contents in the name field. - * @param aFromField Whether to get text from name field or from landmark. - */ - void UpdateTitleBarL(TBool aFromField = EFalse); - - /** Launches a markable list dialog for editing categories for this landmark */ - void EditCategoriesL(); - - /** Start location request to update landmark with current location */ - void UpdateToCurrentLocationL(); - - /** Gets all data from fields, checks and saves to current landmark */ - TErrorInForm FetchAndSaveFormDataL(); - - /** Saves values of address fields to current landmark */ - void SaveAddressDataL(); - - /** Saves values of coordinates fields to current landmark - * \return one of TErrorsInFields values - */ - TErrorInForm SaveCoordinateDataL(); - - /** Launches an error dialog displaying an error message to the user. - * @param aResourceId a resource id for a descriptor containing an - * error message - */ - void ProcessErrorsInFormL( TErrorInForm aErrorId ); - - /** Launches an error dialog displaying an error message to the user. - * @param aResourceId a resource id for a descriptor containing an - * error message - */ - void NotifyErrorToUserL( TInt aResourceId ); - - /** Copies address information (address and building position fields) from - * source landmark to target. - */ - void CopyAddressDataL( CPosLandmark& aSrc, CPosLandmark& aTrg ); - - /** Copies coordinate information (locality and coverage) from - * source landmark to target. If some fields are empty in source, - * they will also be emptied in result. - */ - void CopyCoordinateDataL( CPosLandmark& aSrc, CPosLandmark& aTrg ); - - /** Checks whether current landmark has any address fields */ - TBool HasAddressData(); - - /** Checks whether current landmark has coordinate set */ - TBool HasCoordinateData(); - - /** Start wait dialog for modal async operations */ - void StartWaitDialogL( TInt aResId ); - - /** Closes wait dialog */ - void CloseWaitDialog(); - - /** Reset coordinates of current landmark */ - void ResetCoordinatesL(); - - private: // Data - - //! The landmark to be edited - CPosLandmark& iOriginalLandmark; - - //! Own copy of the original landmark's data - CPosLandmark* iLandmark; - - //! Whether to get location on startup - TBool iUseCurrentLocation; - - //! Indicates if the landmark has been edited or not - TBool& iEdited; - - //! Engine is used for reading categories - CLandmarksApplicationEngine& iEngine; - - //! Item selected on startup - TInt iInitialFocusFieldId; - - //! The title pane that is dynamically updated - CAknTitlePane* iTitlePane; - - //! The original title that the title pane displayed before modified - HBufC* iOriginalTitle; - - //! Contains a location if the user wants to update to current location - TPositionInfo iPositionInfo; - - //! The name of the application. Used when fetching locations - HBufC* iAppName; - - //! A position request used for retriveing locations - CLandmarksPositionRequest* iPositionRequest; - - //! The listbox model for categories editor - CLandmarksLmCategoriesModel* iLmCategoriesModel; - - //! The category ids that are set for this landmark - RArray iCategoryIds; - - //! Defines how real numbers are formatted - TRealFormat iRealFormat; - - //! Defines which real values that have been edited - RArray iIsRealValueEdited; - - CAknWaitDialog* iWaitDialog; - }; - -#endif // __LANDMARKS_EDIT_DIALOG__ -