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@4: * under the terms of "Eclipse Public License v1.0" williamr@2: * which accompanies this distribution, and is available williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.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