homesync/contentmanager/mediaservant/inc/mssettingitems.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 08:52:00 +0200
changeset 0 7f85d04be362
permissions -rw-r--r--
Revision: 200947 Kit: 200951

/*
* 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:  Definition for MediaServant fill rule editor class
*
*/


#ifndef C_MSSETTINGITEMS_H
#define C_MSSETTINGITEMS_H

#include <aknsettingitemlist.h>

// CLASS DECLARATIONS

/**
 * CMSTextSettingItem
 * Text setting item class
 *
 * @Since S60 5.1
 */
class CMSTextSettingItem : public CAknTextSettingItem
    {
    public:
        /**
         * Constructor
         *
         * @Since S60 5.1
         * @param aIdentifier, resource id
         * @param aText, setting item text
         * @return None
         */
        CMSTextSettingItem( TInt aIdentifier, TDes& aText );
    
    protected:
    
// From base class MAknSettingPageObserver
    
        /**
         * From MAknSettingPageObserver
         * See base class definition
         */
        void  HandleSettingPageEventL ( CAknSettingPage* aSettingPage,
                                        TAknSettingPageEvent aEventType );
    public:
    
        /* Setting page acceptance status
         * @since S60 5.1
         * @param None
         * @return TBool, ETrue if accepted EFalse if cancelled
         */
        TBool SettingAccepted();
        
        /**
         * Sets setting page accept state
         * @since S60 5.1
         * @param aState, ETrue if accepted
         * @return None
         */
        void SetAcceptState( TBool aState );

        /**
         * Gets settingitem text
         * @since S60 5.1
         * @param None
         * @return TPtr&, setting item text
         */
        TPtr& Text(); 

        /**
         * Sets settingitem text
         * @since S60 5.1
         * @param text, new text
         * @return None
         */
        void SetText( TDesC& text );

    private:

        /*
         * Setting page acceptance status
         */
        TBool iOKPressed;
    };

/**
 * CMSEnumeratedTextPopupSettingItem
 * Enumerated text popup setting item class
 *
 * @Since S60 5.1 
 */
class CMSEnumeratedTextPopupSettingItem : 
    public CAknEnumeratedTextPopupSettingItem
    {
    public:

        /*
         * Constructor
         *
         * @Since S60 5.1
         * @param aIdentifier, resource id
         * @param aValue, selected value
         * @return None
         */
        CMSEnumeratedTextPopupSettingItem( TInt aResourceId, TInt& aValue );

    protected:

// From base class MAknSettingPageObserver

        /**
         * From MAknSettingPageObserver
         * See base class definition
         */
        void  HandleSettingPageEventL ( CAknSettingPage* aSettingPage,
                                        TAknSettingPageEvent aEventType );
    public:
        /* Setting page acceptance status
         * @since S60 5.1
         * @return TBool, ETrue if accepted EFalse if cancelled
         */
        TBool SettingAccepted();

        /**
         * Sets setting page accept state
         * @since S60 5.1
         * @param aState, ETrue if accepted
         */
        void SetAcceptState( TBool aState );

    private:
        /*
         * Setting page acceptance status
         */
        TBool iOKPressed;
    };

/**
 * CMSTimeOrDateSettingItem
 * Time and date setting item class
 *
 * @since S60 5.1
 */
class CMSTimeOrDateSettingItem : public CAknTimeOrDateSettingItem
    {
    public:
        /*
         * Constructor
         *
         * @Since S60 5.1
         * @param aIdentifier, resource id
         * @param aMode, time or date mode
         * @param aTime, time value
         * @return None
         */
        CMSTimeOrDateSettingItem( TInt aCMSIdentifier,
            TInt aIdentifier,
            CAknTimeOrDateSettingItem::TAknTimeOrDateSettingItemMode aMode,
            TTime& aTime );
            
    protected:
    
// From base class MAknSettingPageObserver
        
        /**
         * From MAknSettingPageObserver
         * See base class definition
         */
        void  HandleSettingPageEventL ( CAknSettingPage* aSettingPage,
                                        TAknSettingPageEvent aEventType );
    public:
        /* Setting page acceptance status
         * @since S60 5.1
         * @return TBool, ETrue if accepted EFalse if cancelled
         */
        TBool SettingAccepted();

        /**
         * Sets setting page accept state
         * @since S60 5.1
         * @param aState, ETrue if accepted
         */
        void SetAcceptState( TBool aState );
   
        /**
         * This launches the setting page for Time or Date editing
         * @since S60 5.1
         * @param aState, ETrue if from menu called
         */  
        void EditItemL( TBool aCalledFromMenu );   

    private:
        /*
         * Setting page acceptance status
         */
        TBool  iOKPressed;
        /*
         * Internal time
         */
        TTime& iCMSInternalTime;
        /*
         * Resource identifier(From / Util)
         */
         TInt  iCMSIdentifier;
         
    };

#endif // C_MSSETTINGITEMS_H