epoc32/include/mw/AknsItemData.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
williamr@4
     1
/*
williamr@4
     2
* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
williamr@4
     3
* All rights reserved.
williamr@4
     4
* This component and the accompanying materials are made available
williamr@4
     5
* under the terms of "Eclipse Public License v1.0"
williamr@4
     6
* which accompanies this distribution, and is available
williamr@4
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
williamr@4
     8
*
williamr@4
     9
* Initial Contributors:
williamr@4
    10
* Nokia Corporation - initial contribution.
williamr@4
    11
*
williamr@4
    12
* Contributors:
williamr@4
    13
*
williamr@4
    14
* Description:  Defines public item data classes.
williamr@4
    15
*
williamr@4
    16
*/
williamr@4
    17
williamr@4
    18
williamr@4
    19
#ifndef AKNSITEMDATA_H
williamr@4
    20
#define AKNSITEMDATA_H
williamr@4
    21
williamr@4
    22
// INCLUDES
williamr@4
    23
#include <AknsItemID.h>
williamr@4
    24
#include <AknsRlEffect.h>
williamr@4
    25
#include <gdi.h>
williamr@4
    26
williamr@4
    27
// FORWARD DECLARATIONS
williamr@4
    28
class CFbsBitmap;
williamr@4
    29
struct TAknsAppIconInfo;
williamr@4
    30
struct TAknsImageAttributeData;
williamr@4
    31
struct TAknsColorTableEntry;
williamr@4
    32
struct TAknsBmpAnimFrameInfo;
williamr@4
    33
class CAknsEffectParameter;
williamr@4
    34
class MAknsRlCommandIterator;
williamr@4
    35
class MAknsAlIterator;
williamr@4
    36
class CAknsNamedReference;
williamr@4
    37
class CAknsSizeBoundParameter;
williamr@4
    38
struct TAknsAlAnimationCommandData;
williamr@4
    39
struct TAknsAlTimingModelData;
williamr@4
    40
struct TAknsAlAnimationValueData;
williamr@4
    41
struct TAknsAlNamedReferenceData;
williamr@4
    42
struct TAknsAlSizeBoundParameterData;
williamr@4
    43
williamr@4
    44
// CLASS DECLARATIONS
williamr@4
    45
williamr@4
    46
/**
williamr@4
    47
* Base class for item data classes.
williamr@4
    48
* Item data encapsulates type information and resource instance (such as 
williamr@4
    49
* CFbsBitmap object) of a specific skin item. Since actual data entries vary 
williamr@4
    50
* depending on the type of the item, CAknsItemData contains only type 
williamr@4
    51
* information and can not be instantiated. 
williamr@4
    52
*
williamr@4
    53
* This is a public class with exported functions.
williamr@4
    54
* The class is not intended for derivation outside the library.
williamr@4
    55
*
williamr@4
    56
* @lib AknSkins.lib
williamr@4
    57
*
williamr@4
    58
* @since 2.0
williamr@4
    59
*/
williamr@4
    60
NONSHARABLE_CLASS(CAknsItemData) : public CBase
williamr@4
    61
    {
williamr@4
    62
    public:  // Constructors and destructor
williamr@4
    63
                
williamr@4
    64
        /**
williamr@4
    65
        * Destructor.
williamr@4
    66
        * CAknsItemData itself has no dynamically allocated members, but
williamr@4
    67
        * derived classes may have them.
williamr@4
    68
        */
williamr@4
    69
        virtual ~CAknsItemData();
williamr@4
    70
williamr@4
    71
    public: // New functions
williamr@4
    72
williamr@4
    73
        /**
williamr@4
    74
        * Sets the perceived type of this item without affecting the
williamr@4
    75
        * real instance inheritance.
williamr@4
    76
        *
williamr@4
    77
        * @since 2.8
williamr@4
    78
        *
williamr@4
    79
        * @internal
williamr@4
    80
        *
williamr@4
    81
        * @param aType New type.
williamr@4
    82
        */
williamr@4
    83
        void SetType( const TAknsItemType aType );
williamr@4
    84
        
williamr@4
    85
        /**
williamr@4
    86
        * Returns the type of the item data object. 
williamr@4
    87
        * This method can be used to provide run-time type information.
williamr@4
    88
        * Corresponding classes are listed in definition of ::TAknsItemType.
williamr@4
    89
        *
williamr@4
    90
        * @since 2.0
williamr@4
    91
        *
williamr@4
    92
        * @return Type of the item data as TAknsItemType.
williamr@4
    93
        */
williamr@4
    94
        IMPORT_C TAknsItemType Type() const;
williamr@4
    95
williamr@4
    96
    protected: // C++ protected constructor for derived classes
williamr@4
    97
                
williamr@4
    98
        /**
williamr@4
    99
        * C++ constructor for derived classes.
williamr@4
   100
        * Constructs item data object with given item type.
williamr@4
   101
        *
williamr@4
   102
        * @param aType Item type of the new item data object.
williamr@4
   103
        *
williamr@4
   104
        * @internal
williamr@4
   105
        */
williamr@4
   106
        CAknsItemData( const TAknsItemType aType );    
williamr@4
   107
    
williamr@4
   108
    protected:  // Data
williamr@4
   109
williamr@4
   110
        TAknsItemType iType;    //!< Type of the item data object.
williamr@4
   111
williamr@4
   112
    };
williamr@4
   113
williamr@4
   114
/**
williamr@4
   115
* Image item data.
williamr@4
   116
* Image item data contains (in addition to base class members) image 
williamr@4
   117
* attributes, such as size or alignment. Item type for image item data
williamr@4
   118
* objects is ::EAknsITImage.
williamr@4
   119
*
williamr@4
   120
* This is a public class with exported functions.
williamr@4
   121
* The class is not intended for derivation outside the library.
williamr@4
   122
*
williamr@4
   123
* @lib AknSkins.lib
williamr@4
   124
*
williamr@4
   125
* @since 2.0
williamr@4
   126
*/
williamr@4
   127
NONSHARABLE_CLASS(CAknsImageItemData) : public CAknsItemData
williamr@4
   128
    {
williamr@4
   129
    public:  // Constructors and destructor
williamr@4
   130
                
williamr@4
   131
        /**
williamr@4
   132
        * Destructor.        
williamr@4
   133
        */
williamr@4
   134
        virtual ~CAknsImageItemData();
williamr@4
   135
williamr@4
   136
    public: // New functions
williamr@4
   137
williamr@4
   138
        /**
williamr@4
   139
        * Sets the image attributes for this image item data object.
williamr@4
   140
        *
williamr@4
   141
        * @since 2.0
williamr@4
   142
        *
williamr@4
   143
        * @param aAttributes Attribute data structure containing the new 
williamr@4
   144
        *   values.
williamr@4
   145
        */
williamr@4
   146
        IMPORT_C void SetAttributesL( 
williamr@4
   147
            const TAknsImageAttributeData& aAttributes );
williamr@4
   148
        
williamr@4
   149
        /**
williamr@4
   150
        * Returns a pointer to the image attribute structure owned by the
williamr@4
   151
        * item data object.
williamr@4
   152
        *
williamr@4
   153
        * @since 2.0
williamr@4
   154
        *
williamr@4
   155
        * @return Pointer to the image attribute structure, or @c NULL if
williamr@4
   156
        *   there is none.
williamr@4
   157
        */
williamr@4
   158
        IMPORT_C const TAknsImageAttributeData* Attributes() const;
williamr@4
   159
williamr@4
   160
        IMPORT_C void SetParentIID(const TAknsItemID& aIID);
williamr@4
   161
        IMPORT_C void SetDrawRect(const TRect& aRect);
williamr@4
   162
        IMPORT_C TAknsItemID ParentIID();
williamr@4
   163
        IMPORT_C TRect DrawRect();
williamr@4
   164
williamr@4
   165
williamr@4
   166
    protected: // C++ protected constructor for derived classes
williamr@4
   167
                
williamr@4
   168
        /**
williamr@4
   169
        * C++ constructor for derived classes.
williamr@4
   170
        * Constructs an image item data object with given item type.
williamr@4
   171
        *
williamr@4
   172
        * @param aType Item type of the new item data object.
williamr@4
   173
        *
williamr@4
   174
        * @internal
williamr@4
   175
        */
williamr@4
   176
        CAknsImageItemData( const TAknsItemType aType );
williamr@4
   177
    
williamr@4
   178
    protected:  // Data
williamr@4
   179
williamr@4
   180
        TAknsImageAttributeData* iAttributeData;
williamr@4
   181
        TAknsItemID iParentIID;
williamr@4
   182
        TRect iDrawRect;
williamr@4
   183
williamr@4
   184
    
williamr@4
   185
    };
