summaryrefslogtreecommitdiff
path: root/src/input_common/drivers/mouse.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/input_common/drivers/mouse.h')
-rw-r--r--src/input_common/drivers/mouse.h43
1 files changed, 37 insertions, 6 deletions
diff --git a/src/input_common/drivers/mouse.h b/src/input_common/drivers/mouse.h
index 72073cc23..0e8edcce1 100644
--- a/src/input_common/drivers/mouse.h
+++ b/src/input_common/drivers/mouse.h
@@ -37,13 +37,43 @@ public:
37 * @param center_x the x-coordinate of the middle of the screen 37 * @param center_x the x-coordinate of the middle of the screen
38 * @param center_y the y-coordinate of the middle of the screen 38 * @param center_y the y-coordinate of the middle of the screen
39 */ 39 */
40 void MouseMove(int x, int y, f32 touch_x, f32 touch_y, int center_x, int center_y); 40 void Move(int x, int y, int center_x, int center_y);
41 41
42 /** 42 /**
43 * Sets the status of all buttons bound with the key to pressed 43 * Signals that real mouse has moved.
44 * @param key_code the code of the key to press 44 * @param x the absolute position on the touchscreen of the cursor
45 * @param y the absolute position on the touchscreen of the cursor
45 */ 46 */
46 void PressButton(int x, int y, f32 touch_x, f32 touch_y, MouseButton button); 47 void MouseMove(f32 touch_x, f32 touch_y);
48
49 /**
50 * Signals that touch finger has moved.
51 * @param x the absolute position on the touchscreen of the cursor
52 * @param y the absolute position on the touchscreen of the cursor
53 */
54 void TouchMove(f32 touch_x, f32 touch_y);
55
56 /**
57 * Sets the status of a button to pressed
58 * @param x the x-coordinate of the cursor
59 * @param y the y-coordinate of the cursor
60 * @param button the id of the button to press
61 */
62 void PressButton(int x, int y, MouseButton button);
63
64 /**
65 * Sets the status of a mouse button to pressed
66 * @param button the id of the button to press
67 */
68 void PressMouseButton(MouseButton button);
69
70 /**
71 * Sets the status of touch finger to pressed
72 * @param x the absolute position on the touchscreen of the cursor
73 * @param y the absolute position on the touchscreen of the cursor
74 * @param button the id of the button to press
75 */
76 void PressTouchButton(f32 touch_x, f32 touch_y, MouseButton button);
47 77
48 /** 78 /**
49 * Sets the status of all buttons bound with the key to released 79 * Sets the status of all buttons bound with the key to released
@@ -66,16 +96,17 @@ public:
66 96
67private: 97private:
68 void UpdateThread(std::stop_token stop_token); 98 void UpdateThread(std::stop_token stop_token);
69 void StopPanning(); 99 void UpdateStickInput();
100 void UpdateMotionInput();
70 101
71 Common::Input::ButtonNames GetUIButtonName(const Common::ParamPackage& params) const; 102 Common::Input::ButtonNames GetUIButtonName(const Common::ParamPackage& params) const;
72 103
73 Common::Vec2<int> mouse_origin; 104 Common::Vec2<int> mouse_origin;
74 Common::Vec2<int> last_mouse_position; 105 Common::Vec2<int> last_mouse_position;
75 Common::Vec2<float> last_mouse_change; 106 Common::Vec2<float> last_mouse_change;
107 Common::Vec3<float> last_motion_change;
76 Common::Vec2<int> wheel_position; 108 Common::Vec2<int> wheel_position;
77 bool button_pressed; 109 bool button_pressed;
78 int mouse_panning_timout{};
79 std::jthread update_thread; 110 std::jthread update_thread;
80}; 111};
81 112