--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/lcdui_akn/lcdui/src/CMIDFormPhysics.cpp Mon May 03 12:27:20 2010 +0300
@@ -0,0 +1,271 @@
+/*
+* Copyright (c) 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: Class to store physics related data in forms.
+*
+*/
+
+
+#include "CMIDForm.h"
+#include "CMIDFormPhysics.h"
+// #include "MMIDLcduiPhysicsInterface.h"
+// used for retrieving CR repository codes
+#include <centralrepository.h>
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CMIDFormPhysics::CMIDFormPhysics
+// ---------------------------------------------------------------------------
+//
+CMIDFormPhysics::CMIDFormPhysics(CMIDForm& aParent) :
+ iParent(aParent)
+{
+}
+
+// ---------------------------------------------------------------------------
+// CMIDFormPhysics::ConstructL
+// ---------------------------------------------------------------------------
+//
+//typedef MMIDLcduiPhysicsInterface* (*GetInstance)(CCoeControl*, MMIDLcduiPhysicsObserver*);
+void CMIDFormPhysics::ConstructL()
+{
+ _LIT(KDllName, "lcduiphysicswrap");
+
+ TInt status = iPluginLoader.Load(KDllName);
+ if (status == KErrNone)
+ {
+ GetInstance getInstanceL = (GetInstance)iPluginLoader.Lookup(1);
+ iPhysics = getInstanceL(&iParent, this);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// CMIDFormPhysics::NewL
+// ---------------------------------------------------------------------------
+//
+CMIDFormPhysics* CMIDFormPhysics::NewL(CMIDForm& aParent)
+{
+ CMIDFormPhysics* self = new(ELeave) CMIDFormPhysics(aParent);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ return self;
+}
+
+// ---------------------------------------------------------------------------
+// CMIDFormPhysics::~CMIDFormPhysics
+// ---------------------------------------------------------------------------
+//
+CMIDFormPhysics::~CMIDFormPhysics()
+{
+ delete iPhysics;
+ iPluginLoader.Close();
+}
+
+TBool CMIDFormPhysics::FeatureEnabled()
+{
+#ifdef RD_JAVA_S60_RELEASE_9_2
+ return ETrue;
+#else
+ // Copied from aknphysicscrkeys.h
+ const TUid KCRUidAknPhysicsSettings = { 0x20021192 };
+ const TInt KFeatureEnabled(0x00000009);
+
+ CRepository* cenRep = NULL;
+ TRAPD(err, cenRep = CRepository::NewL(KCRUidAknPhysicsSettings))
+ if (err || !cenRep)
+ {
+ return EFalse;
+ }
+ TBool featureEnabled(EFalse);
+ TInt retValue = cenRep->Get(KFeatureEnabled, featureEnabled);
+ delete cenRep;
+
+ if (retValue == KErrNone)
+ {
+ return featureEnabled;
+ }
+ else
+ {
+ return EFalse;
+ }
+#endif
+}
+
+// ---------------------------------------------------------------------------
+// CMIDFormPhysics::InitPhysicsL
+// ---------------------------------------------------------------------------
+//
+void CMIDFormPhysics::InitPhysicsL(const TSize& aWorldSize,
+ const TSize& aViewSize, const TPoint& aViewCenter)
+{
+ if (iPhysics)
+ {
+ iPhysics->InitPhysicsL(aWorldSize, aViewSize, EFalse);
+ iViewCenter = aViewCenter;
+ iWorldSize = aWorldSize;
+ iViewSize = aViewSize;
+ }
+}
+
+// ---------------------------------------------------------------------------
+// CMIDFormPhysics::Stop
+// ---------------------------------------------------------------------------
+//
+void CMIDFormPhysics::Stop()
+{
+ if (iPhysics)
+ {
+ iPhysics->StopPhysics();
+ iPhysics->ResetFriction();
+ }
+}
+
+// ---------------------------------------------------------------------------
+// CMIDFormPhysics::StartFlick
+// ---------------------------------------------------------------------------
+//
+TBool CMIDFormPhysics::StartFlick(const TPoint& aLength, TTime aDuration)
+{
+ if (iPhysics)
+ {
+ TPoint drag(aLength);
+ iPhysics->StartFlick(drag, aDuration);
+ return ETrue;
+ }
+
+ PhysicEmulationEnded();
+ return EFalse;
+}
+
+
+// ---------------------------------------------------------------------------
+// CMIDFormPhysics::HighlightDelay
+// ---------------------------------------------------------------------------
+//
+TInt CMIDFormPhysics::HighlightDelay() const
+{
+ if (iPhysics)
+ {
+ return iPhysics->HighlightTimeout();
+ }
+ else
+ {
+ return 0;
+ }
+}
+
+// ---------------------------------------------------------------------------
+// CMIDFormPhysics::DragThreshold
+// ---------------------------------------------------------------------------
+//
+TInt CMIDFormPhysics::DragThreshold() const
+{
+ if (iPhysics)
+ {
+ return iPhysics->DragThreshold();
+ }
+ else
+ {
+ return 0;
+ }
+}
+
+// ---------------------------------------------------------------------------
+// CMIDFormPhysics::ViewdSize
+// ---------------------------------------------------------------------------
+//
+TSize CMIDFormPhysics::ViewSize() const
+{
+ return iViewSize;
+}
+
+// ---------------------------------------------------------------------------
+// CMIDFormPhysics::SetPanningPosition
+// ---------------------------------------------------------------------------
+//
+void CMIDFormPhysics::SetPanningPosition(const TPoint& aPosition)
+{
+ if (iPhysics)
+ {
+ iPhysics->RegisterPanningPosition(aPosition);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// CMIDFormPhysics::ViewPositionChanged
+// ---------------------------------------------------------------------------
+//
+void CMIDFormPhysics::ViewPositionChanged(const TPoint& aNewPosition, TBool aDrawNow, TUint aFlags)
+{
+ if (!PhysicsAllowed())
+ {
+ return;
+ }
+
+ TInt delta = iViewCenter.iY - aNewPosition.iY;
+
+ iViewCenter = aNewPosition;
+
+ iParent.HandlePhysicsScroll(delta, aDrawNow, aFlags);
+}
+
+// ---------------------------------------------------------------------------
+// CMIDFormPhysics::PhysicEmulationEnded
+// ---------------------------------------------------------------------------
+//
+void CMIDFormPhysics::PhysicEmulationEnded()
+{
+ iParent.PhysicsScrollingEnd();
+}
+
+// ---------------------------------------------------------------------------
+// CMIDFormPhysics::ViewPosition
+// ---------------------------------------------------------------------------
+//
+TPoint CMIDFormPhysics::ViewPosition() const
+{
+ return iViewCenter;
+}
+
+// ---------------------------------------------------------------------------
+// CMIDFormPhysics::CanBeStopped
+// ---------------------------------------------------------------------------
+//
+TBool CMIDFormPhysics::CanBeStopped() const
+{
+ if (iPhysics)
+ {
+ return iPhysics->CanBeStopped();
+ }
+ else
+ {
+ return ETrue;
+ }
+}
+// ---------------------------------------------------------------------------
+// CMIDFormPhysics::PhysicsAllowed
+// ---------------------------------------------------------------------------
+//
+TBool CMIDFormPhysics::PhysicsAllowed() const
+{
+ if (iPhysics)
+ {
+ return ETrue;
+ }
+ else
+ {
+ return EFalse;
+ }
+}