lafagnosticuifoundation/graphicseffects/StubAdapterSrc/gfxtransadapterstub.cpp
changeset 0 2f259fa3e83a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lafagnosticuifoundation/graphicseffects/StubAdapterSrc/gfxtransadapterstub.cpp	Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,125 @@
+// 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:
+//
+
+#include "gfxtransadapterstub.h"
+
+//
+// DLL interface.
+//
+EXPORT_C MGfxTransAdapter* MGfxTransAdapter::CreateL(MGfxTransClient* aClient)
+	{
+		CGfxTransAdapterStub* adapter = new (ELeave) CGfxTransAdapterStub(aClient);
+		CleanupStack::PushL(adapter);
+		adapter->ConstructL();
+		CleanupStack::Pop(adapter);
+		return adapter;
+	}
+
+EXPORT_C void MGfxTransAdapter::Destroy(MGfxTransAdapter* aAdapter)
+	{
+	delete static_cast<CGfxTransAdapterStub*>(aAdapter);
+	}
+
+//
+// Construction/Destruction
+//
+CGfxTransAdapterStub::CGfxTransAdapterStub(MGfxTransClient* aClient) :
+	iClient(aClient)
+	{
+	}
+	
+CGfxTransAdapterStub::~CGfxTransAdapterStub()
+	{
+	}
+	
+void CGfxTransAdapterStub::ConstructL()
+	{
+	}
+
+//
+// MGfxTransAdapter implementation
+//
+TInt CGfxTransAdapterStub::HandleClientState(TClientState /*aState*/, const CCoeControl* /* aKey*/, TInt /*aHandle*/)
+	{
+	//Adapter should respond to the state here if it needs to.
+	//Most adapters will probably not be interested in most states.
+	
+	//aKey can be NULL if no control is available for that state and aHandle can be 0 if its not valid.
+	//(like global abort)
+	
+	//You can also request the CTransitionData here, if you got a valid handle. 
+	//Be aware though that it might not yet be complete. 
+	//(For example, in EPostBeginCapture, the begin state has just been captured, but 
+	// the endstate has not yet been.)
+	
+	return KErrNone;
+	}
+	
+TBool CGfxTransAdapterStub::IsActive()
+	{
+	return ETrue;
+	}
+	
+TControlPolicy* CGfxTransAdapterStub::GetTransitionPolicies(TInt& /* aCount*/)
+	{
+	return NULL;
+	}
+	
+void CGfxTransAdapterStub::StartTransition(TInt aHandle)
+	{
+	//Get information about the transition collected by the client like this:
+	const CTransitionData* transition;
+	iClient->GetTransitionData(aHandle,transition);
+	
+	//Check gfxtransdatatype.h to see what information is available through CTransitionData.
+	
+	
+	// A start transition call from the client MUST always be followed by a transitionfinished callback to it.
+	// If not getting it, the client can't know when to clean up the transition information.
+	iClient->TransitionFinished(aHandle); 
+	}
+
+void CGfxTransAdapterStub::NotifyExternalState(TInt /*aState*/, const TDesC8* /* aArg */)
+	{
+	//This one is called if the new NotifyExternalState API function is called.
+	// anything passed in from the API gets through to here unmodified.
+	}
+	
+void CGfxTransAdapterStub::HandleParticpantUpdate(TInt /*aHandle*/, const CParticipantData* /*aParticipant*/, RWsGraphicMsgBuf* /*aCommandBuffer*/, const TRect& /*aDrawRect*/, const TRect& /*aBoundingRect*/)
+	{
+	//This function will be called if the client finds a participant has been updated (called drawnow on) 
+	//while the transition is animating. 
+	//(That is, after End has return, but before the client has got TransitionFinished from the adapter)
+	
+	//For this stubadapter, this can never happen since all transitions are finished immediatly.
+	//A real adapter would though do this in an async way, returning from StartTransition without calling
+	//TransitionFinished, and then call this at a later point when the animation has finished.
+	}
+
+void CGfxTransAdapterStub::BeginFullScreen(TUint /*aAction*/, const TRect& /*aEffectArea*/)
+	{
+	}
+
+void CGfxTransAdapterStub::BeginFullScreen(TUint /*aAction*/, const TRect& /*aEffectArea*/, TUint /*aType*/, const TDesC8& /*aParams*/)
+	{
+	}
+
+void CGfxTransAdapterStub::EndFullScreen()
+	{
+	}
+
+void CGfxTransAdapterStub::AbortFullScreen()
+	{
+	}