eventsui/eventseditor/inc/evtmgmtuiplacecomponent.h
branchRCL_3
changeset 18 870918037e16
parent 0 522cd55cc3d7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eventsui/eventseditor/inc/evtmgmtuiplacecomponent.h	Wed Sep 01 12:31:27 2010 +0100
@@ -0,0 +1,322 @@
+/*
+* Copyright (c) 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:   'Set Place' component for retrieving place.
+*
+*/
+
+
+#ifndef EVTMGMTUIPLACECOMPONENT_H_
+#define EVTMGMTUIPLACECOMPONENT_H_
+
+#include <e32base.h>        // CBase
+
+#include "evtmgmtuimapnavigationadapter.h"
+#include "evtmgmtuilocationserviceadapter.h"
+#include "evtmgmtuiwaitdlglauncher.h"
+#include "evtmgmtuilocsettinglauncherobserver.h"
+
+class TCoordinate;
+class CEvtMgmtUiLocSettingsLauncher;
+class CAknIconArray;
+
+/**
+ *  @class CEvtMgmtUiPlaceComponent
+ *  Class that represents 'Set place' component of editor
+ *
+ *  This class acts as 'set place' component of editor.
+ *  It  is used to retrieve location details for which event will be set.
+ *  Location details can be retrieved from current location, map or landmark
+ *
+ *  @since S60 v9.1
+ */
+
+class CEvtMgmtUiPlaceComponent: public CBase,
+                                public MEvtMgmtUiMapAndNavigationObserver,
+                                public MEvtMgmtUiLocationServiceObserver,
+                                public MEvtMgmtUiWaitDialogLauncherObserver,
+                                public MEvtMgmtUiLocSettingsLauncherObserver
+    {
+private:
+    /*
+     *  'Set place' popup dialog options
+     */
+    enum TEvtMgmtUiSetPlace
+       {
+       /*
+        * It indicates that 'Current location' is selected
+        * from popup dialog
+        */
+       EEvtMgmtUiSetPlaceCurrentPlace,
+       /*
+        * It indicates that 'Landmark' is selected
+        * from popup dialog
+        */
+       EEvtMgmtUiSetPlaceLandmark,
+       /*
+        * It indicates that 'Map' is selected
+        * from popup dialog
+        */
+       EEvtMgmtUiSetPlaceFromMap,
+       };
+    
+    public:  // Constructor and destructor  
+      /**
+       * Static Two phase constructor
+       * @param[in] aPrevPlace - place of existing event
+       *                         empty string for newly create event     
+       * @param[in/out] aTriggerLocation - location of the existing event is passed.
+       *                                   after successful completion of retrieval operation
+       *                                   new location is set to it.    
+       */
+      static CEvtMgmtUiPlaceComponent* NewLC(const TPtrC aPrevPlace,  
+              TCoordinate& aTriggerLocation );
+
+      static CEvtMgmtUiPlaceComponent* NewL(const TPtrC aPrevPlace,  
+                   TCoordinate& aTriggerLocation );
+
+      /**
+       * Virtual destructor
+       */
+      virtual ~CEvtMgmtUiPlaceComponent(); 
+      
+    public:// new functions
+     /**
+     * It is used as a wrapper class to trap leaving function DisplayPlacePopupDlgL()
+     *
+     * @since S60 v5.0
+     * 
+     * @param[in] aStatus - status which will contain success/failure state
+     *                       based on retrieval of location is successful or failed
+     */
+     void DisplayPlacePopupDlg( TRequestStatus& aStatus );    
+     
+     /**
+     * It is used to retrieve place details
+     * 
+     * @since S60 v5.0
+     * 
+     * @ret place details retrieved
+     */
+     TPtrC Place() const;
+     
+     /**
+      * It is used to retrieve location details
+      * 
+      * @since S60 v5.0
+      * 
+      * @ret location details retrieved
+      */
+     TCoordinate& TriggerLocation() const;
+  
+     /**
+      * It is used to launch position settings
+      * 
+      * @since S60 v5.0
+      */
+     void LaunchPositioningSettingsL();
+           
+    public: //Derived
+       
+       /**
+         * Derived from MEvtMgmtUiMapAndNavigationObserver
+         */
+       void HandleMapAndNavigationResponseL( TInt aErrorCode, const TPtrC aPlace, TCoordinate aTriggerLocation  );
+       
+       /**
+        * Derived from MEvtMgmtUiLocationServiceObserver
+        */
+       void HandleLocationServiceResponseL( const TInt aStatus );
+
+       /**
+        * Derived from MEvtMgmtUiLocationServiceObserver
+        */      
+       void HandleLocationServiceErrorL( TInt aErrorCode );
+       
+       /**
+       * Derived from MEvtMgmtUiWaitDialogLauncherObserver
+       */ 
+       void HandleDialogDismissed( TInt aButtonId );
+       
+       /**
+         * Derived from MEvtMgmtUiLocSettingsLauncherObserver
+         */ 
+       void NotifyLocSettingLaucherChangeL( TInt aErrorCode );
+
+    private://new functions
+        /*
+         * It is used to display accuracy note
+         */
+        void DisplayAccuracyNoteL();
+        /*
+         * It is used to display accuracy note
+         */
+        void DisplayAccuracyNoteL(TPosition& aPos);
+        /*
+         * It is used to get the accuracy string
+         */
+        void GetAccuracyStringL( TReal& aAccuracy, HBufC*& aAccuracyString );
+        /*
+         * Gets the place details from retrieved position information.
+         */
+        TInt GetPlaceL();
+        /*
+         * Resolves the Error code
+         */
+        void ResolveErrorL( TInt aErrorCode );
+       
+    private:  // Constructor
+        /**
+         * C++ Default constructor
+         */       
+        CEvtMgmtUiPlaceComponent( TCoordinate& aTriggerLocation );
+  
+        /**
+         * Second phase of the two phase constructor
+         */ 
+         void ConstructL( const TPtrC aPrevPlace );
+         
+    private: //new function
+        
+        /**
+         * It is used to display 'set place' popup dialog and retrieve place 
+         * using selected method.
+         *
+         * @since S60 v5.0
+         * 
+         * @ret it returns the option selected.
+         *      it leaves with KErrCancel, if popup dialog is cancelled.
+         *      it may leave with other errors, if retrieval of place fails.
+         */
+        TInt DisplayPlacePopupDlgL();
+           
+        /*
+         * It is used to display error note.
+         * 
+         * @since S60 v5.0
+         * 
+         * @param[in] aResourceId - resource ID of the text to be displayed on error note.
+         */
+        void DisplayErrorNoteL(TInt aResourceId );
+        
+       
+       /**
+        * It retrieves place details from landmark     
+        * 
+        * @since S60 v5.0
+        *       
+        */
+       void PlaceFromLandmarkL();
+         
+       /**
+         * It returns total number of landmarks stored in landmark database.     
+         * If there is any error in retrieving details, it will return zero landmark.
+         * 
+         * @since S60 v5.0
+         * 
+         * @ret total number of landmarks stored in landmark database
+         */
+       TInt LandmarksL();       
+
+       /**
+        * It displays message query if there is no positioning method enabled.     
+        * 
+        * @since S60 v5.0
+        * 
+        * @ret If pressed Ok, it will return true.
+        *      If pressed Close, it will return false.
+        */
+       TBool DisplayNoPositioningMethodInfoNoteL( TInt aResourceId );
+       
+       /**
+        * It initiates set place request from current location.
+        * If there is no positioning method enabled, it will leave with KErrCancel.
+        * Otherwise it will request current location and will launch busy dialog.     
+        * 
+        * @since S60 v5.0
+        *        
+        */
+       void PlaceFromCurrentLocationL();
+       
+       /**
+        * Update icons
+        */
+       void UpdateIconsL( CAknListQueryDialog& aDialog );    
+        
+       /**
+        * Append icon to icon array. CAknIconArray owns icons so it is 
+        * easier to it leave safely.
+        * @param aIcons icon array
+        * @param aIconFileWithPath icon file name with path
+        * @param aSkinID skin id of the icon
+        * @param aIconGraphicsIndex picture index
+        * @param aIconGraphicsMaskIndex mask index
+        */
+       void AddIconL( CAknIconArray&       aIcons,
+                      const TDesC&         aIconFileWithPath,
+                      TAknsItemID          aSkinID,
+                      TInt                 aIconGraphicsIndex,
+                      TInt                 aIconGraphicsMaskIndex );
+                            
+       /**
+        * Gets Events Management UI icon file path and name. Ownership
+        * is transferred, item is left in the cleanup stack.
+        * @return TFileName* The full name of the Events UI icon file.
+        */        
+       TFileName* IconFileNameLC() const;
+      /**
+       * It will create new trigger;    
+       */
+      //void CreateTriggerL();
+    private:
+        /**
+         * Place value
+         * owns
+         */
+        HBufC*                              iPlace;
+        /*
+         *  location details 
+         */
+        TCoordinate&                        iTriggerLocation;
+       
+        /*
+         *  status of retrieval of place 
+         *  Not own
+         */
+        TRequestStatus*                     iStatus;
+        
+        /*
+         * object used to retrieve place details from map 
+         * Owns
+         */
+        CEvtMgmtUiMapNavigationAdapter*     iMapAdapter;
+        /*
+         * object used to retrieve place details from current location
+         * Owns
+         */
+        CEvtMgmtUiLocationServiceAdapter*   iLocationServiceAdapter;
+        /**
+          * Wait dialog launcher
+          * Owns
+          */ 
+       CEvtMgmtUiWaitDialogLauncher*        iWaitDialogLauncher;   
+       /*
+        * object used to display position settings
+        * Owns
+        */
+       CEvtMgmtUiLocSettingsLauncher*       iPosSetLauncher;
+       
+       TBool                                iIsDlgOutstanding;
+    };
+
+#endif //EVTMGMTUIPLACECOMPONENT_H_