locationsystemui/locationsysui/locsuplsettingsui/inc/locsuplsessioneditor.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 15 Mar 2010 12:42:19 +0200
branchRCL_3
changeset 7 19bff11d6c18
parent 0 667063e416a2
permissions -rw-r--r--
Revision: 201009 Kit: 201010

/*
* 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 editor
*
*/


#ifndef __LOCSUPLSESSION_EDITOR_H__
#define __LOCSUPLSESSION_EDITOR_H__


#include <AknForm.h>
#include <ConeResLoader.h>

#include "locsuplsettingssessionobserver.h"

class CAknTitlePane;
class CLocSUPLSettingsUiEngine;

/**
*  A dialog that makes it possible to edit certain fields of a supl session.
*/
class CLocSUPLSessionEditor : 
    public CAknForm, public MLocSUPLSettingsSessionObserver
    {
    public: // Constructors and destructor

        /**
 		* Static Two phase constructor that instantiates the CLocSUPLSessionEditor
		* 
        */
        static CLocSUPLSessionEditor* NewL( 
                            CLocSUPLSettingsUiEngine&       aEngine,
        					TInt64 aSessionId
		);

        /**
 		* Static Two phase constructor that instantiates the CLocSUPLSessionEditor
		* 
        */
        static CLocSUPLSessionEditor* NewLC( 
                            CLocSUPLSettingsUiEngine&       aEngine,
        					TInt64 aSessionId
		);

        /**
        * Destructor.
        */
        ~CLocSUPLSessionEditor();

    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);

        /*
         * Executes the Dialog
         */
        TInt ExecuteLD();
	
	public: // from MLocSUPLSettingsSessionObserver
	
        /*
         * Calls function to load the values into the editor fields
         */
		void UpdateSessionL( TUpdateType aType );
		
        /*
         * Returns the session id
         */
		TInt64 SessionId( );

	
    protected: // From CAknForm

		TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
		                                             TEventCode aType );
		                                             
        /**
        * 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();

        /**
        * Gets the Time String from Time(in seconds)
        */
		void GetTimeStringL(HBufC*& aTimeString, TUint aSeconds);
 
		void LineChangedL(TInt aControlId );
		
 	private:

        /** Constructor
         *
         */
        CLocSUPLSessionEditor( 
                            CLocSUPLSettingsUiEngine&       aEngine,
        					TInt64 aSessionId
		);

        void ConstructL();

	private: // new functions
        /**
         * Change title pane text
         */
		void ChangeTitlePaneTextL( TDesC& aText );
		
        /**
         * Load intial data values
         */
        void LoadFormValuesFromDataL();

		/*
		 * it toggles value of popup field
		 */        
		void TogglePopupFieldControlL( TInt aControlId );

		/*
		 * it changes the MSK caption 
		 */        
		void HandleMSKCaptionL();

		/*
		 * Confirmation query note for delete operation
		 */        
		TInt DeleteConfirmationQueryL();

    private: // Data

        //! The title pane that is dynamically updated
        CAknTitlePane* 				iTitlePane;

        //! The original title that the title pane displayed before modified
        HBufC* 						iOriginalTitle;
      	
	   	/*
	     *  help context object
   	     */
       	TCoeHelpContext         	iHelpContext;  

		/*
		 * Reference to the SUPL Settings engine
		 */
	    CLocSUPLSettingsUiEngine&	iEngine;	
	    
	    /**
         * SUPL Session unique Id.
         */
        TInt64						iSessionId;

		/*
		 * Reference to the SUPL Settings engine
		 * Own:
		 */
	    HBufC*	iSessionName;
    };

#endif // __LOCSUPLSESSION_EDITOR_H__