williamr@4
   186
williamr@4
   187
/**
williamr@4
   188
* Bitmap item data.
williamr@4
   189
* Bitmap item data contains (in addition to base class members) CFbsBitmap
williamr@4
   190
* instance of the bitmap. Item type for bitmap item data is always 
williamr@4
   191
* ::EAknsITBitmap.
williamr@4
   192
*
williamr@4
   193
* This is a public class with exported functions.
williamr@4
   194
* The class is not intended for derivation outside the library.
williamr@4
   195
*
williamr@4
   196
* @lib AknSkins.lib
williamr@4
   197
*
williamr@4
   198
* @since 2.0
williamr@4
   199
*/
williamr@4
   200
NONSHARABLE_CLASS(CAknsBitmapItemData) : public CAknsImageItemData
williamr@4
   201
    {
williamr@4
   202
    public:  // Constructors and destructor
williamr@4
   203
            
williamr@4
   204
        /**
williamr@4
   205
        * Two-phased constructor.
williamr@4
   206
        * Constructs a new CAknsBitmapItemData object with bitmap set to
williamr@4
   207
        * @c NULL. Bitmap must be set afterwards by using 
williamr@4
   208
        * SetBitmap(CFbsBitmap* aBitmap) method.
williamr@4
   209
        *
williamr@4
   210
        * @return Newly constructed CAknsBitmapItemData object.
williamr@4
   211
        *
williamr@4
   212
        * @par Exceptions:
williamr@4
   213
        *   If allocation fails, function leaves with a system-wide error
williamr@4
   214
        *   code.
williamr@4
   215
        */
williamr@4
   216
        IMPORT_C static CAknsBitmapItemData* NewL();
williamr@4
   217
        
williamr@4
   218
        /**
williamr@4
   219
        * Destructor.
williamr@4
   220
        * Deletes bitmap object, if present.
williamr@4
   221
        */
williamr@4
   222
        virtual ~CAknsBitmapItemData();
williamr@4
   223
williamr@4
   224
    public: // New functions
williamr@4
   225
        
williamr@4
   226
        /**
williamr@4
   227
        * Sets the bitmap object for this item data instance.
williamr@4
   228
        *
williamr@4
   229
        * @since 2.0
williamr@4
   230
        *
williamr@4
   231
        * @c NULL value can be used to detach bitmap from item data.
williamr@4
   232
        *
williamr@4
   233
        * @param aBitmap Pointer to bitmap instance. Ownership of the bitmap
williamr@4
   234
        *   object is transferred to item data. @c NULL value is also valid.
williamr@4
   235
        */
williamr@4
   236
        IMPORT_C void SetBitmap( CFbsBitmap* aBitmap );
williamr@4
   237
williamr@4
   238
        /**
williamr@4
   239
        * Sets the bitmap object for this item data instance and destroys 
williamr@4
   240
        * previous one, if any.
williamr@4
   241
        *
williamr@4
   242
        * @since 2.0
williamr@4
   243
        *
williamr@4
   244
        * @param aBitmap Pointer to bitmap instance. Ownership of the bitmap
williamr@4
   245
        *   object is transferred to item data. @c NULL value is also valid.
williamr@4
   246
        */
williamr@4
   247
        IMPORT_C void DestroyAndSetBitmap( CFbsBitmap* aBitmap );
williamr@4
   248
williamr@4
   249
        /**
williamr@4
   250
        * Returns the current bitmap object owned by item data instance.
williamr@4
   251
        *
williamr@4
   252
        * @since 2.0
williamr@4
   253
        *
williamr@4
   254
        * @return Pointer to bitmap instance, or @c NULL if none is currently
williamr@4
   255
        *   associated with this item data.
williamr@4
   256
        */
williamr@4
   257
        IMPORT_C CFbsBitmap* Bitmap();
williamr@4
   258
        
williamr@4
   259
    protected:  // C++ protected constructor
williamr@4
   260
williamr@4
   261
        /**
williamr@4
   262
        * C++ protected constructor.
williamr@4
   263
        * Constructs a new CAknsBitmapItemData with bitmap set to @c NULL.
williamr@4
   264
        *
williamr@4
   265
        * @param aType Item type of the new item data object. While this
williamr@4
   266
        *   is always ::EAknsITBitmap for instances of this class, derived
williamr@4
   267
        *   classes may specify another value.
williamr@4
   268
        *
williamr@4
   269
        * @internal
williamr@4
   270
        */
williamr@4
   271
        CAknsBitmapItemData( const TAknsItemType aType );
williamr@4
   272
    
williamr@4
   273
    protected:  // Data
williamr@4
   274
        CFbsBitmap* iBitmap;    //!< Pointer to associated bitmap instance.
williamr@4
   275
williamr@4
   276
    };
williamr@4
   277
williamr@4
   278
/**
williamr@4
   279
* Masked bitmap item data.
williamr@4
   280
* Masked bitmap item data contains (in addition to base class members) an
williamr@4
   281
* additional member of type CFbsBitmap for the bitmap mask.
williamr@4
   282
* Item type for bitmap item data is always ::EAknsITMaskedBitmap.
williamr@4
   283
*
williamr@4
   284
* This is a public class with exported functions.
williamr@4
   285
* The class is not intended for derivation outside the library.
williamr@4
   286
*
williamr@4
   287
* @lib AknSkins.lib
williamr@4
   288
*
williamr@4
   289
* @since 2.0
williamr@4
   290
*/
williamr@4
   291
NONSHARABLE_CLASS(CAknsMaskedBitmapItemData) : public CAknsBitmapItemData
williamr@4
   292
    {
williamr@4
   293
    public:  // Constructors and destructor
williamr@4
   294
            
williamr@4
   295
        /**
williamr@4
   296
        * Two-phased constructor.
williamr@4
   297
        * Constructs a new CAknsMaskedBitmapItemData object with bitmaps set to
williamr@4
   298
        * @c NULL. Bitmaps must be set afterwards by using 
williamr@4
   299
        * SetBitmap(CFbsBitmap* aBitmap) and SetMask(CFbsBitmap* aBitmap) methods.
williamr@4
   300
        *
williamr@4
   301
        * @return Newly constructed CAknsMaskedBitmapItemData object.
williamr@4
   302
        *
williamr@4
   303
        * @par Exceptions:
williamr@4
   304
        *   If allocation fails, function leaves with a system-wide error
williamr@4
   305
        *   code.
williamr@4
   306
        */
williamr@4
   307
        IMPORT_C static CAknsMaskedBitmapItemData* NewL();
williamr@4
   308
        
williamr@4
   309
        /**
williamr@4
   310
        * Destructor.
williamr@4
   311
        * Deletes bitmap objects, if present.
williamr@4
   312
        */
williamr@4
   313
        virtual ~CAknsMaskedBitmapItemData();
williamr@4
   314
williamr@4
   315
    public: // New functions
williamr@4
   316
        
williamr@4
   317
        /**
williamr@4
   318
        * Sets the mask bitmap object for this item data instance.
williamr@4
   319
        * @c NULL value can be used to detach bitmap mask from item data.
williamr@4
   320
        *
williamr@4
   321
        * @since 2.0
williamr@4
   322
        *
williamr@4
   323
        * @param aMask Pointer to mask instance. Ownership of the bitmap
williamr@4
   324
        *   object is transferred to item data. @c NULL value is also valid.
williamr@4
   325
        */
williamr@4
   326
        IMPORT_C void SetMask( CFbsBitmap* aMask );
williamr@4
   327
williamr@4
   328
        /**
williamr@4
   329
        * Sets the mask bitmap object for this item data instance and destroys 
williamr@4
   330
        * previous one, if any.
williamr@4
   331
        *
williamr@4
   332
        * @since 2.0
williamr@4
   333
        *
williamr@4
   334
        * @param aMask Pointer to mask instance. Ownership of the bitmap
williamr@4
   335
        *   object is transferred to item data. @c NULL value is also valid.
williamr@4
   336
        */
williamr@4
   337
        IMPORT_C void DestroyAndSetMask( CFbsBitmap* aMask );
williamr@4
   338
williamr@4
   339
        /**
williamr@4
   340
        * Returns the current bitmap mask object owned by item data instance.
williamr@4
   341
        *
williamr@4
   342
        * @since 2.0
williamr@4
   343
        *
williamr@4
   344
        * @return Pointer to mask instance, or @c NULL if none is currently
williamr@4
   345
        *   associated with this item data.
williamr@4
   346
        */
williamr@4
   347
        IMPORT_C CFbsBitmap* Mask();
williamr@4
   348
        
williamr@4
   349
    protected:  // C++ protected constructor
williamr@4
   350
williamr@4
   351
        /**
williamr@4
   352
        * C++ protected constructor.
williamr@4
   353
        * Constructs a new CAknsMaskedBitmapItemData with bitmaps set to @c NULL.
williamr@4
   354
        *
williamr@4
   355
        * @param aType Item type of the new item data object. While this
williamr@4
   356
        *   is always ::EAknsITMaskedBitmap for instances of this class, derived
williamr@4
   357
        *   classes may specify another value.
williamr@4
   358
        *
williamr@4
   359
        * @internal
williamr@4
   360
        */
williamr@4
   361
        CAknsMaskedBitmapItemData( const TAknsItemType aType );    
williamr@4
   362
    
williamr@4
   363
    protected:  // Data
williamr@4
   364
        CFbsBitmap* iMask;    //!< Pointer to associated mask bitmap instance.
williamr@4
   365
williamr@4
   366
    };
