kodi
ITouchInputHandling.h
1 /*
2  * Copyright (C) 2013-2024 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "input/touch/ITouchActionHandler.h"
12 
13 #include <stdlib.h>
14 
24 {
25 public:
26  ITouchInputHandling() : m_handler(NULL) {}
27  ~ITouchInputHandling() override = default;
28 
39  void RegisterHandler(ITouchActionHandler* touchHandler);
45  void UnregisterHandler();
46 
47 protected:
48  // implementation of ITouchActionHandler
49  void OnTouchAbort() override;
50 
51  bool OnSingleTouchStart(float x, float y) override;
52  bool OnSingleTouchHold(float x, float y) override;
53  bool OnSingleTouchMove(
54  float x, float y, float offsetX, float offsetY, float velocityX, float velocityY) override;
55  bool OnSingleTouchEnd(float x, float y) override;
56 
57  bool OnMultiTouchDown(float x, float y, int32_t pointer) override;
58  bool OnMultiTouchHold(float x, float y, int32_t pointers = 2) override;
59  bool OnMultiTouchMove(float x,
60  float y,
61  float offsetX,
62  float offsetY,
63  float velocityX,
64  float velocityY,
65  int32_t pointer) override;
66  bool OnMultiTouchUp(float x, float y, int32_t pointer) override;
67 
68  bool OnTouchGestureStart(float x, float y) override;
69  bool OnTouchGesturePan(
70  float x, float y, float offsetX, float offsetY, float velocityX, float velocityY) override;
71  bool OnTouchGestureEnd(
72  float x, float y, float offsetX, float offsetY, float velocityX, float velocityY) override;
73 
74  // convenience events
75  void OnTap(float x, float y, int32_t pointers = 1) override;
76  void OnLongPress(float x, float y, int32_t pointers = 1) override;
77  void OnSwipe(TouchMoveDirection direction,
78  float xDown,
79  float yDown,
80  float xUp,
81  float yUp,
82  float velocityX,
83  float velocityY,
84  int32_t pointers = 1) override;
85  void OnZoomPinch(float centerX, float centerY, float zoomFactor) override;
86  void OnRotate(float centerX, float centerY, float angle) override;
87 
88 private:
89  ITouchActionHandler* m_handler;
90 };
bool OnSingleTouchMove(float x, float y, float offsetX, float offsetY, float velocityX, float velocityY) override
A single touch has moved.
Definition: ITouchInputHandling.cpp:43
bool OnMultiTouchUp(float x, float y, int32_t pointer) override
A touch has been lifted (but there are still active touches)
Definition: ITouchInputHandling.cpp:90
void OnTap(float x, float y, int32_t pointers=1) override
A tap with a one or more touches has been performed.
Definition: ITouchInputHandling.cpp:124
bool OnTouchGesturePan(float x, float y, float offsetX, float offsetY, float velocityX, float velocityY) override
A pan gesture with a single touch is in progress.
Definition: ITouchInputHandling.cpp:106
bool OnSingleTouchEnd(float x, float y) override
A single touch has been lifted.
Definition: ITouchInputHandling.cpp:52
void UnregisterHandler()
Unregister the previously registered touch handler.
Definition: ITouchInputHandling.cpp:16
Convenience interface implementing ITouchActionHandler with an implementation that forwards any ITouc...
Definition: ITouchInputHandling.h:23
void OnLongPress(float x, float y, int32_t pointers=1) override
One or more touches have been held down for a certain amount of time.
Definition: ITouchInputHandling.cpp:130
bool OnTouchGestureEnd(float x, float y, float offsetX, float offsetY, float velocityX, float velocityY) override
A pan gesture with a single touch has ended.
Definition: ITouchInputHandling.cpp:115
bool OnMultiTouchDown(float x, float y, int32_t pointer) override
An additional touch has been performed.
Definition: ITouchInputHandling.cpp:60
bool OnMultiTouchHold(float x, float y, int32_t pointers=2) override
Multiple simultaneous touches have been held down for a certain amount of time.
Definition: ITouchInputHandling.cpp:68
void OnSwipe(TouchMoveDirection direction, float xDown, float yDown, float xUp, float yUp, float velocityX, float velocityY, int32_t pointers=1) override
One or more touches has been moved quickly in a single direction in a short time. ...
Definition: ITouchInputHandling.cpp:136
void OnTouchAbort() override
A touch action has been aborted.
Definition: ITouchInputHandling.cpp:21
bool OnSingleTouchStart(float x, float y) override
A single touch has started.
Definition: ITouchInputHandling.cpp:27
Interface defining all supported touch action events.
Definition: ITouchActionHandler.h:32
void OnZoomPinch(float centerX, float centerY, float zoomFactor) override
Two simultaneous touches have been held down and moved to perform a zooming/pinching gesture...
Definition: ITouchInputHandling.cpp:149
bool OnTouchGestureStart(float x, float y) override
A pan gesture with a single touch has been started.
Definition: ITouchInputHandling.cpp:98
void RegisterHandler(ITouchActionHandler *touchHandler)
Register a touch input handler.
Definition: ITouchInputHandling.cpp:11
TouchMoveDirection
Directions in which a touch can moved.
Definition: ITouchActionHandler.h:19
bool OnSingleTouchHold(float x, float y) override
A single touch has been held down for a certain amount of time.
Definition: ITouchInputHandling.cpp:35
void OnRotate(float centerX, float centerY, float angle) override
Two simultaneous touches have been held down and moved to perform a rotating gesture.
Definition: ITouchInputHandling.cpp:155
bool OnMultiTouchMove(float x, float y, float offsetX, float offsetY, float velocityX, float velocityY, int32_t pointer) override
A touch has moved.
Definition: ITouchInputHandling.cpp:76