--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/taskswitcher/teleportui/hgteleportapp/src/hgteleportphysicsengine.cpp Mon Jan 18 20:10:36 2010 +0200
@@ -0,0 +1,143 @@
+/*
+ * ============================================================================
+ * Name : hgteleportphysicsengine.cpp
+ * Part of : Hg Teleport
+ * Description : Teleport physics
+ * Version : %version: 5 %
+ *
+ * Copyright © 2009 Nokia. All rights reserved.
+ * This material, including documentation and any related computer
+ * programs, is protected by copyright controlled by Nokia. All
+ * rights are reserved. Copying, including reproducing, storing,
+ * adapting or translating, any or all of this material requires the
+ * prior written consent of Nokia. This material also contains
+ * confidential information which may not be disclosed to others
+ * without the prior written consent of Nokia.
+ * ============================================================================
+ *
+ */
+#include <aknphysics.h>
+
+#include "hgteleportphysicsengine.h"
+#include "hgteleportphysics.h"
+
+// -----------------------------------------------------------------------------
+// CHgTeleportPhysicsHandler::CHgTeleportPhysicsHandler
+// -----------------------------------------------------------------------------
+//
+CHgTeleportPhysicsEngine::CHgTeleportPhysicsEngine()
+ {
+ // No implementation required
+ }
+
+// -----------------------------------------------------------------------------
+// CHgTeleportPhysicsEngine::~CHgTeleportPhysicsEngine
+// -----------------------------------------------------------------------------
+//
+CHgTeleportPhysicsEngine::~CHgTeleportPhysicsEngine()
+ {
+ delete iTeleportPhysics;
+ delete iPhysics;
+ }
+
+// -----------------------------------------------------------------------------
+// CHgTeleportPhysicsEngine::NewLC
+// -----------------------------------------------------------------------------
+//
+CHgTeleportPhysicsEngine* CHgTeleportPhysicsEngine::NewLC(
+ MAknPhysicsObserver& aPhysicObserver, CCoeControl& aViewControl)
+ {
+ CHgTeleportPhysicsEngine* self = new (ELeave) CHgTeleportPhysicsEngine();
+ CleanupStack::PushL(self);
+ self->ConstructL(aPhysicObserver, aViewControl);
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CHgTeleportPhysicsEngine::NewL
+// -----------------------------------------------------------------------------
+//
+CHgTeleportPhysicsEngine* CHgTeleportPhysicsEngine::NewL(
+ MAknPhysicsObserver& aPhysicObserver, CCoeControl& aViewControl)
+ {
+ CHgTeleportPhysicsEngine* self = CHgTeleportPhysicsEngine::NewLC(
+ aPhysicObserver, aViewControl);
+ CleanupStack::Pop(); // self;
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CHgTeleportPhysicsEngine::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CHgTeleportPhysicsEngine::ConstructL(MAknPhysicsObserver& aPhysicObserver,
+ CCoeControl& aViewControl)
+ {
+ iPhysics = CAknPhysics::NewL(aPhysicObserver, &aViewControl);//TODO:
+ iTeleportPhysics = CHgTeleportPhysics::NewL(aPhysicObserver);
+ }
+
+
+// -----------------------------------------------------------------------------
+// CHgTeleportPhysicsEngine::IsRunning
+// -----------------------------------------------------------------------------
+//
+TBool CHgTeleportPhysicsEngine::IsRunning() const
+ {
+ return iPhysics->OngoingPhysicsAction() != CAknPhysics::EAknPhysicsActionNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CHgTeleportPhysicsEngine::HandleDragEvent
+// -----------------------------------------------------------------------------
+//
+void CHgTeleportPhysicsEngine::HandleDragEvent(
+ AknTouchGestureFw::MAknTouchGestureFwDragEvent& aEvent)
+ {
+ if (AknTouchGestureFw::EAknTouchGestureFwStart == aEvent.State())
+ {
+ iPhysics->StopPhysics();
+ iStartTime.HomeTime();
+ }
+ else if (AknTouchGestureFw::EAknTouchGestureFwOn == aEvent.State())
+ {
+ TPoint deltaPoint(aEvent.PreviousPosition() - aEvent.CurrentPosition());
+ iPhysics->RegisterPanningPosition(deltaPoint);
+ }
+ else //AknTouchGestureFw::EAknTouchGestureFwStop
+ {
+ TPoint drag(aEvent.PreviousPosition() - aEvent.CurrentPosition());
+ iPhysics->StartPhysics(drag, iStartTime);
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CHgTeleportPhysicsEngine::Stop
+// -----------------------------------------------------------------------------
+//
+void CHgTeleportPhysicsEngine::Stop()
+ {
+ iPhysics->StopPhysics();
+ iTeleportPhysics->StopPhysics();
+ }
+
+// -----------------------------------------------------------------------------
+// CHgTeleportPhysicsEngine::AnimateToTargetL
+// -----------------------------------------------------------------------------
+//
+void CHgTeleportPhysicsEngine::AnimateToTarget(const TPoint& aPoint)
+ {
+ iTeleportPhysics->StartPhysics(aPoint);
+ }
+
+// -----------------------------------------------------------------------------
+// CHgTeleportPhysicsEngine::ReInitPhysicsL
+// -----------------------------------------------------------------------------
+//
+void CHgTeleportPhysicsEngine::ReInitPhysicsL(const TSize& aWorldSize,
+ const TSize& aViewSize, TBool aLandscape)
+ {
+ iPhysics->InitPhysicsL(aWorldSize, aViewSize, aLandscape);
+ }
+
+//End file