williamr@4
   367
williamr@4
   368
/**
williamr@4
   369
* Color table item data.
williamr@4
   370
* Color table item data contains (in addition to base class members) color 
williamr@4
   371
* array of TRGB values. Item type for color item data is always 
williamr@4
   372
* ::EAknsITColorTable.
williamr@4
   373
*
williamr@4
   374
* This is a public class with exported functions.
williamr@4
   375
* The class is not intended for derivation outside the library.
williamr@4
   376
*
williamr@4
   377
* @lib AknSkins.lib
williamr@4
   378
*
williamr@4
   379
* @since 2.0
williamr@4
   380
*/
williamr@4
   381
NONSHARABLE_CLASS(CAknsColorTableItemData) : public CAknsImageItemData
williamr@4
   382
    {
williamr@4
   383
    public:  // Constructors and destructor
williamr@4
   384
            
williamr@4
   385
        /**
williamr@4
   386
        * Two-phased constructor.
williamr@4
   387
        * Constructs a new CAknsColorTableItemData object. Values must
williamr@4
   388
        * be set separately using SetColorsL.
williamr@4
   389
        *
williamr@4
   390
        * @return Newly constructed CAknsColorTableItemData object.
williamr@4
   391
        *
williamr@4
   392
        * @par Exceptions:
williamr@4
   393
        *   If allocation fails, function leaves with a system-wide error
williamr@4
   394
        *   code.
williamr@4
   395
        */
williamr@4
   396
        IMPORT_C static CAknsColorTableItemData* NewL();
williamr@4
   397
        
williamr@4
   398
        /**
williamr@4
   399
        * Destructor.
williamr@4
   400
        * Destroys color value array.
williamr@4
   401
        */
williamr@4
   402
        virtual ~CAknsColorTableItemData();
williamr@4
   403
williamr@4
   404
    public: // New functions
williamr@4
   405
        
williamr@4
   406
        /**
williamr@4
   407
        * Sets color values for this item data instance.
williamr@4
   408
        *        
williamr@4
   409
        * @since 2.0
williamr@4
   410
        *
williamr@4
   411
        * @param aNumberOfColors Number of colors in aColors.
williamr@4
   412
        *
williamr@4
   413
        * @param aColors Pointer to first color value. Values are copied
williamr@4
   414
        *   into an internal array.
williamr@4
   415
        */
williamr@4
   416
        IMPORT_C void SetColorsL( const TInt aNumberOfColors, 
williamr@4
   417
            const TAknsColorTableEntry* aColors );
williamr@4
   418
williamr@4
   419
        /**
williamr@4
   420
        * Returns the indexed color value.
williamr@4
   421
        *
williamr@4
   422
        * @since 2.0
williamr@4
   423
        *
williamr@4
   424
        * @param aIndex Index of the color to be retrieved. This must
williamr@4
   425
        *   be within 0 (inclusive) and aNumberOfColors (exclusive).
williamr@4
   426
        *
williamr@4
   427
        * @return Color value as TInt. If the value is -1, RGB value
williamr@4
   428
        *   should be queried instead.
williamr@4
   429
        *
williamr@4
   430
        * @par Note:
williamr@4
   431
        *   This method does not perform any bounds checking. An access
williamr@4
   432
        *   violation or panic will occur, if the given index is not
williamr@4
   433
        *   within the bounds of the internal array. Use @c GetColorL
williamr@4
   434
        *   instead, if such checking is required.
williamr@4
   435
        */
williamr@4
   436
        IMPORT_C TInt ColorIndexed( const TInt aIndex ) const;
williamr@4
   437
williamr@4
   438
        /**
williamr@4
   439
        * Returns the RGB color value.
williamr@4
   440
        *
williamr@4
   441
        * @since 2.0
williamr@4
   442
        *
williamr@4
   443
        * @param aIndex Index of the color to be retrieved. This must
williamr@4
   444
        *   be within 0 (inclusive) and aNumberOfColors (exclusive).
williamr@4
   445
        *
williamr@4
   446
        * @return Color value as TRgb. Note that the value is only
williamr@4
   447
        *   valid if ColorIndexed() returned -1.
williamr@4
   448
        *
williamr@4
   449
        * @par Note:
williamr@4
   450
        *   This method does not perform any bounds checking. An access
williamr@4
   451
        *   violation or panic will occur, if the given index is not
williamr@4
   452
        *   within the bounds of the internal array. Use @c GetColorL
williamr@4
   453
        *   instead, if such checking is required.
williamr@4
   454
        */
williamr@4
   455
        IMPORT_C TRgb ColorRgb( const TInt aIndex ) const;
williamr@4
   456
williamr@4
   457
        /**
williamr@4
   458
        * Retrieves a color value (indexed or RGB) with bounds checking.
williamr@4
   459
        *
williamr@4
   460
        * @since 2.6
williamr@4
   461
        *
williamr@4
   462
        * @param aIndex Index of the color to be retrieved.
williamr@4
   463
        *
williamr@4
   464
        * @param aColor On return, contains the color as an RGB value.
williamr@4
   465
        *   If the color is indexed, the appropriate mapping using current
williamr@4
   466
        *   palette is used.
williamr@4
   467
        *
williamr@4
   468
        * @par Exceptions:
williamr@4
   469
        *   If the given index is outside the bounds of the array,
williamr@4
   470
        *   the method leaves with an error code.
williamr@4
   471
        */
williamr@4
   472
        IMPORT_C void GetColorL( const TInt aIndex, TRgb& aColor ) const;
williamr@4
   473
        
williamr@4
   474
    protected:  // C++ protected constructor
williamr@4
   475
williamr@4
   476
        /**
williamr@4
   477
        * C++ protected constructor.
williamr@4
   478
        * Constructs a new CAknsColorItemData without an array.
williamr@4
   479
        *
williamr@4
   480
        * @param aType Item type of the new item data object. While this
williamr@4
   481
        *   is always ::EAknsITColorTable for instances of this class, derived
williamr@4
   482
        *   classes may specify another value.
williamr@4
   483
        *
williamr@4
   484
        * @internal
williamr@4
   485
        */
williamr@4
   486
        CAknsColorTableItemData( const TAknsItemType aType );
williamr@4
   487
    
williamr@4
   488
    protected:  // Data
williamr@4
   489
williamr@4
   490
        TAknsColorTableEntry* iColorArray; //!< Color array.
williamr@4
   491
        TInt iColorArraySize;
williamr@4
   492
williamr@4
   493
    };
