browserui/browser/FeedsInc/FeedsEditFolderDialog.h
author Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com>
Mon, 30 Mar 2009 12:49:49 +0300
changeset 0 84ad3b177aa3
permissions -rw-r--r--
Revision: 200911 Kit: 200912

/*
* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "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:  Encapsulates a edit folder dialog.
*
*/


#ifndef FEEDS_EDIT_FOLDER_DIALOG_H
#define FEEDS_EDIT_FOLDER_DIALOG_H


// INCLUDES
#include <aknform.h>

// CONSTANTS

// MACROS

// DATA TYPES

// FUNCTION PROTOTYPES

// FORWARD DECLARATIONS
class CAknViewAppUi;

// CLASS DECLARATION


/**
*  The observer interface for the edit folder dialog.
*  @lib FeedsEngine.lib
*  @since 3.0
*/
class MFeedsEditFolderDialogObserver
    {
    public:
        /**
        * Called when a folder's name is changed -- this is called 
        * after IsValidFolderName is called.
        *
        * @since 3.0
        * @param aName The folder's new name.
        * @return void.
        */
        virtual void UpdateFolderL(const TDesC& aName) = 0;

        /**
        * Called when a new folder is created -- this is called 
        * after IsValidFolderName is called.
        *
        * @since 3.0
        * @param aName The folder's new name.
        * @return void.
        */
        virtual void NewFolderL(const TDesC& aName) = 0;

        /**
        * Validates the folder's updated name.
        *
        * @since 3.0
        * @param aName The folder's new name.
        * @param aIsEditing True if the edit dialog was opened to edit a folder.        
        * @return ETrue if the value is valid.
        */
        virtual TBool IsFolderNameValidL(const TDesC* aName, TBool aIsEditing) = 0;
    };


/**
*  Encapsulates a edit folder dialog.
*  @lib FeedsEngine.lib
*  @since 3.0
*/
class CFeedsEditFolderDialog: public CAknForm
	{
	public:
        /**
        * Two-phased constructor.
        */
		static CFeedsEditFolderDialog* NewL(MFeedsEditFolderDialogObserver& aObserver,
        		CAknViewAppUi* aAppUi,
                const TDesC& aName);

        /**
        * Two-phased constructor.
        */
		static CFeedsEditFolderDialog* NewL(MFeedsEditFolderDialogObserver& aObserver,
            CAknViewAppUi* aAppUi);

        /**
        * Destructor.
        */        
        virtual ~CFeedsEditFolderDialog();


	public:  // From CAknForm
        /**
        * Called to setup the options menu with the dialog is active.
        *
        * @since ?
        * @param aResourceId  The resource id of the menu.
        * @param aMenuPane The menu.
        * @return void.
        */
		virtual void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane);

        /**
        * Called by the framework whenver the 'Save' menu item is selected.
        *
        * @since ?
		* @return ETrue if the form data has been saved, otherwise EFalse.
        */
		virtual TBool SaveFormDataL(); 

        /**
        * Called by the framework before the form is initialised.
        *
        * @since ?
		* @return void.
        */
		virtual void PreLayoutDynInitL();

        /**
        * Called by the framework to process the options menu.
        *
        * @since ?
        * @param aCommandId  The command.
		* @return void.
        */
        virtual void ProcessCommandL(TInt aCommandId);


	private:  // New methods
        /**
        * C++ default constructor.
        */
		CFeedsEditFolderDialog(MFeedsEditFolderDialogObserver& aObserver,
                CAknViewAppUi* aAppUi,
                const TDesC& aName);

		/**
		* Loads the form data before the form is displayed.
        *
        * @since ?
		* @return ETrue if the form data has been saved, otherwise EFalse.
        */
		void LoadFormValuesFromDataL();


	private:
        MFeedsEditFolderDialogObserver&  iObserver;
        CAknViewAppUi*              iAppUi;   // not owned
        TBool                       iIsNewFolder;
        TBool                       iExitDialog;

        const TDesC&                iName;
	};

#endif      // FEEDS_EDIT_FOLDER_DIALOG_H
            
// End of File