videditor/ManualVideoEditor/inc/FileNameSettingItem.h
author Mikael Laine <mikael.laine@ixonos.com>
Fri, 29 Jan 2010 14:08:33 +0200
changeset 0 951a5db380a0
permissions -rw-r--r--
Committing the Video Editor package under the Eclipse Public License

/*
* Copyright (c) 2010 Ixonos Plc.
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the "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:
* Ixonos Plc
*
* Description:  
*
*/



#ifndef __FILENAMESETTINGITEM_H__
#define __FILENAMESETTINGITEM_H__

//  INCLUDES
#include <aknsettingitemlist.h>

// CONSTANTS
_LIT( KCharColon, ":" ); // Illegal character for filename.
const TText KCharDot = '.'; // Dot character.

// CLASS DECLARATION

/**
 * Custom setting item for filename. Filename validity is checked.
 */
class CFileNameSettingItem: public CAknTextSettingItem
{
public:
    // Constructor and destructor

    /**
     * Constructor. 
     *
     * @param aIdentifier Resource identifier for this setting item.
     * @param aText Setting text.
     * @param aIllegalFilenameTextResourceID Resource identifier for 
     *        warning note text.
     * @param aUnsuitableFilenameTextResourceID Resource identifier for
     *        warning note text.
     */
    CFileNameSettingItem( TInt aIdentifier, 
                          TDes& aText, 
                          TInt aIllegalFilenameTextResourceID, 
                          TInt aUnsuitableFilenameTextResourceID );

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

public:
    // Functions from base classes

    /**
     * From <code>MAknSettingPageObserver</code>, handles events reported
     * by the setting page.
     *
     * @param aSettingPage Notified setting page.
     * @param aEventType Occured event type.
     */
    void HandleSettingPageEventL( CAknSettingPage* aSettingPage,
                                 TAknSettingPageEvent aEventType );

    /**
     * From <code>CAknTextSettingItem</code>, this launches the setting
     * page for text editing.
     *
     * @param aCalledFromMenu Ignored in this and under laying
     *        <code>CAknTextSettingItem</code> class.
     */
    void EditItemL( TBool aCalledFromMenu );

private:
    // Data

    /**
     * The text in editor before editing is started.
     */
    HBufC* iTextBeforeEditing;

    /**
     * Indicates whether ok is pressed and the file name is incorrect.
     */
    TBool iInvalidFilenameOked;

    /**
     * Resource identifier for illegal file name string.
     */
    TInt iIllegalFilenameTextResourceID;

    /**
     * Resource identifier for unsuitable file name string.
     */
    TInt iUnsuitableFilenameTextResourceID;

};
#endif // __FILENAMESETTINGITEM_H__

// End of File