williamr@4
   494
williamr@4
   495
/**
williamr@4
   496
* Icon table item data.
williamr@4
   497
* Icon table item data contains (in addition to base class members), an 
williamr@4
   498
* array containing item IDs of images. Item type for 
williamr@4
   499
* image table item data objects is always ::EAknsITImageTable.
williamr@4
   500
*
williamr@4
   501
* This is a public class with exported functions.
williamr@4
   502
* The class is not intended for derivation outside the library.
williamr@4
   503
*
williamr@4
   504
* @lib AknSkins.lib
williamr@4
   505
*
williamr@4
   506
* @since 2.0
williamr@4
   507
*/
williamr@4
   508
NONSHARABLE_CLASS(CAknsImageTableItemData) : public CAknsImageItemData
williamr@4
   509
    {
williamr@4
   510
    public:  // Constructors and destructor
williamr@4
   511
            
williamr@4
   512
        /**
williamr@4
   513
        * Two-phased constructor.
williamr@4
   514
        * Constructs a new CAknsImageTableItemData object. Values must
williamr@4
   515
        * be set separately using SetImagesL.
williamr@4
   516
        *
williamr@4
   517
        * @return Newly constructed CAknsImageTableItemData object.
williamr@4
   518
        *
williamr@4
   519
        * @par Exceptions:
williamr@4
   520
        *   If allocation fails, function leaves with a system-wide error
williamr@4
   521
        *   code.
williamr@4
   522
        */
williamr@4
   523
        IMPORT_C static CAknsImageTableItemData* NewL();
williamr@4
   524
        
williamr@4
   525
        /**
williamr@4
   526
        * Destructor.
williamr@4
   527
        * Destroys image array.
williamr@4
   528
        */
williamr@4
   529
        virtual ~CAknsImageTableItemData();
williamr@4
   530
williamr@4
   531
    public: // New functions
williamr@4
   532
        
williamr@4
   533
        /**
williamr@4
   534
        * Sets image table values for this item data instance.
williamr@4
   535
        *        
williamr@4
   536
        * @since 2.0
williamr@4
   537
        *
williamr@4
   538
        * @param aNumberOfImages Number of images in aImages.
williamr@4
   539
        *
williamr@4
   540
        * @param aImages Pointer to first image ID. Values are 
williamr@4
   541
        *   copied into an internal array.
williamr@4
   542
        */
williamr@4
   543
        IMPORT_C void SetImagesL( const TInt aNumberOfImages, 
williamr@4
   544
            const TAknsItemID* aImages );        
williamr@4
   545
williamr@4
   546
        /**
williamr@4
   547
        * Returns the item ID of an image.
williamr@4
   548
        *
williamr@4
   549
        * @since 2.0
williamr@4
   550
        *
williamr@4
   551
        * @param aIndex Index of the image. This value must
williamr@4
   552
        *   be within 0 (inclusive) and NumberOfImages (exclusive).
williamr@4
   553
        *
williamr@4
   554
        * @return Item ID of the image.
williamr@4
   555
        */
williamr@4
   556
        IMPORT_C TAknsItemID ImageIID( const TInt aIndex ) const;
williamr@4
   557
williamr@4
   558
        /**
williamr@4
   559
        * Returns pointer to the first entry in the image array, 
williamr@4
   560
        * owned by this object.
williamr@4
   561
        *
williamr@4
   562
        * @since 2.0
williamr@4
   563
        *        
williamr@4
   564
        * @return Pointer to TAknsItemID.
williamr@4
   565
        */
williamr@4
   566
        IMPORT_C TAknsItemID* Images() const;
williamr@4
   567
williamr@4
   568
        /**
williamr@4
   569
        * Returns the number of images.
williamr@4
   570
        *
williamr@4
   571
        * @since 2.0
williamr@4
   572
        * 
williamr@4
   573
        * @return Number of images as an integer.
williamr@4
   574
        */
williamr@4
   575
        IMPORT_C TInt NumberOfImages() const;
williamr@4
   576
        
williamr@4
   577
    protected:  // C++ protected constructor
williamr@4
   578
williamr@4
   579
        /**
williamr@4
   580
        * C++ protected constructor.
williamr@4
   581
        * Constructs a new CAknsImageTableItemData without an array.
williamr@4
   582
        *
williamr@4
   583
        * @param aType Item type of the new item data object. While this
williamr@4
   584
        *   is always ::EAknsITImageTable for instances of this class, derived
williamr@4
   585
        *   classes may specify another value.
williamr@4
   586
        *
williamr@4
   587
        * @internal
williamr@4
   588
        */
williamr@4
   589
        CAknsImageTableItemData( const TAknsItemType aType );
williamr@4
   590
    
williamr@4
   591
    protected:  // Data
williamr@4
   592
williamr@4
   593
        TInt iNumberOfImages;       //!< Number of images.
williamr@4
   594
        TAknsItemID* iImageArray;   //!< Image array.
williamr@4
   595
williamr@4
   596
    };
williamr@4
   597
williamr@4
   598
/**
williamr@4
   599
* Bitmap animation item data.
williamr@4
   600
* Bitmap animation item data contains (in addition to base class members),  
williamr@4
   601
* animation properties as well as an array containing frame properties
williamr@4
   602
* Item type for bitmap animation item data objects is always ::EAknsITBmpAnim.
williamr@4
   603
*
williamr@4
   604
* This is a public class with exported functions.
williamr@4
   605
* The class is not intended for derivation outside the library.
williamr@4
   606
*
williamr@4
   607
* @lib AknSkins.lib
williamr@4
   608
*
williamr@4
   609
* @since 2.0
williamr@4
   610
*/
williamr@4
   611
