presencesettingsui/inc/psuigspluginsettingview.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 02 Feb 2010 01:05:17 +0200
changeset 0 c8caa15ef882
permissions -rw-r--r--
Revision: 201003 Kit: 201005

/*
* Copyright (c) 2006 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:    Presence Settings UI's setting view.
*
*/




#ifndef PSUIGSPLUGINSETTINGVIEW_H
#define PSUIGSPLUGINSETTINGVIEW_H

//  INCLUDES
#include <aknview.h>

// FORWARD DECLARATIONS
class CPSUIGSPluginContainer;
class CPSUIGSPluginSettingViewContainer;
class CPSUIGSPlugin;

const TUid KPreSettingViewId = {313};

// CLASS DECLARATION

/**
* Header of CPSUIGSPluginSettingView.
*
* @lib PSUIGSPlugin.lib
* @since Series60_3.2
*/
class CPSUIGSPluginSettingView : 
    public CAknView
    {
    
    public: // Constructors and destructor
            
        /**
        * Symbian OS two-phased constructor
        */
        static CPSUIGSPluginSettingView* NewL( CPSUIGSPlugin* aMainView );
    
        /**
        * Destructor.
        */
        ~CPSUIGSPluginSettingView();

    private: // Functions from base classes
                
        /**
        * From CAknView
        * See base class.
        */
        TUid Id() const;

        /**
        * From CAknView
        * See base class.
        */
        void DoActivateL( const TVwsViewId& aPrevViewId,
                          TUid aCustomMessageId,
                          const TDesC8& aCustomMessage );
        
        /**
        * From CAknView
        * See base class.
        */
        void DoDeactivate();
        
        /**
        * From CAknView
        * See base class.
        */
        void HandleCommandL( TInt aCommand );
        
        /**
        * From CAknView
        * See base class.
        */
        void HandleViewRectChange();
    
    public : // New

        /**
        * Gives a handle to plugin main view. Ownership is not transferred.
        *
        * @return handle to plugin main view
        */          
        CPSUIGSPlugin* MainView();
        
        /**
        * Uses model to check if name is a duplicate and if it
        * is shows a note.
        *
        * @return TBool about if duplicates were found
        */  
        TBool HandleDuplicatePSNamesL();
    
    private: // New
    
        /**
        * Creates the setting view container
        *
        * @param none
        */
        void CreateContainerL();

        /**
        * Handles back-key presses. Checks if all compulsory
        * fields are filled and if there is duplicates. Based on
        * this saves and switches view back to main view.
        */  
        void HandleBackKeyL();
        
        /**
        * Handles saving funtionality when Exit is chosen from Menu. 
        * Checks if all compulsory fields are filled and in case of 
        * duplicate changes name, after this saves settings.
        */
        void HandleMenuExitL();
        
    private: // Constructors

        /**
        * C++ default constructor.
        */
        CPSUIGSPluginSettingView( CPSUIGSPlugin* aMainView );

        /**
        * Symbian OS default constructor.
        */
        void ConstructL();

    private: // Data
    
        // Previous view ID
        TVwsViewId iPrevViewId;  
        // Pointer to application UI.
        CAknViewAppUi* iAppUi;        
        // Presence setting view container
        CPSUIGSPluginSettingViewContainer* iPSUIContainer;
        // Handle to main view        
        CPSUIGSPlugin* iMainView; // not owned
    };

#endif // PSUIGSPLUGINSETTINGVIEW_H
// End of File