williamr@2: /* williamr@2: * Copyright (c) 2002-2006 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@2: * under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: * which accompanies this distribution, and is available williamr@2: * at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: Dialog used to prompt filename. williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: #ifndef CAKNFILENAMEPROMPTDIALOG_H williamr@2: #define CAKNFILENAMEPROMPTDIALOG_H williamr@2: williamr@2: // INCLUDES williamr@2: #include williamr@2: williamr@2: // FORWARD DECLARATIONS williamr@2: class MAknFileSelectionObserver; williamr@2: williamr@2: // CLASS DEFINITION williamr@2: /** williamr@2: * A class that launches a pop-up dialog for filename prompting. williamr@2: * williamr@2: * @lib CommonDialogs.lib williamr@2: * @since 1.2 williamr@2: */ williamr@2: NONSHARABLE_CLASS(CAknFileNamePromptDialog) : public CAknCommonDialogsBase williamr@2: { williamr@2: public: // Constructors and destructors williamr@2: williamr@2: /** williamr@2: * Static constructor. williamr@2: * Creates Filename Prompt Dialog with default values. williamr@2: * @return Returns a pointer to an instance of itself. williamr@2: */ williamr@2: IMPORT_C static CAknFileNamePromptDialog* NewL(); williamr@2: williamr@2: /** williamr@2: * Static constructor. williamr@2: * @param aResourceId A resource id (FILENAMEPROMPTDIALOG). williamr@2: * @return Returns a pointer to an instance of itself. williamr@2: */ williamr@2: IMPORT_C static CAknFileNamePromptDialog* NewL( TInt aResourceId ); williamr@2: williamr@2: IMPORT_C ~CAknFileNamePromptDialog(); williamr@2: williamr@2: public: // New functions williamr@2: williamr@2: /** williamr@2: * Sets path from which is checked if a file already exists. williamr@2: * @param aPath Full path with trailing backslash. williamr@2: */ williamr@2: IMPORT_C void SetPathL( const TDesC& aPath ); williamr@2: williamr@2: /** williamr@2: * Sets an observer which is asked if if the filename user inputs williamr@2: * can be accepted. williamr@2: * @param aObserver A pointer to an observer (implemented in an application). williamr@2: */ williamr@2: IMPORT_C void SetObserver( MAknFileSelectionObserver* aObserver ); williamr@2: williamr@2: /** williamr@2: * Sets prompt text (title) for dialog. williamr@2: * @param aText Title text. williamr@2: */ williamr@2: IMPORT_C void SetTitleL( const TDesC& aText ); williamr@2: williamr@2: /** williamr@2: * Sets the text used for left softkey. williamr@2: * @param aText The text used for left softkey. williamr@2: */ williamr@2: IMPORT_C void SetLeftSoftkeyL( const TDesC& aText ); williamr@2: williamr@2: /** williamr@2: * Sets the text used for right softkey. williamr@2: * @param aText The text used for right softkey. williamr@2: */ williamr@2: IMPORT_C void SetRightSoftkeyL( const TDesC& aText ); williamr@2: williamr@2: /** williamr@2: * Executes the filename prompt dialog. williamr@2: * @param aFileName A reference to filename. williamr@2: * If parameter is set, it is used as default filename. williamr@2: * @return Returns true if user has accepted filename and false williamr@2: * if user hits cancel. williamr@2: */ williamr@2: IMPORT_C TBool ExecuteL( TDes& aFileName ); williamr@2: williamr@2: /** williamr@2: * A static method for launching a filename prompt dialog. williamr@2: * Parameters are described in method RunL williamr@2: */ williamr@2: IMPORT_C static TBool RunDlgLD( TDes& aFileName, williamr@2: const TDesC& aPath, williamr@2: MAknFileSelectionObserver* aObserver = NULL ); williamr@2: williamr@2: /** williamr@2: * A static method for launching a filename prompt dialog. williamr@2: * Parameters are described in method RunL williamr@2: */ williamr@2: IMPORT_C static TBool RunDlgLD( TDes& aFileName, williamr@2: const TDesC& aPath, williamr@2: const TDesC& aTitle, williamr@2: MAknFileSelectionObserver* aObserver = NULL ); williamr@2: williamr@2: /** williamr@2: * A static method for launching a filename prompt dialog. williamr@2: * Parameters are described in method RunL williamr@2: */ williamr@2: IMPORT_C static TBool RunDlgLD( TDes& aFileName, williamr@2: const TDesC& aPath, williamr@2: TInt aResourceId, williamr@2: MAknFileSelectionObserver* aObserver = NULL ); williamr@2: williamr@2: /** williamr@2: * A method for use this dialog for renaming file williamr@2: * williamr@2: * @param aFileName File name user input williamr@2: * @return Returns true if user has accepted filename and false williamr@2: * if user hits cancel. williamr@2: * @since 3.2 williamr@2: */ williamr@2: IMPORT_C TBool RenameL( TDes& aFileName ); williamr@2: private: // New functions williamr@2: williamr@2: /** williamr@2: * A static method for launching a filename prompt dialog. williamr@2: * Method is called from a RunDlgLD method with correct parameters. williamr@2: * @param aResourceId A resource id (FILENAMEPROMPTDIALOG). williamr@2: * @param aFileName A reference to a filename as described in ExecuteL. williamr@2: * @param aPath Full path with trailing backslash. williamr@2: * @param aTitle The text for title. williamr@2: * @param aObserver An observer which is assigned to NULL by default. williamr@2: */ williamr@2: static TBool RunL( williamr@2: TInt aResourceId, williamr@2: TDes& aFileName, williamr@2: const TDesC& aPath, williamr@2: const TDesC& aTitle, williamr@2: MAknFileSelectionObserver* aObserver ); williamr@2: williamr@2: /** williamr@2: * Sets default CFD resource id. williamr@2: */ williamr@2: void SetResourceId( TInt& aResourceId ) const; williamr@2: williamr@2: /** williamr@2: * Reads settings from resource. williamr@2: */ williamr@2: void ReadFromResourceL( TInt aResourceId ); williamr@2: williamr@2: /** williamr@2: * Handle file name dialog for both creating and renaming williamr@2: * @param aFileName File name user input williamr@2: * @param aIfRename True for renaming; False for creating williamr@2: * @return Returns true if user has accepted filename and false williamr@2: * if user hits cancel. williamr@2: * @since 3.2 williamr@2: */ williamr@2: TBool ShowDialogL( TDes& aFilename, TBool aIfRename ); williamr@2: private: // Constructors and destructors williamr@2: williamr@2: /** williamr@2: * Second phase construct from resource. williamr@2: * @param aResourceId A resource id (FILENAMEPROMPTDIALOG). williamr@2: */ williamr@2: void ConstructFromResourceL( TInt aResourceId ); williamr@2: williamr@2: CAknFileNamePromptDialog(); williamr@2: williamr@2: protected: // Data williamr@2: williamr@2: // Ref: observer williamr@2: MAknFileSelectionObserver* iObserver; williamr@2: williamr@2: // Own: Descriptor for default filename williamr@2: HBufC* iDefaultFileName; williamr@2: williamr@2: // Own: Descriptor for path williamr@2: HBufC* iPath; williamr@2: williamr@2: // Own: Descriptor for window title williamr@2: HBufC* iTitle; williamr@2: williamr@2: // Own: Descriptor for left softkey williamr@2: HBufC* iLeftSoftkey; williamr@2: williamr@2: // Own: Descriptor for right softkey williamr@2: HBufC* iRightSoftkey; williamr@2: }; williamr@2: williamr@2: #endif // CAKNFILENAMEPROMPTDIALOG_H williamr@2: williamr@2: // End of File