diff -r 000000000000 -r 2f259fa3e83a uifw/AvKon/aknphysics/inc/aknphysicsdragobserver.h --- /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 + +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 +