Files
Vincent Riemer 1eebbbc803 Implement offsetX/offsetY properties on the PointerEvent interface
Summary:
Changelog: [iOS][Internal] - Implement offsetX/offsetY properties on the PointerEvent interface

Simple diff implementing the offsetX/offsetY properties on PointerEvent — thankfully the touch events already kept track of these so it was mostly a matter of forwarding that data to the pointer events.

Reviewed By: lunaleaps

Differential Revision: D37830139

fbshipit-source-id: 77f33a99393350d32cbe449e6a009bdeb2a12d08
2022-07-14 15:07:18 -07:00

100 lines
2.7 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
#pragma once
#include <react/renderer/core/ReactPrimitives.h>
#include <react/renderer/debug/DebugStringConvertible.h>
#include <react/renderer/graphics/Geometry.h>
namespace facebook {
namespace react {
struct PointerEvent {
/*
* A unique identifier for the pointer causing the event.
*/
int pointerId;
/*
* The normalized pressure of the pointer input in the range 0 to 1, where 0
* and 1 represent the minimum and maximum pressure the hardware is capable of
* detecting, respectively.
*/
Float pressure;
/*
* Indicates the device type that caused the event (mouse, pen, touch, etc.)
*/
std::string pointerType;
/*
* Point within the application's viewport at which the event occurred (as
* opposed to the coordinate within the page).
*/
Point clientPoint;
/*
* The X/Y coordinate of the pointer in global (screen) coordinates.
*/
Point screenPoint;
/*
* The X/Y coordinate of the pointer relative to the position of the padding
* edge of the target node.
*/
Point offsetPoint;
/*
* The width (magnitude on the X axis), in CSS pixels, of the contact geometry
* of the pointer
*/
Float width;
/*
* The height (magnitude on the y axis), in CSS pixels, of the contact
* geometry of the pointer
*/
Float height;
/*
* The plane angle (in degrees, in the range of -90 to 90) between the YZ
* plane and the plane containing both the pointer (e.g. pen stylus) axis and
* the Y axis.
*/
int tiltX;
/*
* The plane angle (in degrees, in the range of -90 to 90) between the XZ
* plane and the plane containing both the pointer (e.g. pen stylus) axis and
* the X axis.
*/
int tiltY;
/*
* Returns a long with details about the event, depending on the event type.
*/
int detail;
/*
* The buttons being depressed (if any) when the mouse event was fired.
*/
int buttons;
/*
* The normalized tangential pressure of the pointer input (also known as
* barrel pressure or cylinder stress) in the range -1 to 1, where 0 is the
* neutral position of the control.
*/
Float tangentialPressure;
/*
* The clockwise rotation of the pointer (e.g. pen stylus) around its major
* axis in degrees, with a value in the range 0 to 359.
*/
int twist;
};
#if RN_DEBUG_STRING_CONVERTIBLE
std::string getDebugName(PointerEvent const &pointerEvent);
std::vector<DebugStringConvertibleObject> getDebugProps(
PointerEvent const &pointerEvent,
DebugStringConvertibleOptions options);
#endif
} // namespace react
} // namespace facebook