NONSHARABLE_CLASS(CAknsBmpAnimItemData) : public CAknsImageTableItemData
williamr@4
   612
    {
williamr@4
   613
    public:  // Constructors and destructor
williamr@4
   614
            
williamr@4
   615
        /**
williamr@4
   616
        * Two-phased constructor.
williamr@4
   617
        * Constructs a new CAknsBmpAnimItemData object. Values must
williamr@4
   618
        * be set separately using SetImagesL and SetFrameInfosL.
williamr@4
   619
        *
williamr@4
   620
        * @return Newly constructed CAknsBmpAnimItemData object.
williamr@4
   621
        *
williamr@4
   622
        * @par Exceptions:
williamr@4
   623
        *   If allocation fails, function leaves with a system-wide error
williamr@4
   624
        *   code.
williamr@4
   625
        */
williamr@4
   626
        IMPORT_C static CAknsBmpAnimItemData* NewL();
williamr@4
   627
        
williamr@4
   628
        /**
williamr@4
   629
        * Destructor.
williamr@4
   630
        * Destroys arrays.
williamr@4
   631
        */
williamr@4
   632
        virtual ~CAknsBmpAnimItemData();
williamr@4
   633
williamr@4
   634
    public: // New functions
williamr@4
   635
        
williamr@4
   636
        /**
williamr@4
   637
        * Sets frame property values for this item data instance.
williamr@4
   638
        *
williamr@4
   639
        * The number of entries in the given array must match
williamr@4
   640
        * the number of images in the image table. Therefore
williamr@4
   641
        * SetFrameInfosL must be called only after SetImagesL
williamr@4
   642
        * has already been called.
williamr@4
   643
        *        
williamr@4
   644
        * @since 2.0
williamr@4
   645
        *
williamr@4
   646
        * @param aFrameInfos Pointer to first frame info. Values are 
williamr@4
   647
        *   copied into an internal array.
williamr@4
   648
        */
williamr@4
   649
        IMPORT_C void SetFrameInfosL( const TAknsBmpAnimFrameInfo* aFrameInfos );
williamr@4
   650
williamr@4
   651
        /**
williamr@4
   652
        * Returns pointer to the first entry in the frame property array, 
williamr@4
   653
        * owned by this object.
williamr@4
   654
        *
williamr@4
   655
        * @since 2.0
williamr@4
   656
        *        
williamr@4
   657
        * @return Pointer to TAknsBmpAnimFrameInfo.
williamr@4
   658
        */
williamr@4
   659
        IMPORT_C TAknsBmpAnimFrameInfo* FrameInfos() const;
williamr@4
   660
williamr@4
   661
        /**
williamr@4
   662
        * Sets the flag indicating whether the last frame should be
williamr@4
   663
        * interpreted as the background (i.e. excluded from the animation
williamr@4
   664
        * itself).
williamr@4
   665
        *
williamr@4
   666
        * @since 2.0
williamr@4
   667
        *
williamr@4
   668
        * @param aLastFrameBg Boolean value.
williamr@4
   669
        */
williamr@4
   670
        IMPORT_C void SetLastFrameBackground( TBool aLastFrameBg );
williamr@4
   671
williamr@4
   672
        /**
williamr@4
   673
        * Retrieves the flag value indicating whether the last frame
williamr@4
   674
        * should be interpreted as the background.
williamr@4
   675
        *
williamr@4
   676
        * @since 2.0
williamr@4
   677
        *
williamr@4
   678
        * @return Boolean value.
williamr@4
   679
        */
williamr@4
   680
        IMPORT_C TBool LastFrameBackground() const;
williamr@4
   681
williamr@4
   682
        /**
williamr@4
   683
        * Sets the frame interval for the entire animation.
williamr@4
   684
        *
williamr@4
   685
        * @since 2.0
williamr@4
   686
        *
williamr@4
   687
        * @param aFrameInterval Frame interval in milliseconds or -1.
williamr@4
   688
        */
williamr@4
   689
        IMPORT_C void SetFrameInterval( const TInt16 aFrameInterval );
williamr@4
   690
williamr@4
   691
        /**
williamr@4
   692
        * Retrieves the frame interval.
williamr@4
   693
        *
williamr@4
   694
        * @since 2.0
williamr@4
   695
        *
williamr@4
   696
        * @return Frame interval in milliseconds or -1.
williamr@4
   697
        */
williamr@4
   698
        IMPORT_C TInt16 FrameInterval() const;
williamr@4
   699
williamr@4
   700
        /**
williamr@4
   701
        * Sets the play mode for the entire animation.
williamr@4
   702
        *
williamr@4
   703
        * @since 2.0
williamr@4
   704
        *
williamr@4
   705
        * @param aPlayMode Play mode.
williamr@4
   706
        */
williamr@4
   707
        IMPORT_C void SetPlayMode( const TInt16 aPlayMode );
williamr@4
   708
williamr@4
   709
        /**
williamr@4
   710
        * Retrieves the play mode.
williamr@4
   711
        *
williamr@4
   712
        * @since 2.0
williamr@4
   713
        *
williamr@4
   714
        * @return Play mode.
williamr@4
   715
        */
williamr@4
   716
        IMPORT_C TInt16 PlayMode() const;
williamr@4
   717
williamr@4
   718
        /**
williamr@4
   719
        * Sets the flash property for the entire animation.
williamr@4
   720
        *
williamr@4
   721
        * @since 2.0
williamr@4
   722
        *
williamr@4
   723
        * @param aFlash Flash flag value.
williamr@4
   724
        */
williamr@4
   725
        IMPORT_C void SetFlash( const TBool aFlash );
williamr@4
   726
williamr@4
   727
        /**
williamr@4
   728
        * Retrieves the flash property.
williamr@4
   729
        *
williamr@4
   730
        * @since 2.0
williamr@4
   731
        *
williamr@4
   732
        * @return Flash flag value.
williamr@4
   733
        */
williamr@4
   734
        IMPORT_C TBool Flash() const;
williamr@4
   735
        
williamr@4
   736
    protected:  // C++ protected constructor
williamr@4
   737
williamr@4
   738
        /**
williamr@4
   739
        * C++ protected constructor.
williamr@4
   740
        * Constructs a new CAknsBmpAnimItemData without an array.
williamr@4
   741
        *
williamr@4
   742
        * @param aType Item type of the new item data object. While this
williamr@4
   743
        *   is always ::EAknsITBmpAnim for instances of this class, derived
williamr@4
   744
        *   classes may specify another value.
williamr@4
   745
        *
williamr@4
   746
        * @internal
williamr@4
   747
        */
williamr@4
   748
        CAknsBmpAnimItemData( const TAknsItemType aType );
williamr@4
   749
    
williamr@4
   750
    protected:  // Data
williamr@4
   751
williamr@4
   752
        TAknsBmpAnimFrameInfo* iFrameArray;   //!< Frame info array.
williamr@4
   753
williamr@4
   754
        TBool iLastFrameBackground; //!< Last frame used as background flag.
williamr@4
   755
        TInt16 iFrameInterval;  //!< Frame interval.
williamr@4
   756
        TInt16 iPlayMode;       //!< Play mode.
williamr@4
   757
        TBool iFlash;           //!< Flash flag.
williamr@4
   758
williamr@4
   759
    };
williamr@4
   760
williamr@4
   761
/**
williamr@4
   762
* String item data.
williamr@4
   763
* String item data contains (in addition to base class members),  
williamr@4
   764
* a single string value.
williamr@4
   765
* Item type for string item data objects is always ::EAknsITString.
williamr@4
   766
*
williamr@4
   767
* This is a public class with exported functions.
williamr@4
   768
* The class is not intended for derivation outside the library.
williamr@4
   769
*
williamr@4
   770
* @lib AknSkins.lib
williamr@4
   771
*
williamr@4
   772
* @since 2.6
williamr@4
   773
*/
williamr@4
   774
NONSHARABLE_CLASS(CAknsStringItemData) : public CAknsItemData
williamr@4
   775
    {
williamr@4
   776
    public:  // Constructors and destructor
williamr@4
   777
            
williamr@4
   778
        /**
williamr@4
   779
        * Two-phased constructor.
williamr@4
   780
        * Constructs a new CAknsStringItemData object. String value must
williamr@4
   781
        * be set separately using SetStringL.
williamr@4
   782
        *
williamr@4
   783
        * @return Newly constructed CAknsStringItemData object.
williamr@4
   784
        *
williamr@4
   785
        * @par Exceptions:
williamr@4
   786
        *   If allocation fails, function leaves with a system-wide error
williamr@4
   787
        *   code.
williamr@4
   788
        */
williamr@4
   789
        IMPORT_C static CAknsStringItemData* NewL();
williamr@4
   790
        
williamr@4
   791
        /**
williamr@4
   792
        * Destructor.
williamr@4
   793
        * Destroys owned string instance.
williamr@4
   794
        */
williamr@4
   795
        virtual ~CAknsStringItemData();
williamr@4
   796
williamr@4
   797
    public: // New functions
williamr@4
   798
        
williamr@4
   799
        /**
williamr@4
   800
        * Sets the string value of this item data instance.
williamr@4
   801
        *
williamr@4
   802
        * @since 2.6
williamr@4
   803
        *
williamr@4
   804
        * @param aValue New value. The value is copied to a newly created
williamr@4
   805
        *   internal buffer, and any previous value is discarded.
williamr@4
   806
        */
williamr@4
   807
        IMPORT_C void SetStringL( const TDesC& aValue );
williamr@4
   808
williamr@4
   809
        /**
williamr@4
   810
        * Returns a reference to the string value. The value is still owned
williamr@4
   811
        * by the item data object and caller must take its lifetime properly
williamr@4
   812
        * into account.
williamr@4
   813
        *
williamr@4
   814
        * @since 2.6
williamr@4
   815
        *        
williamr@4
   816
        * @return Reference to the value.
williamr@4
   817
        */
williamr@4
   818
        IMPORT_C const TDesC& String() const;
williamr@4
   819
williamr@4
   820
    protected:  // C++ protected constructor
williamr@4
   821
williamr@4
   822
        /**
williamr@4
   823
        * C++ protected constructor.
williamr@4
   824
        * Constructs a new CAknsStringItemData without an array.
williamr@4
   825
        *
williamr@4
   826
        * @param aType Item type of the new item data object. While this
williamr@4
   827
        *   is always ::EAknsITString for instances of this class, derived
williamr@4
   828
        *   classes may specify another value.
williamr@4
   829
        *
williamr@4
   830
        * @internal
williamr@4
   831
        */
williamr@4
   832
        CAknsStringItemData( const TAknsItemType aType );
williamr@4
   833
    
williamr@4
   834
    protected:  // Data
williamr@4
   835
williamr@4
   836
        HBufC* iString; //!< Buffer for string value.
williamr@4
   837
williamr@4
   838
    };
