diff -r 5315654608de -r 08c6ee43b396 taskswitcher/teleportui/hgteleportapp/inc/hgteleportphysicsengine.h --- /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 +#include +// 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_*/