locationsystemui/locationsysui/locsuplsettingsui/inc/locsuplsessionview.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 25 May 2010 13:09:42 +0300
branchRCL_3
changeset 13 9c303455e256
parent 0 667063e416a2
permissions -rw-r--r--
Revision: 201019 Kit: 2010121

/*
* 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:  SUPL session UI view
*
*/

#ifndef C_LOCSUPLSESSIONVIEW_H
#define C_LOCSUPLSESSIONVIEW_H

//  System Includes
#include <data_caging_path_literals.hrh>
#include <e32base.h>
#include <aknview.h>
#include <ConeResLoader.h>

// User Includes
#include "locsuplsettingsuid.hrh"
#include "locsuplsettingseventhandler.h"

// Forward Declarations
class CLocSUPLSessionContainer;
class MLocSUPLSettingsEventHandler;
class CLocSUPLSettingsUiEngine;

// Constant Declarations
const TUid KLocSUPLSessionUiViewId = { KLOCSUPLSESSIONUIUID3 };

// Class Declaration

/**
 * SUPL server UI View. 
 */
class CLocSUPLSessionView : public CAknView
	{
    public:
        /**
         * Creates new SUPL server UI View.
         *
         * @param aEngine                   Reference to the SUPL Settings
         *                                  engine
         * @param aEventHandler			    Reference to the Event Handler
         * @return CLocSUPLSessionView*	Reference to the application view
         */                                                 
        static CLocSUPLSessionView* NewL( 
                            CLocSUPLSettingsUiEngine&       aEngine,
        					MLocSUPLSettingsEventHandler&	aEventHandler );

		/**
         * Creates new SUPL Settings UI View. Leaves the object on the 
         * Clean up stack
         *
         * @param aEngine                   Reference to the SUPL Settings
         *                                  engine          
         * @param aEventHandler			    Pointer to the Event Handler
		 * @return CLocSUPLSessionView*	Reference to the application view
         */                                                 
        static CLocSUPLSessionView* NewLC( 
                            CLocSUPLSettingsUiEngine&       aEngine,
         					MLocSUPLSettingsEventHandler&	aEventHandler );
        
		/**
		 * Destructor
		 */
		~CLocSUPLSessionView ();
		
        /**
         * Handles the Screen Size update
         */
        void HandleScreenSizeChange();
        
        /**
         * Updates the View
         */
        void UpdateView();
		
        /**
		 * Returns the Selected element. The list box model defines the
		 * enumeration that would determine the current element that has been
		 * selected
		 *
		 * @return TInt Index of the item selected
		 */
		TInt SelectedItemIndex();
		         
		/**
         * From CAknView. 
         */
		void DoActivateL( const TVwsViewId& aPrevViewId,
		 						 TUid		 aCustomMessageId,
						   const TDesC8&	 aCustomMessage);
		
		/**
         * From CAknView. 
         */
        void DoDeactivate();
 
 		/**
         * From CAknView. Returns the View Id. Should be chosen to reflect 
		 * the Implementation UID of the Plugin
         */
        TUid Id() const;

        /**
         * From CAknView. 
         */
        void HandleCommandL( TInt aCommand );
        
       /**
        * From MEikMenuObserver
        */
        void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
       
       /**
         * Sets MSK Button Group
         */	
         void ChangeMSKL();
                
	private:
		/**
 		 * C++ Overloaded Constructor
		 */
		CLocSUPLSessionView( CLocSUPLSettingsUiEngine&     aEngine,
		 					MLocSUPLSettingsEventHandler& aEventHandler );

		/**
		 * Second Phase Constructor
		 */
		void ConstructL();

        /**
        * Shows or dims help option, depending wheather help feature
        * is supported or not.
        * @param aMenuPane
        */
        void HandleHelpFeature( CEikMenuPane& aMenuPane ) const;		
		
		/**
		 * Confirmation query to delete
		 */
		TInt DeletionConfirmationQueryL( const TInt aAmount );
		
		/**
		 * Deletes the selected server/s
		 */
		void DeleteSessionL();

		
		/**
		 * Gets the ids for selected items
		 */		
		void GetSelectedItemIdsL(
		    RArray<TInt64>& aSelectedItems,
		    const CArrayFix<TInt>& aSelectedIndexes ) const;
		
	private:		
		/**
		 * Reference to the event Handler for handling UI events
		 */
		MLocSUPLSettingsEventHandler&	iEventHandler;
	
	    /**
	     * Reference to the SUPL Settings engine
	     */
	    CLocSUPLSettingsUiEngine&     	iEngine;	

		/**
		 * Container Object
		 * Owns
		 */
		CLocSUPLSessionContainer*		iContainer;
	};			

#endif // C_LOCSUPLSESSIONVIEW_H