--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/taskswitcher/teleportui/hgteleportapp/inc/hgteleportphysicsengine.h Mon Jan 18 20:10:36 2010 +0200
@@ -0,0 +1,117 @@
+/*
+ * ============================================================================
+ * Name : hgteleportphysicsengine.h
+ * Part of : Hg Teleport
+ * Description : Teleport physic engine
+ * Version : %version: 3 %
+ *
+ * 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.
+ * ============================================================================
+ *
+ */
+
+#ifndef HGTELEPORTPHYSICSENGINE_H_
+#define HGTELEPORTPHYSICSENGINE_H_
+
+#include <e32base.h>
+#include <akntouchgesturefw.h>
+// CLASS DECLARATION
+class CAknPhysics;
+class CHgTeleportPhysics;
+/**
+ * Teleport physic engine implementation
+ */
+class CHgTeleportPhysicsEngine: public CBase
+ {
+public:
+ // Constructors and destructor
+
+ /**
+ * Destructor.
+ */
+ ~CHgTeleportPhysicsEngine();
+
+ /**
+ * Two-phased constructor.
+ */
+ static CHgTeleportPhysicsEngine* NewL(MAknPhysicsObserver& aPhysicObserver,
+ CCoeControl& aViewControl);
+
+ /**
+ * Two-phased constructor.
+ */
+ static CHgTeleportPhysicsEngine* NewLC(MAknPhysicsObserver& aPhysicObserver,
+ CCoeControl& aViewControl);
+
+private:
+
+ /**
+ * Constructor for performing 1st stage construction
+ */
+ CHgTeleportPhysicsEngine();
+
+ /**
+ * EPOC default constructor for performing 2nd stage construction
+ */
+ void ConstructL(MAknPhysicsObserver& aPhysicObserver,
+ CCoeControl& aViewControl);
+
+
+public:
+ /**
+ * Implements drag gesture handling
+ * @param aEvent - drag event
+ */
+ void HandleDragEvent(AknTouchGestureFw::MAknTouchGestureFwDragEvent& aEvent);
+
+ /**
+ */
+ TBool IsRunning() const;
+
+ /**
+ */
+ void Stop();
+
+ /**
+ * Initialize animation between current position and destination point
+ * @param aPoint - destination point
+ */
+ void AnimateToTarget(const TPoint& aPoint);
+
+ /**
+ *
+ * @param aWorldSize Physics world size.
+ * @param aViewSize Physics (visible) view size.
+ * @param aLandscape ETrue if physics should work in landscape.
+ **/
+ void ReInitPhysicsL(const TSize& aWorldSize,
+ const TSize& aViewSize,
+ TBool aLandscape);
+
+private:
+ /**
+ * Physics.
+ * Own.
+ */
+ CAknPhysics* iPhysics;
+
+ /**
+ * Drag start time
+ */
+ TTime iStartTime;
+
+ /**
+ * Teleport physics for item switch animation
+ */
+ CHgTeleportPhysics* iTeleportPhysics;
+
+ };
+
+#endif /* HGTELEPORTPHYSICSENGINE_H_*/