idlehomescreen/xmluirendering/uiengine/inc/xngesture.h
branchRCL_3
changeset 20 899e4666ea9a
parent 16 1526727a5b85
parent 19 79311d856354
child 21 45cc9ca502a9
--- a/idlehomescreen/xmluirendering/uiengine/inc/xngesture.h	Fri Mar 26 15:15:17 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,369 +0,0 @@
-/*
-* Copyright (c) 2008-2008 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:  Gesture class
-*
-*/
-
-
-#ifndef _XNGESTURE_H_
-#define _XNGESTURE_H_
-
-// System includes
-#include <e32base.h>
-
-// User includes
-#include "xnpointarray.h"
-#include "xngesturerecogniser.h"
-
-// Namespace declaration
-
-/**
- * XnGestureHelper namespace
- * Used for the whole gesture family - Gesture recognizer, gesture helper, 
- * Point array
- */
-namespace XnGestureHelper
-    {
-    
-    /**
-     * Struct for a point in floating-point represanation 
-     */
-    NONSHARABLE_STRUCT( TRealPoint )
-        {
-        inline TRealPoint();
-        inline TRealPoint( const TRealPoint& aPoint );
-        inline TRealPoint( TReal aX, TReal aY );
-        inline TBool operator==( const TRealPoint& aPoint ) const;
-
-        TReal32 iX;
-        TReal32 iY;
-        };
-    
-    // Class declaration
-
-    /**  
-     *  TGesture represents the gesture that the user has made.
-     *  Implements MGestureEvent interface to allow clients to 
-     *  inspect the gesture
-     *  
-     *  @ingroup group_xnlayoutengine 
-     */
-    NONSHARABLE_CLASS( CXnGesture ) : public CBase
-        {
-    public:
-        
-        /** 
-         * X and Y axes, or both 
-         */
-        enum TAxis
-            {
-            EAxisBoth, 
-            EAxisHorizontal, 
-            EAxisVertical
-            };
-
-    public:
-        
-        /** destructor */
-        ~CXnGesture();
-
-        /** 
-         * Sets the gesture as empty. resets timers to receive points
-         * immediately
-         */
-        void Reset();
-
-        /** 
-         * Check the gesture if it is empty
-         * 
-         * @return ETrue if the gesture has no points 
-         */
-        TBool IsEmpty() const;
-
-        /**
-         * Add a point to the sequence of points that forms the gesture
-         * Call Reset() just before adding the first point
-         * 
-         * @param aPoint the point to add
-         * @return error code
-         */
-        TInt AddPoint( const TPoint& aPoint );
-
-        /** 
-         * Checks if the point it is close to holding point
-         * 
-         * @param aPoint Point to be examined
-         * @return ETrue if the point is very near the holding point
-         */
-        TBool IsNearHoldingPoint( const TPoint& aPoint ) const;
-
-        /** 
-         * Set the latest point as the holding point
-         */
-        void SetHoldingPoint();
-
-        /** 
-         * Checks if the examined point is at the last point's position
-         * 
-         * @param aPoint Point to be examined
-         * @return ETrue if aPoint is the same as point added last 
-         */
-        TBool IsLatestPoint( const TPoint& aPoint ) const;
-
-        /** 
-         * After call, Code(...) will return appropriate holding gesture code.
-         */
-        void StartHolding();
-
-        /** 
-         * After call, Code(...) will return a "hold released" gesture code 
-         * when the gesture is completed. Meanwhile, code will be drag.
-         */
-        void ContinueHolding();
-
-        /** 
-         * Set as stylus released 
-         */
-        void SetReleased();
-
-        /** 
-         * Set the gesture as complete. Gesture is completed at pointer up 
-         */
-        void SetComplete();
-
-        /** 
-         * After call, Code(...) will return a "cancelled" gesture code 
-         */
-        void SetCancelled();
-
-        /** 
-         * Checks if the gesture is a tap
-         * 
-         * @return Whether the current gesture is a tap 
-         *         (and hence not a swipe). Does not consider holding or 
-         *         other state information (such as whether the gesture was 
-         *         just started or is dragging). Results are based purely on 
-         *         the current stream of points.
-         */
-        TBool IsTap() const;
-
-        /**
-         * From MGestureEvent
-         * Checks and return current gesture status at desired axis
-         * 
-         * @param aRelevantAxis Axis to be examined
-         * @return Gesture status
-         */
-        TXnGestureCode Code( TAxis aRelevantAxis ) const;
-
-        /**
-         * From MGestureEvent
-         * Checks and returns holding status
-         * 
-         * @return Return holding
-         */
-        TBool IsHolding() const;
-
-        /**
-         * From MGestureEvent
-         * Returns first position form iPoints
-         * 
-         * @return Returns first point
-         */
-        TPoint StartPos() const;
-
-        /**
-         * From MGestureEvent
-         * Returns current (last) position from iPoints
-         * 
-         * @return Returns last point
-         */
-        TPoint CurrentPos() const;
-
-        /**
-         * From MGestureEvent
-         * Returns speed of X, Y movement 
-         * 
-         * @return Speed in X, Y axis
-         */
-        TRealPoint Speed() const;
-
-        /**
-         * From MGestureEvent
-         * Scales the speed
-         * 
-         * @return Scaled speed
-         */
-        TRealPoint SpeedPercent( const TRect& aEdges ) const;
-
-        /**
-         * From MGestureEvent
-         * Cheks and returns distance between start and current position
-         * 
-         * @return Distance between two points
-         */
-        TPoint Distance() const;
-        
-        /**
-         * Checks and returns gesture
-         * 
-         * @param aRelevantAxis See @ref MGestureEvent::Code
-         * @return gesture code by analysing the sequence of points
-         */
-        TXnGestureCode CodeFromPoints( TAxis aRelevantAxis ) const;
-        
-        TXnGestureCode LastDirection( TAxis aRelevantAxis ) const;
-
-    private:
-        
-        /** Information of an earlier gesture */
-        struct TGestureRecord
-            {
-            enum TType
-                {
-                ETypeOther, 
-                ETypeTap, 
-                ETypeDoubleTap
-                };
-
-            TGestureRecord();
-            TGestureRecord( TType aType, TTime aCompletionTime, TPoint aPos );
-
-            /** type of the gesture */
-            TType iType;
-            /** completion time fo the gesture */
-            TTime iCompletionTime;
-            /** point of completion */
-            TPoint iPos;
-            };
-
-        /** 
-         * Returns elapsed time
-         *
-         * @return elapsed time between the latest and previous points 
-         */
-        inline TTimeIntervalMicroSeconds32 TimeFromPreviousPoint() const;
-
-        /** 
-         * Checks whether the movement has stopped
-         *
-         * @return ETrue if user has stopped moving the stylus before lifting 
-         *         it 
-         */
-        inline TBool IsMovementStopped() const;
-
-        /** 
-         * Offset of the last entry
-         *  
-         * @return aOffset'th last entry in the list of points 
-         */
-        inline const TXnPointEntry& NthLastEntry( TInt aOffset ) const;
-
-        /** 
-         * Calles NthLastEntry for previous point
-         * 
-         * @return previous point (may not be exactly the point before last)
-         */
-        inline const TXnPointEntry& PreviousEntry() const;
-
-        /** 
-         * Returns the point before the last one
-         * 
-         * @return position of point received just before the latest point 
-         */
-        inline TPoint PreviousPos() const;
-
-        /** 
-         * Return if the tap was a double tap
-         * 
-         * @return ETrue if tap should be a double tap 
-         */
-        TBool IsTapDoubleTap() const;
-
-        /** 
-         * Returns current gesture type
-         * 
-         * @return the type of the current gesture 
-         */
-        TGestureRecord::TType Type() const;
-
-    private:
-        // Enumerators for holding and completion state
-        
-        /**
-         * the different states that indicate whether user has made a holding 
-         * gesture
-         */
-        enum THoldingState
-            {
-            /** before holding activated (i.e., holding not activated) */
-            ENotHolding = 0,
-            /** holding activated just now (lasts just one callback round) */
-            EHoldStarting,
-            /** holding activated earlier */
-            EHolding
-            };
-
-        /**
-         * Completion states
-         */                 
-        enum TCompletionState
-            {
-            // Note: implementation assumes this order of enums
-            ENotComplete = 0, 
-            ECancelled, 
-            EComplete, 
-            EReleased
-            };
-    
-    private:
-        // Members
-        
-        /** 
-         * sequence of points that make up the gesture, owned. 
-         */
-        RArray< TXnPointEntry > iPoints;
-        
-        /** 
-         * index in iPoints of the point in which user started holding 
-         */
-        TInt iHoldingPointIndex;     
-        
-        /**
-         * state that indicates is user has held the pointer down in one 
-         * position for long time to indicate a holding gesture 
-         */
-        THoldingState iHoldingState;
-        
-        /** 
-         * gesture only becomes complete when user lifts the pointer 
-         */ 
-        TCompletionState iState;
-        
-        /** 
-         * time when the stylus was lifted. 
-         */
-        TTime iCompletionTime;
-        
-        /** 
-         * previous gesture information for double tap
-         */
-        TGestureRecord iPreviousGesture;
-        };
-    } // namespace XnGestureHelper
-
-// Inline functions
-#include "xngesture.inl"
-
-#endif // _XNGESTURE_H_