locationlandmarksrefappfors60/Inc/LandmarksInfoContainer.h
branchRCL_3
changeset 18 870918037e16
parent 0 522cd55cc3d7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationlandmarksrefappfors60/Inc/LandmarksInfoContainer.h	Wed Sep 01 12:31:27 2010 +0100
@@ -0,0 +1,176 @@
+/*
+* 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: 
+*     See class description below
+*
+*/
+
+
+#ifndef __LANDMARKS_INFOCONTAINER_H__
+#define __LANDMARKS_INFOCONTAINER_H__
+
+
+#include <coecntrl.h>
+#include <EPos_Landmarks.h>
+#include "LandmarksInfoContainer.h"
+
+
+class CEikTextListBox;
+class CAknNavigationDecorator;
+class CAknTitlePane;
+class CAknView;
+class CLandmarksApplicationEngine;
+class CLandmarksInfoModel;
+class CPosLandmark;
+
+
+
+/**
+*  This is the landmarks container that contains a listbox with landmark's
+*  fields listed.
+*/
+class CLandmarksInfoContainer : public CCoeControl
+    {
+    public: // Constructors and destructor
+
+        /**
+        * C++ constructor.
+        *
+        * @param aView parent view
+        * @param aEngine the landmark engine
+        * @param aNaviDecorator the tab group to hide when editing landmarks
+        */
+        CLandmarksInfoContainer(
+            CAknView& aView,
+            CLandmarksApplicationEngine& aEngine,
+            CAknNavigationDecorator* aNaviDecorator);
+
+        /**
+        * Symbian 2nd phase constructor. Should be called after constructor to
+        * fully construct the object.
+        *
+        * @param aRect the rectangle this Container will be drawn to
+        */
+        void ConstructL(const TRect& aRect);
+
+        /**
+        * Destructor.
+        */
+        ~CLandmarksInfoContainer();
+
+    public: // New functions
+
+        /** Stores title pane */
+        void StoreTitlePaneL();
+
+        /** Retores title pane */
+        void RestoreTitlePane();
+
+        /**
+        * Loads specified landmark into the container
+        * @param aLandmarkId The ID of the landmark to be viewed.
+        */
+        void LoadLandmarkL(TPosLmItemId aLandmarkId);
+
+        /**
+        * Launches a dialog for editing the current landmark.
+        * Removes tabs on the navi pane before launching the dialog. Restores
+        * the navi pane after the dialog is dismissed.
+        */
+        void EditLandmarkL();
+
+    public: // from CoeControl
+
+        /**
+        * Gets the number of controls contained in a compound control
+        *
+        * @return Number of component controls
+        */
+        TInt CountComponentControls() const;
+
+        /**
+        * Gets the specified component
+        *
+        * @param aIndex specification for component pointer
+        * @return Pointer to component control
+        */
+        CCoeControl* ComponentControl(TInt aIndex) const;
+
+        /**
+        * Called by framework when the view size is changed.
+        */
+        void SizeChanged();
+
+        /**
+        * Handles key events.
+        *
+        * @param aKeyEvent the key event
+        * @param aType the type of key event
+        * @return EKeyWasConsumed if keyevent was handled, EKeyWasNotConsumed
+        * otherwise
+        */
+        TKeyResponse OfferKeyEventL(
+            const TKeyEvent& aKeyEvent, TEventCode aType);
+
+        /** Reacts to screen size change */
+        void HandleResourceChange(TInt aType);
+
+    private:
+
+        /**
+        * Creates the listbox.
+        */
+        void CreateListBoxL();
+
+        /**
+        * Updates the title bar from landmark name.
+        */
+        void UpdateTitleBarL();
+
+        /**
+        * Updates the view.
+        */
+        void UpdateL();
+
+    private: // Data
+
+        //! The control used to display landmark info.
+        CEikTextListBox* iListBox;
+
+        //! The parent view
+        CAknView& iView;
+
+        //! iEngine the application engine used for accessing landmarks
+        CLandmarksApplicationEngine& iEngine;
+
+        //! Decorates the navi pane (with navigation arrows etc)
+        CAknNavigationDecorator* iNaviDecorator;
+        
+        //! The data model for the listbox
+        CLandmarksInfoModel* iModel;
+
+        //! The landmark being viewed
+        CPosLandmark* iLandmark;
+
+        //! The title pane that is dynamically updated
+        CAknTitlePane* iTitlePane;
+
+        //! The original title that the title pane displayed before modified
+        HBufC* iOriginalTitle;
+
+        //! Fields used in the list
+        RArray<TInt> iFields;
+    };
+
+#endif // __LANDMARKS_INFOCONTAINER_H__