--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/web_plat/stmgesturefw_api/inc/rt_gestureif.h Tue Feb 02 00:56:45 2010 +0200
@@ -0,0 +1,181 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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 helper implementation
+*
+*/
+
+#ifndef RT_GESTUREIF_H_
+#define RT_GESTUREIF_H_
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <coemain.h>
+#include <aknutils.h>
+#include <e32property.h>
+#include <w32std.h>
+
+namespace stmGesture
+{
+
+/**
+ * UIDs for supported Gestures
+ */
+enum TGestureUid
+{
+ EGestureUidUnknown = 0,
+ EGestureUidTouch,
+ EGestureUidTap,
+ EGestureUidDoubleTap = EGestureUidTap,
+ EGestureUidLongPress,
+ EGestureUidHover,
+ EGestureUidPan,
+ EGestureUidRelease,
+ EGestureUidLeftRight,
+ EGestureUidUpDown,
+ EGestureUidFlick,
+ EGestureUidEdgeScroll,
+ EGestureUidPinch,
+ EGestureUidCornerZoom,
+ //
+ EStmGestureUid_Count
+};
+
+/**
+ * Area Settings
+ */
+enum TGestureAreaSettings
+{
+ ETouchTimeArea,
+ ETouchArea,
+ EHoldArea,
+ //
+ EGestureAreaSettingsCount
+};
+
+/**
+ * Gesture Specific Settings
+ */
+enum TGestureSettings
+{
+ //ETouchTimeout,
+ EDoubleTapTimeout,
+ ESuppressTimeout,
+ EMoveSuppressTimeout,
+ EHoverSpeed,
+ EPanSpeedLow,
+ EPanSpeedHigh,
+ EFlickSpeed = EPanSpeedHigh,
+ EPinchSpeed,
+ EZoomCornerSize,
+ EEdgeScrollRange,
+ ECapacitiveUpUsed,
+ EPanDisabledWhileHovering,
+ EHoverDisabledWhilePanning,
+ EAdjustYPos,
+ EEnableFiltering,
+ EWServMessageInterception,
+ //
+ EGestureSettingsCount
+};
+
+struct TGestureArea
+{
+public:
+ enum TShape
+ {
+ /// Use GestureArea settings from globally defined default
+ EDefaultSettings = -1,
+ ERectangle = 1, // == stmUiEventEngine::ERectangle,
+ ECircle = 2, // == stmUiEventEngine::ECircle,
+ EEllipse = 3 // == stmUiEventEngine::EEllipse
+ };
+
+ TShape iShape;
+ TInt iTimeout;
+ // At the moment iWidth is only used
+ TSize iSize;
+};
+
+/**
+ * Edge Scroll Type
+ */
+enum TEdgeScroll
+{
+ EEdgeScrollUp = 1,
+ EEdgeScrollDown,
+ EEdgeScrollLeft,
+ EEdgeScrollRight,
+ EEdgeScrollUnknown
+};
+
+/**
+ * Tap Type
+ */
+enum TTapType
+{
+ ETapTypeSingle = 1,
+ ETapTypeDouble
+};
+
+/**
+ * Zoom Type
+ */
+enum TZoomType
+{
+ EZoomUndefined = 0,
+ EZoomIn = 1,
+ EZoomOut = 2
+};
+
+/**
+ * Direction Definition
+ */
+enum TGestureDirection
+{
+ ENoDirection = 0,
+ //
+ ENorth = 1,
+ ENorthEast,
+ EEast,
+ ESouthEast,
+ ESouth,
+ ESouthWest,
+ EWest,
+ ENorthWest,
+};
+
+/*!
+ * Generic gesture interface. The gestures
+ * contain a generic part and a gesture specific part
+ * is obtained using the getDetails() method.
+ *
+ */
+class MGestureIf
+{
+public:
+ virtual TGestureUid gestureUid() const = 0; // Identifier of recognizer type that issues the gesture
+ virtual TPoint getLocation() const = 0 ; // Location where the gesture happened (if applicable)
+ virtual int getType() const = 0 ; // If the gesture can have different types (like tap or double tap)
+ virtual float getSpeedX() const __SOFTFP = 0 ; // px/msec, as calculated in the UI state machine, not valid in all cases
+ virtual float getSpeedY() const __SOFTFP = 0 ; // px/msec, as calculated in the UI state machine, not valid in all cases
+ virtual int getDetails() const = 0 ; // Other possible details....
+ virtual TPtrC8 getGestureName() = 0 ; // String name for gesture, makes possible to use single callback for gestures
+ virtual TPoint getLengthAndDirection() const { return TPoint(0,0); } // very simple vector
+ virtual TGestureDirection getDirection() const { return stmGesture::ENoDirection; }
+ virtual TPoint getPinchEndPos() const { return TPoint(0,0); }
+};
+
+} // namespace
+
+#endif /* RT_GESTUREIF_H_ */