lafagnosticuifoundation/bmpanimation/tef/Tanctl.h
changeset 0 2f259fa3e83a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lafagnosticuifoundation/bmpanimation/tef/Tanctl.h	Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,107 @@
+// Copyright (c) 2006-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 
+*/
+
+#if !defined(__TANCTL_H__)
+#define __TANCTL_H__
+
+#if !defined(__COECNTRL_H__)
+#include <coecntrl.h>
+#endif
+
+class TResourceReader;
+class RAnimDll;
+class RBitmapAnim;
+class CBitmapAnimClientData;
+class CBitmapFrameData;
+
+_LIT(KTBmpAnimMBMFilePath, "z:\\resource\\apps\\tbmpanim\\mbm\\tbmpanim.mbm");
+
+enum TEikAnimationPanic
+	{
+	EEikPanicAnimationNoControlContext,
+	EEikPanicAnimationNoRAnimation,
+	EEikPanicAnimationNoWindow
+	};
+
+//
+//	CBitmapAnimIdler
+//
+
+class CBitmapAnimIdler : public CIdle
+	{
+public:
+	static CBitmapAnimIdler* NewL();
+private:
+	CBitmapAnimIdler() : CIdle(EPriorityLow) { }
+	};
+
+
+class CAnimateFramesCtl : public CCoeControl
+	{
+public:
+	static CAnimateFramesCtl* NewL();
+	virtual ~CAnimateFramesCtl();
+public:
+	inline RBitmapAnim* Animation() { return iAnimation; }
+	inline CBitmapAnimClientData* BitmapAnimData() { return iBitmapAnimData; }
+	void CancelAnimationL();
+	void SetAnimationCtlWindowL(CCoeControl* aParent);
+	inline void SetFileName(TDesC& aAppFileName) { iFileName = aAppFileName; }
+	void SetBitmapAnimationDataL();
+	void SetFrameIndexL(TInt aIndex);
+	void SetFrameIntervalL(TInt aInterval);
+	void StartAnimationL();
+	void StaticConstructL(TInt aResourceId);
+	void Panic(TEikAnimationPanic aPanic);
+	void CompleteAnimationInitialisationL();
+public: // from CCoeControl
+	virtual void ConstructFromResourceL(TResourceReader& aResourceReader);
+	virtual TSize MinimumSize();
+private:
+	enum TInternalFlags
+		{
+		EInitialisationCompleted	=	0x0001,
+		EWaitForRedrawing			=	0x0002
+		};
+private: // from CCoeControl
+	virtual void SizeChanged();
+	virtual void PositionChanged();
+private:
+	CAnimateFramesCtl();
+	void BaseConstructL();
+	inline TBool IsInitialisationComnpleted() { return iFlags&EInitialisationCompleted; }
+	CBitmapFrameData* ReadFrameDataFromResourceL(TResourceReader& aFramesReader, const TDesC& aFileName);
+	TBool SetWindowOnServerSideL();
+	TBool SetAnimationWindowL();
+	void CreateAndStartIdlerL();
+	static TInt StartAnimationCallBackL(TAny* aThis);
+private:
+	CBitmapAnimClientData* iBitmapAnimData;
+	RAnimDll iAnimDll;
+	RBitmapAnim* iAnimation;
+	TInt iFlags;
+	TFileName iFileName;
+	CBitmapAnimIdler* iStartAnimationIdler;
+	};
+
+#endif
+
+