From 05c1f2a2a1b6d58df8557cffce7c6314cbb50d34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B0=B8=E5=87=AF?= Date: Tue, 3 Jun 2025 21:22:35 +0800 Subject: [PATCH] touchTestDone interface_c MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 刘永凯 --- arkui/ace_engine/native/libace.ndk.json | 8 +++++ arkui/ace_engine/native/native_gesture.h | 39 ++++++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/arkui/ace_engine/native/libace.ndk.json b/arkui/ace_engine/native/libace.ndk.json index a8f6e0e5c..f0145c3c8 100644 --- a/arkui/ace_engine/native/libace.ndk.json +++ b/arkui/ace_engine/native/libace.ndk.json @@ -3438,5 +3438,13 @@ { "first_introduced": "20", "name": "OH_ArkUI_NodeUtils_GetNodeUniqueId" + }, + { + "first_introduced": "20", + "name": "OH_ArkUI_PreventGestureRecognizerBegin" + }, + { + "first_introduced": "20", + "name": "OH_ArkUI_SetTouchTestDoneCallback" } ] \ No newline at end of file diff --git a/arkui/ace_engine/native/native_gesture.h b/arkui/ace_engine/native/native_gesture.h index aa4b37c23..f2ee43f11 100644 --- a/arkui/ace_engine/native/native_gesture.h +++ b/arkui/ace_engine/native/native_gesture.h @@ -1162,6 +1162,45 @@ typedef struct { */ void* OH_ArkUI_GestureInterrupter_GetUserData(ArkUI_GestureInterruptInfo* event); +/** + * @brief Registers a callback that is executed after all gesture recognizers are collected. + * When the user begins touching the screen, the system performs hit testing and collects gesture recognizers + * based on the touch location. Subsequently, before processing any move events, the component can use this API + * to determine the gesture recognizers that will participate in and compete for recognition. + * + * @param node Handle to the node on which the callback is to be set. + * @param userData Custom data. + * @param recognizerCollected Callback for completion of gesture recognizer collection. + * @return Result code. + * {@link ARKUI_ERROR_CODE_NO_ERROR}: The operation is successful. + * {@link ARKUI_ERROR_CODE_PARAM_INVALID}: A parameter error occurs. + * @since 20 + */ +ArkUI_ErrorCode OH_ArkUI_SetTouchTestDoneCallback( + ArkUI_NodeHandle node, + void* userData, + void (*touchTestDone)( + ArkUI_GestureEvent* event, + ArkUI_GestureRecognizerHandleArray recognizers, + int32_t count, + void* userData + ) +); + +/** + * @brief Prevents a gesture recognizer from participating in the current gesture recognition before all fingers are + * lifted. + * If the system has already determined the result of the gesture recognizer (regardless of success or failure), + * calling this API will be ineffective. + * + * @param recognizer Pointer to a gesture recognizer. + * @return Result code. + * {@link ARKUI_ERROR_CODE_NO_ERROR}: The operation is successful. + * {@link ARKUI_ERROR_CODE_PARAM_INVALID}: A parameter error occurs. + * @since 20 + */ +ArkUI_ErrorCode OH_ArkUI_PreventGestureRecognizerBegin(ArkUI_GestureRecognizer* recognizer); + #ifdef __cplusplus }; #endif -- Gitee