lafagnosticuifoundation/graphicseffects/ClientInc/TransitionParticipant.h
changeset 0 2f259fa3e83a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lafagnosticuifoundation/graphicseffects/ClientInc/TransitionParticipant.h	Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,155 @@
+// 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:
+//
+
+#ifndef _TRANSITIONPARTICIPANT_H_
+#define _TRANSITIONPARTICIPANT_H_
+
+#include <coecntrl.h>
+
+#include "GfxTransDataType.h"
+#include "TransitionControl.h"
+#include <graphics/remotegc.h>
+
+
+class CTransitionControl;
+
+/**
+A participant in a transition.
+@internalTechnology
+*/
+NONSHARABLE_CLASS(CTransitionParticipant) : public CBase,
+											public MCommandBufferObserver
+	{
+public:	
+	enum TCaptureState 
+		{
+		ENoCapture = 0x0,
+		EBeginCapture = 0x1,
+		EEndCapture = 0x2
+		};
+	enum TCaptureType
+		{
+		EDeep,
+		EShallow,
+		ERect
+		};
+	enum TCoordinateRef
+		{
+		EWindowOwning,
+		EScreen
+		};
+	static CTransitionParticipant* New(	const CCoeControl* aKey,
+										CTransitionControl* aTransControl,
+										TUint aFlags);
+	~CTransitionParticipant();
+	//Capture
+	TInt CaptureBegin(const CCoeControl* aControl, TCaptureType aCaptureType, TInt aZDepth);
+	TInt CaptureEnd(const CCoeControl* aControl, TCaptureType aCaptureType, TInt aZDepth);
+	inline TCaptureState CaptureState();
+	inline TBool HaveImageCapture();
+	//demark
+	void SetBeginDemarcation(TRect& aBeginRect, TCoordinateRef aCoordRef = CTransitionParticipant::EWindowOwning);
+	void SetEndDemarcation(TRect& aBeginRect, TCoordinateRef aCoordRef = CTransitionParticipant::EWindowOwning);
+	void ModifyCoordinates(TPoint& aBeginRef, TPoint& aEndRef);
+	//hints
+	inline void Invalidate();
+	inline void SetFlags(TUint aFlags);
+	inline void SetLayerType(TUid aLayerType);
+	inline TUint Flags();
+	//getters
+	inline TBool Invalidated();
+	inline const CCoeControl* Control();
+	inline const CParticipantData* Data();
+	//MCommandBufferObserver
+	inline void SetListenForUpdates(TBool aListen);
+	void CommandBufferUpdated(const TRect& aDrawRect, const TRect& aBoundingRect);
+    inline CRemoteGc* RemoteGc();
+private:
+	//construct
+	CTransitionParticipant(CTransitionControl* aTransControl);
+	//data
+	TCoordinateRef iCoordRefBegin;
+	TCoordinateRef iCoordRefEnd;
+	TCaptureState iCaptureState;
+	CRemoteGc* iRemoteGc;
+	CParticipantData* iData;
+	CTransitionControl* iTransControl;
+	//hints
+	TBool iInvalidated;
+	TBool iCaptureEndCalled;
+	TBool iInCapture;
+	TBool iCommandsReceived;
+	TBool iCapturedGc;
+	TBool iListensForUpdates;
+	};
+
+// inlines
+
+CRemoteGc* CTransitionParticipant::RemoteGc()
+    {
+    return iRemoteGc;
+    }
+
+CTransitionParticipant::TCaptureState CTransitionParticipant::CaptureState()
+	{
+	return iCaptureState;
+	}
+
+void CTransitionParticipant::Invalidate()
+	{
+	iInvalidated = ETrue;
+	}
+	
+TBool CTransitionParticipant::Invalidated()
+	{
+	return iInvalidated;
+	}
+
+void CTransitionParticipant::SetFlags(TUint aFlags)
+	{
+	iData->iFlags = aFlags;
+	}
+
+void CTransitionParticipant::SetLayerType(TUid aLayerType)
+	{
+	iData->iLayerType = aLayerType;
+	}
+
+TUint CTransitionParticipant::Flags()
+	{
+	return iData->iFlags;
+	}
+
+TBool CTransitionParticipant::HaveImageCapture()
+	{
+	return (iData->iBeginCapture || iData->iEndCapture);
+	}
+
+const CCoeControl* CTransitionParticipant::Control()
+	{
+	return iData->iKey;
+	}
+	
+const CParticipantData* CTransitionParticipant::Data()
+	{
+	return iData;
+	}
+
+void CTransitionParticipant::SetListenForUpdates(TBool aListen)
+	{
+	iListensForUpdates = aListen;
+	}
+#endif //_TRANSITIONPARTICIPANT_H_
+