williamr@4
   839
williamr@4
   840
/**
williamr@4
   841
* Effect command data class.
williamr@4
   842
* Effect command class encapsulates the information of a single effect
williamr@4
   843
* command that is used with effect queue item data objects.
williamr@4
   844
*
williamr@4
   845
* This is a public class with exported functions.
williamr@4
   846
* The class is not intended for derivation outside the library.
williamr@4
   847
*
williamr@4
   848
* @lib AknSkins.lib
williamr@4
   849
*
williamr@4
   850
* @since 2.8
williamr@4
   851
*/
williamr@4
   852
NONSHARABLE_CLASS(CAknsEffectCommand) : public CBase
williamr@4
   853
    {
williamr@4
   854
    public:  // Constructors and destructor
williamr@4
   855
            
williamr@4
   856
        /**
williamr@4
   857
        * Two-phased constructor.
williamr@4
   858
        *
williamr@4
   859
        * @return Newly constructed object.
williamr@4
   860
        *
williamr@4
   861
        * @par Exceptions:
williamr@4
   862
        *   If allocation fails, function leaves with a system-wide error
williamr@4
   863
        *   code.
williamr@4
   864
        */
williamr@4
   865
        IMPORT_C static CAknsEffectCommand* NewL();
williamr@4
   866
        
williamr@4
   867
        /**
williamr@4
   868
        * Destructor.
williamr@4
   869
        */
williamr@4
   870
        virtual ~CAknsEffectCommand();
williamr@4
   871
williamr@4
   872
    public: // New functions
williamr@4
   873
williamr@4
   874
        /**
williamr@4
   875
        * Sets the effect UID.
williamr@4
   876
        *
williamr@4
   877
        * @since 2.8
williamr@4
   878
        *
williamr@4
   879
        * @param aValue New effect UID.
williamr@4
   880
        */
williamr@4
   881
        IMPORT_C void SetEffectUid( const TUid aValue );
williamr@4
   882
williamr@4
   883
        /**
williamr@4
   884
        * Returns the effect UID.
williamr@4
   885
        * 
williamr@4
   886
        * @since 2.8
williamr@4
   887
        *
williamr@4
   888
        * @return Effect UID.
williamr@4
   889
        */
williamr@4
   890
        IMPORT_C TUid EffectUid() const;
williamr@4
   891
williamr@4
   892
        /**
williamr@4
   893
        * Sets the layer configuration.
williamr@4
   894
        *
williamr@4
   895
        * @since 2.8
williamr@4
   896
        *
williamr@4
   897
        * @param aValue New layer configuration.
williamr@4
   898
        */
williamr@4
   899
        IMPORT_C void SetLayerConf( const TAknsRlRenderOpParam aValue );
williamr@4
   900
williamr@4
   901
        /**
williamr@4
   902
        * Returns the layer configuration.
williamr@4
   903
        * 
williamr@4
   904
        * @since 2.8
williamr@4
   905
        *
williamr@4
   906
        * @return Layer configuration.
williamr@4
   907
        */
williamr@4
   908
        IMPORT_C TAknsRlRenderOpParam LayerConf() const;
williamr@4
   909
williamr@4
   910
        /**
williamr@4
   911
        * Appends a paramater to this effect command.
williamr@4
   912
        *
williamr@4
   913
        * @since 2.8
williamr@4
   914
        *
williamr@4
   915
        * @param aParameter Parameter to be appended. The given data is copied,
williamr@4
   916
        * and thus no ownership is transferred.
williamr@4
   917
        */
williamr@4
   918
        IMPORT_C void AppendParameterL( 
williamr@4
   919
            const TAknsRlParameterData& aParameter );
williamr@4
   920
williamr@4
   921
        /**
williamr@4
   922
        * Creates and returns a new parameter iterator.
williamr@4
   923
        *
williamr@4
   924
        * @since 2.8
williamr@4
   925
        *
williamr@4
   926
        * @return A new parameter iterator. Multiple iterators can be created.
williamr@4
   927
        *   The ownership of the iterator is transferred to the caller, and
williamr@4
   928
        *   the caller must ensure that the lifetime of the iterator
williamr@4
   929
        *   does not exceed the lifetime of this object.
williamr@4
   930
        */
williamr@4
   931
        IMPORT_C MAknsRlParameterIterator* CreateParameterIteratorL();
williamr@4
   932
williamr@4
   933
    protected:  // C++ protected constructor
williamr@4
   934
williamr@4
   935
        /**
williamr@4
   936
        * C++ protected constructor.
williamr@4
   937
        *
williamr@4
   938
        * @internal
williamr@4
   939
        */
williamr@4
   940
        CAknsEffectCommand();
williamr@4
   941
    
williamr@4
   942
    protected:  // Data
williamr@4
   943
williamr@4
   944
        TUid iUid; //!< Effect UID.
williamr@4
   945
        TAknsRlRenderOpParam iLayerConf; //!< Layer configuration.
williamr@4
   946
        RPointerArray<CAknsEffectParameter> iParameters; //!< Parameters array.
williamr@4
   947
williamr@4
   948
    };
williamr@4
   949
williamr@4
   950
/**
williamr@4
   951
* Effect queue item data.
williamr@4
   952
* Effect queue item data contains (in addition to base class members),  
williamr@4
   953
* the information required to render a single effect queue based
williamr@4
   954
* skin element.
williamr@4
   955
*
williamr@4
   956
* Item type for effect queue item data objects is always ::EAknsITEffectQueue.
williamr@4
   957
*
williamr@4
   958
* This is a public class with exported functions.
williamr@4
   959
* The class is not intended for derivation outside the library.
williamr@4
   960
*
williamr@4
   961
* @lib AknSkins.lib
williamr@4
   962
*
williamr@4
   963
* @since 2.8
williamr@4
   964
*/
williamr@4
   965
