Fission FSN
Loading...
Searching...
No Matches
fsIGestureHandlingComponent.h
Go to the documentation of this file.
1/********************************************************************
2*
3* Created: 8/4/2014 11:15
4*
5* File: fsIGestureHandlingComponent.h
6*
7* Author: Mick Waites
8*
9* Purpose: Base class for components which accept translated
10* input.
11*
12*********************************************************************/
13
14#ifndef fsIGestureHandlingComponenthdr
15#define fsIGestureHandlingComponenthdr
16
17#include <vector>
18
21
22struct fsPoint;
23class fsCEntity;
24
25
27{
28public:
29
30 fsBool hitTest(const fsPoint& pPos) const;
31
32protected:
33
43
44 enum
45 {
52
54 };
55
56 virtual void stolenInputDo();
57
58 void gestureTypesSet(fsBool pHandleTaps, fsBool pHandleDragEvent, fsBool pHandlePinchEvents);
59
60 fsBool messageProcessDo(const fsCUniqueId& pMessageType,
61 const fsIMessageDispatcher::sMessageParameters& pParam) override;
62 void listenersRegisterDo() override;
63 void listenersDeregisterDo() override;
64 void gestureReset();
65
66 fsIGestureHandlingComponent(fsCEntity* pParent, fsBool pHandleTaps, fsBool pHandleDragEvent,
67 fsBool pHandlePinchEvents);
69
70 std::vector<sGesturePoint> mGesturePoints;
71
74
76
77private:
78
79 virtual fsBool hitTestDo(const fsPoint& pPos) const;
80 virtual fsBool acceptingInputGet() const = 0;
81 virtual fsBool highlightSetDo() { return false; }
82
83 virtual void onTap(const fsPoint& pStartPos) {}
84 virtual void onDragStart(const fsPoint& pStartPos) {}
85 virtual void onDragMove(const fsPoint& pCurrPos) {}
86 virtual void onDragEnd(const fsPoint& pEndPos) {}
87
88 virtual void onPinchStart(const fsPoint& pStartPosPointA, const fsPoint& pStartPosPointB) {}
89 virtual void onPinchMove(const fsPoint& pCurrPos, const fsPoint& pDelta, fsS32 pPointID) {}
90 virtual void onPinchEnd(const fsPoint& pCurrPos, const fsPoint& pDelta, fsS32 pPointID) {}
91
92 fsBool dragMessageStolen(const fsCUniqueId& pMessageType, const fsIMessageDispatcher::sMessageParameters& pParam);
93
94 fsBool downStealProcess(const fsIInputManager::sPointerMsgParam& pParam);
95 fsBool pointerDownProcess(const fsIInputManager::sPointerMsgParam& pParam);
96 fsBool pointerMoveProcess(const fsPoint& pPos, fsS32 pPtrIndex, fsBool pPtrDown);
97 fsBool pointerUpProcess(const fsPoint& pPos, fsS32 pPtrIndex);
98
99 fsBool gestureStartProcess(const fsIInputManager::sPointerMsgParam& pParam);
100 fsBool mouseMoveProcess(const fsPoint& pPos);
101
102 void tapEndProcess(const fsPoint& pPos);
103 void tapStartProcess(const fsPoint& pPos, fsS32 pPtrIndex);
104 void dragStartProcess(const fsPoint& pPos, fsS32 pPtrIndex);
105 void dragEndProcess(const fsPoint& pPos, fsS32 pPtrIndex);
106 void pinchEndProcess(const fsPoint& pPos, fsS32 pPtrIndex);
107 void pinchStartProcess(const fsPoint& pPos, fsS32 pPtrIndex);
108
109 fsBool highlightSet(fsBool pHighlight);
110
111 static const fsS32 mDragDistanceThreshold = 16;
112
113 const fsBool mMousePointerType;
114
115 fsBool mHandleTaps;
116 fsBool mHandleDragEvents;
117 fsBool mHandlePinchEvents;
118};
119
120#endif
Definition fsCEntity.h:39
Definition fsCUniqueId.h:21
void gestureReset()
Definition fsIGestureHandlingComponent.cpp:12
virtual ~fsIGestureHandlingComponent()
Definition fsIGestureHandlingComponent.cpp:462
virtual void stolenInputDo()
Definition fsIGestureHandlingComponent.cpp:22
fsBool messageProcessDo(const fsCUniqueId &pMessageType, const fsIMessageDispatcher::sMessageParameters &pParam) override
Definition fsIGestureHandlingComponent.cpp:74
@ eSTATE_IN_PINCH_GESTURE
Definition fsIGestureHandlingComponent.h:51
@ eSTATE_IN_TAP_GESTURE
Definition fsIGestureHandlingComponent.h:49
@ eSTATE_NOT_IN_GESTURE
Definition fsIGestureHandlingComponent.h:46
@ eSTATE_MOUSE_OVER
Definition fsIGestureHandlingComponent.h:47
@ eSTATE_IN_DRAG_GESTURE
Definition fsIGestureHandlingComponent.h:50
@ eSTATE_EVALUATING_GESTURE_TYPE
Definition fsIGestureHandlingComponent.h:48
@ eSTATE_WAITING_FOR_ALL_POINTS_TO_RELEASE
Definition fsIGestureHandlingComponent.h:53
fsBool mHighlighted
Definition fsIGestureHandlingComponent.h:75
void listenersDeregisterDo() override
Definition fsIGestureHandlingComponent.cpp:39
fsIGestureHandlingComponent(fsCEntity *pParent, fsBool pHandleTaps, fsBool pHandleDragEvent, fsBool pHandlePinchEvents)
Definition fsIGestureHandlingComponent.cpp:448
fsBool hitTest(const fsPoint &pPos) const
Definition fsIGestureHandlingComponent.cpp:443
std::vector< sGesturePoint > mGesturePoints
Definition fsIGestureHandlingComponent.h:70
fsS32 mGestureState
Definition fsIGestureHandlingComponent.h:72
fsS32 mNumPointsDown
Definition fsIGestureHandlingComponent.h:73
void gestureTypesSet(fsBool pHandleTaps, fsBool pHandleDragEvent, fsBool pHandlePinchEvents)
Definition fsIGestureHandlingComponent.cpp:30
void listenersRegisterDo() override
Definition fsIGestureHandlingComponent.cpp:47
fsIMessageListenerComponent(fsCEntity *pParent)
Definition fsIMessageListenerComponent.cpp:9
bool fsBool
Definition fsBaseTypes.h:26
int fsS32
Definition fsBaseTypes.h:20
fsPoint mPrevPos
Definition fsIGestureHandlingComponent.h:40
fsBool mInGesture
Definition fsIGestureHandlingComponent.h:41
sGesturePoint()
Definition fsIGestureHandlingComponent.h:36
Definition fsIMessageDispatcher.h:32
Definition fsPoint.h:17