• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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