williamr@2: /*
williamr@2: * Copyright (c) 2004-2007 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:  ?Description
williamr@2: *
williamr@2: */
williamr@2: 
williamr@2: 
williamr@2: #ifndef AKNSRLPARAMETER_H
williamr@2: #define AKNSRLPARAMETER_H
williamr@2: 
williamr@2: /**
williamr@2: * Parameter type enumeration.
williamr@2: *
williamr@2: * @since 2.8
williamr@2: */
williamr@2: enum TAknsRlParameterType
williamr@2:     {
williamr@2:     EAknsRlParameterTypeNumber    = 0,
williamr@2:     EAknsRlParameterTypeString    = 1,
williamr@2:     EAknsRlParameterTypeGraphics  = 2
williamr@2:     };
williamr@2: 
williamr@2: /**
williamr@2: * Content structure for graphics parameters.
williamr@2: *
williamr@2: * @since 2.8
williamr@2: */
williamr@2: struct TAknsRlGraphicsParam 
williamr@2:     {
williamr@2:     const TDesC16* iFilename;
williamr@2:     TInt iIndex;
williamr@2:     TInt iMaskIndex;
williamr@2:     };
williamr@2: 
williamr@2: /**
williamr@2: * Parameter data structure.
williamr@2: *
williamr@2: * @since 2.8
williamr@2: */
williamr@2: struct TAknsRlParameterData
williamr@2:     {
williamr@2:     /**
williamr@2:     * Name (key) of the parameter.
williamr@2:     * No ownership is vested in this structure.
williamr@2:     * Guaranteed to be non-null.
williamr@2:     *
williamr@2:     * @since 2.8
williamr@2:     */
williamr@2:     const TDesC16* iName;
williamr@2: 
williamr@2:     /**
williamr@2:     * Type of the parameter.
williamr@2:     *
williamr@2:     * @since 2.8
williamr@2:     */
williamr@2:     TAknsRlParameterType iType;
williamr@2: 
williamr@2:     union {
williamr@2:         /**
williamr@2:         * Value of a number parameter.
williamr@2:         * This field is only valid in number parameters.
williamr@2:         *
williamr@2:         * @since 2.8
williamr@2:         */
williamr@2:         TInt iNumber;
williamr@2: 
williamr@2:         /**
williamr@2:         * Value of a string parameter.
williamr@2:         * No ownership is vested in this structure.
williamr@2:         * This field is only valid in string parameters, and guaranteed
williamr@2:         * to be non-null for them.
williamr@2:         *
williamr@2:         * @since 2.8
williamr@2:         */
williamr@2:         const TDesC16* iString;
williamr@2: 
williamr@2:         /**
williamr@2:         * Value of a graphics parameter.
williamr@2:         * No ownership is vested in this structure.
williamr@2:         * This field is only valid in graphics parameters, and guaranteed
williamr@2:         * to be non-null for them.
williamr@2:         *
williamr@2:         * @since 2.8
williamr@2:         */
williamr@2:         const TAknsRlGraphicsParam* iGfx;
williamr@2:         
williamr@2:         };
williamr@2:     };
williamr@2: 
williamr@2: // FORWARD DECLARATIONS
williamr@2: 
williamr@2: // CLASS DECLARATION
williamr@2: 
williamr@2: /**
williamr@2: * Interface to skin effect parameter iterator.
williamr@2: *
williamr@2: * @since 2.8
williamr@2: */
williamr@2: class MAknsRlParameterIterator
williamr@2:     {
williamr@2:     public: // Constructors and destructor
williamr@2: 
williamr@2:         /**
williamr@2:         * Destructor for internal use.
williamr@2:         *
williamr@2:         * Destructor is reserved for internal use. Client code usually does
williamr@2:         * not destroy iterators.
williamr@2:         */
williamr@2:         inline virtual ~MAknsRlParameterIterator() {}
williamr@2: 
williamr@2:     public: // New functions
williamr@2: 
williamr@2:         /**
williamr@2:         * Checks whether there are more parameters available.
williamr@2:         *
williamr@2:         * @return @c ETrue if subsequent @c GetNextL should succeed,
williamr@2:         *   @c EFalse if @c GetNextL must not be called anymore.
williamr@2:         *
williamr@2:         * @since 2.8
williamr@2:         */
williamr@2:         virtual TBool HasNext() =0;
williamr@2: 
williamr@2:         /**
williamr@2:         * Gets the next parameter.
williamr@2:         *
williamr@2:         * @return Pointer to the parameter data. The ownership is not
williamr@2:         *   transferred. The data is guaranteed to be valid until
williamr@2:         *   the next call to @c HasNext, @c NextL, or the iterator is
williamr@2:         *   destroyed.
williamr@2:         *
williamr@2:         * @since 2.8
williamr@2:         */
williamr@2:         virtual const TAknsRlParameterData* NextL() =0;
williamr@2:     };
williamr@2: 
williamr@2: #endif // AKNSRLPARAMETER_H
williamr@2:             
williamr@2: // End of File