Fix def files so that the implementation agnostic interface definition has no non-standards defined entry points, and change the eglrefimpl specific implementation to place its private entry points high up in the ordinal order space in the implementation region, not the standards based entrypoints region.
// Copyright (c) 2008-2009 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:
//
/**
@file
@test
@internalComponent - Internal Symbian test code
*/
#ifndef __TTRANSPTANIM__
#define __TTRANSPTANIM__
#include <e32std.h>
#include <e32base.h>
#include <w32std.h>
#include "../tlib/testbase.h"
#include "AUTO.H"
#include "AUTODLL.H"
enum
{
GraphicsWServ0483 = 0
};
class CTTestCase;
class CTransAnimTimer;
class CTTransparentAnim;
class CTTAnimation;
class MAnimationObserver;
class CTTransparentAnim : public CTWsGraphicsBase
{
public:
static CTTestCase* CreateTestCaseL(CTTransparentAnim*, TInt);
public:
CTTransparentAnim(CTestStep*);
virtual ~CTTransparentAnim();
void ConstructL();
void SetCurrent(CTTestCase*);
CTTestCase* GetCurrent();
protected:
virtual void RunTestCaseL(TInt);
private:
CTTestCase* iCurrentTestCase;
};
class CTTransparentAnimStep : public CTGraphicsStep
{
public:
CTTransparentAnimStep();
protected:
virtual CTGraphicsBase* CreateTestL();
};
class CTransAnimTimer : public CTimer
{
public:
CTransAnimTimer();
~CTransAnimTimer();
void ConstructL();
void Start(TTimeIntervalMicroSeconds32 aInterval,TCallBack aCallBack);
private:
void RunL();
TCallBack iCallBack;
};
class CTTAnimation
{
public:
CTTAnimation(CTWin*, TInt);
~CTTAnimation();
void StartL();
TBool IsComplete();
void SetCurrentFrameSet(TInt);
CTWin* GetWindow();
void Attach(MAnimationObserver*);
private:
static TInt NextFrame(TAny*);
void NextFrame();
private:
CTWin* iWin;
MAnimationObserver* iObserver;
RAnimDll iAnimDll;
RTestAnim iDrawAnim;
CTransAnimTimer iAnimTimer;
TInt iFrameCount;
TInt iCurrentFrameSet;
TBool iIsComplete;
TInt iDrawArg;
};
template <TBool AlphaTransparency = EFalse>
class CTAnimWin : public CTWin
{
public:
static CTWin* NewL(TPoint aPosition, TSize aSize)
{
CTAnimWin* w = new(ELeave) CTAnimWin();
CleanupStack::PushL(w);
w->ConstructL(aPosition, aSize);
CleanupStack::Pop();
return w;
}
public:
virtual ~CTAnimWin(){}
void Draw(){}
private:
CTAnimWin(){}
void ConstructL(TPoint aPoint, TSize aSize)
{
TRgb bgColor(150, 150, 150);
ConstructExtLD(*TheClient->iGroup, aPoint, aSize);
AssignGC(*TheClient->iGc);
Win()->SetRequiredDisplayMode(EColor16MA);
if (AlphaTransparency)
{
Win()->SetTransparencyAlphaChannel();
bgColor.SetAlpha(150);
}
Win()->SetBackgroundColor(bgColor);
Win()->Activate();
}
};
//*****************************************************************************
class MAnimationObserver
{
public:
virtual void Update(CTTAnimation*) = 0;
};
class CTTestCase : public MAnimationObserver
{
public:
CTTestCase();
virtual ~CTTestCase() {}
TBool IsAlreadyRunning();
TBool IsComplete();
void StartL();
TBool HasFailed();
void SetError(TInt);
// Implemented for MAnimationObserver
virtual void Update(CTTAnimation*);
virtual void ConstructL() = 0;
virtual TPtrC TestCaseName() = 0;
protected:
virtual void RunTestCaseL() = 0;
void SetIsCompleted(TBool);
private:
TInt iError;
TBool iIsComplete;
TBool iIsRunning;
};
class CTGraphicsWServ0483 : public CTTestCase
{
public:
static CTGraphicsWServ0483* NewL();
public:
virtual ~CTGraphicsWServ0483();
virtual void RunTestCaseL();
void Update(CTTAnimation*);
protected:
CTGraphicsWServ0483(){}
virtual void ConstructL();
virtual TPtrC TestCaseName();
private:
CTTAnimation* iAnim;
CTTAnimation* iCheckAnim;
};
_LIT(KTTransparentAnimStep,"TTransparentAnim");
#endif // __TTRANSPTANIM__