NONSHARABLE_CLASS(CAknsEffectQueueItemData) : public CAknsItemData
williamr@4
   966
    {
williamr@4
   967
    public:  // Constructors and destructor
williamr@4
   968
            
williamr@4
   969
        /**
williamr@4
   970
        * Two-phased constructor.
williamr@4
   971
        * Constructs a new CAknsEffectQueueItemData object.
williamr@4
   972
        *
williamr@4
   973
        * @return Newly constructed CAknsEffectQueueItemData object.
williamr@4
   974
        *
williamr@4
   975
        * @par Exceptions:
williamr@4
   976
        *   If allocation fails, function leaves with a system-wide error
williamr@4
   977
        *   code.
williamr@4
   978
        */
williamr@4
   979
        IMPORT_C static CAknsEffectQueueItemData* NewL();
williamr@4
   980
        
williamr@4
   981
        /**
williamr@4
   982
        * Destructor.
williamr@4
   983
        */
williamr@4
   984
        virtual ~CAknsEffectQueueItemData();
williamr@4
   985
williamr@4
   986
    public: // New functions
williamr@4
   987
williamr@4
   988
        /**
williamr@4
   989
        * Sets the referenced item ID.
williamr@4
   990
        *
williamr@4
   991
        * @since 2.8
williamr@4
   992
        *
williamr@4
   993
        * @param aValue
williamr@4
   994
        */
williamr@4
   995
        IMPORT_C void SetRefItem( const TAknsItemID aValue );
williamr@4
   996
williamr@4
   997
        /**
williamr@4
   998
        * Returns the referenced item ID.
williamr@4
   999
        * 
williamr@4
  1000
        * @since 2.8
williamr@4
  1001
        *
williamr@4
  1002
        * @return Referenced item ID, or @c KAknsIIDDefault if none.
williamr@4
  1003
        */
williamr@4
  1004
        IMPORT_C TAknsItemID RefItem() const;
williamr@4
  1005
williamr@4
  1006
        /**
williamr@4
  1007
        * Sets the input layer index value.
williamr@4
  1008
        *
williamr@4
  1009
        * @since 2.8
williamr@4
  1010
        *
williamr@4
  1011
        * @param aValue
williamr@4
  1012
        */
williamr@4
  1013
        IMPORT_C void SetInputLayer( const TInt aValue );
williamr@4
  1014
williamr@4
  1015
        /**
williamr@4
  1016
        * Returns the input layer index value.
williamr@4
  1017
        * 
williamr@4
  1018
        * @since 2.8
williamr@4
  1019
        *
williamr@4
  1020
        * @return Input layer index, or -1 if not used.
williamr@4
  1021
        */
williamr@4
  1022
        IMPORT_C TInt InputLayer() const;
williamr@4
  1023
williamr@4
  1024
        /**
williamr@4
  1025
        * Sets the input layer mode value.
williamr@4
  1026
        *
williamr@4
  1027
        * @since 2.8
williamr@4
  1028
        *
williamr@4
  1029
        * @param aValue
williamr@4
  1030
        */
williamr@4
  1031
        IMPORT_C void SetInputLayerMode( const TInt aValue );
williamr@4
  1032
williamr@4
  1033
        /**
williamr@4
  1034
        * Returns the input layer mode value.
williamr@4
  1035
        * 
williamr@4
  1036
        * @since 2.8
williamr@4
  1037
        *
williamr@4
  1038
        * @return Input layer mode.
williamr@4
  1039
        */
williamr@4
  1040
        IMPORT_C TInt InputLayerMode() const;
williamr@4
  1041
williamr@4
  1042
        /**
williamr@4
  1043
        * Sets the output layer index value.
williamr@4
  1044
        *
williamr@4
  1045
        * @since 2.8
williamr@4
  1046
        *
williamr@4
  1047
        * @param aValue
williamr@4
  1048
        */
williamr@4
  1049
        IMPORT_C void SetOutputLayer( const TInt aValue );
williamr@4
  1050
williamr@4
  1051
        /**
williamr@4
  1052
        * Returns the output layer index value.
williamr@4
  1053
        * 
williamr@4
  1054
        * @since 2.8
williamr@4
  1055
        *
williamr@4
  1056
        * @return Output layer index.
williamr@4
  1057
        */
williamr@4
  1058
        IMPORT_C TInt OutputLayer() const;
williamr@4
  1059
williamr@4
  1060
        /**
williamr@4
  1061
        * Sets the output layer mode value.
williamr@4
  1062
        *
williamr@4
  1063
        * @since 2.8
williamr@4
  1064
        *
williamr@4
  1065
        * @param aValue
williamr@4
  1066
        */
williamr@4
  1067
        IMPORT_C void SetOutputLayerMode( const TInt aValue );
williamr@4
  1068
williamr@4
  1069
        /**
williamr@4
  1070
        * Returns the output layer mode value.
williamr@4
  1071
        * 
williamr@4
  1072
        * @since 2.8
williamr@4
  1073
        *
williamr@4
  1074
        * @return Output layer mode.
williamr@4
  1075
        */
williamr@4
  1076
        IMPORT_C TInt OutputLayerMode() const;
williamr@4
  1077
williamr@4
  1078
        /**
williamr@4
  1079
        * Appends a command to this effect queue.
williamr@4
  1080
        *
williamr@4
  1081
        * @since 2.8
williamr@4
  1082
        *
williamr@4
  1083
        * @param aCommand Command to be appended. The ownership of the
williamr@4
  1084
        * given instance is transferred to this object, even if the method
williamr@4
  1085
        * leaves.
williamr@4
  1086
        */
williamr@4
  1087
        IMPORT_C void AppendCommandL( const CAknsEffectCommand* aCommand );
williamr@4
  1088
williamr@4
  1089
        /**
williamr@4
  1090
        * Creates and returns a new command iterator.
williamr@4
  1091
        *
williamr@4
  1092
        * @since 2.8
williamr@4
  1093
        *
williamr@4
  1094
        * @return A new command iterator. Multiple iterators can be created.
williamr@4
  1095
        *   The ownership of the iterator is transferred to the caller, and
williamr@4
  1096
        *   the caller must ensure that the lifetime of the iterator
williamr@4
  1097
        *   does not exceed the lifetime of this object.
williamr@4
  1098
        */
williamr@4
  1099
        IMPORT_C MAknsRlCommandIterator* CreateCommandIteratorL();
williamr@4
  1100
williamr@4
  1101
    protected:  // C++ protected constructor
williamr@4
  1102
williamr@4
  1103
        /**
williamr@4
  1104
        * C++ protected constructor.
williamr@4
  1105
        * Constructs a new CAknsEffectQueueItemData.
williamr@4
  1106
        *
williamr@4
  1107
        * @param aType Item type of the new item data object. While this
williamr@4
  1108
        *   is always ::EAknsITEffectQueue for instances of this class, derived
williamr@4
  1109
        *   classes may specify another value.
williamr@4
  1110
        *
williamr@4
  1111
        * @internal
williamr@4
  1112
        */
williamr@4
  1113
        CAknsEffectQueueItemData( const TAknsItemType aType );
williamr@4
  1114
    
williamr@4
  1115
    protected:  // Data
williamr@4
  1116
williamr@4
  1117
        TAknsItemID iRefId; //!< Referenced item ID.
williamr@4
  1118
        TInt iInputLayer; //!< Input layer value.
williamr@4
  1119
        TInt iInputLayerMode; //!< Input layer mode value.
williamr@4
  1120
        TInt iOutputLayer; //!< Output layer value.
williamr@4
  1121
        TInt iOutputLayerMode; //!< Output layer mode value.
williamr@4
  1122
        RPointerArray<CAknsEffectCommand> iCommands; //!< Commands array.
williamr@4
  1123
williamr@4
  1124
    };
williamr@4
  1125
williamr@4
  1126
/**
williamr@4
  1127
* Timing model data class.
williamr@4
  1128
* Timing model class encapsulates the information of a single timing model that
williamr@4
  1129
* is used with animation command item data objects.
williamr@4
  1130
*
williamr@4
  1131
* The class is not intended for derivation outside the library.
williamr@4
  1132
*
williamr@4
  1133
* @lib AknSkins.lib
williamr@4
  1134
*
williamr@4
  1135
* @since 3.0
williamr@4
  1136
*/
williamr@4
  1137
class CAknsTimingModel: public CBase
williamr@4
  1138
    {
williamr@4
  1139
    public: // Constructors and destructor
williamr@4
  1140
        static CAknsTimingModel* NewL();
williamr@4
  1141
        virtual ~CAknsTimingModel();
williamr@4
  1142
williamr@4
  1143
    protected: // C++ protected constructor
williamr@4
  1144
        CAknsTimingModel();
williamr@4
  1145
williamr@4
  1146
    public:
williamr@4
  1147
        void SetTimingModelUid( const TUid aValue );
williamr@4
  1148
        TUid TimingModelUid() const;
williamr@4
  1149
williamr@4
  1150
        void AppendParameterL( const TAknsRlParameterData& aParameter );
williamr@4
  1151
        MAknsRlParameterIterator* CreateParameterIteratorL();
williamr@4
  1152
williamr@4
  1153
    public: // Iteration support (internal)
williamr@4
  1154
        void AssignOutL( TAknsAlTimingModelData& aData );
williamr@4
  1155
williamr@4
  1156
        static void InitializeOut( TAknsAlTimingModelData& aData );
williamr@4
  1157
        static void ReleaseOut( TAknsAlTimingModelData& aData );
williamr@4
  1158
williamr@4
  1159
    private: // Data
williamr@4
  1160
         TUid iTimingModelUid;
williamr@4
  1161
         RPointerArray<CAknsEffectParameter> iParameters;
williamr@4
  1162
    };
williamr@4
  1163
williamr@4
  1164
/**
williamr@4
  1165
* Animation value data class.
williamr@4
  1166
* Animation value class encapsulates the information of a single animation
williamr@4
  1167
* value (animation value uid, parameters for animation value and timing model
williamr@4
  1168
* reference id) that is used with animation command item data objects.
williamr@4
  1169
*
williamr@4
  1170
* The class is not intended for derivation outside the library.
williamr@4
  1171
*
williamr@4
  1172
* @lib AknSkins.lib
williamr@4
  1173
*
williamr@4
  1174
* @since 3.0
williamr@4
  1175
*/
williamr@4
  1176
