skins/AknSkins/alinc/AknsAlShared.h
author William Roberts <williamr@symbian.org>
Tue, 23 Mar 2010 16:09:27 +0000
branchSymbian3_Theme
changeset 35 838be9535c06
parent 0 05e9090e2422
permissions -rw-r--r--
Start integration branch for Symbian^3 Theme The theme has been built using Carbide.ui on S60 5th Edition using the N97 plugin The source code in sf/mw/uiresources/skins/Symbian/srcdata was used to generate the installable SIS file which lives in the group directory, but the aim here is to build the theme for delivery in the ROM (preferrably as the default theme). Running "sbs -b bld.inf -c winscw" should build cleanly and deliver a matched set of files which then show up in the Settings | Themes | General list. Attempting to install it produces "Theme Corrupted".

/*
* Copyright (c) 2005-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:  Utility class for storing animation value and binding the animation
*  value to timing model.
*
*/


#ifndef AKNSALSHARED_H
#define AKNSALSHARED_H

// INCLUDE FILES
#include <e32base.h>
#include <AknsRlEffect.h>

#include "AknsAlTimingModel.h"
#include "AknsAlAnimationValue.h"

// FORWARD DECLARATIONS
class CAknsAlEffectParamContainer;
class CAknsAlNamedReferenceContainer;

class CAknsRlEffectPlugin;

/**
* Utility class for storing animation value and binding the animation value to
* timing model.
*/
NONSHARABLE_CLASS( CAknsAlAnimationValueContainer ): public CBase
    {
    protected:
        CAknsAlAnimationValueContainer();
        void ConstructL( MAknsAlAnimationValue* aValue,
                         const MAknsAlTimingModel* aModel );

    public:
        virtual ~CAknsAlAnimationValueContainer();
        static CAknsAlAnimationValueContainer* NewL( MAknsAlAnimationValue* aValue,
                                                     const MAknsAlTimingModel* aModel );

    public:
        inline void Tick( TUint32 aDeltaTime )
            {
            iAnimationValue->Tick( aDeltaTime, iTimingModel->RelativeValue() );
            }

        inline MAknsAlAnimationValue* AnimationValue() const
            {
            return iAnimationValue;
            }

        inline void Begin() { iAnimationValue->Begin(); }

    private:
        // Ownership vested here
        MAknsAlAnimationValue* iAnimationValue;
        // Only referencing
        const MAknsAlTimingModel* iTimingModel;
    };


NONSHARABLE_CLASS( CAknsAlAnimationCommand ): public CBase
    {
    protected:
        CAknsAlAnimationCommand();
        void ConstructL();

    public:
        virtual ~CAknsAlAnimationCommand();
        static CAknsAlAnimationCommand* NewL();

        MAknsRlEffect* Effect();
        void AddParameterL( const TAknsRlParameterData& aParam );
        void AddNamedReferenceL( const TDesC& aName,
                                 const MAknsAlAnimationValue* aValue );
        /**
        * Ownership of plugin is transferred
        */
        void SetPlugin( CAknsRlEffectPlugin* aPlugin );
        void SetLayerConfig( const TAknsRlRenderOpParam& aConfig );
        const TAknsRlRenderOpParam& LayerConfig() const;
        MAknsRlParameterIterator* ParameterIterator();
        MAknsRlParameterIterator* NamedReferenceIterator();

    private:

        TAknsRlRenderOpParam iLayerConfig;
        // Effect plugin, owned
        CAknsRlEffectPlugin* iPlugin;
        // Stores initial (constant) parameters, owned
        CAknsAlEffectParamContainer* iParamContainer;
        // Stores time bound parameters (references to animation values), owned
        CAknsAlNamedReferenceContainer* iReferenceContainer;
    };

#endif // AKNSALSHARED_H