1 /* 2 * Copyright (c) 2025 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 #ifndef NDKXCOMPONENT_TOUCHPOINT_H 17 #define NDKXCOMPONENT_TOUCHPOINT_H 18 19 #include "component/XComponent.h" 20 21 #define XC ArkUICapiTest::XComponent 22 23 namespace TouchPoint { 24 25 static OH_NativeXComponent_Callback XComponentCallback; 26 static XC ColumnComponent = XC(ARKUI_NODE_COLUMN); 27 static XC XComponent = XC(ARKUI_NODE_XCOMPONENT); 28 static int32_t g_getHistoricalPointsResult = 1; 29 static OH_NativeXComponent_HistoricalPoint g_historicalPoint = { 30 .id = -1, 31 .screenX = -1, 32 .screenY = -1, 33 .x = -1, 34 .y = -1, 35 .type = OH_NativeXComponent_TouchEventType(), 36 .size = -1, 37 .force = -1, 38 .timeStamp = -1, 39 .titlX = -1, 40 .titlY = -1, 41 .sourceTool = OH_NativeXComponent_TouchEvent_SourceTool(), 42 }; 43 static std::unordered_map<OH_NativeXComponent_TouchEvent_SourceTool, 44 OH_NativeXComponent_HistoricalPoint> g_historicalPointMap; 45 static std::unordered_map<bool, OH_NativeXComponent_TouchPoint> g_touchPointMap; 46 static std::unordered_map<OH_NativeXComponent_TouchPointToolType, int32_t> g_touchPointToolMap; 47 static std::unordered_map<OH_NativeXComponent_EventSourceType, int32_t> g_touchEventSourceMap; 48 static OH_NativeXComponent_TouchEvent g_touchEvent = { 49 .id = -1, 50 .screenX = -1, 51 .screenY = -1, 52 .x = -1, 53 .y = -1, 54 .type = OH_NativeXComponent_TouchEventType(), 55 .size = -1, 56 .force = -1, 57 .timeStamp = -1, 58 .touchPoints = {}, 59 .numPoints = 0, 60 }; 61 void TouchEventCallback(OH_NativeXComponent* component, void* window); 62 void InitNode(); 63 64 napi_value CreateTouchNativeNode(napi_env env, napi_callback_info info); 65 napi_value GetTouchPointWindowX(napi_env env, napi_callback_info info); 66 napi_value GetTouchPointWindowY(napi_env env, napi_callback_info info); 67 napi_value GetTouchPointDisplayX(napi_env env, napi_callback_info info); 68 napi_value GetTouchPointDisplayY(napi_env env, napi_callback_info info); 69 napi_value GetHistoricalPoints(napi_env env, napi_callback_info info); 70 napi_value HistoricalPointId(napi_env env, napi_callback_info info); 71 napi_value HistoricalPointScreenX(napi_env env, napi_callback_info info); 72 napi_value HistoricalPointScreenY(napi_env env, napi_callback_info info); 73 napi_value HistoricalPointX(napi_env env, napi_callback_info info); 74 napi_value HistoricalPointY(napi_env env, napi_callback_info info); 75 napi_value HistoricalPointType(napi_env env, napi_callback_info info); 76 napi_value HistoricalPointSize(napi_env env, napi_callback_info info); 77 napi_value HistoricalPointForce(napi_env env, napi_callback_info info); 78 napi_value HistoricalPointTimeStamp(napi_env env, napi_callback_info info); 79 napi_value HistoricalPointTitlX(napi_env env, napi_callback_info info); 80 napi_value HistoricalPointTitlY(napi_env env, napi_callback_info info); 81 napi_value HistoricalPointSourceTool(napi_env env, napi_callback_info info); 82 napi_value GetTouchEventSourceTool(napi_env env, napi_callback_info info); 83 napi_value GetTouchPointToolTypeResult(napi_env env, napi_callback_info info); 84 napi_value GetTouchEventSourceType(napi_env env, napi_callback_info info); 85 napi_value TouchPointType(napi_env env, napi_callback_info info); 86 napi_value TouchPointSize(napi_env env, napi_callback_info info); 87 napi_value TouchPointForce(napi_env env, napi_callback_info info); 88 napi_value TouchPointTimeStamp(napi_env env, napi_callback_info info); 89 napi_value TouchPointIsPressed(napi_env env, napi_callback_info info); 90 napi_value TouchEventId(napi_env env, napi_callback_info info); 91 napi_value TouchEventSize(napi_env env, napi_callback_info info); 92 napi_value TouchEventForce(napi_env env, napi_callback_info info); 93 napi_value TouchEventDeviceId(napi_env env, napi_callback_info info); 94 napi_value TouchEventTimeStamp(napi_env env, napi_callback_info info); 95 } 96 97 #endif //NDKXCOMPONENT_TOUCHPOINT_H 98