class CAknsAnimationValue: public CBase
williamr@4
  1177
    {
williamr@4
  1178
    public:
williamr@4
  1179
        static CAknsAnimationValue* NewL();
williamr@4
  1180
        virtual ~CAknsAnimationValue();
williamr@4
  1181
williamr@4
  1182
    private:
williamr@4
  1183
        CAknsAnimationValue();
williamr@4
  1184
williamr@4
  1185
    public:
williamr@4
  1186
        void SetAnimationValueUid( const TUid aValue );
williamr@4
  1187
        TUid AnimationValueUid() const;
williamr@4
  1188
williamr@4
  1189
        void SetTimingModelId( const TInt aId );
williamr@4
  1190
        TInt TimingModelId() const;
williamr@4
  1191
williamr@4
  1192
        void AppendParameterL( const TAknsRlParameterData& aParameter );
williamr@4
  1193
        MAknsRlParameterIterator* CreateParameterIteratorL();
williamr@4
  1194
williamr@4
  1195
    public: // Iteration support (internal)
williamr@4
  1196
        void AssignOutL( TAknsAlAnimationValueData& aData );
williamr@4
  1197
williamr@4
  1198
        static void InitializeOut( TAknsAlAnimationValueData& aData );
williamr@4
  1199
        static void ReleaseOut( TAknsAlAnimationValueData& aData );
williamr@4
  1200
williamr@4
  1201
    private:
williamr@4
  1202
         TInt iTimingModelId;
williamr@4
  1203
         TUid iAnimationValueUid;
williamr@4
  1204
         RPointerArray<CAknsEffectParameter> iParameters;
williamr@4
  1205
    };
williamr@4
  1206
williamr@4
  1207
/**
williamr@4
  1208
* Animation command data class.
williamr@4
  1209
* Animation command class encapsulates the information of a single animation
williamr@4
  1210
* command (in addition to base class members) that is used with animation item
williamr@4
  1211
* data objects.
williamr@4
  1212
*
williamr@4
  1213
* The class is not intended for derivation outside the library.
williamr@4
  1214
*
williamr@4
  1215
* @lib AknSkins.lib
williamr@4
  1216
*
williamr@4
  1217
* @since 3.0
williamr@4
  1218
*/
williamr@4
  1219
class CAknsAnimationCommand: public CAknsEffectCommand
williamr@4
  1220
    {
williamr@4
  1221
    public:
williamr@4
  1222
        static CAknsAnimationCommand* NewL();
williamr@4
  1223
        virtual ~CAknsAnimationCommand();
williamr@4
  1224
williamr@4
  1225
    private:
williamr@4
  1226
        CAknsAnimationCommand();
williamr@4
  1227
williamr@4
  1228
    public:
williamr@4
  1229
        void AppendNamedReferenceL( const TAknsAlNamedReferenceData& aData );
williamr@4
  1230
        MAknsAlIterator* CreateNamedReferenceIteratorL();
williamr@4
  1231
williamr@4
  1232
    public: // Iteration support (internal)
williamr@4
  1233
        void AssignOutL( TAknsAlAnimationCommandData& aData );
williamr@4
  1234
williamr@4
  1235
        static void InitializeOut( TAknsAlAnimationCommandData& aData );
williamr@4
  1236
        static void ReleaseOut( TAknsAlAnimationCommandData& aData );
williamr@4
  1237
williamr@4
  1238
    private:
williamr@4
  1239
         RPointerArray<CAknsNamedReference> iNamedReferences;
williamr@4
  1240
    };
williamr@4
  1241
williamr@4
  1242
/**
williamr@4
  1243
* Animation item data.
williamr@4
  1244
* Animation item data contains (in addition to base class members) the
williamr@4
  1245
* information required to create an AnimationLibrary animation.
williamr@4
  1246
*
williamr@4
  1247
* Item type for animation item data objects is always ::EAknsITAnimation.
williamr@4
  1248
*
williamr@4
  1249
* The class is not intended for derivation outside the library.
williamr@4
  1250
*
williamr@4
  1251
* @lib AknSkins.lib
williamr@4
  1252
*
williamr@4
  1253
* @since 3.0
williamr@4
  1254
*/
williamr@4
  1255
class CAknsAnimationItemData: public CAknsItemData
williamr@4
  1256
    {
williamr@4
  1257
    public:
williamr@4
  1258
        static CAknsAnimationItemData* NewL();
williamr@4
  1259
        virtual ~CAknsAnimationItemData();
williamr@4
  1260
williamr@4
  1261
    protected: // C++ protected constructor
williamr@4
  1262
        CAknsAnimationItemData();
williamr@4
  1263
williamr@4
  1264
    public: // New functions
williamr@4
  1265
        void SetMinInterval( TInt aMin );
williamr@4
  1266
        TInt MinInterval() const;
williamr@4
  1267
williamr@4
  1268
        void SetMorphing( TBool aMorphing );
williamr@4
  1269
        TBool Morphing() const;
williamr@4
  1270
williamr@4
  1271
        void SetInputLayer( const TInt aValue );
williamr@4
  1272
        TInt InputLayer() const;
williamr@4
  1273
williamr@4
  1274
        void SetInputLayerMode( const TInt aValue );
williamr@4
  1275
        TInt InputLayerMode() const;
williamr@4
  1276
williamr@4
  1277
        void SetOutputLayer( const TInt aValue );
williamr@4
  1278
        TInt OutputLayer() const;
williamr@4
  1279
williamr@4
  1280
        void SetOutputLayerMode( const TInt aValue );
williamr@4
  1281
        TInt OutputLayerMode() const;
williamr@4
  1282
williamr@4
  1283
        /**
williamr@4
  1284
        * @param aCommand Ownership is transferred
williamr@4
  1285
        */
williamr@4
  1286
        void AppendPreprocessCommandL( CAknsEffectCommand* aCommand );
williamr@4
  1287
        MAknsRlCommandIterator* PreprocessCommandIteratorL() const;
williamr@4
  1288
williamr@4
  1289
        /**
williamr@4
  1290
        * @param aCommand Ownership is transferred
williamr@4
  1291
        */
williamr@4
  1292
        void AppendCommandL( CAknsAnimationCommand* aCommand );
williamr@4
  1293
        MAknsAlIterator* CommandIteratorL() const;
williamr@4
  1294
williamr@4
  1295
        /**
williamr@4
  1296
        * @param aValue Ownership is transferred
williamr@4
  1297
        */
williamr@4
  1298
        void AppendTimingModelL( CAknsTimingModel* aModel );
williamr@4
  1299
        MAknsAlIterator* TimingModelIteratorL() const;
williamr@4
  1300
williamr@4
  1301
        /**
williamr@4
  1302
        * @param aValue Ownership is transferred
williamr@4
  1303
        */
williamr@4
  1304
        void AppendAnimationValueL( CAknsAnimationValue* aValue );
williamr@4
  1305
        MAknsAlIterator* AnimationValueIteratorL() const;
williamr@4
  1306
williamr@4
  1307
        void AppendSizeBoundParamL( const TAknsAlSizeBoundParameterData& aParam );
williamr@4
  1308
        MAknsAlIterator* SizeBoundParamIteratorL() const;
williamr@4
  1309
williamr@4
  1310
    private:
williamr@4
  1311
        TInt iMinInterval; // In milliseconds
williamr@4
  1312
        TBool iMorphing;
williamr@4
  1313
williamr@4
  1314
        TInt iInputLayer;
williamr@4
  1315
        TInt iInputLayerMode;
williamr@4
  1316
        TInt iOutputLayer;
williamr@4
  1317
        TInt iOutputLayerMode;
williamr@4
  1318
williamr@4
  1319
        RPointerArray<CAknsEffectCommand> iPreprocessCommands;
williamr@4
  1320
        RPointerArray<CAknsAnimationCommand> iAnimationCommands;
williamr@4
  1321
        RPointerArray<CAknsTimingModel> iTimingModels;
williamr@4
  1322
        RPointerArray<CAknsAnimationValue> iAnimationValues;
williamr@4
  1323
        RPointerArray<CAknsSizeBoundParameter> iSizeBoundParams;
williamr@4
  1324
    };
williamr@4
  1325
williamr@4
  1326
#endif // AKNSITEMDATA_H
williamr@4
  1327
williamr@4
  1328
// End of File