66 auto jsWindowId = JsWindowId(::OH_Input_GetMouseEventWindowId(event));
68 auto actionValue = ::OH_Input_GetMouseEventAction(event);
69 auto optMappedAction = tryMapMouseEventAction(actionValue);
70 if (!optMappedAction.hasValue()) {
72 "%s: Filter for jsWindowId: %f, received unrecognized mouse event action: %d, event will be ignored",
73 Q_FUNC_INFO, jsWindowId.value(), actionValue);
77 auto buttonValue = ::OH_Input_GetMouseEventButton(event);
78 auto optMappedButton = tryMapMouseEventButton(buttonValue);
79 if (!optMappedButton.hasValue()) {
81 "%s: Filter for jsWindowId: %f, received unrecognized mouse event action: %d, event will be ignored",
82 Q_FUNC_INFO, jsWindowId.value(), actionValue);
87 .jsWindowId = jsWindowId,
88 .jsDisplayId = QOhosDisplayInfo::JsDisplayId(::OH_Input_GetMouseEventDisplayId(event)),
89 .button = optMappedButton.value(),
90 .action = optMappedAction.value(),
91 .displayPosition = QPoint(
92 ::OH_Input_GetMouseEventDisplayX(event),
93 ::OH_Input_GetMouseEventDisplayY(event)),
94 .actionTime = std::chrono::microseconds(::OH_Input_GetMouseEventActionTime(event)),
97 return makeQOhosOptional(mouseEvent);
102 auto jsWindowId = JsWindowId(::OH_Input_GetTouchEventWindowId(event));
104 auto actionValue = ::OH_Input_GetTouchEventAction(event);
105 auto optMappedAction = tryMapTouchEventAction(actionValue);
106 if (!optMappedAction.hasValue()) {
108 "%s: Filter for jsWindowId: %f, received unrecognized touch event action: %d, event will be ignored",
109 Q_FUNC_INFO, jsWindowId.value(), actionValue);
114 .jsWindowId = jsWindowId,
115 .jsDisplayId = JsDisplayId(::OH_Input_GetTouchEventDisplayId(event)),
116 .displayPosition = QPoint(
117 ::OH_Input_GetTouchEventDisplayX(event),
118 ::OH_Input_GetTouchEventDisplayY(event)),
119 .action = optMappedAction.value(),
120 .fingerId = ::OH_Input_GetTouchEventFingerId(event),
121 .actionTime = std::chrono::microseconds(::OH_Input_GetTouchEventActionTime(event)),
124 return makeQOhosOptional(keyEvent);
129 auto jsWindowId = JsWindowId(::OH_Input_GetKeyEventWindowId(event));
131 auto actionValue = ::OH_Input_GetKeyEventAction(event);
132 auto optMappedAction = tryMapKeyEventAction(actionValue);
133 if (!optMappedAction.hasValue()) {
135 "%s: Filter for jsWindowId: %f, received unrecognized key event action: %d, event will be ignored",
136 Q_FUNC_INFO, jsWindowId.value(), actionValue);
141 .jsWindowId = jsWindowId,
142 .actionTime = std::chrono::microseconds(::OH_Input_GetKeyEventActionTime(event)),
143 .action = optMappedAction.value(),
144 .keyCode = ::OH_Input_GetKeyEventKeyCode(event),
147 return makeQOhosOptional(keyEvent);
152 const auto sourceType = ::OH_ArkUI_UIInputEvent_GetSourceType(inputEvent);
153 if (sourceType == ::UI_INPUT_EVENT_SOURCE_TYPE_UNKNOWN)
154 qOhosWarning(QtForOhos) <<
"Obtained ArkUI unknown source type for input event";
155 return sourceType == ::UI_INPUT_EVENT_SOURCE_TYPE_TOUCH_SCREEN
156 ? QInputDevice::DeviceType::TouchScreen
157 : QInputDevice::DeviceType::TouchPad;