1 /*
2 * Copyright (c) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "interfaces/native/event/ui_input_event_impl.h"
17
18 #include "base/utils/type_definition.h"
19 #include "core/event/touch_event.h"
20 #include "core/event/axis_event.h"
21 #include "core/interfaces/arkoala/arkoala_api.h"
22 #include "interfaces/native/node/event_converter.h"
23 #include "base/error/error_code.h"
24
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
isCurrentCTouchEventParamValid(const ArkUITouchEvent * touchEvent,uint32_t pointerIndex)28 bool isCurrentCTouchEventParamValid(const ArkUITouchEvent* touchEvent, uint32_t pointerIndex)
29 {
30 if (!touchEvent) {
31 return false;
32 }
33 if ((pointerIndex < 0 || pointerIndex >= touchEvent->touchPointSize) ||
34 !(touchEvent->touchPointes)) {
35 return false;
36 }
37 return true;
38 }
39
isHistoryCTouchEventParamValid(const ArkUITouchEvent * touchEvent,uint32_t historyIndex,uint32_t pointerIndex)40 bool isHistoryCTouchEventParamValid(const ArkUITouchEvent* touchEvent, uint32_t historyIndex, uint32_t pointerIndex)
41 {
42 if (!touchEvent) {
43 return false;
44 }
45 if ((historyIndex < 0 || historyIndex >= touchEvent->historySize) ||
46 !touchEvent->historyEvents) {
47 return false;
48 }
49 if ((pointerIndex < 0 || pointerIndex >= touchEvent->historyEvents[historyIndex].touchPointSize) ||
50 !(touchEvent->historyEvents[historyIndex].touchPointes)) {
51 return false;
52 }
53 return true;
54 }
55
OH_ArkUI_UIInputEvent_GetType(const ArkUI_UIInputEvent * event)56 int32_t OH_ArkUI_UIInputEvent_GetType(const ArkUI_UIInputEvent* event)
57 {
58 if (!event) {
59 return 0;
60 }
61 return event->inputType;
62 }
63
OH_ArkUI_UIInputEvent_GetAction(const ArkUI_UIInputEvent * event)64 int32_t OH_ArkUI_UIInputEvent_GetAction(const ArkUI_UIInputEvent* event)
65 {
66 if (!event) {
67 return -1;
68 }
69 switch (event->eventTypeId) {
70 case C_TOUCH_EVENT_ID: {
71 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
72 if (!touchEvent) {
73 return -1;
74 }
75 return OHOS::Ace::NodeModel::ConvertToCTouchActionType(touchEvent->action);
76 }
77 case C_MOUSE_EVENT_ID: {
78 const auto* mouseEvent = reinterpret_cast<ArkUIMouseEvent*>(event->inputEvent);
79 if (!mouseEvent) {
80 return -1;
81 }
82 return OHOS::Ace::NodeModel::ConvertToCMouseActionType(mouseEvent->action);
83 }
84 default:
85 break;
86 }
87 return -1;
88 }
89
OH_ArkUI_UIInputEvent_GetSourceType(const ArkUI_UIInputEvent * event)90 int32_t OH_ArkUI_UIInputEvent_GetSourceType(const ArkUI_UIInputEvent* event)
91 {
92 if (!event) {
93 return static_cast<int32_t>(UI_INPUT_EVENT_SOURCE_TYPE_UNKNOWN);
94 }
95 switch (event->eventTypeId) {
96 case C_TOUCH_EVENT_ID: {
97 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
98 if (!touchEvent) {
99 return static_cast<int32_t>(UI_INPUT_EVENT_SOURCE_TYPE_UNKNOWN);
100 }
101 return touchEvent->sourceType;
102 }
103 case C_MOUSE_EVENT_ID: {
104 const auto* mouseEvent = reinterpret_cast<ArkUIMouseEvent*>(event->inputEvent);
105 if (!mouseEvent) {
106 return static_cast<int32_t>(UI_INPUT_EVENT_SOURCE_TYPE_UNKNOWN);
107 }
108 return mouseEvent->sourceType;
109 }
110 default:
111 break;
112 }
113 return static_cast<int32_t>(UI_INPUT_EVENT_SOURCE_TYPE_UNKNOWN);
114 }
115
OH_ArkUI_UIInputEvent_GetToolType(const ArkUI_UIInputEvent * event)116 int32_t OH_ArkUI_UIInputEvent_GetToolType(const ArkUI_UIInputEvent* event)
117 {
118 if (!event) {
119 return static_cast<int32_t>(UI_INPUT_EVENT_TOOL_TYPE_UNKNOWN);
120 }
121 switch (event->eventTypeId) {
122 case C_TOUCH_EVENT_ID: {
123 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
124 if (!touchEvent) {
125 return static_cast<int32_t>(UI_INPUT_EVENT_TOOL_TYPE_UNKNOWN);
126 }
127 return OHOS::Ace::NodeModel::ConvertToCInputEventToolType(touchEvent->actionTouchPoint.toolType);
128 }
129 case C_MOUSE_EVENT_ID: {
130 const auto* mouseEvent = reinterpret_cast<ArkUIMouseEvent*>(event->inputEvent);
131 if (!mouseEvent) {
132 return static_cast<int32_t>(UI_INPUT_EVENT_TOOL_TYPE_UNKNOWN);
133 }
134 return OHOS::Ace::NodeModel::ConvertToCInputEventToolType(mouseEvent->actionTouchPoint.toolType);
135 }
136 default:
137 break;
138 }
139 return static_cast<int32_t>(UI_INPUT_EVENT_TOOL_TYPE_UNKNOWN);
140 }
141
OH_ArkUI_UIInputEvent_GetEventTime(const ArkUI_UIInputEvent * event)142 int64_t OH_ArkUI_UIInputEvent_GetEventTime(const ArkUI_UIInputEvent* event)
143 {
144 if (!event) {
145 return 0;
146 }
147 switch (event->eventTypeId) {
148 case C_TOUCH_EVENT_ID: {
149 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
150 if (!touchEvent) {
151 return 0;
152 }
153 return touchEvent->timeStamp;
154 }
155 case TOUCH_EVENT_ID: {
156 const auto* uiEvent = reinterpret_cast<const OHOS::Ace::UIInputEvent*>(event->inputEvent);
157 if (!uiEvent) {
158 LOGE("The parameter of OH_ArkUI_UIInputEvent_GetEventTime is invalid");
159 return 0;
160 }
161 return uiEvent->time.time_since_epoch().count();
162 }
163 case AXIS_EVENT_ID: {
164 const auto* uiEvent = reinterpret_cast<const OHOS::Ace::UIInputEvent*>(event->inputEvent);
165 if (!uiEvent) {
166 LOGE("The parameter of OH_ArkUI_UIInputEvent_GetEventTime is invalid");
167 return 0;
168 }
169 return uiEvent->time.time_since_epoch().count();
170 }
171 case C_MOUSE_EVENT_ID: {
172 const auto* mouseEvent = reinterpret_cast<ArkUIMouseEvent*>(event->inputEvent);
173 if (!mouseEvent) {
174 return 0;
175 }
176 return mouseEvent->timeStamp;
177 }
178 default:
179 break;
180 }
181 return 0;
182 }
183
OH_ArkUI_PointerEvent_GetPointerCount(const ArkUI_UIInputEvent * event)184 uint32_t OH_ArkUI_PointerEvent_GetPointerCount(const ArkUI_UIInputEvent* event)
185 {
186 if (!event) {
187 return 0;
188 }
189 switch (event->eventTypeId) {
190 case C_TOUCH_EVENT_ID: {
191 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
192 if (!touchEvent) {
193 return 0;
194 }
195 return touchEvent->touchPointSize;
196 }
197 case C_MOUSE_EVENT_ID: {
198 const auto* mouseEvent = reinterpret_cast<ArkUIMouseEvent*>(event->inputEvent);
199 if (!mouseEvent) {
200 return 0;
201 }
202 return 1;
203 }
204 default:
205 break;
206 }
207 return 0;
208 }
209
OH_ArkUI_PointerEvent_GetPointerId(const ArkUI_UIInputEvent * event,uint32_t pointerIndex)210 int32_t OH_ArkUI_PointerEvent_GetPointerId(const ArkUI_UIInputEvent* event, uint32_t pointerIndex)
211 {
212 if (!event) {
213 return 0;
214 }
215 switch (event->eventTypeId) {
216 case C_TOUCH_EVENT_ID: {
217 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
218 if (!isCurrentCTouchEventParamValid(touchEvent, pointerIndex)) {
219 return 0;
220 }
221 return touchEvent->touchPointes[pointerIndex].id;
222 }
223 case C_MOUSE_EVENT_ID: {
224 const auto* mouseEvent = reinterpret_cast<ArkUIMouseEvent*>(event->inputEvent);
225 if (!mouseEvent || pointerIndex != 0) {
226 return 0;
227 }
228 return mouseEvent->actionTouchPoint.id;
229 }
230 default:
231 break;
232 }
233 return 0;
234 }
235
OH_ArkUI_PointerEvent_GetX(const ArkUI_UIInputEvent * event)236 float OH_ArkUI_PointerEvent_GetX(const ArkUI_UIInputEvent* event)
237 {
238 if (!event) {
239 return 0.0f;
240 }
241 switch (event->eventTypeId) {
242 case C_TOUCH_EVENT_ID: {
243 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
244 if (!touchEvent) {
245 return 0.0f;
246 }
247 return touchEvent->actionTouchPoint.nodeX;
248 }
249 case TOUCH_EVENT_ID: {
250 const auto* touchEvent = reinterpret_cast<const OHOS::Ace::TouchEvent*>(event->inputEvent);
251 if (touchEvent) {
252 return touchEvent->localX;
253 }
254 break;
255 }
256 case AXIS_EVENT_ID: {
257 const auto* axisEvent = reinterpret_cast<const OHOS::Ace::AxisEvent*>(event->inputEvent);
258 if (axisEvent) {
259 return axisEvent->localX;
260 }
261 break;
262 }
263 case C_MOUSE_EVENT_ID: {
264 const auto* mouseEvent = reinterpret_cast<ArkUIMouseEvent*>(event->inputEvent);
265 if (!mouseEvent) {
266 return 0.0f;
267 }
268 return mouseEvent->actionTouchPoint.nodeX;
269 }
270 default:
271 break;
272 }
273 return 0.0f;
274 }
275
OH_ArkUI_PointerEvent_GetXByIndex(const ArkUI_UIInputEvent * event,uint32_t pointerIndex)276 float OH_ArkUI_PointerEvent_GetXByIndex(const ArkUI_UIInputEvent* event, uint32_t pointerIndex)
277 {
278 if (!event) {
279 return 0.0f;
280 }
281 switch (event->eventTypeId) {
282 case C_TOUCH_EVENT_ID: {
283 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
284 if (!isCurrentCTouchEventParamValid(touchEvent, pointerIndex)) {
285 return 0.0f;
286 }
287 return touchEvent->touchPointes[pointerIndex].nodeX;
288 }
289 case C_MOUSE_EVENT_ID: {
290 const auto* mouseEvent = reinterpret_cast<ArkUIMouseEvent*>(event->inputEvent);
291 if (!mouseEvent || pointerIndex != 0) {
292 return 0.0f;
293 }
294 return mouseEvent->actionTouchPoint.nodeX;
295 }
296 default:
297 break;
298 }
299 return 0.0f;
300 }
301
OH_ArkUI_PointerEvent_GetY(const ArkUI_UIInputEvent * event)302 float OH_ArkUI_PointerEvent_GetY(const ArkUI_UIInputEvent* event)
303 {
304 if (!event) {
305 return 0.0f;
306 }
307 switch (event->eventTypeId) {
308 case C_TOUCH_EVENT_ID: {
309 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
310 if (!touchEvent) {
311 return 0.0f;
312 }
313 return touchEvent->actionTouchPoint.nodeY;
314 }
315 case TOUCH_EVENT_ID: {
316 const auto* touchEvent = reinterpret_cast<const OHOS::Ace::TouchEvent*>(event->inputEvent);
317 if (touchEvent) {
318 return touchEvent->localY;
319 }
320 break;
321 }
322 case AXIS_EVENT_ID: {
323 const auto* axisEvent = reinterpret_cast<const OHOS::Ace::AxisEvent*>(event->inputEvent);
324 if (axisEvent) {
325 return axisEvent->localY;
326 }
327 break;
328 }
329 case C_MOUSE_EVENT_ID: {
330 const auto* mouseEvent = reinterpret_cast<ArkUIMouseEvent*>(event->inputEvent);
331 if (!mouseEvent) {
332 return 0.0f;
333 }
334 return mouseEvent->actionTouchPoint.nodeY;
335 }
336 default:
337 break;
338 }
339 LOGE("The parameter of OH_ArkUI_PointerEvent_GetY is invalid");
340 return 0.0f;
341 }
342
OH_ArkUI_PointerEvent_GetYByIndex(const ArkUI_UIInputEvent * event,uint32_t pointerIndex)343 float OH_ArkUI_PointerEvent_GetYByIndex(const ArkUI_UIInputEvent* event, uint32_t pointerIndex)
344 {
345 if (!event) {
346 return 0.0f;
347 }
348 switch (event->eventTypeId) {
349 case C_TOUCH_EVENT_ID: {
350 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
351 if (!isCurrentCTouchEventParamValid(touchEvent, pointerIndex)) {
352 return 0.0f;
353 }
354 return touchEvent->touchPointes[pointerIndex].nodeY;
355 }
356 case C_MOUSE_EVENT_ID: {
357 const auto* mouseEvent = reinterpret_cast<ArkUIMouseEvent*>(event->inputEvent);
358 if (!mouseEvent || pointerIndex != 0) {
359 return 0.0f;
360 }
361 return mouseEvent->actionTouchPoint.nodeY;
362 }
363 default:
364 break;
365 }
366 return 0.0f;
367 }
368
OH_ArkUI_PointerEvent_GetWindowX(const ArkUI_UIInputEvent * event)369 float OH_ArkUI_PointerEvent_GetWindowX(const ArkUI_UIInputEvent* event)
370 {
371 if (!event) {
372 return 0.0f;
373 }
374 switch (event->eventTypeId) {
375 case C_TOUCH_EVENT_ID: {
376 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
377 if (!touchEvent) {
378 return 0.0f;
379 }
380 return touchEvent->actionTouchPoint.windowX;
381 }
382 case TOUCH_EVENT_ID: {
383 const auto* touchEvent = reinterpret_cast<const OHOS::Ace::TouchEvent*>(event->inputEvent);
384 if (touchEvent) {
385 return touchEvent->x;
386 }
387 break;
388 }
389 case AXIS_EVENT_ID: {
390 const auto* axisEvent = reinterpret_cast<const OHOS::Ace::AxisEvent*>(event->inputEvent);
391 if (axisEvent) {
392 return axisEvent->x;
393 }
394 break;
395 }
396 case C_MOUSE_EVENT_ID: {
397 const auto* mouseEvent = reinterpret_cast<ArkUIMouseEvent*>(event->inputEvent);
398 if (!mouseEvent) {
399 return 0.0f;
400 }
401 return mouseEvent->actionTouchPoint.windowX;
402 }
403 default:
404 break;
405 }
406 LOGE("The parameter of OH_ArkUI_PointerEvent_GetWindowX is invalid");
407 return 0.0f;
408 }
409
OH_ArkUI_PointerEvent_GetWindowXByIndex(const ArkUI_UIInputEvent * event,uint32_t pointerIndex)410 float OH_ArkUI_PointerEvent_GetWindowXByIndex(const ArkUI_UIInputEvent* event, uint32_t pointerIndex)
411 {
412 if (!event) {
413 return 0.0f;
414 }
415 switch (event->eventTypeId) {
416 case C_TOUCH_EVENT_ID: {
417 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
418 if (!isCurrentCTouchEventParamValid(touchEvent, pointerIndex)) {
419 return 0.0f;
420 }
421 return touchEvent->touchPointes[pointerIndex].windowX;
422 }
423 case C_MOUSE_EVENT_ID: {
424 const auto* mouseEvent = reinterpret_cast<ArkUIMouseEvent*>(event->inputEvent);
425 if (!mouseEvent || pointerIndex != 0) {
426 return 0.0f;
427 }
428 return mouseEvent->actionTouchPoint.windowX;
429 }
430 default:
431 break;
432 }
433 return 0.0f;
434 }
435
OH_ArkUI_PointerEvent_GetWindowY(const ArkUI_UIInputEvent * event)436 float OH_ArkUI_PointerEvent_GetWindowY(const ArkUI_UIInputEvent* event)
437 {
438 if (!event) {
439 return 0.0f;
440 }
441 switch (event->eventTypeId) {
442 case C_TOUCH_EVENT_ID: {
443 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
444 if (!touchEvent) {
445 return 0.0f;
446 }
447 return touchEvent->actionTouchPoint.windowY;
448 }
449 case TOUCH_EVENT_ID: {
450 const auto* touchEvent = reinterpret_cast<const OHOS::Ace::TouchEvent*>(event->inputEvent);
451 if (touchEvent) {
452 return touchEvent->y;
453 }
454 break;
455 }
456 case AXIS_EVENT_ID: {
457 const auto* axisEvent = reinterpret_cast<const OHOS::Ace::AxisEvent*>(event->inputEvent);
458 if (axisEvent) {
459 return axisEvent->y;
460 }
461 break;
462 }
463 case C_MOUSE_EVENT_ID: {
464 const auto* mouseEvent = reinterpret_cast<ArkUIMouseEvent*>(event->inputEvent);
465 if (!mouseEvent) {
466 return 0.0f;
467 }
468 return mouseEvent->actionTouchPoint.windowY;
469 }
470 default:
471 break;
472 }
473 LOGE("The parameter of OH_ArkUI_PointerEvent_GetWindowY is invalid");
474 return 0.0f;
475 }
476
OH_ArkUI_PointerEvent_GetWindowYByIndex(const ArkUI_UIInputEvent * event,uint32_t pointerIndex)477 float OH_ArkUI_PointerEvent_GetWindowYByIndex(const ArkUI_UIInputEvent* event, uint32_t pointerIndex)
478 {
479 if (!event) {
480 return 0.0f;
481 }
482 switch (event->eventTypeId) {
483 case C_TOUCH_EVENT_ID: {
484 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
485 if (!isCurrentCTouchEventParamValid(touchEvent, pointerIndex)) {
486 return 0.0f;
487 }
488 return touchEvent->touchPointes[pointerIndex].windowY;
489 }
490 case C_MOUSE_EVENT_ID: {
491 const auto* mouseEvent = reinterpret_cast<ArkUIMouseEvent*>(event->inputEvent);
492 if (!mouseEvent || pointerIndex != 0) {
493 return 0.0f;
494 }
495 return mouseEvent->actionTouchPoint.windowY;
496 }
497 default:
498 break;
499 }
500 return 0.0f;
501 }
502
OH_ArkUI_PointerEvent_GetDisplayX(const ArkUI_UIInputEvent * event)503 float OH_ArkUI_PointerEvent_GetDisplayX(const ArkUI_UIInputEvent* event)
504 {
505 if (!event) {
506 return 0.0f;
507 }
508 switch (event->eventTypeId) {
509 case C_TOUCH_EVENT_ID: {
510 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
511 if (!touchEvent) {
512 return 0.0f;
513 }
514 return touchEvent->actionTouchPoint.screenX;
515 }
516 case TOUCH_EVENT_ID: {
517 const auto* touchEvent = reinterpret_cast<const OHOS::Ace::TouchEvent*>(event->inputEvent);
518 if (touchEvent) {
519 return touchEvent->screenX;
520 }
521 break;
522 }
523 case AXIS_EVENT_ID: {
524 const auto* axisEvent = reinterpret_cast<const OHOS::Ace::AxisEvent*>(event->inputEvent);
525 if (axisEvent) {
526 return axisEvent->screenX;
527 }
528 break;
529 }
530 case C_MOUSE_EVENT_ID: {
531 const auto* mouseEvent = reinterpret_cast<ArkUIMouseEvent*>(event->inputEvent);
532 if (!mouseEvent) {
533 return 0.0f;
534 }
535 return mouseEvent->actionTouchPoint.screenX;
536 }
537 default:
538 break;
539 }
540 LOGE("The parameter of OH_ArkUI_PointerEvent_GetDisplayX is invalid");
541 return 0.0f;
542 }
543
OH_ArkUI_PointerEvent_GetDisplayXByIndex(const ArkUI_UIInputEvent * event,uint32_t pointerIndex)544 float OH_ArkUI_PointerEvent_GetDisplayXByIndex(const ArkUI_UIInputEvent* event, uint32_t pointerIndex)
545 {
546 if (!event) {
547 return 0.0f;
548 }
549 switch (event->eventTypeId) {
550 case C_TOUCH_EVENT_ID: {
551 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
552 if (!isCurrentCTouchEventParamValid(touchEvent, pointerIndex)) {
553 return 0.0f;
554 }
555 return touchEvent->touchPointes[pointerIndex].screenX;
556 }
557 case C_MOUSE_EVENT_ID: {
558 const auto* mouseEvent = reinterpret_cast<ArkUIMouseEvent*>(event->inputEvent);
559 if (!mouseEvent || pointerIndex != 0) {
560 return 0.0f;
561 }
562 return mouseEvent->actionTouchPoint.screenX;
563 }
564 default:
565 break;
566 }
567 return 0.0f;
568 }
569
OH_ArkUI_PointerEvent_GetDisplayY(const ArkUI_UIInputEvent * event)570 float OH_ArkUI_PointerEvent_GetDisplayY(const ArkUI_UIInputEvent* event)
571 {
572 if (!event) {
573 return 0.0f;
574 }
575 switch (event->eventTypeId) {
576 case C_TOUCH_EVENT_ID: {
577 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
578 if (!touchEvent) {
579 return 0.0f;
580 }
581 return touchEvent->actionTouchPoint.screenY;
582 }
583 case TOUCH_EVENT_ID: {
584 const auto* touchEvent = reinterpret_cast<const OHOS::Ace::TouchEvent*>(event->inputEvent);
585 if (touchEvent) {
586 return touchEvent->screenY;
587 }
588 break;
589 }
590 case AXIS_EVENT_ID: {
591 const auto* axisEvent = reinterpret_cast<const OHOS::Ace::AxisEvent*>(event->inputEvent);
592 if (axisEvent) {
593 return axisEvent->screenY;
594 }
595 break;
596 }
597 case C_MOUSE_EVENT_ID: {
598 const auto* mouseEvent = reinterpret_cast<ArkUIMouseEvent*>(event->inputEvent);
599 if (!mouseEvent) {
600 return 0.0f;
601 }
602 return mouseEvent->actionTouchPoint.screenY;
603 }
604 default:
605 break;
606 }
607 LOGE("The parameter of OH_ArkUI_PointerEvent_GetDisplayY is invalid");
608 return 0.0f;
609 }
610
OH_ArkUI_PointerEvent_GetDisplayYByIndex(const ArkUI_UIInputEvent * event,uint32_t pointerIndex)611 float OH_ArkUI_PointerEvent_GetDisplayYByIndex(const ArkUI_UIInputEvent* event, uint32_t pointerIndex)
612 {
613 if (!event) {
614 return 0.0f;
615 }
616 switch (event->eventTypeId) {
617 case C_TOUCH_EVENT_ID: {
618 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
619 if (!isCurrentCTouchEventParamValid(touchEvent, pointerIndex)) {
620 return 0.0f;
621 }
622 return touchEvent->touchPointes[pointerIndex].screenY;
623 }
624 case C_MOUSE_EVENT_ID: {
625 const auto* mouseEvent = reinterpret_cast<ArkUIMouseEvent*>(event->inputEvent);
626 if (!mouseEvent || pointerIndex != 0) {
627 return 0.0f;
628 }
629 return mouseEvent->actionTouchPoint.screenY;
630 }
631 default:
632 break;
633 }
634 return 0.0f;
635 }
636
OH_ArkUI_PointerEvent_GetPressure(const ArkUI_UIInputEvent * event,uint32_t pointerIndex)637 float OH_ArkUI_PointerEvent_GetPressure(const ArkUI_UIInputEvent* event, uint32_t pointerIndex)
638 {
639 if (!event) {
640 return 0.0f;
641 }
642 switch (event->eventTypeId) {
643 case C_TOUCH_EVENT_ID: {
644 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
645 if (!touchEvent || touchEvent->touchPointSize <= 0) {
646 return 0.0f;
647 }
648 return touchEvent->touchPointes[touchEvent->touchPointSize-1].pressure;
649 }
650 case C_MOUSE_EVENT_ID: {
651 const auto* mouseEvent = reinterpret_cast<ArkUIMouseEvent*>(event->inputEvent);
652 if (!mouseEvent || pointerIndex != 0) {
653 return 0.0f;
654 }
655 return mouseEvent->actionTouchPoint.pressure;
656 }
657 default:
658 break;
659 }
660 return 0.0f;
661 }
662
OH_ArkUI_PointerEvent_GetTiltX(const ArkUI_UIInputEvent * event,uint32_t pointerIndex)663 float OH_ArkUI_PointerEvent_GetTiltX(const ArkUI_UIInputEvent* event, uint32_t pointerIndex)
664 {
665 if (!event) {
666 return 0.0f;
667 }
668 switch (event->eventTypeId) {
669 case C_TOUCH_EVENT_ID: {
670 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
671 if (!touchEvent || touchEvent->touchPointSize <= 0) {
672 return 0.0f;
673 }
674 return touchEvent->touchPointes[touchEvent->touchPointSize-1].tiltX;
675 }
676 case C_MOUSE_EVENT_ID: {
677 const auto* mouseEvent = reinterpret_cast<ArkUIMouseEvent*>(event->inputEvent);
678 if (!mouseEvent || pointerIndex != 0) {
679 return 0.0f;
680 }
681 return mouseEvent->actionTouchPoint.tiltX;
682 }
683 default:
684 break;
685 }
686 return 0.0f;
687 }
688
OH_ArkUI_PointerEvent_GetTiltY(const ArkUI_UIInputEvent * event,uint32_t pointerIndex)689 float OH_ArkUI_PointerEvent_GetTiltY(const ArkUI_UIInputEvent* event, uint32_t pointerIndex)
690 {
691 if (!event) {
692 return 0.0f;
693 }
694 switch (event->eventTypeId) {
695 case C_TOUCH_EVENT_ID: {
696 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
697 if (!touchEvent || touchEvent->touchPointSize <= 0) {
698 return 0.0f;
699 }
700 return touchEvent->touchPointes[touchEvent->touchPointSize-1].tiltY;
701 }
702 case C_MOUSE_EVENT_ID: {
703 const auto* mouseEvent = reinterpret_cast<ArkUIMouseEvent*>(event->inputEvent);
704 if (!mouseEvent || pointerIndex != 0) {
705 return 0.0f;
706 }
707 return mouseEvent->actionTouchPoint.tiltY;
708 }
709 default:
710 break;
711 }
712 return 0.0f;
713 }
714
OH_ArkUI_PointerEvent_GetTouchAreaWidth(const ArkUI_UIInputEvent * event,uint32_t pointerIndex)715 float OH_ArkUI_PointerEvent_GetTouchAreaWidth(const ArkUI_UIInputEvent* event, uint32_t pointerIndex)
716 {
717 if (!event) {
718 return 0.0f;
719 }
720 switch (event->eventTypeId) {
721 case C_TOUCH_EVENT_ID: {
722 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
723 if (!touchEvent || touchEvent->touchPointSize <= 0) {
724 return 0.0f;
725 }
726 return touchEvent->touchPointes[touchEvent->touchPointSize-1].contactAreaWidth;
727 }
728 case C_MOUSE_EVENT_ID: {
729 const auto* mouseEvent = reinterpret_cast<ArkUIMouseEvent*>(event->inputEvent);
730 if (!mouseEvent || pointerIndex != 0) {
731 return 0.0f;
732 }
733 return mouseEvent->actionTouchPoint.contactAreaWidth;
734 }
735 default:
736 break;
737 }
738 return 0.0f;
739 }
740
OH_ArkUI_PointerEvent_GetTouchAreaHeight(const ArkUI_UIInputEvent * event,uint32_t pointerIndex)741 float OH_ArkUI_PointerEvent_GetTouchAreaHeight(const ArkUI_UIInputEvent* event, uint32_t pointerIndex)
742 {
743 if (!event) {
744 return 0.0f;
745 }
746 switch (event->eventTypeId) {
747 case C_TOUCH_EVENT_ID: {
748 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
749 if (!touchEvent || touchEvent->touchPointSize <= 0) {
750 return 0.0f;
751 }
752 return touchEvent->touchPointes[touchEvent->touchPointSize-1].contactAreaHeight;
753 }
754 case C_MOUSE_EVENT_ID: {
755 const auto* mouseEvent = reinterpret_cast<ArkUIMouseEvent*>(event->inputEvent);
756 if (!mouseEvent || pointerIndex != 0) {
757 return 0.0f;
758 }
759 return mouseEvent->actionTouchPoint.contactAreaHeight;
760 }
761 default:
762 break;
763 }
764 return 0.0f;
765 }
766
OH_ArkUI_PointerEvent_GetHistorySize(const ArkUI_UIInputEvent * event)767 uint32_t OH_ArkUI_PointerEvent_GetHistorySize(const ArkUI_UIInputEvent* event)
768 {
769 if (!event) {
770 return 0;
771 }
772 switch (event->eventTypeId) {
773 case C_TOUCH_EVENT_ID: {
774 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
775 if (!touchEvent || !touchEvent->historyEvents) {
776 return 0;
777 }
778 return touchEvent->historySize;
779 }
780 default:
781 break;
782 }
783 return 0;
784 }
785
OH_ArkUI_PointerEvent_GetHistoryEventTime(const ArkUI_UIInputEvent * event,uint32_t historyIndex)786 int64_t OH_ArkUI_PointerEvent_GetHistoryEventTime(const ArkUI_UIInputEvent* event, uint32_t historyIndex)
787 {
788 if (!event) {
789 return 0;
790 }
791 switch (event->eventTypeId) {
792 case C_TOUCH_EVENT_ID: {
793 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
794 if (!touchEvent || !touchEvent->historyEvents || touchEvent->historySize <= historyIndex ||
795 historyIndex < 0) {
796 return 0;
797 }
798 return touchEvent->historyEvents[historyIndex].timeStamp;
799 }
800 default:
801 break;
802 }
803 return 0;
804 }
805
OH_ArkUI_PointerEvent_GetHistoryPointerCount(const ArkUI_UIInputEvent * event,uint32_t historyIndex)806 uint32_t OH_ArkUI_PointerEvent_GetHistoryPointerCount(const ArkUI_UIInputEvent* event, uint32_t historyIndex)
807 {
808 if (!event) {
809 return 0;
810 }
811 switch (event->eventTypeId) {
812 case C_TOUCH_EVENT_ID: {
813 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
814 if (!touchEvent || !touchEvent->historyEvents || touchEvent->historySize <= historyIndex ||
815 historyIndex < 0) {
816 return 0;
817 }
818 return touchEvent->historyEvents[historyIndex].touchPointSize;
819 }
820 default:
821 break;
822 }
823 return 0;
824 }
825
OH_ArkUI_PointerEvent_GetHistoryPointerId(const ArkUI_UIInputEvent * event,uint32_t pointerIndex,uint32_t historyIndex)826 int32_t OH_ArkUI_PointerEvent_GetHistoryPointerId(
827 const ArkUI_UIInputEvent* event, uint32_t pointerIndex, uint32_t historyIndex)
828 {
829 if (!event) {
830 return 0;
831 }
832 switch (event->eventTypeId) {
833 case C_TOUCH_EVENT_ID: {
834 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
835 if (!isHistoryCTouchEventParamValid(touchEvent, historyIndex, pointerIndex)) {
836 return 0;
837 }
838 return touchEvent->historyEvents[historyIndex].touchPointes[pointerIndex].id;
839 }
840 default:
841 break;
842 }
843 return 0;
844 }
845
OH_ArkUI_PointerEvent_GetHistoryX(const ArkUI_UIInputEvent * event,uint32_t pointerIndex,uint32_t historyIndex)846 float OH_ArkUI_PointerEvent_GetHistoryX(const ArkUI_UIInputEvent* event, uint32_t pointerIndex, uint32_t historyIndex)
847 {
848 if (!event) {
849 return 0.0f;
850 }
851 switch (event->eventTypeId) {
852 case C_TOUCH_EVENT_ID: {
853 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
854 if (!isHistoryCTouchEventParamValid(touchEvent, historyIndex, pointerIndex)) {
855 return 0.0f;
856 }
857 return touchEvent->historyEvents[historyIndex].touchPointes[pointerIndex].nodeX;
858 }
859 default:
860 break;
861 }
862 return 0.0f;
863 }
864
OH_ArkUI_PointerEvent_GetHistoryY(const ArkUI_UIInputEvent * event,uint32_t pointerIndex,uint32_t historyIndex)865 float OH_ArkUI_PointerEvent_GetHistoryY(const ArkUI_UIInputEvent* event, uint32_t pointerIndex, uint32_t historyIndex)
866 {
867 if (!event) {
868 return 0.0f;
869 }
870 switch (event->eventTypeId) {
871 case C_TOUCH_EVENT_ID: {
872 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
873 if (!isHistoryCTouchEventParamValid(touchEvent, historyIndex, pointerIndex)) {
874 return 0.0f;
875 }
876 return touchEvent->historyEvents[historyIndex].touchPointes[pointerIndex].nodeY;
877 }
878 default:
879 break;
880 }
881 return 0.0f;
882 }
883
OH_ArkUI_PointerEvent_GetHistoryWindowX(const ArkUI_UIInputEvent * event,uint32_t pointerIndex,uint32_t historyIndex)884 float OH_ArkUI_PointerEvent_GetHistoryWindowX(
885 const ArkUI_UIInputEvent* event, uint32_t pointerIndex, uint32_t historyIndex)
886 {
887 if (!event) {
888 return 0.0f;
889 }
890 switch (event->eventTypeId) {
891 case C_TOUCH_EVENT_ID: {
892 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
893 if (!isHistoryCTouchEventParamValid(touchEvent, historyIndex, pointerIndex)) {
894 return 0.0f;
895 }
896 return touchEvent->historyEvents[historyIndex].touchPointes[pointerIndex].windowX;
897 }
898 default:
899 break;
900 }
901 return 0.0f;
902 }
903
OH_ArkUI_PointerEvent_GetHistoryWindowY(const ArkUI_UIInputEvent * event,uint32_t pointerIndex,uint32_t historyIndex)904 float OH_ArkUI_PointerEvent_GetHistoryWindowY(
905 const ArkUI_UIInputEvent* event, uint32_t pointerIndex, uint32_t historyIndex)
906 {
907 if (!event) {
908 return 0.0f;
909 }
910 switch (event->eventTypeId) {
911 case C_TOUCH_EVENT_ID: {
912 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
913 if (!isHistoryCTouchEventParamValid(touchEvent, historyIndex, pointerIndex)) {
914 return 0.0f;
915 }
916 return touchEvent->historyEvents[historyIndex].touchPointes[pointerIndex].windowY;
917 }
918 default:
919 break;
920 }
921 return 0.0f;
922 }
923
OH_ArkUI_PointerEvent_GetHistoryDisplayX(const ArkUI_UIInputEvent * event,uint32_t pointerIndex,uint32_t historyIndex)924 float OH_ArkUI_PointerEvent_GetHistoryDisplayX(
925 const ArkUI_UIInputEvent* event, uint32_t pointerIndex, uint32_t historyIndex)
926 {
927 if (!event) {
928 return 0.0f;
929 }
930 switch (event->eventTypeId) {
931 case C_TOUCH_EVENT_ID: {
932 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
933 if (!isHistoryCTouchEventParamValid(touchEvent, historyIndex, pointerIndex)) {
934 return 0.0f;
935 }
936 return touchEvent->historyEvents[historyIndex].touchPointes[pointerIndex].screenX;
937 }
938 default:
939 break;
940 }
941 return 0.0f;
942 }
943
OH_ArkUI_PointerEvent_GetHistoryDisplayY(const ArkUI_UIInputEvent * event,uint32_t pointerIndex,uint32_t historyIndex)944 float OH_ArkUI_PointerEvent_GetHistoryDisplayY(
945 const ArkUI_UIInputEvent* event, uint32_t pointerIndex, uint32_t historyIndex)
946 {
947 if (!event) {
948 return 0.0f;
949 }
950 switch (event->eventTypeId) {
951 case C_TOUCH_EVENT_ID: {
952 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
953 if (!isHistoryCTouchEventParamValid(touchEvent, historyIndex, pointerIndex)) {
954 return 0.0f;
955 }
956 return touchEvent->historyEvents[historyIndex].touchPointes[pointerIndex].screenY;
957 }
958 default:
959 break;
960 }
961 return 0.0f;
962 }
963
OH_ArkUI_PointerEvent_GetHistoryPressure(const ArkUI_UIInputEvent * event,uint32_t pointerIndex,uint32_t historyIndex)964 float OH_ArkUI_PointerEvent_GetHistoryPressure(
965 const ArkUI_UIInputEvent* event, uint32_t pointerIndex, uint32_t historyIndex)
966 {
967 if (!event) {
968 return 0.0f;
969 }
970 switch (event->eventTypeId) {
971 case C_TOUCH_EVENT_ID: {
972 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
973 if (!isHistoryCTouchEventParamValid(touchEvent, historyIndex, pointerIndex)) {
974 return 0.0f;
975 }
976 return touchEvent->historyEvents[historyIndex].touchPointes[pointerIndex].pressure;
977 }
978 default:
979 break;
980 }
981 return 0.0f;
982 }
983
OH_ArkUI_PointerEvent_GetHistoryTiltX(const ArkUI_UIInputEvent * event,uint32_t pointerIndex,uint32_t historyIndex)984 float OH_ArkUI_PointerEvent_GetHistoryTiltX(
985 const ArkUI_UIInputEvent* event, uint32_t pointerIndex, uint32_t historyIndex)
986 {
987 if (!event) {
988 return 0.0f;
989 }
990 switch (event->eventTypeId) {
991 case C_TOUCH_EVENT_ID: {
992 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
993 if (!isHistoryCTouchEventParamValid(touchEvent, historyIndex, pointerIndex)) {
994 return 0.0f;
995 }
996 return touchEvent->historyEvents[historyIndex].touchPointes[pointerIndex].tiltX;
997 }
998 default:
999 break;
1000 }
1001 return 0.0f;
1002 }
1003
OH_ArkUI_PointerEvent_GetHistoryTiltY(const ArkUI_UIInputEvent * event,uint32_t pointerIndex,uint32_t historyIndex)1004 float OH_ArkUI_PointerEvent_GetHistoryTiltY(
1005 const ArkUI_UIInputEvent* event, uint32_t pointerIndex, uint32_t historyIndex)
1006 {
1007 if (!event) {
1008 return 0.0f;
1009 }
1010 switch (event->eventTypeId) {
1011 case C_TOUCH_EVENT_ID: {
1012 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
1013 if (!isHistoryCTouchEventParamValid(touchEvent, historyIndex, pointerIndex)) {
1014 return 0.0f;
1015 }
1016 return touchEvent->historyEvents[historyIndex].touchPointes[pointerIndex].tiltY;
1017 }
1018 default:
1019 break;
1020 }
1021 return 0.0f;
1022 }
1023
OH_ArkUI_PointerEvent_GetHistoryTouchAreaWidth(const ArkUI_UIInputEvent * event,uint32_t pointerIndex,uint32_t historyIndex)1024 float OH_ArkUI_PointerEvent_GetHistoryTouchAreaWidth(
1025 const ArkUI_UIInputEvent* event, uint32_t pointerIndex, uint32_t historyIndex)
1026 {
1027 if (!event) {
1028 return 0.0f;
1029 }
1030 switch (event->eventTypeId) {
1031 case C_TOUCH_EVENT_ID: {
1032 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
1033 if (!isHistoryCTouchEventParamValid(touchEvent, historyIndex, pointerIndex)) {
1034 return 0.0f;
1035 }
1036 return touchEvent->historyEvents[historyIndex].touchPointes[pointerIndex].contactAreaWidth;
1037 }
1038 default:
1039 break;
1040 }
1041 return 0.0f;
1042 }
1043
OH_ArkUI_PointerEvent_GetHistoryTouchAreaHeight(const ArkUI_UIInputEvent * event,uint32_t pointerIndex,uint32_t historyIndex)1044 float OH_ArkUI_PointerEvent_GetHistoryTouchAreaHeight(
1045 const ArkUI_UIInputEvent* event, uint32_t pointerIndex, uint32_t historyIndex)
1046 {
1047 if (!event) {
1048 return 0.0f;
1049 }
1050 switch (event->eventTypeId) {
1051 case C_TOUCH_EVENT_ID: {
1052 const auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
1053 if (!isHistoryCTouchEventParamValid(touchEvent, historyIndex, pointerIndex)) {
1054 return 0.0f;
1055 }
1056 return touchEvent->historyEvents[historyIndex].touchPointes[pointerIndex].contactAreaHeight;
1057 }
1058 default:
1059 break;
1060 }
1061 return 0.0f;
1062 }
1063
OH_ArkUI_AxisEvent_GetVerticalAxisValue(const ArkUI_UIInputEvent * event)1064 double OH_ArkUI_AxisEvent_GetVerticalAxisValue(const ArkUI_UIInputEvent* event)
1065 {
1066 if (!event) {
1067 return 0.0;
1068 }
1069 switch (event->eventTypeId) {
1070 case AXIS_EVENT_ID: {
1071 const auto* axisEvent = reinterpret_cast<const OHOS::Ace::AxisEvent*>(event->inputEvent);
1072 if (axisEvent) {
1073 return axisEvent->verticalAxis;
1074 }
1075 break;
1076 }
1077 default:
1078 break;
1079 }
1080 return 0.0;
1081 }
1082
OH_ArkUI_AxisEvent_GetHorizontalAxisValue(const ArkUI_UIInputEvent * event)1083 double OH_ArkUI_AxisEvent_GetHorizontalAxisValue(const ArkUI_UIInputEvent* event)
1084 {
1085 if (!event) {
1086 return 0.0;
1087 }
1088 switch (event->eventTypeId) {
1089 case AXIS_EVENT_ID: {
1090 const auto* axisEvent = reinterpret_cast<const OHOS::Ace::AxisEvent*>(event->inputEvent);
1091 if (axisEvent) {
1092 return axisEvent->horizontalAxis;
1093 }
1094 break;
1095 }
1096 default:
1097 break;
1098 }
1099 return 0.0;
1100 }
1101
OH_ArkUI_AxisEvent_GetPinchAxisScaleValue(const ArkUI_UIInputEvent * event)1102 double OH_ArkUI_AxisEvent_GetPinchAxisScaleValue(const ArkUI_UIInputEvent* event)
1103 {
1104 if (!event) {
1105 return 0.0;
1106 }
1107 switch (event->eventTypeId) {
1108 case AXIS_EVENT_ID: {
1109 const auto* axisEvent = reinterpret_cast<const OHOS::Ace::AxisEvent*>(event->inputEvent);
1110 if (axisEvent) {
1111 return axisEvent->pinchAxisScale;
1112 }
1113 break;
1114 }
1115 default:
1116 break;
1117 }
1118 return 0.0;
1119 }
1120
OH_ArkUI_PointerEvent_SetInterceptHitTestMode(const ArkUI_UIInputEvent * event,HitTestMode mode)1121 int32_t OH_ArkUI_PointerEvent_SetInterceptHitTestMode(const ArkUI_UIInputEvent* event, HitTestMode mode)
1122 {
1123 if (!event) {
1124 return OHOS::Ace::ERROR_CODE_PARAM_INVALID;
1125 }
1126 switch (event->eventTypeId) {
1127 case C_TOUCH_EVENT_ID: {
1128 auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
1129 touchEvent->interceptResult = static_cast<int32_t>(mode);
1130 break;
1131 }
1132 case C_MOUSE_EVENT_ID: {
1133 auto* mouseEvent = reinterpret_cast<ArkUIMouseEvent*>(event->inputEvent);
1134 if (!mouseEvent) {
1135 return OHOS::Ace::ERROR_CODE_PARAM_INVALID;
1136 }
1137 return mouseEvent->interceptResult = static_cast<int32_t>(mode);
1138 }
1139 default:
1140 return OHOS::Ace::ERROR_CODE_PARAM_INVALID;
1141 }
1142 return OHOS::Ace::ERROR_CODE_NO_ERROR;
1143 }
1144
OH_ArkUI_PointerEvent_SetStopPropagation(const ArkUI_UIInputEvent * event,bool stopPropagation)1145 int32_t OH_ArkUI_PointerEvent_SetStopPropagation(const ArkUI_UIInputEvent* event, bool stopPropagation)
1146 {
1147 if (!event) {
1148 return OHOS::Ace::ERROR_CODE_PARAM_INVALID;
1149 }
1150 switch (event->eventTypeId) {
1151 case C_TOUCH_EVENT_ID: {
1152 auto* touchEvent = reinterpret_cast<ArkUITouchEvent*>(event->inputEvent);
1153 touchEvent->stopPropagation = stopPropagation;
1154 break;
1155 }
1156 default:
1157 return OHOS::Ace::ERROR_CODE_PARAM_INVALID;
1158 }
1159 return OHOS::Ace::ERROR_CODE_NO_ERROR;
1160 }
1161
OH_ArkUI_MouseEvent_GetMouseButton(const ArkUI_UIInputEvent * event)1162 int32_t OH_ArkUI_MouseEvent_GetMouseButton(const ArkUI_UIInputEvent* event)
1163 {
1164 if (!event) {
1165 return -1;
1166 }
1167 switch (event->eventTypeId) {
1168 case C_MOUSE_EVENT_ID: {
1169 const auto* mouseEvent = reinterpret_cast<ArkUIMouseEvent*>(event->inputEvent);
1170 if (!mouseEvent) {
1171 return -1;
1172 }
1173 return OHOS::Ace::NodeModel::ConvertToCMouseEventButtonType(mouseEvent->button);
1174 }
1175 default:
1176 break;
1177 }
1178 return -1;
1179 }
1180
OH_ArkUI_MouseEvent_GetMouseAction(const ArkUI_UIInputEvent * event)1181 int32_t OH_ArkUI_MouseEvent_GetMouseAction(const ArkUI_UIInputEvent* event)
1182 {
1183 if (!event) {
1184 return -1;
1185 }
1186 switch (event->eventTypeId) {
1187 case C_MOUSE_EVENT_ID: {
1188 const auto* mouseEvent = reinterpret_cast<ArkUIMouseEvent*>(event->inputEvent);
1189 if (!mouseEvent) {
1190 return -1;
1191 }
1192 return OHOS::Ace::NodeModel::ConvertToCMouseActionType(mouseEvent->action);
1193 }
1194 default:
1195 break;
1196 }
1197 return -1;
1198 }
1199
1200 #ifdef __cplusplus
1201 };
1202 #endif
1203