--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uifw/AvKon/aknphysics/inc/aknphysicsdragobserver.h Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,160 @@
+/*
+* 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: AknPhysics drag event observer
+*
+*/
+
+
+#ifndef C_AKNPHYSICSDRAGOBSERVER_H
+#define C_AKNPHYSICSDRAGOBSERVER_H
+
+
+#include <e32base.h>
+
+class TPointerEvent;
+class CAknPhysicsParameterProvider;
+class CAknPhysicsFlickTracker;
+
+/**
+ * AknPhysics drag event observer
+ *
+ */
+NONSHARABLE_CLASS( CAknPhysicsDragObserver ) : public CBase
+ {
+
+public:
+
+ /**
+ * Two-phased constructor.
+ */
+ static CAknPhysicsDragObserver* NewL(
+ CAknPhysicsParameterProvider* aProvider );
+
+ /**
+ * Two-phased constructor.
+ */
+ static CAknPhysicsDragObserver* NewLC(
+ CAknPhysicsParameterProvider* aProvider );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CAknPhysicsDragObserver();
+
+ /**
+ * Registers pointer event position.
+ *
+ * @param aEvent pointer event
+ */
+ void RegisterEventPosition( const TPointerEvent* aEvent );
+
+ /**
+ * Returns changed drag distance point.
+ *
+ * @return Changed drag distance.
+ */
+ TPoint ChangedDragDistance() const;
+
+ /**
+ * Returns changed vertical drag move time.
+ *
+ * @return Changed drag move time.
+ */
+ TInt ChangedVerticalDragMoveTime() const;
+
+ /**
+ * Returns changed horizontal drag move time.
+ *
+ * @return Changed drag move time.
+ */
+ TInt ChangedHorizontalDragMoveTime() const;
+
+ /**
+ * Returns ETrue if drag parameters has been changed during drag event.
+ *
+ * @return ETrue if drag parameters has been changed.
+ */
+ TBool DragChanged() const;
+
+private:
+
+ /**
+ * C++ constructor.
+ */
+ CAknPhysicsDragObserver();
+
+ /**
+ * Symbian second-phase constructor.
+ */
+ void ConstructL( CAknPhysicsParameterProvider* aProvider );
+
+ /**
+ * Handles pointer down event.
+ *
+ * @param aPosition Down event position.
+ */
+ void HandlePointerDownEvent( const TPoint& aPosition );
+
+ /**
+ * Handles pointer drag event.
+ *
+ * @param aPosition Drag event position.
+ */
+ void HandlePointerDragEvent( const TPoint& aPosition );
+
+ /**
+ * Handles pointer up event.
+ *
+ * @param aPosition Up event position.
+ */
+ void HandlePointerUpEvent( const TPoint& aPosition );
+
+ /**
+ * Resets state.
+ */
+ void Reset();
+
+private: // data
+
+ /**
+ * Dragging event down position.
+ */
+ TPoint iDownPosition;
+
+ /**
+ * Dragging event up position.
+ */
+ TPoint iUpPosition;
+
+ /**
+ * Vertical flick tracker.
+ * Own.
+ */
+ CAknPhysicsFlickTracker* iVerticalTracker;
+
+ /**
+ * Horizontal flick tracker.
+ * Own.
+ */
+ CAknPhysicsFlickTracker* iHorizontalTracker;
+
+ /**
+ * Boolean flag to indicate whether pointer is considered to be down.
+ */
+ TBool iPointerDown;
+ };
+
+
+#endif // C_AKNPHYSICSDRAGOBSERVER_H
+