diff -r 000000000000 -r 2f259fa3e83a lafagnosticuifoundation/graphicseffects/StubAdapterSrc/gfxtransadapterstub.cpp --- /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(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() + { + }