已合并
翻译结束:update docs #132606
dido_123创建于 3月5日
翻译结束:update docs #132606
已合并
dido_123创建于 3月5日
13 个文件变更+264-112
@@ -32,7 +32,7 @@ During Bluetooth service development, two types of address are defined.
32 32 
33- Bluetooth device address type defined by the Bluetooth subsystem. The actual MAC address of a Bluetooth device belongs to user private information. During device discovery, the Bluetooth subsystem assigns a virtual MAC address to each Bluetooth device and saves the mapping between the virtual MAC address and the actual MAC address.33- Bluetooth device address type defined by the Bluetooth subsystem. The actual MAC address of a Bluetooth device belongs to user private information. During device discovery, the Bluetooth subsystem assigns a virtual MAC address to each Bluetooth device and saves the mapping between the virtual MAC address and the actual MAC address.
34 34 
35-- Bluetooth device address type defined by the Bluetooth protocol. The Bluetooth device address type defined by the Bluetooth protocol are classified into two subtypes: public address and random address. Traditional Bluetooth devices use public addresses, while Bluetooth Low Energy (BLE) devices can use public addresses or random addresses. Random addresses include static random addresses and private random addresses. Private random addresses are further classified into non-resolvable private addresses and resolvable private addresses. The following table describes each address type.35+- Bluetooth device address type defined by the Bluetooth protocol. The Bluetooth device address type defined by the Bluetooth protocol are classified into two subtypes: public address and random address. Classic Bluetooth devices use public addresses, while Bluetooth Low Energy (BLE) devices can use public addresses or random addresses. Random addresses include static random addresses and private random addresses. Private random addresses are further classified into non-resolvable private addresses and resolvable private addresses. The following table describes each address type.
36 36 
37| Type | Description |37| Type | Description |
38| ------------------ | ------ |38| ------------------ | ------ |
@@ -34,7 +34,7 @@ Provides a collection of native-side Node type APIs provided by ArkUI. APIs rela
34| Name| Description|34| Name| Description|
35| -- | -- |35| -- | -- |
36| [ArkUI_NodeHandle (\*createNode)(ArkUI_NodeType type)](#createnode) | Creates a component based on [ArkUI_NodeType](capi-native-node-h.md#arkui_nodetype) and returns the pointer to the component object.|36| [ArkUI_NodeHandle (\*createNode)(ArkUI_NodeType type)](#createnode) | Creates a component based on [ArkUI_NodeType](capi-native-node-h.md#arkui_nodetype) and returns the pointer to the component object.|
37-| [void (\*disposeNode)(ArkUI_NodeHandle node)](#disposenode) | Disposes the component to which the specified pointer points.|37+| [void (\*disposeNode)(ArkUI_NodeHandle node)](#disposenode) | Disposes of the component to which the specified pointer points.|
38| [int32_t (\*addChild)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child)](#addchild) | Attaches a component to a parent node.|38| [int32_t (\*addChild)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child)](#addchild) | Attaches a component to a parent node.|
39| [int32_t (\*removeChild)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child)](#removechild) | Removes a component from its parent node.|39| [int32_t (\*removeChild)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child)](#removechild) | Removes a component from its parent node.|
40| [int32_t (\*insertChildAfter)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, ArkUI_NodeHandle sibling)](#insertchildafter) | Attaches a component to a parent node, with the position after the **sibling** node.|40| [int32_t (\*insertChildAfter)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, ArkUI_NodeHandle sibling)](#insertchildafter) | Attaches a component to a parent node, with the position after the **sibling** node.|
@@ -47,7 +47,7 @@ Provides a collection of native-side Node type APIs provided by ArkUI. APIs rela
47| [void (\*unregisterNodeEvent)(ArkUI_NodeHandle node, ArkUI_NodeEventType eventType)](#unregisternodeevent) | Unregisters an event for the specified node.|47| [void (\*unregisterNodeEvent)(ArkUI_NodeHandle node, ArkUI_NodeEventType eventType)](#unregisternodeevent) | Unregisters an event for the specified node.|
48| [void (\*registerNodeEventReceiver)(void (\*eventReceiver)(ArkUI_NodeEvent* event))](#registernodeeventreceiver) | Registers a unified entry point for event callbacks. The ArkUI framework collects component events generated during processing and returns them through the registered **eventReceiver** API.<br> Repeated calls will override the previously registered API. Avoid directly saving pointers to **ArkUI_NodeEvent** objects, as the data will be destroyed after the callback is complete.<br> To bind with a component instance, you can use the **addNodeEventReceiver** function.<br>|48| [void (\*registerNodeEventReceiver)(void (\*eventReceiver)(ArkUI_NodeEvent* event))](#registernodeeventreceiver) | Registers a unified entry point for event callbacks. The ArkUI framework collects component events generated during processing and returns them through the registered **eventReceiver** API.<br> Repeated calls will override the previously registered API. Avoid directly saving pointers to **ArkUI_NodeEvent** objects, as the data will be destroyed after the callback is complete.<br> To bind with a component instance, you can use the **addNodeEventReceiver** function.<br>|
49| [void (\*unregisterNodeEventReceiver)()](#unregisternodeeventreceiver) | Unregisters the unified entry point for event callbacks.|49| [void (\*unregisterNodeEventReceiver)()](#unregisternodeeventreceiver) | Unregisters the unified entry point for event callbacks.|
50-| [void (\*markDirty)(ArkUI_NodeHandle node, ArkUI_NodeDirtyFlag dirtyFlag)](#markdirty) | Forces a node to be marked for re-measurement, layout, or drawing. Regarding updates to system attributes, the ArkUI framework automatically marks dirty areas and re-executes measurement, layout, or drawing; you do not need to call this API actively.|50+| [void (\*markDirty)(ArkUI_NodeHandle node, ArkUI_NodeDirtyFlag dirtyFlag)](#markdirty) | Forcibly marks the current node for re-measurement, re-layout, or re-drawing. Regarding updates to system attributes, the ArkUI framework automatically marks nodes and re-executes measurement, layout, or drawing; you do not need to call this API actively.|
51| [uint32_t (\*getTotalChildCount)(ArkUI_NodeHandle node)](#gettotalchildcount) | Obtains the number of child nodes.|51| [uint32_t (\*getTotalChildCount)(ArkUI_NodeHandle node)](#gettotalchildcount) | Obtains the number of child nodes.|
52| [ArkUI_NodeHandle (\*getChildAt)(ArkUI_NodeHandle node, int32_t position)](#getchildat) | Obtains a child node.|52| [ArkUI_NodeHandle (\*getChildAt)(ArkUI_NodeHandle node, int32_t position)](#getchildat) | Obtains a child node.|
53| [ArkUI_NodeHandle (\*getFirstChild)(ArkUI_NodeHandle node)](#getfirstchild) | Obtains the first child node.|53| [ArkUI_NodeHandle (\*getFirstChild)(ArkUI_NodeHandle node)](#getfirstchild) | Obtains the first child node.|
@@ -63,7 +63,7 @@ Provides a collection of native-side Node type APIs provided by ArkUI. APIs rela
63| [ArkUI_IntSize (\*getMeasuredSize)(ArkUI_NodeHandle node)](#getmeasuredsize) | Obtains the width and height of a component after measurement.|63| [ArkUI_IntSize (\*getMeasuredSize)(ArkUI_NodeHandle node)](#getmeasuredsize) | Obtains the width and height of a component after measurement.|
64| [ArkUI_IntOffset (\*getLayoutPosition)(ArkUI_NodeHandle node)](#getlayoutposition) | Obtains the position of a component after the layout is complete.|64| [ArkUI_IntOffset (\*getLayoutPosition)(ArkUI_NodeHandle node)](#getlayoutposition) | Obtains the position of a component after the layout is complete.|
65| [int32_t (\*measureNode)(ArkUI_NodeHandle node, ArkUI_LayoutConstraint* Constraint)](#measurenode) | Measures a node. You can use the **getMeasuredSize** API to obtain the size after the measurement.|65| [int32_t (\*measureNode)(ArkUI_NodeHandle node, ArkUI_LayoutConstraint* Constraint)](#measurenode) | Measures a node. You can use the **getMeasuredSize** API to obtain the size after the measurement.|
66-| [int32_t (\*layoutNode)(ArkUI_NodeHandle node, int32_t positionX, int32_t positionY)](#layoutnode) | Lays outs a component and specifies the expected position of the component relative to its parent component.|66+| [int32_t (\*layoutNode)(ArkUI_NodeHandle node, int32_t positionX, int32_t positionY)](#layoutnode) | Lays outs a node and specifies the expected position of the node relative to its parent node.|
67| [int32_t (\*addNodeEventReceiver)(ArkUI_NodeHandle node, void (\*eventReceiver)(ArkUI_NodeEvent* event))](#addnodeeventreceiver) | Adds a component event callback function to a component to receive component events generated by it. Unlike the global registration function **registerNodeEventReceiver**, this API allows multiple event receivers to be added to the same component.<br> The callback added by this function is triggered before the global callback registered by **registerNodeEventReceiver**.<br> Avoid directly saving pointers to **ArkUI_NodeEvent** objects, as the data will be destroyed after the callback is complete.<br>|67| [int32_t (\*addNodeEventReceiver)(ArkUI_NodeHandle node, void (\*eventReceiver)(ArkUI_NodeEvent* event))](#addnodeeventreceiver) | Adds a component event callback function to a component to receive component events generated by it. Unlike the global registration function **registerNodeEventReceiver**, this API allows multiple event receivers to be added to the same component.<br> The callback added by this function is triggered before the global callback registered by **registerNodeEventReceiver**.<br> Avoid directly saving pointers to **ArkUI_NodeEvent** objects, as the data will be destroyed after the callback is complete.<br>|
68| [int32_t (\*removeNodeEventReceiver)(ArkUI_NodeHandle node, void (\*eventReceiver)(ArkUI_NodeEvent* event))](#removenodeeventreceiver) | Removes a registered component event callback function from a component.|68| [int32_t (\*removeNodeEventReceiver)(ArkUI_NodeHandle node, void (\*eventReceiver)(ArkUI_NodeEvent* event))](#removenodeeventreceiver) | Removes a registered component event callback function from a component.|
69| [int32_t (\*addNodeCustomEventReceiver)(ArkUI_NodeHandle node, void (\*eventReceiver)(ArkUI_NodeCustomEvent* event))](#addnodecustomeventreceiver) | Adds a custom event callback function to a component to receive custom events (such as layout and drawing events) generated by it. Unlike the global registration function **registerNodeCustomEventReceiver**, this API allows multiple event receivers to be added to the same component.<br> The callback added by this function is triggered before the global callback registered by **registerNodeCustomEventReceiver**.<br> Do not directly save the **ArkUI_NodeCustomEvent** object pointer. The data will be destroyed after the callback is complete.<br>|69| [int32_t (\*addNodeCustomEventReceiver)(ArkUI_NodeHandle node, void (\*eventReceiver)(ArkUI_NodeCustomEvent* event))](#addnodecustomeventreceiver) | Adds a custom event callback function to a component to receive custom events (such as layout and drawing events) generated by it. Unlike the global registration function **registerNodeCustomEventReceiver**, this API allows multiple event receivers to be added to the same component.<br> The callback added by this function is triggered before the global callback registered by **registerNodeCustomEventReceiver**.<br> Do not directly save the **ArkUI_NodeCustomEvent** object pointer. The data will be destroyed after the callback is complete.<br>|
@@ -87,6 +87,8 @@ ArkUI_NodeHandle (*createNode)(ArkUI_NodeType type)
87 87 
88Creates a component based on [ArkUI_NodeType](capi-native-node-h.md#arkui_nodetype) and returns the pointer to the component object.88Creates a component based on [ArkUI_NodeType](capi-native-node-h.md#arkui_nodetype) and returns the pointer to the component object.
89 89 
90+**Since**: 12
91+ 
90**Parameters**92**Parameters**
91 93 
92| Name | Description|94| Name | Description|
@@ -107,7 +109,9 @@ void (*disposeNode)(ArkUI_NodeHandle node)
107 109 
108**Description**110**Description**
109 111 
110-Disposes the component to which the specified pointer points. When calling this API on a non-main thread, special attention must be paid to the lifecycle of the component object to be destroyed. Improper lifecycle management may cause the application to crash; therefore, it is not recommended to call this API on non-main threads.112+Disposes of the component to which the specified pointer points. When calling this API on a non-main thread, special attention must be paid to the lifecycle of the component object to be destroyed. Improper lifecycle management may cause the application to crash; therefore, it is not recommended to call this API on non-main threads.
113+ 
114+**Since**: 12
111 115 
112**Parameters**116**Parameters**
113 117 
@@ -124,7 +128,9 @@ int32_t (*addChild)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child)
124**Description**128**Description**
125 129 
126 130 
127-Attaches a component to a parent node.131+Attaches a component to a parent node. This API is used for node operations, and you are advised to call this API in the main thread.
132+ 
133+**Since**: 12
128 134 
129**Parameters**135**Parameters**
130 136 
@@ -137,7 +143,7 @@ Attaches a component to a parent node.
137 143 
138| Type| Description |144| Type| Description |
139| -- |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|145| -- |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
140-| int32_t | Result code.<br> Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) if the operation is successful.<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) if a parameter error occurs.<br> Returns [ARKUI_ERROR_CODE_NOT_SUPPORTED_FOR_ARKTS_NODE](capi-native-type-h.md#arkui_errorcode) if the following unsupported operations are performed on BuilderNode generated nodes: setting or resetting attributes, setting events, or adding or modifying child nodes.<br> Returns [ARKUI_ERROR_CODE_NODE_IS_ADOPTED](capi-native-type-h.md#arkui_errorcode) if a child node has been accepted. This specification is supported since API version 22.|146+| int32_t | Result code.<br> Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) if the operation is successful.<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) if a parameter error occurs.<br> Returns [ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE](capi-native-type-h.md#arkui_errorcode) if the operation is not supported for the node created in ArkTS.<br> Returns [ARKUI_ERROR_CODE_NODE_IS_ADOPTED](capi-native-type-h.md#arkui_errorcode) if the node has been adopted as an affiliated node. This specification is supported since API version 22.|
141 147 
142### removeChild()148### removeChild()
143 149 
@@ -148,7 +154,9 @@ int32_t (*removeChild)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child)
148**Description**154**Description**
149 155 
150 156 
151-Removes a component from its parent node.157+Removes a component from its parent node. This API is used for node operations, and you are advised to call this API in the main thread.
158+ 
159+**Since**: 12
152 160 
153**Parameters**161**Parameters**
154 162 
@@ -161,7 +169,7 @@ Removes a component from its parent node.
161 169 
162| Type| Description|170| Type| Description|
163| -- | -- |171| -- | -- |
164-| int32_t | Result code.<br> Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) if the operation is successful.<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) if a parameter error occurs.<br> Returns [ARKUI_ERROR_CODE_NOT_SUPPORTED_FOR_ARKTS_NODE](capi-native-type-h.md#arkui_errorcode) if the following unsupported operations are performed on BuilderNode generated nodes: setting or resetting attributes, setting events, or adding or modifying child nodes.<br> Returns **ERROR_CODE_NATIVE_IMPL_NODE_ADAPTER_EXIST** if the NodeAdapter already exists.|172+| int32_t | Result code.<br> Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) if the operation is successful.<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) if a parameter error occurs.<br> Returns [ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE](capi-native-type-h.md#arkui_errorcode) if the operation is not supported for the node created in ArkTS.<br> Returns [ERROR_CODE_NATIVE_IMPL_NODE_ADAPTER_EXIST](capi-native-type-h.md#arkui_errorcode) if [NodeAdapter](capi-arkui-nativemodule-arkui-nodeadapter8h.md) already exists.|
165 173 
166### insertChildAfter()174### insertChildAfter()
167 175 
@@ -172,7 +180,9 @@ int32_t (*insertChildAfter)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, Ark
172**Description**180**Description**
173 181 
174 182 
175-Attaches a component to a parent node, with the position after the **sibling** node.183+Attaches a component to a parent node, with the position after the **sibling** node. This API is used for node operations, and you are advised to call this API in the main thread.
184+ 
185+**Since**: 12
176 186 
177**Parameters**187**Parameters**
178 188 
@@ -186,7 +196,7 @@ Attaches a component to a parent node, with the position after the **sibling** n
186 196 
187| Type| Description|197| Type| Description|
188| -- | -- |198| -- | -- |
189-| int32_t | Result code.<br> Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) if the operation is successful.<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) if a parameter error occurs.<br> Returns [ARKUI_ERROR_CODE_NOT_SUPPORTED_FOR_ARKTS_NODE](capi-native-type-h.md#arkui_errorcode) if the following unsupported operations are performed on BuilderNode generated nodes: setting or resetting attributes, setting events, or adding or modifying child nodes.<br> Returns [ARKUI_ERROR_CODE_NODE_IS_ADOPTED](capi-native-type-h.md#arkui_errorcode) if a child node has been accepted. This specification is supported since API version 22.|199+| int32_t | Result code.<br> Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) if the operation is successful.<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) if a parameter error occurs.<br> Returns [ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE](capi-native-type-h.md#arkui_errorcode) if the operation is not supported for the node created in ArkTS.<br> Returns [ARKUI_ERROR_CODE_NODE_IS_ADOPTED](capi-native-type-h.md#arkui_errorcode) if the node has been adopted as an affiliated node. This specification is supported since API version 22.|
190 200 
191### insertChildBefore()201### insertChildBefore()
192 202 
@@ -197,7 +207,9 @@ int32_t (*insertChildBefore)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, Ar
197**Description**207**Description**
198 208 
199 209 
200-Attaches a component to a parent node, with the position before the **sibling** node.210+Attaches a component to a parent node, with the position before the **sibling** node. This API is used for node operations, and you are advised to call this API in the main thread.
211+ 
212+**Since**: 12
201 213 
202**Parameters**214**Parameters**
203 215 
@@ -211,7 +223,7 @@ Attaches a component to a parent node, with the position before the **sibling**
211 223 
212| Type| Description|224| Type| Description|
213| -- | -- |225| -- | -- |
214-| int32_t | Result code.<br> Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) if the operation is successful.<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) if a parameter error occurs.<br> Returns [ARKUI_ERROR_CODE_NOT_SUPPORTED_FOR_ARKTS_NODE](capi-native-type-h.md#arkui_errorcode) if the following unsupported operations are performed on BuilderNode generated nodes: setting or resetting attributes, setting events, or adding or modifying child nodes.<br> Returns **ERROR_CODE_NATIVE_IMPL_NODE_ADAPTER_EXIST** if the NodeAdapter already exists.<br> Returns [ARKUI_ERROR_CODE_NODE_IS_ADOPTED](capi-native-type-h.md#arkui_errorcode) if a child node has been accepted. This specification is supported since API version 22.|226+| int32_t | Result code.<br> Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) if the operation is successful.<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) if a parameter error occurs.<br> Returns [ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE](capi-native-type-h.md#arkui_errorcode) if the operation is not supported for the node created in ArkTS.<br> Returns [ARKUI_ERROR_CODE_NODE_IS_ADOPTED](capi-native-type-h.md#arkui_errorcode) if the node has been adopted as an affiliated node. This specification is supported since API version 22.|
215 227 
216### insertChildAt()228### insertChildAt()
217 229 
@@ -222,7 +234,9 @@ int32_t (*insertChildAt)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, int32_
222**Description**234**Description**
223 235 
224 236 
225-Attaches a component to a parent node, with the position specified by **position**.237+Attaches a component to a parent node, with the position specified by **position**. This API is used for node operations, and you are advised to call this API in the main thread.
238+ 
239+**Since**: 12
226 240 
227**Parameters**241**Parameters**
228 242 
@@ -230,13 +244,13 @@ Attaches a component to a parent node, with the position specified by **position
230| -- | -- |244| -- | -- |
231| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) parent | Pointer to the parent node.|245| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) parent | Pointer to the parent node.|
232| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) child | Pointer to the child node.|246| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) child | Pointer to the child node.|
233-| int32_t position | Position to which the target child node is to be inserted. If the value is a negative number or invalid, the node is inserted at the end of the parent node.|247+| int32_t position | Inserting position. The value range is [-2147483648, 2147483647]. If the value is a negative number or invalid, the component is inserted at the end of the parent node.|
234 248 
235**Return value**249**Return value**
236 250 
237| Type| Description|251| Type| Description|
238| -- | -- |252| -- | -- |
239-| int32_t | Result code.<br> Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) if the operation is successful.<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) if a parameter error occurs.<br> Returns [ARKUI_ERROR_CODE_NOT_SUPPORTED_FOR_ARKTS_NODE](capi-native-type-h.md#arkui_errorcode) if the following unsupported operations are performed on BuilderNode generated nodes: setting or resetting attributes, setting events, or adding or modifying child nodes.<br> Returns **ERROR_CODE_NATIVE_IMPL_NODE_ADAPTER_EXIST** if the NodeAdapter already exists.<br> Returns [ARKUI_ERROR_CODE_NODE_IS_ADOPTED](capi-native-type-h.md#arkui_errorcode) if a child node has been accepted. This specification is supported since API version 22.|253+| int32_t | Result code.<br> Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) if the operation is successful.<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) if a parameter error occurs.<br> Returns [ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE](capi-native-type-h.md#arkui_errorcode) if the operation is not supported for the node created in ArkTS.<br> Returns [ARKUI_ERROR_CODE_NODE_IS_ADOPTED](capi-native-type-h.md#arkui_errorcode) if the node has been adopted as an affiliated node. This specification is supported since API version 22.|
240 254 
241### setAttribute()255### setAttribute()
242 256 
@@ -247,7 +261,9 @@ int32_t (*setAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute
247**Description**261**Description**
248 262 
249 263 
250-Sets an attribute.264+Sets attributes. You are advised to call this API in the main thread.
265+ 
266+**Since**: 12
251 267 
252**Parameters**268**Parameters**
253 269 
@@ -261,7 +277,7 @@ Sets an attribute.
261 277 
262| Type| Description|278| Type| Description|
263| -- | -- |279| -- | -- |
264-| int32_t | Result code.<br> Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) if the operation is successful.<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) if a parameter error occurs.<br> Returns [ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED](capi-native-type-h.md#arkui_errorcode) if the dynamic implementation library of the native API is not found.<br> Returns [ARKUI_ERROR_CODE_NOT_SUPPORTED_FOR_ARKTS_NODE](capi-native-type-h.md#arkui_errorcode) if the following unsupported operations are performed on BuilderNode generated nodes: setting or resetting attributes, setting events, or adding or modifying child nodes.<br> Returns **ERROR_CODE_NATIVE_IMPL_NODE_ADAPTER_EXIST** if the NodeAdapter already exists.|280+| int32_t | Result code.<br> Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) if the operation is successful.<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) if a parameter error occurs.<br> Returns [ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED](capi-native-type-h.md#arkui_errorcode) if the attribute is not supported.<br> Returns [ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE](capi-native-type-h.md#arkui_errorcode) if the operation is not supported for the node created in ArkTS.<br> Returns [ERROR_CODE_NATIVE_IMPL_NODE_ADAPTER_EXIST](capi-native-type-h.md#arkui_errorcode) if **NodeAdapter** already exists.|
265 281 
266### getAttribute()282### getAttribute()
267 283 
@@ -274,6 +290,8 @@ const ArkUI_AttributeItem* (*getAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttr
274 290 
275Obtains attributes. The pointer returned by this API is an internal buffer pointer of the ArkUI framework. As such, you do not need to call **delete** to free the memory. However, the pointer must be used before this API is called next time. Otherwise, the pointer may be overwritten by other values.291Obtains attributes. The pointer returned by this API is an internal buffer pointer of the ArkUI framework. As such, you do not need to call **delete** to free the memory. However, the pointer must be used before this API is called next time. Otherwise, the pointer may be overwritten by other values.
276 292 
293+**Since**: 12
294+ 
277**Parameters**295**Parameters**
278 296 
279| Name | Description|297| Name | Description|
@@ -285,7 +303,7 @@ Obtains attributes. The pointer returned by this API is an internal buffer point
285 303 
286| Type| Description|304| Type| Description|
287| -- | -- |305| -- | -- |
288-| const ArkUI_AttributeItem* | Attribute value. If the operation fails, a null pointer is returned.|306+| const [ArkUI_AttributeItem](capi-arkui-nativemodule-arkui-attributeitem.md)* | Attribute value. If the operation fails, a null pointer is returned.|
289 307 
290### resetAttribute()308### resetAttribute()
291 309 
@@ -296,7 +314,9 @@ int32_t (*resetAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribu
296**Description**314**Description**
297 315 
298 316 
299-Resets an attribute.317+Resets attributes. You are advised to call this API in the main thread.
318+ 
319+**Since**: 12
300 320 
301**Parameters**321**Parameters**
302 322 
@@ -309,7 +329,7 @@ Resets an attribute.
309 329 
310| Type| Description|330| Type| Description|
311| -- | -- |331| -- | -- |
312-| int32_t | Result code.<br> Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) if the operation is successful.<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) if a parameter error occurs.<br> Returns [ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED](capi-native-type-h.md#arkui_errorcode) if the dynamic implementation library of the native API is not found.<br> Returns [ARKUI_ERROR_CODE_NOT_SUPPORTED_FOR_ARKTS_NODE](capi-native-type-h.md#arkui_errorcode) if the following unsupported operations are performed on BuilderNode generated nodes: setting or resetting attributes, setting events, or adding or modifying child nodes.|332+| int32_t | Result code.<br> Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) if the operation is successful.<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) if a parameter error occurs.<br> Returns [ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED](capi-native-type-h.md#arkui_errorcode) if the attribute is not supported.<br> Returns [ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE](capi-native-type-h.md#arkui_errorcode) if the operation is not supported for the node created in ArkTS.|
313 333 
314### registerNodeEvent()334### registerNodeEvent()
315 335 
@@ -322,6 +342,8 @@ int32_t (*registerNodeEvent)(ArkUI_NodeHandle node, ArkUI_NodeEventType eventTyp
322 342 
323Registers an event for the specified node.343Registers an event for the specified node.
324 344 
345+**Since**: 12
346+ 
325**Parameters**347**Parameters**
326 348 
327| Name | Description |349| Name | Description |
@@ -335,7 +357,7 @@ Registers an event for the specified node.
335 357 
336| Type| Description|358| Type| Description|
337| -- | -- |359| -- | -- |
338-| int32_t | Result code.<br> Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) if the operation is successful.<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) if a parameter error occurs.<br> Returns [ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED](capi-native-type-h.md#arkui_errorcode) if the dynamic implementation library of the native API is not found.<br> Returns [ARKUI_ERROR_CODE_NOT_SUPPORTED_FOR_ARKTS_NODE](capi-native-type-h.md#arkui_errorcode) if the following unsupported operations are performed on BuilderNode generated nodes: setting or resetting attributes, setting events, or adding or modifying child nodes.|360+| int32_t | Result code.<br> Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) if the operation is successful.<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) if a parameter error occurs.<br> Returns [ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED](capi-native-type-h.md#arkui_errorcode) if the event is not supported.<br> Returns [ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE](capi-native-type-h.md#arkui_errorcode) if the operation is not supported for the node created in ArkTS.|
339 361 
340### unregisterNodeEvent()362### unregisterNodeEvent()
341 363 
@@ -348,6 +370,8 @@ void (*unregisterNodeEvent)(ArkUI_NodeHandle node, ArkUI_NodeEventType eventType
348 370 
349Unregisters an event for the specified node.371Unregisters an event for the specified node.
350 372 
373+**Since**: 12
374+ 
351**Parameters**375**Parameters**
352 376 
353| Name | Description |377| Name | Description |
@@ -364,11 +388,15 @@ void (*registerNodeEventReceiver)(void (*eventReceiver)(ArkUI_NodeEvent* event))
364**Description**388**Description**
365 389 
366 390 
367-Registers a unified entry point for event callbacks. The ArkUI framework collects component events generated during processing and returns them through the registered **eventReceiver** API.<br> Repeated calls will override the previously registered API. Avoid directly saving pointers to **ArkUI_NodeEvent** objects, as the data will be destroyed after the callback is complete.<br> To bind with a component instance, you can use the **addNodeEventReceiver** function.<br>391+Registers a unified entry point for event callbacks. The ArkUI framework collects component events generated during processing and returns them through the registered **eventReceiver** API.<br> Repeated calls will override the previously registered API. Do not directly save the pointer to the [ArkUI_NodeEvent](capi-arkui-nativemodule-arkui-nodeevent.md) object. The data will be destroyed after the callback is complete.<br> To bind with a component instance, you can use the [addNodeEventReceiver](#addnodeeventreceiver) API.<br>
392+ 
393+**Since**: 12
394+ 
395+**Parameters**
368 396 
369| Name| Description|397| Name| Description|
370|-----|----|398|-----|----|
371-| eventReceiver | Unified entry point for event callbacks to register. |399+| void (*eventReceiver)([ArkUI_NodeEvent](capi-arkui-nativemodule-arkui-nodeevent.md)\* event) | Unified entry point for event callbacks to register. |
372 400 
373### unregisterNodeEventReceiver()401### unregisterNodeEventReceiver()
374 402 
@@ -381,6 +409,8 @@ void (*unregisterNodeEventReceiver)()
381 409 
382Unregisters the unified entry point for event callbacks.410Unregisters the unified entry point for event callbacks.
383 411 
412+**Since**: 12
413+ 
384### markDirty()414### markDirty()
385 415 
386```c416```c
@@ -390,14 +420,16 @@ void (*markDirty)(ArkUI_NodeHandle node, ArkUI_NodeDirtyFlag dirtyFlag)
390**Description**420**Description**
391 421 
392 422 
393-Forces a node to be marked for re-measurement, layout, or drawing. Regarding updates to system attributes, the ArkUI framework automatically marks dirty areas and re-executes measurement, layout, or drawing; you do not need to call this API actively.423+Forcibly marks the current node for re-measurement, re-layout, or re-drawing. Regarding updates to system attributes, the ArkUI framework automatically marks nodes and re-executes measurement, layout, or drawing; you do not need to call this API actively.
424+ 
425+**Since**: 12
394 426 
395**Parameters**427**Parameters**
396 428 
397| Name | Description |429| Name | Description |
398|----------------------------------------------------------------------------|--------------|430|----------------------------------------------------------------------------|--------------|
399-| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | Node for which you want to mark as dirty area.|431+| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | Node object that needs to be marked for re-measurement, re-layout, or re-drawing.|
400-| [ArkUI_NodeDirtyFlag](capi-native-node-h.md#arkui_nodedirtyflag) dirtyFlag | Dirty area type. |432+| [ArkUI_NodeDirtyFlag](capi-native-node-h.md#arkui_nodedirtyflag) dirtyFlag | Type for re-measurement, re-layout, or re-drawing. |
401 433 
402### getTotalChildCount()434### getTotalChildCount()
403 435 
@@ -410,6 +442,8 @@ uint32_t (*getTotalChildCount)(ArkUI_NodeHandle node)
410 442 
411Obtains the number of child nodes.443Obtains the number of child nodes.
412 444 
445+**Since**: 12
446+ 
413**Parameters**447**Parameters**
414 448 
415| Name| Description|449| Name| Description|
@@ -433,6 +467,8 @@ ArkUI_NodeHandle (*getChildAt)(ArkUI_NodeHandle node, int32_t position)
433 467 
434Obtains a child node.468Obtains a child node.
435 469 
470+**Since**: 12
471+ 
436**Parameters**472**Parameters**
437 473 
438| Name| Description|474| Name| Description|
@@ -457,6 +493,8 @@ ArkUI_NodeHandle (*getFirstChild)(ArkUI_NodeHandle node)
457 493 
458Obtains the first child node.494Obtains the first child node.
459 495 
496+**Since**: 12
497+ 
460**Parameters**498**Parameters**
461 499 
462| Name| Description|500| Name| Description|
@@ -480,6 +518,8 @@ ArkUI_NodeHandle (*getLastChild)(ArkUI_NodeHandle node)
480 518 
481Obtains the last child node.519Obtains the last child node.
482 520 
521+**Since**: 12
522+ 
483**Parameters**523**Parameters**
484 524 
485| Name| Description|525| Name| Description|
@@ -503,6 +543,8 @@ ArkUI_NodeHandle (*getPreviousSibling)(ArkUI_NodeHandle node)
503 543 
504Obtains the previous sibling node.544Obtains the previous sibling node.
505 545 
546+**Since**: 12
547+ 
506**Parameters**548**Parameters**
507 549 
508| Name| Description|550| Name| Description|
@@ -526,6 +568,8 @@ ArkUI_NodeHandle (*getNextSibling)(ArkUI_NodeHandle node)
526 568 
527Obtains the next sibling node.569Obtains the next sibling node.
528 570 
571+**Since**: 12
572+ 
529**Parameters**573**Parameters**
530 574 
531| Name| Description|575| Name| Description|
@@ -547,7 +591,9 @@ int32_t (*registerNodeCustomEvent)(ArkUI_NodeHandle node, ArkUI_NodeCustomEventT
547**Description**591**Description**
548 592 
549 593 
550-Registers a custom event for a node. When the event is triggered, the value is returned through the entry point function registered by **registerNodeCustomEventReceiver**.594+Registers a custom event for a node. Triggered events are returned through the custom event entry point function registered using **registerNodeCustomEventReceiver**.
595+ 
596+**Since**: 12
551 597 
552**Parameters**598**Parameters**
553 599 
@@ -562,7 +608,7 @@ Registers a custom event for a node. When the event is triggered, the value is r
562 608 
563| Type| Description|609| Type| Description|
564| -- | -- |610| -- | -- |
565-| int32_t | Result code.<br> Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) if the operation is successful.<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) if a parameter error occurs.<br> Returns [ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED](capi-native-type-h.md#arkui_errorcode) if the dynamic implementation library of the native API is not found.|611+| int32_t | Result code.<br> Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) if the operation is successful.<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) if a parameter error occurs.<br> Returns [ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED](capi-native-type-h.md#arkui_errorcode) if the event is not supported.|
566 612 
567### unregisterNodeCustomEvent()613### unregisterNodeCustomEvent()
568 614 
@@ -575,6 +621,8 @@ void (*unregisterNodeCustomEvent)(ArkUI_NodeHandle node, ArkUI_NodeCustomEventTy
575 621 
576Unregisters a custom event for a node.622Unregisters a custom event for a node.
577 623 
624+**Since**: 12
625+ 
578**Parameters**626**Parameters**
579 627 
580| Name | Description |628| Name | Description |
@@ -591,11 +639,15 @@ void (*registerNodeCustomEventReceiver)(void (*eventReceiver)(ArkUI_NodeCustomEv
591**Description**639**Description**
592 640 
593 641 
594-Registers a unified entry point for custom node event callbacks. The ArkUI framework collects custom component events generated during processing and returns them through the custom event entry point function registered using **registerNodeCustomEventReceiver**.<br> Repeated calls will override the previously registered API.<br> Do not directly save the **ArkUI_NodeCustomEvent** object pointer. The data will be destroyed after the callback is complete.<br> To bind with a component instance, you can use the **addNodeCustomEventReceiver** function.<br>642+Registers a unified entry point for custom node event callbacks. The ArkUI framework collects custom component events generated during processing and returns them through the custom event entry point function registered using **registerNodeCustomEventReceiver**.<br> Repeated calls will override the previously registered API.<br> Do not directly save the pointer to the [ArkUI_NodeCustomEvent](capi-arkui-nativemodule-arkui-nodecustomevent.md) object. The data will be destroyed after the callback is complete.<br> To bind with a component instance, you can use the **addNodeCustomEventReceiver** function.<br>
643+ 
644+**Since**: 12
645+ 
646+**Parameters**
595 647 
596| Name| Description|648| Name| Description|
597|-----|----|649|-----|----|
598-| eventReceiver | Unified entry point for event callbacks to register. |650+| void (*eventReceiver)([ArkUI_NodeCustomEvent](capi-arkui-nativemodule-arkui-nodecustomevent.md)\* event) | Unified entry point for event callbacks to register. |
599 651 
600### unregisterNodeCustomEventReceiver()652### unregisterNodeCustomEventReceiver()
601 653 
@@ -608,6 +660,8 @@ void (*unregisterNodeCustomEventReceiver)()
608 660 
609Unregisters the unified entry point function for custom node event callbacks.661Unregisters the unified entry point function for custom node event callbacks.
610 662 
663+**Since**: 12
664+ 
611### setMeasuredSize()665### setMeasuredSize()
612 666 
613```c667```c
@@ -619,6 +673,8 @@ int32_t (*setMeasuredSize)(ArkUI_NodeHandle node, int32_t width, int32_t height)
619 673 
620Sets the width and height for a component after the measurement in the measurement callback function.674Sets the width and height for a component after the measurement in the measurement callback function.
621 675 
676+**Since**: 12
677+ 
622**Parameters**678**Parameters**
623 679 
624| Name| Description|680| Name| Description|
@@ -642,7 +698,9 @@ int32_t (*setLayoutPosition)(ArkUI_NodeHandle node, int32_t positionX, int32_t p
642**Description**698**Description**
643 699 
644 700 
645-Sets the position of a component in the layout callback function. The priority of this API is lower than that of **NODE_POSITION**.701+Sets the position of a component in the layout callback function. This API has a lower priority than [NODE_POSITION](capi-native-type-h.md#enums).
702+ 
703+**Since**: 12
646 704 
647**Parameters**705**Parameters**
648 706 
@@ -669,6 +727,8 @@ ArkUI_IntSize (*getMeasuredSize)(ArkUI_NodeHandle node)
669 727 
670Obtains the width and height of a component after measurement.728Obtains the width and height of a component after measurement.
671 729 
730+**Since**: 12
731+ 
672**Parameters**732**Parameters**
673 733 
674| Name| Description|734| Name| Description|
@@ -692,6 +752,8 @@ ArkUI_IntOffset (*getLayoutPosition)(ArkUI_NodeHandle node)
692 752 
693Obtains the position of a component after the layout is complete.753Obtains the position of a component after the layout is complete.
694 754 
755+**Since**: 12
756+ 
695**Parameters**757**Parameters**
696 758 
697| Name| Description|759| Name| Description|
@@ -715,6 +777,8 @@ int32_t (*measureNode)(ArkUI_NodeHandle node, ArkUI_LayoutConstraint* Constraint
715 777 
716Measures a node. You can use the **getMeasuredSize** API to obtain the size after the measurement.778Measures a node. You can use the **getMeasuredSize** API to obtain the size after the measurement.
717 779 
780+**Since**: 12
781+ 
718**Parameters**782**Parameters**
719 783 
720| Name | Description|784| Name | Description|
@@ -737,7 +801,9 @@ int32_t (*layoutNode)(ArkUI_NodeHandle node, int32_t positionX, int32_t position
737**Description**801**Description**
738 802 
739 803 
740-Lays outs a component and specifies the expected position of the component relative to its parent component.804+Lays outs a node and specifies the expected position of the node relative to its parent node.
805+ 
806+**Since**: 12
741 807 
742**Parameters**808**Parameters**
743 809 
@@ -762,14 +828,16 @@ int32_t (*addNodeEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(Ark
762**Description**828**Description**
763 829 
764 830 
765-Adds a component event callback function to a component to receive component events generated by it. Unlike the global registration function **registerNodeEventReceiver**, this API allows multiple event receivers to be added to the same component.<br> The callback added by this function is triggered before the global callback registered by **registerNodeEventReceiver**.<br> Avoid directly saving pointers to **ArkUI_NodeEvent** objects, as the data will be destroyed after the callback is complete.<br>831+Adds a component event callback function to a component to receive component events generated by it. Unlike the global registration function **registerNodeEventReceiver**, this API allows multiple event receivers to be added to the same component.<br> The callback added by this function is triggered before the global callback registered by **registerNodeEventReceiver**.<br> Do not directly save the pointer to the [ArkUI_NodeEvent](capi-arkui-nativemodule-arkui-nodeevent.md) object. The data will be destroyed after the callback is complete.<br>
832+ 
833+**Since**: 12
766 834 
767**Parameters**835**Parameters**
768 836 
769| Name | Description|837| Name | Description|
770|------------------------------------------------------------------| -- |838|------------------------------------------------------------------| -- |
771| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | Component for which you want to add the event callback function.|839| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | Component for which you want to add the event callback function.|
772-| eventReceiver | Event callback for the component.|840+| void (*eventReceiver)([ArkUI_NodeEvent](capi-arkui-nativemodule-arkui-nodeevent.md)\* event) | Event callback for the component.|
773 841 
774**Return value**842**Return value**
775 843 
@@ -788,12 +856,14 @@ int32_t (*removeNodeEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(
788 856 
789Removes a registered component event callback function from a component.857Removes a registered component event callback function from a component.
790 858 
859+**Since**: 12
860+ 
791**Parameters**861**Parameters**
792 862 
793| Name | Description|863| Name | Description|
794|------------------------------------------------------------------| -- |864|------------------------------------------------------------------| -- |
795| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | Component for which you want to remove the event callback function.|865| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | Component for which you want to remove the event callback function.|
796-| eventReceiver | Component event callback function to remove.|866+| void (*eventReceiver)([ArkUI_NodeEvent](capi-arkui-nativemodule-arkui-nodeevent.md)* event) | Component event callback function to remove.|
797 867 
798**Return value**868**Return value**
799 869 
@@ -810,14 +880,16 @@ int32_t (*addNodeCustomEventReceiver)(ArkUI_NodeHandle node, void (*eventReceive
810**Description**880**Description**
811 881 
812 882 
813-Adds a custom event callback function to a component to receive custom events (such as layout and drawing events) generated by it. Unlike the global registration function **registerNodeCustomEventReceiver**, this API allows multiple event receivers to be added to the same component.<br> The callback added by this function is triggered before the global callback registered by **registerNodeCustomEventReceiver**.<br> Do not directly save the **ArkUI_NodeCustomEvent** object pointer. The data will be destroyed after the callback is complete.<br>883+Adds a custom event callback function to a component to receive custom events (such as layout and drawing events) generated by it. Unlike the global registration function **registerNodeCustomEventReceiver**, this API allows multiple event receivers to be added to the same component.<br> The callback added by this function is triggered before the global callback registered by **registerNodeCustomEventReceiver**.<br> Do not directly save the pointer to the [ArkUI_NodeCustomEvent](capi-arkui-nativemodule-arkui-nodecustomevent.md) object. The data will be destroyed after the callback is complete.<br>
884+ 
885+**Since**: 12
814 886 
815**Parameters**887**Parameters**
816 888 
817| Name | Description|889| Name | Description|
818|------------------------------------------------------------------| -- |890|------------------------------------------------------------------| -- |
819| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | Component for which you want to add the custom event callback function.|891| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | Component for which you want to add the custom event callback function.|
820-| eventReceiver | Custom event callback for the component.|892+| void (*eventReceiver)([ArkUI_NodeCustomEvent](capi-arkui-nativemodule-arkui-nodecustomevent.md)\* event) | Custom event callback for the component.|
821 893 
822**Return value**894**Return value**
823 895 
@@ -836,12 +908,14 @@ int32_t (*removeNodeCustomEventReceiver)(ArkUI_NodeHandle node, void (*eventRece
836 908 
837Removes a registered custom event callback function from a component.909Removes a registered custom event callback function from a component.
838 910 
911+**Since**: 12
912+ 
839**Parameters**913**Parameters**
840 914 
841| Name | Description|915| Name | Description|
842|------------------------------------------------------------------| -- |916|------------------------------------------------------------------| -- |
843| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | Component for which you want to remove the custom event callback function.|917| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | Component for which you want to remove the custom event callback function.|
844-| eventReceiver | Custom event callback function to remove.|918+| void (*eventReceiver)([ArkUI_NodeCustomEvent](capi-arkui-nativemodule-arkui-nodecustomevent.md)\* event) | Custom event callback function to remove.|
845 919 
846**Return value**920**Return value**
847 921 
@@ -860,6 +934,8 @@ int32_t (*setUserData)(ArkUI_NodeHandle node, void* userData)
860 934 
861Saves custom data on a component.935Saves custom data on a component.
862 936 
937+**Since**: 12
938+ 
863**Parameters**939**Parameters**
864 940 
865| Name| Description|941| Name| Description|
@@ -884,6 +960,8 @@ void* (*getUserData)(ArkUI_NodeHandle node)
884 960 
885Obtains the custom data stored on a component.961Obtains the custom data stored on a component.
886 962 
963+**Since**: 12
964+ 
887**Parameters**965**Parameters**
888 966 
889| Name| Description|967| Name| Description|
@@ -907,6 +985,8 @@ int32_t (*setLengthMetricUnit)(ArkUI_NodeHandle node, ArkUI_LengthMetricUnit uni
907 985 
908Sets the unit of measurement for a component.986Sets the unit of measurement for a component.
909 987 
988+**Since**: 12
989+ 
910**Parameters**990**Parameters**
911 991 
912| Name | Description|992| Name | Description|
@@ -931,6 +1011,8 @@ ArkUI_NodeHandle (*getParent)(ArkUI_NodeHandle node)
931 1011 
932Obtains the parent node.1012Obtains the parent node.
933 1013 
1014+**Since**: 12
1015+ 
934**Parameters**1016**Parameters**
935 1017 
936| Name| Description|1018| Name| Description|
@@ -40,6 +40,7 @@ Declares the APIs of **NativeDrawableDescriptor**.
40| Name | typedef Keyword | Description |40| Name | typedef Keyword | Description |
41|---------------------------------------------------------------------|---------------------------------|-----------------------------------|41|---------------------------------------------------------------------|---------------------------------|-----------------------------------|
42| [DrawableDescriptor_AnimationStatus](#drawabledescriptor_animationstatus) | DrawableDescriptor_AnimationStatus | Enumerates the playback states of DrawableDescriptor animations. |42| [DrawableDescriptor_AnimationStatus](#drawabledescriptor_animationstatus) | DrawableDescriptor_AnimationStatus | Enumerates the playback states of DrawableDescriptor animations. |
43+| [DrawableDescriptor_AnimationStopMode](#drawabledescriptor_animationstopmode) | DrawableDescriptor_AnimationStopMode | Enumerates the stop modes of [DrawableDescriptor](capi-arkui-nativemodule-arkui-drawabledescriptor.md) animations.<br>**Since**: 24|
43 44 
44### Functions45### Functions
45 46 
@@ -60,6 +61,8 @@ Declares the APIs of **NativeDrawableDescriptor**.
60| [int32_t OH_ArkUI_DrawableDescriptor_GetAnimationFrameDurations(ArkUI_DrawableDescriptor* drawableDescriptor, uint32_t* durations, size_t* size)](#oh_arkui_drawabledescriptor_getanimationframedurations) | Obtains the duration of each frame in a DrawableDescriptor animation.|61| [int32_t OH_ArkUI_DrawableDescriptor_GetAnimationFrameDurations(ArkUI_DrawableDescriptor* drawableDescriptor, uint32_t* durations, size_t* size)](#oh_arkui_drawabledescriptor_getanimationframedurations) | Obtains the duration of each frame in a DrawableDescriptor animation.|
61| [int32_t OH_ArkUI_DrawableDescriptor_SetAnimationAutoPlay(ArkUI_DrawableDescriptor* drawableDescriptor, uint32_t autoPlay)](#oh_arkui_drawabledescriptor_setanimationautoplay) | Specifies whether to enable autoplay for a DrawableDescriptor animation.|62| [int32_t OH_ArkUI_DrawableDescriptor_SetAnimationAutoPlay(ArkUI_DrawableDescriptor* drawableDescriptor, uint32_t autoPlay)](#oh_arkui_drawabledescriptor_setanimationautoplay) | Specifies whether to enable autoplay for a DrawableDescriptor animation.|
62| [int32_t OH_ArkUI_DrawableDescriptor_GetAnimationAutoPlay(ArkUI_DrawableDescriptor* drawableDescriptor, uint32_t* autoPlay)](#oh_arkui_drawabledescriptor_getanimationautoplay) | Checks whether autoplay is enabled for a DrawableDescriptor animation.|63| [int32_t OH_ArkUI_DrawableDescriptor_GetAnimationAutoPlay(ArkUI_DrawableDescriptor* drawableDescriptor, uint32_t* autoPlay)](#oh_arkui_drawabledescriptor_getanimationautoplay) | Checks whether autoplay is enabled for a DrawableDescriptor animation.|
64+| [int32_t OH_ArkUI_DrawableDescriptor_SetAnimationStopMode(ArkUI_DrawableDescriptor* drawableDescriptor, DrawableDescriptor_AnimationStopMode mode)](#oh_arkui_drawabledescriptor_setanimationstopmode) | Sets the stop mode for an animation.|
65+| [int32_t OH_ArkUI_DrawableDescriptor_GetAnimationStopMode(ArkUI_DrawableDescriptor* drawableDescriptor, DrawableDescriptor_AnimationStopMode* mode)](#oh_arkui_drawabledescriptor_getanimationstopmode) | Obtains the stop mode of an animation.|
63| [int32_t OH_ArkUI_DrawableDescriptor_CreateAnimationController(ArkUI_DrawableDescriptor* drawableDescriptor, ArkUI_NodeHandle node, ArkUI_DrawableDescriptor_AnimationController\*\* controller)](#oh_arkui_drawabledescriptor_createanimationcontroller) | Creates an animation controller for the DrawableDescriptor.|66| [int32_t OH_ArkUI_DrawableDescriptor_CreateAnimationController(ArkUI_DrawableDescriptor* drawableDescriptor, ArkUI_NodeHandle node, ArkUI_DrawableDescriptor_AnimationController\*\* controller)](#oh_arkui_drawabledescriptor_createanimationcontroller) | Creates an animation controller for the DrawableDescriptor.|
64| [void OH_ArkUI_DrawableDescriptor_DisposeAnimationController( ArkUI_DrawableDescriptor_AnimationController* controller)](#oh_arkui_drawabledescriptor_disposeanimationcontroller) | Disposes of the DrawableDescriptor animation controller.|67| [void OH_ArkUI_DrawableDescriptor_DisposeAnimationController( ArkUI_DrawableDescriptor_AnimationController* controller)](#oh_arkui_drawabledescriptor_disposeanimationcontroller) | Disposes of the DrawableDescriptor animation controller.|
65| [int32_t OH_ArkUI_DrawableDescriptor_StartAnimation(ArkUI_DrawableDescriptor_AnimationController* controller)](#oh_arkui_drawabledescriptor_startanimation) | Starts the DrawableDescriptor animation from the first frame.|68| [int32_t OH_ArkUI_DrawableDescriptor_StartAnimation(ArkUI_DrawableDescriptor_AnimationController* controller)](#oh_arkui_drawabledescriptor_startanimation) | Starts the DrawableDescriptor animation from the first frame.|
@@ -90,6 +93,23 @@ Enumerates the playback states of DrawableDescriptor animations.
90| DRAWABLE_DESCRIPTOR_ANIMATION_STATUS_PAUSED = 2 | The animation is paused.|93| DRAWABLE_DESCRIPTOR_ANIMATION_STATUS_PAUSED = 2 | The animation is paused.|
91| DRAWABLE_DESCRIPTOR_ANIMATION_STATUS_STOPPED = 3 | The animation is stopped.|94| DRAWABLE_DESCRIPTOR_ANIMATION_STATUS_STOPPED = 3 | The animation is stopped.|
92 95 
96+### DrawableDescriptor_AnimationStopMode
97+ 
98+```c
99+enum DrawableDescriptor_AnimationStopMode
100+```
101+ 
102+**Description**
103+ 
104+Enumerates the stop modes of [DrawableDescriptor](capi-arkui-nativemodule-arkui-drawabledescriptor.md) animations.
105+ 
106+**Since**: 24
107+ 
108+| Value| Description|
109+| -- | -- |
110+| DRAWABLE_DESCRIPTOR_ANIMATION_FIRST_FRAME = 0 | The animation returns to the first frame when it stops.|
111+| DRAWABLE_DESCRIPTOR_ANIMATION_LAST_FRAME = 1 | The animation stays at the last frame when it stops.|
112+ 
93## Function Description113## Function Description
94 114 
95### OH_ArkUI_DrawableDescriptor_CreateFromPixelMap()115### OH_ArkUI_DrawableDescriptor_CreateFromPixelMap()
@@ -101,7 +121,7 @@ ArkUI_DrawableDescriptor* OH_ArkUI_DrawableDescriptor_CreateFromPixelMap(OH_Pixe
101**Description**121**Description**
102 122 
103 123 
104-Creates a **DrawableDescriptor** object using [PixelMap](../apis-image-kit/arkts-apis-image-PixelMap.md).124+Creates a **DrawableDescriptor** object from a **PixelMap** object.
105 125 
106**Since**: 12126**Since**: 12
107 127 
@@ -110,7 +130,7 @@ Creates a **DrawableDescriptor** object using [PixelMap](../apis-image-kit/arkts
110 130 
111| Name| Description|131| Name| Description|
112| -- | -- |132| -- | -- |
113-| [OH_PixelmapNativeHandle](capi-arkui-nativemodule-oh-pixelmapnative8h.md) pixelMap | Pointer to a **PixelMap** object.|133+| [OH_PixelmapNativeHandle](capi-arkui-nativemodule-oh-pixelmapnative8h.md) pixelMap | Pointer to the [OH_PixelmapNative](./capi-struct.md) object.|
114 134 
115**Return value**135**Return value**
116 136 
@@ -189,7 +209,7 @@ Obtains the pointer to a **PixelMap** object.
189 209 
190| Type| Description|210| Type| Description|
191| -- | -- |211| -- | -- |
192-| [OH_PixelmapNativeHandle](capi-arkui-nativemodule-oh-pixelmapnative8h.md) | Pointer to a **PixelMap** object.|212+| [OH_PixelmapNativeHandle](capi-arkui-nativemodule-oh-pixelmapnative8h.md) | Pointer to the [OH_PixelmapNative](./capi-struct.md) object.|
193 213 
194### OH_ArkUI_DrawableDescriptor_GetAnimatedPixelMapArray()214### OH_ArkUI_DrawableDescriptor_GetAnimatedPixelMapArray()
195 215 
@@ -262,7 +282,7 @@ Sets the total playback duration for an array of **PixelMap** objects.
262| Name| Description|282| Name| Description|
263| -- | -- |283| -- | -- |
264| [ArkUI_DrawableDescriptor](capi-arkui-nativemodule-arkui-drawabledescriptor.md)* drawableDescriptor | Pointer to a **DrawableDescriptor** object.|284| [ArkUI_DrawableDescriptor](capi-arkui-nativemodule-arkui-drawabledescriptor.md)* drawableDescriptor | Pointer to a **DrawableDescriptor** object.|
265-| int32_t duration | Total playback duration, in milliseconds.|285+| int32_t duration | Total playback duration, in ms. Value range: [0, +∞). If a negative value is passed in, **0** is used.|
266 286 
267### OH_ArkUI_DrawableDescriptor_GetAnimationDuration()287### OH_ArkUI_DrawableDescriptor_GetAnimationDuration()
268 288 
@@ -288,7 +308,7 @@ Obtains the total playback duration for an array of **PixelMap** objects.
288 308 
289| Type| Description|309| Type| Description|
290| -- | -- |310| -- | -- |
291-| int32_t | Total playback duration, in milliseconds.|311+| int32_t | Total playback duration, in ms.|
292 312 
293### OH_ArkUI_DrawableDescriptor_SetAnimationIteration()313### OH_ArkUI_DrawableDescriptor_SetAnimationIteration()
294 314 
@@ -309,7 +329,7 @@ Sets the number of times that an array of **PixelMap** objects is played.
309| Name| Description|329| Name| Description|
310| -- | -- |330| -- | -- |
311| [ArkUI_DrawableDescriptor](capi-arkui-nativemodule-arkui-drawabledescriptor.md)* drawableDescriptor | Pointer to a **DrawableDescriptor** object.|331| [ArkUI_DrawableDescriptor](capi-arkui-nativemodule-arkui-drawabledescriptor.md)* drawableDescriptor | Pointer to a **DrawableDescriptor** object.|
312-| int32_t iteration | Number of playback times.|332+| int32_t iteration | Number of playback times. Value range: [0, +∞). The value **0** indicates infinite playback. If a negative value is passed in, **0** is used.|
313 333 
314### OH_ArkUI_DrawableDescriptor_GetAnimationIteration()334### OH_ArkUI_DrawableDescriptor_GetAnimationIteration()
315 335 
@@ -354,7 +374,7 @@ Sets the duration for each frame in a DrawableDescriptor animation.
354| Name| Description|374| Name| Description|
355| -- | -- |375| -- | -- |
356| [ArkUI_DrawableDescriptor](capi-arkui-nativemodule-arkui-drawabledescriptor.md)* drawableDescriptor | Pointer to a **DrawableDescriptor** object.|376| [ArkUI_DrawableDescriptor](capi-arkui-nativemodule-arkui-drawabledescriptor.md)* drawableDescriptor | Pointer to a **DrawableDescriptor** object.|
357-| uint32_t* durations | Duration for each frame in the DrawableDescriptor animation, in milliseconds.<br>If this parameter is not set, the playback follows the total duration. The setting of this parameter takes precedence over that of **duration**. If both [duration](js-apis-animator.md#duration18) and **frameDurations** are set, **duration** does not take effect.<br>The array size must match the number of frames in the PixelMap image array.<br>Valid range for each frame's playback duration: [0, +∞).|377+| uint32_t* durations | Array of the playback durations for each frame in the animation, in ms.<br>If this parameter is not set, the playback follows the total duration. This parameter takes precedence over [OH_ArkUI_DrawableDescriptor_SetAnimationDuration](#oh_arkui_drawabledescriptor_setanimationduration). That is, if both **OH_ArkUI_DrawableDescriptor_SetAnimationDuration** and **OH_ArkUI_DrawableDescriptor_SetAnimationFrameDurations** are set, **OH_ArkUI_DrawableDescriptor_SetAnimationDuration** does not take effect.<br>The array size must match the number of frames in the PixelMap image array.<br>Valid range for each frame's playback duration: [0, +∞). Default value: evenly distributed total duration.|
358| size_t size | Array size.|378| size_t size | Array size.|
359 379 
360**Return value**380**Return value**
@@ -380,7 +400,7 @@ Obtains the duration of each frame in a DrawableDescriptor animation.
380| Name| Description|400| Name| Description|
381| -- | -- |401| -- | -- |
382| [ArkUI_DrawableDescriptor](capi-arkui-nativemodule-arkui-drawabledescriptor.md)* drawableDescriptor | Pointer to a **DrawableDescriptor** object.|402| [ArkUI_DrawableDescriptor](capi-arkui-nativemodule-arkui-drawabledescriptor.md)* drawableDescriptor | Pointer to a **DrawableDescriptor** object.|
383-| uint32_t* durations | Array of the playback durations for each frame in the animation, in milliseconds.|403+| uint32_t* durations | Array of the playback durations for each frame in the animation, in ms.|
384| size_t* size | Array size.|404| size_t* size | Array size.|
385 405 
386**Return value**406**Return value**
@@ -440,6 +460,56 @@ Checks whether autoplay is enabled for a DrawableDescriptor animation.
440| -- | -- |460| -- | -- |
441| int32_t | Result code.<br> Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) if the operation is successful.<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) if a parameter error occurs.|461| int32_t | Result code.<br> Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) if the operation is successful.<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) if a parameter error occurs.|
442 462 
463+### OH_ArkUI_DrawableDescriptor_SetAnimationStopMode()
464+ 
465+```c
466+int32_t OH_ArkUI_DrawableDescriptor_SetAnimationStopMode(ArkUI_DrawableDescriptor* drawableDescriptor, DrawableDescriptor_AnimationStopMode mode)
467+```
468+ 
469+**Description**
470+ 
471+Sets the stop mode for an animation.
472+ 
473+**Since**: 24
474+ 
475+**Parameters**
476+ 
477+| Name| Description|
478+| -- | -- |
479+| [ArkUI_DrawableDescriptor](capi-arkui-nativemodule-arkui-drawabledescriptor.md)* drawableDescriptor | Pointer to the [DrawableDescriptor](capi-arkui-nativemodule-arkui-drawabledescriptor.md) object.|
480+| [DrawableDescriptor_AnimationStopMode](#drawabledescriptor_animationstopmode) mode | Stop mode of an animation.<br>The value is an enumerated value of [DrawableDescriptor_AnimationStopMode](#drawabledescriptor_animationstopmode). The default value is [DRAWABLE_DESCRIPTOR_ANIMATION_FIRST_FRAME](#drawabledescriptor_animationstopmode).|
481+ 
482+**Return value**
483+ 
484+| Type| Description|
485+| -- | -- |
486+| int32_t | Result code.<br> Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) if the operation is successful.<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) if a parameter error occurs.|
487+ 
488+### OH_ArkUI_DrawableDescriptor_GetAnimationStopMode()
489+ 
490+```c
491+int32_t OH_ArkUI_DrawableDescriptor_GetAnimationStopMode(ArkUI_DrawableDescriptor* drawableDescriptor, DrawableDescriptor_AnimationStopMode* mode)
492+```
493+ 
494+**Description**
495+ 
496+Obtains the stop mode of an animation.
497+ 
498+**Since**: 24
499+ 
500+**Parameters**
501+ 
502+| Name| Description|
503+| -- | -- |
504+| [ArkUI_DrawableDescriptor](capi-arkui-nativemodule-arkui-drawabledescriptor.md)* drawableDescriptor | Pointer to the [DrawableDescriptor](capi-arkui-nativemodule-arkui-drawabledescriptor.md) object.|
505+| [DrawableDescriptor_AnimationStopMode](#drawabledescriptor_animationstopmode)* mode | Stop mode of an animation.<br>For details about the values, see [DrawableDescriptor_AnimationStopMode](#drawabledescriptor_animationstopmode).|
506+ 
507+**Return value**
508+ 
509+| Type| Description|
510+| -- | -- |
511+| int32_t | Result code.<br> Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) if the operation is successful.<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) if a parameter error occurs.|
512+ 
443### OH_ArkUI_DrawableDescriptor_CreateAnimationController()513### OH_ArkUI_DrawableDescriptor_CreateAnimationController()
444 514 
445```c515```c
@@ -103,7 +103,7 @@ Enumerates the actions for triggering closure of the dialog box.
103 103 
104| Value| Description|104| Value| Description|
105| -- | -- |105| -- | -- |
106-| DIALOG_DISMISS_BACK_PRESS = 0 | Touching the system-defined Back button or pressing the Esc key.|106+| DIALOG_DISMISS_BACK_PRESS = 0 | Touching the Back button, swiping left or right on the screen, or pressing the Esc key.|
107| DIALOG_DISMISS_TOUCH_OUTSIDE = 1 | Touching the mask.|107| DIALOG_DISMISS_TOUCH_OUTSIDE = 1 | Touching the mask.|
108| DIALOG_DISMISS_CLOSE_BUTTON = 2 | Touching the Close button.|108| DIALOG_DISMISS_CLOSE_BUTTON = 2 | Touching the Close button.|
109| DIALOG_DISMISS_SLIDE_DOWN = 3 | Sliding down.|109| DIALOG_DISMISS_SLIDE_DOWN = 3 | Sliding down.|
@@ -265,7 +265,7 @@ Obtains the dismissal reason from a dialog box dismiss event object.
265 265 
266| Type| Description|266| Type| Description|
267| -- | -- |267| -- | -- |
268-| int32_t | Dismissal reason, or **-1** if an exception occurs.<br> [DIALOG_DISMISS_BACK_PRESS](capi-native-dialog-h.md#arkui_dismissreason): touching the back button, swiping left or right on the screen, or pressing the Esc key.<br> [DIALOG_DISMISS_TOUCH_OUTSIDE](capi-native-dialog-h.md#arkui_dismissreason): touching the mask.<br> [DIALOG_DISMISS_CLOSE_BUTTON](capi-native-dialog-h.md#arkui_dismissreason): touching the close button.<br> [DIALOG_DISMISS_SLIDE_DOWN](capi-native-dialog-h.md#arkui_dismissreason): swiping down.|268+| int32_t | Dismissal reason, or **-1** if an exception occurs.<br> [DIALOG_DISMISS_BACK_PRESS](capi-native-dialog-h.md#arkui_dismissreason): touching the Back button, swiping left or right on the screen, or pressing the Esc key.<br> [DIALOG_DISMISS_TOUCH_OUTSIDE](capi-native-dialog-h.md#arkui_dismissreason): touching the mask.<br> [DIALOG_DISMISS_CLOSE_BUTTON](capi-native-dialog-h.md#arkui_dismissreason): touching the close button.<br> [DIALOG_DISMISS_SLIDE_DOWN](capi-native-dialog-h.md#arkui_dismissreason): swiping down.|
269 269 
270### OH_ArkUI_CustomDialog_OpenDialog()270### OH_ArkUI_CustomDialog_OpenDialog()
271 271 
@@ -286,7 +286,7 @@ Displays a custom dialog box.
286| Name | Description|286| Name | Description|
287|----------------------------------------| -- |287|----------------------------------------| -- |
288| [ArkUI_CustomDialogOptions](capi-arkui-nativemodule-arkui-customdialogoptions.md)* options | Dialog box parameters.|288| [ArkUI_CustomDialogOptions](capi-arkui-nativemodule-arkui-customdialogoptions.md)* options | Dialog box parameters.|
289-| callback | Callback invoked when the dialog box is displayed. The parameter is the dialog box ID.|289+| void (*callback)(int32_t dialogId) | Callback invoked when the dialog box is displayed. The parameter is the dialog box ID.|
290 290 
291**Returns**291**Returns**
292 292 
@@ -313,7 +313,7 @@ Updates a custom dialog box.
313| Name| Description|313| Name| Description|
314| -- | -- |314| -- | -- |
315| [ArkUI_CustomDialogOptions](capi-arkui-nativemodule-arkui-customdialogoptions.md)* options | Dialog box parameters.|315| [ArkUI_CustomDialogOptions](capi-arkui-nativemodule-arkui-customdialogoptions.md)* options | Dialog box parameters.|
316-| callback | Callback invoked when the dialog box is updated. The parameter is the dialog box ID.|316+| void (*callback)(int32_t dialogId) | Callback invoked when the dialog box is updated. The parameter is the dialog box ID.|
317 317 
318**Returns**318**Returns**
319 319 
@@ -356,7 +356,7 @@ ArkUI_CustomDialogOptions* OH_ArkUI_CustomDialog_CreateOptions(ArkUI_NodeHandle
356**Description**356**Description**
357 357 
358 358 
359-Creates options for a custom dialog.359+Creates custom dialog box options.
360 360 
361**Since**: 19361**Since**: 19
362 362 
@@ -371,7 +371,7 @@ Creates options for a custom dialog.
371 371 
372| Type | Description|372| Type | Description|
373|--------------------------------| -- |373|--------------------------------| -- |
374-| [ArkUI_CustomDialogOptions](capi-arkui-nativemodule-arkui-customdialogoptions.md)* | Pointer to the custom dialog box options.|374+| [ArkUI_CustomDialogOptions](capi-arkui-nativemodule-arkui-customdialogoptions.md)* | Pointer to the custom dialog box configuration.|
375 375 
376### OH_ArkUI_CustomDialog_DisposeOptions()376### OH_ArkUI_CustomDialog_DisposeOptions()
377 377 
@@ -382,7 +382,7 @@ void OH_ArkUI_CustomDialog_DisposeOptions(ArkUI_CustomDialogOptions* options)
382**Description**382**Description**
383 383 
384 384 
385-Destroys custom dialog box options.385+Disposes of the custom dialog box options.
386 386 
387**Since**: 19387**Since**: 19
388 388 
@@ -391,7 +391,7 @@ Destroys custom dialog box options.
391 391 
392| Name| Description|392| Name| Description|
393| -- | -- |393| -- | -- |
394-| [ArkUI_CustomDialogOptions](capi-arkui-nativemodule-arkui-customdialogoptions.md)* options | Pointer to the custom dialog box options.|394+| [ArkUI_CustomDialogOptions](capi-arkui-nativemodule-arkui-customdialogoptions.md)* options | Pointer to the custom dialog box configuration.|
395 395 
396### OH_ArkUI_CustomDialog_SetLevelMode()396### OH_ArkUI_CustomDialog_SetLevelMode()
397 397 
@@ -869,7 +869,7 @@ Sets whether to display the dialog box in a subwindow.
869| Name| Description|869| Name| Description|
870| -- | -- |870| -- | -- |
871| [ArkUI_CustomDialogOptions](capi-arkui-nativemodule-arkui-customdialogoptions.md)* options | Dialog box parameters.|871| [ArkUI_CustomDialogOptions](capi-arkui-nativemodule-arkui-customdialogoptions.md)* options | Dialog box parameters.|
872-| bool showInSubwindow | Whether to show the dialog box in a subwindow when the dialog box needs to be displayed outside the main window. The default value is **false**, meaning the dialog box is displayed within the application, not in a separate subwindow. The value **true** means that dialog box can be displayed outside the main window.|872+| bool showInSubwindow | Whether to show the dialog box in a subwindow when the dialog box needs to be displayed outside the main window. If the value is **true**, the dialog box can be displayed in an independent subwindow outside the main window. If the value is **false**, the dialog box is displayed within the application, not in an independent subwindow.<br>Default value: **false**.|
873 873 
874**Returns**874**Returns**
875 875 
@@ -1006,7 +1006,7 @@ Registers a callback for the dismissal event of a custom dialog box.
1006| -- | -- |1006| -- | -- |
1007| [ArkUI_CustomDialogOptions](capi-arkui-nativemodule-arkui-customdialogoptions.md)* options | Dialog box parameters.|1007| [ArkUI_CustomDialogOptions](capi-arkui-nativemodule-arkui-customdialogoptions.md)* options | Dialog box parameters.|
1008| void* userData | Pointer to user data.|1008| void* userData | Pointer to user data.|
1009-| callback | Callback for the dismissal event of the custom dialog box.<br> - **event**: input parameter of the callback, which captures the reason for dismissal.|1009+| void (\*callback)(ArkUI_DialogDismissEvent\* event) | Callback for the dismissal event of the custom dialog box.<br> - **event**: input parameter of the callback, which captures the reason for dismissal.|
1010 1010 
1011**Returns**1011**Returns**
1012 1012 
@@ -1034,7 +1034,7 @@ Registers a callback to be invoked when the specified custom dialog box is about
1034| -- | -- |1034| -- | -- |
1035| [ArkUI_CustomDialogOptions](capi-arkui-nativemodule-arkui-customdialogoptions.md)* options | Dialog box parameters.|1035| [ArkUI_CustomDialogOptions](capi-arkui-nativemodule-arkui-customdialogoptions.md)* options | Dialog box parameters.|
1036| void* userData | Pointer to user data.|1036| void* userData | Pointer to user data.|
1037-| callback | Event callback before the dialog box appearance animation.|1037+| void (\*callback)(void\* userData) | Event callback before the dialog box appearance animation.|
1038 1038 
1039**Returns**1039**Returns**
1040 1040 
@@ -1062,7 +1062,7 @@ Registers a callback to be invoked when the specified custom dialog box appears.
1062| -- | -- |1062| -- | -- |
1063| [ArkUI_CustomDialogOptions](capi-arkui-nativemodule-arkui-customdialogoptions.md)* options | Dialog box parameters.|1063| [ArkUI_CustomDialogOptions](capi-arkui-nativemodule-arkui-customdialogoptions.md)* options | Dialog box parameters.|
1064| void* userData | Pointer to user data.|1064| void* userData | Pointer to user data.|
1065-| callback | Event callback after the dialog box appears.|1065+| void (\*callback)(void\* userData) | Event callback after the dialog box appears.|
1066 1066 
1067**Returns**1067**Returns**
1068 1068 
@@ -1090,7 +1090,7 @@ Registers a callback to be invoked when the specified custom dialog box is about
1090| -- | -- |1090| -- | -- |
1091| [ArkUI_CustomDialogOptions](capi-arkui-nativemodule-arkui-customdialogoptions.md)* options | Dialog box parameters.|1091| [ArkUI_CustomDialogOptions](capi-arkui-nativemodule-arkui-customdialogoptions.md)* options | Dialog box parameters.|
1092| void* userData | Pointer to user data.|1092| void* userData | Pointer to user data.|
1093-| callback | Event callback before the dialog box disappearance animation.|1093+| void (\*callback)(void\* userData) | Event callback before the dialog box disappearance animation.|
1094 1094 
1095**Returns**1095**Returns**
1096 1096 
@@ -1118,7 +1118,7 @@ Registers a callback to be invoked when the specified custom dialog box disappea
1118| -- | -- |1118| -- | -- |
1119| [ArkUI_CustomDialogOptions](capi-arkui-nativemodule-arkui-customdialogoptions.md)* options | Dialog box parameters.|1119| [ArkUI_CustomDialogOptions](capi-arkui-nativemodule-arkui-customdialogoptions.md)* options | Dialog box parameters.|
1120| void* userData | Pointer to user data.|1120| void* userData | Pointer to user data.|
1121-| callback | Event callback when the dialog box disappears.|1121+| void (\*callback)(void\* userData) | Event callback when the dialog box disappears.|
1122 1122 
1123**Returns**1123**Returns**
1124 1124 
@@ -1172,7 +1172,7 @@ Sets the background blur effect for a dialog box.
1172| Name| Description|1172| Name| Description|
1173| -- | -- |1173| -- | -- |
1174| [ArkUI_CustomDialogOptions](capi-arkui-nativemodule-arkui-customdialogoptions.md)* options | Dialog box parameters.|1174| [ArkUI_CustomDialogOptions](capi-arkui-nativemodule-arkui-customdialogoptions.md)* options | Dialog box parameters.|
1175-| [const ArkUI_AttributeItem](capi-arkui-nativemodule-arkui-attributeitem.md)* backgroundBlurStyleOptions | Background blur effect for the dialog box. The format of the [ArkUI_AttributeItem](capi-arkui-nativemodule-arkui-attributeitem.md) parameter is as follows:<br> .value[0].i32: color mode, specified by an enumerated value of [ArkUI_ColorMode](capi-native-type-h.md#arkui_colormode).<br> .value[1]?.i32: adaptive color mode, specified by an enumerated value of [ArkUI_AdaptiveColor](capi-native-type-h.md#arkui_adaptivecolor).<br> .value[2]? .f32: blur degree. The value range is [0.0, 1.0].<br> .value[3]?.u32: brightness of black in the grayscale blur. The value range is [0, 127].<br> .value[4]?.u32: degree of darkening the white color in the grayscale blur. The value range is [0, 127].<br> .value[5]?.i32: blur activation policy, specified by an enumeration value of [ArkUI_BlurStyleActivePolicy](capi-native-type-h.md#arkui_blurstyleactivepolicy).<br> .value[6]?.u32: background color, in 0xARGB format, of the components within the window after the window loses focus (in which case, the blur effect on the components within the window is removed).|1175+| [const ArkUI_AttributeItem](capi-arkui-nativemodule-arkui-attributeitem.md)* backgroundBlurStyleOptions | Background blur effect for the dialog box. The format of the [ArkUI_AttributeItem](capi-arkui-nativemodule-arkui-attributeitem.md) parameter is as follows:<br> .value[0].i32: color mode, specified by an enumerated value of [ArkUI_ColorMode](capi-native-type-h.md#arkui_colormode).<br> .value[1]?.i32: adaptive color mode, specified by an enumerated value of [ArkUI_AdaptiveColor](capi-native-type-h.md#arkui_adaptivecolor).<br> .value[2]?.f32: blur degree. The value range is [0.0, 1.0]. If the value is out of the valid range, the boundary value is used.<br> .value[3]?.u32: brightness of black in the grayscale blur. The value range is [0, 127]. If the value is out of the valid range, **0** is used.<br> .value[4]?.u32: darkening degree of white in the grayscale blur. The value range is [0, 127]. If the value is out of the valid range, **0** is used.<br> .value[5]?.i32: blur activation policy, specified by an enumerated value of [ArkUI_BlurStyleActivePolicy](capi-native-type-h.md#arkui_blurstyleactivepolicy).<br> .value[6]?.u32: background color, in 0xARGB format, of the components within the window after the window loses focus (in which case, the blur effect on the components within the window is removed).|
1176 1176 
1177**Returns**1177**Returns**
1178 1178 
@@ -1199,7 +1199,7 @@ Sets the background effect parameters for a dialog box.
1199| Name| Description|1199| Name| Description|
1200| -- | -- |1200| -- | -- |
1201| [ArkUI_CustomDialogOptions](capi-arkui-nativemodule-arkui-customdialogoptions.md)* options | Dialog box parameters.|1201| [ArkUI_CustomDialogOptions](capi-arkui-nativemodule-arkui-customdialogoptions.md)* options | Dialog box parameters.|
1202-| [const ArkUI_AttributeItem](capi-arkui-nativemodule-arkui-attributeitem.md)* backgroundEffect | Background effect of the dialog box. The format of the [ArkUI_AttributeItem](capi-arkui-nativemodule-arkui-attributeitem.md) parameter is as follows:<br> .value[0].f32: blur radius, in vp.<br> .value[1]?.f32: saturation.<br> .value[2]?.f32: brightness.<br> .value[3]?.u32: color, in 0xARGB format.<br> .value[4]?.i32: adaptive color mode, specified by an enumerated value of [ArkUI_AdaptiveColor](capi-native-type-h.md#arkui_adaptivecolor).<br> .value[5]?.u32: brightness of black in the grayscale blur. The value range is [0, 127].<br> .value[6]?.u32: degree of darkening the white color in the grayscale blur. The value range is [0, 127].<br> .value[7]?.i32: blur activation policy, specified by an enumeration value of [ArkUI_BlurStyleActivePolicy](capi-native-type-h.md#arkui_blurstyleactivepolicy).<br> .value[8]?.u32: background color, in 0xARGB format, of the components within the window after the window loses focus (in which case, the blur effect on the components within the window is removed).|1202+| [const ArkUI_AttributeItem](capi-arkui-nativemodule-arkui-attributeitem.md)* backgroundEffect | Background effect of the dialog box. The format of the [ArkUI_AttributeItem](capi-arkui-nativemodule-arkui-attributeitem.md) parameter is as follows:<br> .value[0].f32: blur radius, in vp.<br> .value[1]?.f32: saturation.<br> .value[2]?.f32: brightness.<br> .value[3]?.u32: color, in 0xARGB format.<br> .value[4]?.i32: adaptive color mode, specified by an enumerated value of [ArkUI_AdaptiveColor](capi-native-type-h.md#arkui_adaptivecolor).<br> .value[5]?.u32: brightness of black in the grayscale blur. The value range is [0, 127]. If the value is out of the valid range, **0** is used.<br> .value[6]?.u32: darkening degree of white in the grayscale blur. The value range is [0, 127]. If the value is out of the valid range, **0** is used.<br> .value[7]?.i32: blur activation policy, specified by an enumerated value of [ArkUI_BlurStyleActivePolicy](capi-native-type-h.md#arkui_blurstyleactivepolicy).<br> .value[8]?.u32: background color, in 0xARGB format, of the components within the window after the window loses focus (in which case, the blur effect on the components within the window is removed).|
1203 1203 
1204**Returns**1204**Returns**
1205 1205 
@@ -142,10 +142,10 @@ Enumerates accessibility action types.
142| ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_COPY = 0x00000400 | Copies the current text selection. |142| ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_COPY = 0x00000400 | Copies the current text selection. |
143| ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_PASTE = 0x00000800 | Pastes content to the text component. |143| ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_PASTE = 0x00000800 | Pastes content to the text component. |
144| ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_CUT = 0x00001000 | Cuts the current text selection to the pasteboard. |144| ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_CUT = 0x00001000 | Cuts the current text selection to the pasteboard. |
145-| ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_SELECT_TEXT = 0x00002000 | Selects a range of text within an editable area in a text component. Used together with **ArkUI_AccessibilityActionArguments** to configure **selectTextStart**, **selectTextEnd**, and **selectTextInForWard**. |145+| ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_SELECT_TEXT = 0x00002000 | Selects a range of text within an editable area in a text component. Selects a range of text within an editable area by using **ArkUI_AccessibilityActionArguments** and setting **selectTextBegin** (indicates the start position of the selection), **selectTextEnd** (indicates the end position of the selection), and **selectTextInForWard** (**true** indicates to select text forward, and **false** indicates to select text backward). |
146| ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_SET_TEXT = 0x00004000 | Sets the text content of the text component. |146| ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_SET_TEXT = 0x00004000 | Sets the text content of the text component. |
147-| ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_SET_CURSOR_POSITION = 0x00100000 | Sets the text cursor position. Used together with **ArkUI_AccessibilityActionArguments** to configure **offset**.|147+| ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_SET_CURSOR_POSITION = 0x00100000 | Sets the cursor position where the text can be entered for the text component. This API is used together with **ArkUI_AccessibilityActionArguments**.|
148-| ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_NEXT_HTML_ITEM = 0x02000000 | Moves focus to the next focusable component. Note: "HTML" indicates the web-like navigation capability, not actual web elements. This API requires implementation of **findNextFocusAccessibilityNode**.<br>**Since**: 15|148+| ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_NEXT_HTML_ITEM = 0x02000000 | Moves focus to the next focusable component. Note: "HTML" indicates the web-like navigation capability, not actual web elements. This attribute is available only when the [findNextFocusAccessibilityNode](./capi-arkui-accessibility-arkui-accessibilityprovidercallbacks.md#findnextfocusaccessibilitynode) capability is implemented.<br>**Since**: 15|
149| ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_PREVIOUS_HTML_ITEM = 0x04000000 | Moves focus to the previous focusable component. Note: "HTML" indicates the web-like navigation capability, not actual web elements. This API requires implementation of **findNextFocusAccessibilityNode**.<br>**Since**: 15 |149| ARKUI_ACCESSIBILITY_NATIVE_ACTION_TYPE_PREVIOUS_HTML_ITEM = 0x04000000 | Moves focus to the previous focusable component. Note: "HTML" indicates the web-like navigation capability, not actual web elements. This API requires implementation of **findNextFocusAccessibilityNode**.<br>**Since**: 15 |
150 150 
151### ArkUI_AccessibilityEventType151### ArkUI_AccessibilityEventType
@@ -40,7 +40,7 @@ Declares the APIs for accessing Native XComponent features.
40| [OH_NativeXComponent_ExtraMouseEventInfo](capi-oh-nativexcomponent-native-xcomponent-oh-nativexcomponent-extramouseeventinfo.md) | OH_NativeXComponent_ExtraMouseEventInfo | Provides an encapsulated instance of extended mouse event information.|40| [OH_NativeXComponent_ExtraMouseEventInfo](capi-oh-nativexcomponent-native-xcomponent-oh-nativexcomponent-extramouseeventinfo.md) | OH_NativeXComponent_ExtraMouseEventInfo | Provides an encapsulated instance of extended mouse event information.|
41| [OH_ArkUI_SurfaceHolder](capi-oh-nativexcomponent-native-xcomponent-oh-arkui-surfaceholder.md) | OH_ArkUI_SurfaceHolder | Provides an encapsulated **OH_ArkUI_SurfaceHolder** instance.|41| [OH_ArkUI_SurfaceHolder](capi-oh-nativexcomponent-native-xcomponent-oh-arkui-surfaceholder.md) | OH_ArkUI_SurfaceHolder | Provides an encapsulated **OH_ArkUI_SurfaceHolder** instance.|
42| [OH_ArkUI_SurfaceCallback](capi-oh-nativexcomponent-native-xcomponent-oh-arkui-surfacecallback.md) | OH_ArkUI_SurfaceCallback | Defines surface lifecycle callback functions.|42| [OH_ArkUI_SurfaceCallback](capi-oh-nativexcomponent-native-xcomponent-oh-arkui-surfacecallback.md) | OH_ArkUI_SurfaceCallback | Defines surface lifecycle callback functions.|
43-| [OHNativeWindow](capi-oh-nativexcomponent-native-xcomponent-nativewindow.md) | OHNativeWindow | Provides an encapsulated **NativeWindow** instance.|43+| [NativeWindow](capi-oh-nativexcomponent-native-xcomponent-nativewindow.md) | OHNativeWindow | Provides an encapsulated **NativeWindow** instance.|
44| [ArkUI_XComponentSurfaceConfig](capi-oh-nativexcomponent-native-xcomponent-arkui-xcomponentsurfaceconfig.md) | ArkUI_XComponentSurfaceConfig | Defines the surface configuration for the **XComponent**, which specifies whether the **XComponent**'s surface should be treated as opaque during rendering.|44| [ArkUI_XComponentSurfaceConfig](capi-oh-nativexcomponent-native-xcomponent-arkui-xcomponentsurfaceconfig.md) | ArkUI_XComponentSurfaceConfig | Defines the surface configuration for the **XComponent**, which specifies whether the **XComponent**'s surface should be treated as opaque during rendering.|
45 45 
46### Enums46### Enums
@@ -373,8 +373,8 @@ Obtains the size of the surface held by the ArkUI XComponent.
373| -- | -- |373| -- | -- |
374| [OH_NativeXComponent](capi-oh-nativexcomponent-native-xcomponent-oh-nativexcomponent.md)* component | Pointer to an [OH_NativeXComponent](capi-oh-nativexcomponent-native-xcomponent-oh-nativexcomponent.md) instance.|374| [OH_NativeXComponent](capi-oh-nativexcomponent-native-xcomponent-oh-nativexcomponent.md)* component | Pointer to an [OH_NativeXComponent](capi-oh-nativexcomponent-native-xcomponent-oh-nativexcomponent.md) instance.|
375| const void* window | Handle to the **NativeWindow** instance.|375| const void* window | Handle to the **NativeWindow** instance.|
376-| uint64_t* width | Pointer to the width of the current surface.|376+| uint64_t* width | Pointer to the width of the current surface. Unit: vp.|
377-| uint64_t* height | Pointer to the height of the current surface.|377+| uint64_t* height | Pointer to the height of the current surface. Unit: vp.|
378 378 
379**Returns**379**Returns**
380 380 
@@ -402,8 +402,8 @@ Obtains the offset of the surface held by the XComponent relative to the upper l
402| -- | -- |402| -- | -- |
403| [OH_NativeXComponent](capi-oh-nativexcomponent-native-xcomponent-oh-nativexcomponent.md)* component | Pointer to an [OH_NativeXComponent](capi-oh-nativexcomponent-native-xcomponent-oh-nativexcomponent.md) instance.|403| [OH_NativeXComponent](capi-oh-nativexcomponent-native-xcomponent-oh-nativexcomponent.md)* component | Pointer to an [OH_NativeXComponent](capi-oh-nativexcomponent-native-xcomponent-oh-nativexcomponent.md) instance.|
404| const void* window | Handle to the **NativeWindow** instance.|404| const void* window | Handle to the **NativeWindow** instance.|
405-| double* x | Pointer to the x-coordinate of the current surface relative to the upper left corner of the **XComponent**'s parent component.|405+| double* x | Pointer to the x-coordinate of the current surface relative to the upper left corner of the **XComponent**'s parent component. Unit: vp.|
406-| double* y | Pointer to the y-coordinate of the current surface relative to the upper left corner of the **XComponent**'s parent component.|406+| double* y | Pointer to the y-coordinate of the current surface relative to the upper left corner of the **XComponent**'s parent component. Unit: vp.|
407 407 
408**Returns**408**Returns**
409 409 
@@ -1248,7 +1248,6 @@ Attaches the UI component created through the native API of ArkUI to this **OH_N
1248 1248 
1249**Substitute**: [OH_ArkUI_NodeContent_AddNode](capi-native-node-h.md#oh_arkui_nodecontent_addnode)1249**Substitute**: [OH_ArkUI_NodeContent_AddNode](capi-native-node-h.md#oh_arkui_nodecontent_addnode)
1250 1250 
1251- 
1252**Parameters**1251**Parameters**
1253 1252 
1254| Name| Description|1253| Name| Description|
@@ -1279,7 +1278,6 @@ Detaches the native component of ArkUI from this **OH_NativeXComponent** instanc
1279 1278 
1280**Substitute**: [OH_ArkUI_NodeContent_RemoveNode](capi-native-node-h.md#oh_arkui_nodecontent_removenode)1279**Substitute**: [OH_ArkUI_NodeContent_RemoveNode](capi-native-node-h.md#oh_arkui_nodecontent_removenode)
1281 1280 
1282- 
1283**Parameters**1281**Parameters**
1284 1282 
1285| Name| Description|1283| Name| Description|
@@ -1438,7 +1436,7 @@ int32_t OH_NativeXComponent_GetTouchEventSourceType(OH_NativeXComponent* compone
1438**Description**1436**Description**
1439 1437 
1440 1438 
1441-Obtains the touch event source type of an **OH_NativeXComponent** instance.1439+Obtains the touch event source type of an ArkUI XComponent instance.
1442 1440 
1443**Since**: 121441**Since**: 12
1444 1442 
@@ -1769,7 +1767,7 @@ Sets the size change callback event in the surface lifecycle callbacks.
1769| Name| Description|1767| Name| Description|
1770| -- | -- |1768| -- | -- |
1771| [OH_ArkUI_SurfaceCallback](capi-oh-nativexcomponent-native-xcomponent-oh-arkui-surfacecallback.md)* callback | Pointer to the surface lifecycle callback.|1769| [OH_ArkUI_SurfaceCallback](capi-oh-nativexcomponent-native-xcomponent-oh-arkui-surfacecallback.md)* callback | Pointer to the surface lifecycle callback.|
1772-| void (\*onSurfaceChanged)(OH_ArkUI_SurfaceHolder* surfaceHolder, uint64_t width, uint64_t height) | Callback event triggered when the surface size changes. - **surfaceHolder**: pointer to the target [OH_ArkUI_SurfaceHolder](capi-oh-nativexcomponent-native-xcomponent-oh-arkui-surfaceholder.md) instance. - **width**: new width of the surface after the size change. - **height**: new height of the surface after the size change.|1770+| void (\*onSurfaceChanged)(OH_ArkUI_SurfaceHolder* surfaceHolder, uint64_t width, uint64_t height) | Callback event triggered when the surface size changes. - **surfaceHolder**: pointer to the target [OH_ArkUI_SurfaceHolder](capi-oh-nativexcomponent-native-xcomponent-oh-arkui-surfaceholder.md) instance. - **width**: new width of the surface after the size change. Unit: vp. - **height**: new height of the surface after the size change. Unit: vp.|
1773 1771 
1774### OH_ArkUI_SurfaceCallback_SetSurfaceDestroyedEvent()1772### OH_ArkUI_SurfaceCallback_SetSurfaceDestroyedEvent()
1775 1773 
@@ -1870,7 +1868,7 @@ Obtains the **NativeWindow** instance associated with an [OH_ArkUI_SurfaceHolder
1870 1868 
1871| Type | Description|1869| Type | Description|
1872|---------------------| -- |1870|---------------------| -- |
1873-| [OHNativeWindow](capi-oh-nativexcomponent-native-xcomponent-nativewindow.md)* | **NativeWindow** instance associated with the [OH_ArkUI_SurfaceHolder](capi-oh-nativexcomponent-native-xcomponent-oh-arkui-surfaceholder.md) instance.|1871+| [NativeWindow](capi-oh-nativexcomponent-native-xcomponent-nativewindow.md)* | **NativeWindow** instance associated with the [OH_ArkUI_SurfaceHolder](capi-oh-nativexcomponent-native-xcomponent-oh-arkui-surfaceholder.md) instance.|
1874 1872 
1875### OH_ArkUI_XComponent_SetAutoInitialize()1873### OH_ArkUI_XComponent_SetAutoInitialize()
1876 1874 
@@ -8,7 +8,7 @@
8 8 
9## Overview9## Overview
10 10 
11-Declares the functions used to convert FrameNodes on the ArkTS side into NodeHandles.11+Provides the APIs used to convert [FrameNode](js-apis-arkui-frameNode.md) on the ArkTS side to [NodeHandle](capi-arkui-nativemodule-arkui-node8h.md).
12 12 
13**File to include**: <arkui/native_node_napi.h>13**File to include**: <arkui/native_node_napi.h>
14 14 
@@ -90,7 +90,7 @@ int32_t OH_ArkUI_GetContextFromNapiValue(napi_env env, napi_value value, ArkUI_C
90**Description**90**Description**
91 91 
92 92 
93-Obtains a **UIContext** object on the ArkTS side and maps it to an **ArkUI_ContextHandle** object on the native side.93+Obtains a [UIContext](arkts-apis-uicontext-uicontext.md) object on the ArkTS side and maps it to **ArkUI_ContextHandle** on the native side.
94 94 
95**Since**: 1295**Since**: 12
96 96 
@@ -156,7 +156,7 @@ Maps the [DrawableDescriptor](arkui-ts/ts-basic-components-image.md#drawabledesc
156| Name| Description|156| Name| Description|
157| -- | -- |157| -- | -- |
158| napi_env env | Pointer to the Node-API environment.|158| napi_env env | Pointer to the Node-API environment.|
159-| napi_value value | **DrawableDescriptor** object created on the ArkTS side.|159+| napi_value value | [DrawableDescriptor](arkui-ts/ts-basic-components-image.md#drawabledescriptor10) object created on the ArkTS side.|
160| [ArkUI_DrawableDescriptor](capi-arkui-nativemodule-arkui-drawabledescriptor.md)** drawableDescriptor | Double pointer used to receive the **ArkUI_DrawableDescriptor** object.|160| [ArkUI_DrawableDescriptor](capi-arkui-nativemodule-arkui-drawabledescriptor.md)** drawableDescriptor | Double pointer used to receive the **ArkUI_DrawableDescriptor** object.|
161 161 
162**Return value**162**Return value**
@@ -174,7 +174,7 @@ int32_t OH_ArkUI_GetDrawableDescriptorFromResourceNapiValue(napi_env env, napi_v
174**Description**174**Description**
175 175 
176 176 
177-Maps the [$r](js-apis-arkui-resource.md) resource object created on the ArkTS side to the [ArkUI_DrawableDescriptor](capi-arkui-nativemodule-arkui-drawabledescriptor.md) object on the native side.177+Converts the resource object obtained by **$r()** on the ArkTS side to the [ArkUI_DrawableDescriptor](capi-arkui-nativemodule-arkui-drawabledescriptor.md) object that can be used on the native side.
178 178 
179**Since**: 12179**Since**: 12
180 180 
@@ -287,7 +287,7 @@ ArkUI_ErrorCode OH_ArkUI_GetNavDestinationNameByIndex(ArkUI_NodeHandle node, int
287**Description**287**Description**
288 288 
289 289 
290-Obtains the name of the page in the navigation stack where the specified node is located based on the given index. The index starts from 0, which indicates the bottom of the stack.290+Obtains the name of the page in the navigation stack where the specified node is located based on the given index. The index starts from 0, which indicates the bottom of the stack.
291 291 
292**Since**: 12292**Since**: 12
293 293 
@@ -18,11 +18,11 @@ The **Animator** module provides APIs for applying animation effects, including
18>18>
19> - The functionality of this module depends on UI context. This means that the APIs of this module cannot be used where [the UI context is ambiguous](../../ui/arkts-global-interface.md#ambiguous-ui-context). For details, see [UIContext](arkts-apis-uicontext-uicontext.md).19> - The functionality of this module depends on UI context. This means that the APIs of this module cannot be used where [the UI context is ambiguous](../../ui/arkts-global-interface.md#ambiguous-ui-context). For details, see [UIContext](arkts-apis-uicontext-uicontext.md).
20>20>
21-> - Custom components typically retain the [AnimatorResult](#animatorresult) returned by [createAnimator](arkts-apis-uicontext-uicontext.md#createanimator) to prevent animation object destruction during execution. This object holds references to the custom component via callbacks. Release the animation object in [aboutToDisappear](../apis-arkui/arkui-ts/ts-custom-component-lifecycle.md#abouttodisappear) to avoid circular reference memory leaks. For implementation examples, see [ArkTS-based Declarative Development Paradigm](#arkts-based-declarative-development-paradigm).21+> - A custom component usually holds an [AnimatorResult](#animatorresult) object returned by the [createAnimator](arkts-apis-uicontext-uicontext.md#createanimator) API to ensure that the animation object is not destructed during the animation. The object captures the custom component object through a callback. Therefore, the animation object needs to be released in the [aboutToDisappear](../apis-arkui/arkui-ts/ts-custom-component-lifecycle.md#abouttodisappear) lifecycle when the custom component is destroyed to avoid memory leakage caused by cyclic dependency. For the example details, see [ArkTS-based Declarative Development Paradigm](#arkts-based-declarative-development-paradigm).
22>22>
23-> - Both Animator destruction and explicit [cancel](#cancel) or [finish](#finish) calls trigger an additional [onFrame](#properties) callback with the animation's endpoint value. Therefore, if [cancel](#cancel) or [finish](#finish) is called during animation execution, there will be an immediate jump to the endpoint in one frame. For smooth mid-point termination, first clear the **onFrame** callback before calling [finish](#finish).23+> - When the object of **Animator** is destructed or proactively call [cancel](#cancel) or [finish](#finish), an additional [onFrame](#properties) API will be triggered. The return value is the end point value of the animation. Therefore, if [cancel](#cancel) or [finish](#finish) is called during the animation, the property value will jump to the end point value within a frame. To pause the animation, set **onFrame** to an empty function and then call [finish](#finish).
24>24>
25-> - For an **Animator** animation with infinite iterations, even when the global animation speed is set to 0 (animations disabled) in Developer options, the loop animation will still continue to execute.25+> - For an animation in an infinite loop, the animation will continue to be played even if the global animation speed is set to 0 (disabled) in the developer options.
26 26 
27## Modules to Import27## Modules to Import
28 28 
@@ -1010,7 +1010,7 @@ struct AnimatorTest {
1010 Column()1010 Column()
1011 .width(this.columnWidth)1011 .width(this.columnWidth)
1012 .height(this.columnHeight)1012 .height(this.columnHeight)
1013- .backgroundColor(Color.Red)1013+ .backgroundColor(Color.Blue)
1014 }1014 }
1015 .width('100%')1015 .width('100%')
1016 .height(300)1016 .height(300)
@@ -1120,6 +1120,8 @@ struct AnimatorTest {
1120}1120}
1121```1121```
1122 1122 
1123+![animator_01](figures/animator_result.gif)
1124+ 
1123### Example: Implementing a Translation Animation with Simple Parameters1125### Example: Implementing a Translation Animation with Simple Parameters
1124 1126 
1125```ts1127```ts
@@ -3076,8 +3076,8 @@ class MyNodeController extends NodeController {
3076 3076 
3077 let mouseEvent = event as MouseEvent;3077 let mouseEvent = event as MouseEvent;
3078 if (offsetX != null && offsetY != null && offsetX != undefined && offsetY != undefined) {3078 if (offsetX != null && offsetY != null && offsetX != undefined && offsetY != undefined) {
3079- mouseEvent.x = uiContext.vp2px(offsetX + mouseEvent.x);3079+ mouseEvent.windowX = uiContext.vp2px(offsetX + mouseEvent.x);
3080- mouseEvent.y = uiContext.vp2px(offsetY + mouseEvent.y);3080+ mouseEvent.windowY = uiContext.vp2px(offsetY + mouseEvent.y);
3081 }3081 }
3082 // Post the mouse event to the FrameNode created by BuilderNode. result indicates whether the post is successful.3082 // Post the mouse event to the FrameNode created by BuilderNode. result indicates whether the post is successful.
3083 let result = this.rootNode.postInputEvent(event);3083 let result = this.rootNode.postInputEvent(event);
@@ -3097,15 +3097,15 @@ class MyNodeController extends NodeController {
3097 let changedTouchLen = touchEvent.changedTouches.length;3097 let changedTouchLen = touchEvent.changedTouches.length;
3098 for (let i = 0; i < changedTouchLen; i++) {3098 for (let i = 0; i < changedTouchLen; i++) {
3099 if (offsetX != null && offsetY != null && offsetX != undefined && offsetY != undefined) {3099 if (offsetX != null && offsetY != null && offsetX != undefined && offsetY != undefined) {
3100- touchEvent.changedTouches[i].x = uiContext.vp2px(offsetX + touchEvent.changedTouches[i].x);3100+ touchEvent.changedTouches[i].windowX = uiContext.vp2px(offsetX + touchEvent.changedTouches[i].x);
3101- touchEvent.changedTouches[i].y = uiContext.vp2px(offsetY + touchEvent.changedTouches[i].y);3101+ touchEvent.changedTouches[i].windowY = uiContext.vp2px(offsetY + touchEvent.changedTouches[i].y);
3102 }3102 }
3103 }3103 }
3104 let touchesLen = touchEvent.touches.length;3104 let touchesLen = touchEvent.touches.length;
3105 for (let i = 0; i < touchesLen; i++) {3105 for (let i = 0; i < touchesLen; i++) {
3106 if (offsetX != null && offsetY != null && offsetX != undefined && offsetY != undefined) {3106 if (offsetX != null && offsetY != null && offsetX != undefined && offsetY != undefined) {
3107- touchEvent.touches[i].x = uiContext.vp2px(offsetX + touchEvent.touches[i].x);3107+ touchEvent.touches[i].windowX = uiContext.vp2px(offsetX + touchEvent.touches[i].x);
3108- touchEvent.touches[i].y = uiContext.vp2px(offsetY + touchEvent.touches[i].y);3108+ touchEvent.touches[i].windowY = uiContext.vp2px(offsetY + touchEvent.touches[i].y);
3109 }3109 }
3110 }3110 }
3111 // Post the touch event to the FrameNode created by BuilderNode. result indicates whether the post is successful.3111 // Post the touch event to the FrameNode created by BuilderNode. result indicates whether the post is successful.
@@ -3211,15 +3211,15 @@ class MyNodeController extends NodeController {
3211 let changedTouchLen = touchEvent.changedTouches.length;3211 let changedTouchLen = touchEvent.changedTouches.length;
3212 for (let i = 0; i < changedTouchLen; i++) {3212 for (let i = 0; i < changedTouchLen; i++) {
3213 if (offsetX != null && offsetY != null && offsetX != undefined && offsetY != undefined) {3213 if (offsetX != null && offsetY != null && offsetX != undefined && offsetY != undefined) {
3214- touchEvent.changedTouches[i].x = uiContext.vp2px(offsetX + touchEvent.changedTouches[i].x);3214+ touchEvent.changedTouches[i].windowX = uiContext.vp2px(offsetX + touchEvent.changedTouches[i].x);
3215- touchEvent.changedTouches[i].y = uiContext.vp2px(offsetY + touchEvent.changedTouches[i].y);3215+ touchEvent.changedTouches[i].windowY = uiContext.vp2px(offsetY + touchEvent.changedTouches[i].y);
3216 }3216 }
3217 }3217 }
3218 let touchesLen = touchEvent.touches.length;3218 let touchesLen = touchEvent.touches.length;
3219 for (let i = 0; i < touchesLen; i++) {3219 for (let i = 0; i < touchesLen; i++) {
3220 if (offsetX != null && offsetY != null && offsetX != undefined && offsetY != undefined) {3220 if (offsetX != null && offsetY != null && offsetX != undefined && offsetY != undefined) {
3221- touchEvent.touches[i].x = uiContext.vp2px(offsetX + touchEvent.touches[i].x);3221+ touchEvent.touches[i].windowX = uiContext.vp2px(offsetX + touchEvent.touches[i].x);
3222- touchEvent.touches[i].y = uiContext.vp2px(offsetY + touchEvent.touches[i].y);3222+ touchEvent.touches[i].windowY = uiContext.vp2px(offsetY + touchEvent.touches[i].y);
3223 }3223 }
3224 }3224 }
3225 }3225 }
@@ -3317,8 +3317,8 @@ class MyNodeController extends NodeController {
3317 3317 
3318 let axisEvent = event as AxisEvent;3318 let axisEvent = event as AxisEvent;
3319 if (offsetX != null && offsetY != null && offsetX != undefined && offsetY != undefined) {3319 if (offsetX != null && offsetY != null && offsetX != undefined && offsetY != undefined) {
3320- axisEvent.x = uiContext.vp2px(offsetX + axisEvent.x);3320+ axisEvent.windowX = uiContext.vp2px(offsetX + axisEvent.x);
3321- axisEvent.y = uiContext.vp2px(offsetY + axisEvent.y);3321+ axisEvent.windowY = uiContext.vp2px(offsetY + axisEvent.y);
3322 }3322 }
3323 // Post the axis event to the FrameNode created by BuilderNode. result indicates whether the post is successful.3323 // Post the axis event to the FrameNode created by BuilderNode. result indicates whether the post is successful.
3324 let result = this.rootNode.postInputEvent(event);3324 let result = this.rootNode.postInputEvent(event);
@@ -4524,8 +4524,8 @@ class MyNodeController extends NodeController {
4524 let mouseEvent = event as MouseEvent;4524 let mouseEvent = event as MouseEvent;
4525 // Coordinate conversion: Convert the event coordinates to the node coordinates.4525 // Coordinate conversion: Convert the event coordinates to the node coordinates.
4526 if (offsetX != null && offsetY != null && offsetX != undefined && offsetY != undefined) {4526 if (offsetX != null && offsetY != null && offsetX != undefined && offsetY != undefined) {
4527- mouseEvent.x = uiContext.vp2px(offsetX + mouseEvent.x);4527+ mouseEvent.windowX = uiContext.vp2px(offsetX + mouseEvent.x);
4528- mouseEvent.y = uiContext.vp2px(offsetY + mouseEvent.y);4528+ mouseEvent.windowY = uiContext.vp2px(offsetY + mouseEvent.y);
4529 }4529 }
4530 // Call postInputEvent to post the converted event to the ReactiveBuilderNode.4530 // Call postInputEvent to post the converted event to the ReactiveBuilderNode.
4531 let result = this.rootNode.postInputEvent(event);4531 let result = this.rootNode.postInputEvent(event);
@@ -4547,16 +4547,16 @@ class MyNodeController extends NodeController {
4547 let changedTouchLen = touchEvent.changedTouches.length;4547 let changedTouchLen = touchEvent.changedTouches.length;
4548 for (let i = 0; i < changedTouchLen; i++) {4548 for (let i = 0; i < changedTouchLen; i++) {
4549 if (offsetX != null && offsetY != null && offsetX != undefined && offsetY != undefined) {4549 if (offsetX != null && offsetY != null && offsetX != undefined && offsetY != undefined) {
4550- touchEvent.changedTouches[i].x = uiContext.vp2px(offsetX + touchEvent.changedTouches[i].x);4550+ touchEvent.changedTouches[i].windowX = uiContext.vp2px(offsetX + touchEvent.changedTouches[i].x);
4551- touchEvent.changedTouches[i].y = uiContext.vp2px(offsetY + touchEvent.changedTouches[i].y);4551+ touchEvent.changedTouches[i].windowY = uiContext.vp2px(offsetY + touchEvent.changedTouches[i].y);
4552 }4552 }
4553 }4553 }
4554 // Convert the coordinates of all touch points in the touches array.4554 // Convert the coordinates of all touch points in the touches array.
4555 let touchesLen = touchEvent.touches.length;4555 let touchesLen = touchEvent.touches.length;
4556 for (let i = 0; i < touchesLen; i++) {4556 for (let i = 0; i < touchesLen; i++) {
4557 if (offsetX != null && offsetY != null && offsetX != undefined && offsetY != undefined) {4557 if (offsetX != null && offsetY != null && offsetX != undefined && offsetY != undefined) {
4558- touchEvent.touches[i].x = uiContext.vp2px(offsetX + touchEvent.touches[i].x);4558+ touchEvent.touches[i].windowX = uiContext.vp2px(offsetX + touchEvent.touches[i].x);
4559- touchEvent.touches[i].y = uiContext.vp2px(offsetY + touchEvent.touches[i].y);4559+ touchEvent.touches[i].windowY = uiContext.vp2px(offsetY + touchEvent.touches[i].y);
4560 }4560 }
4561 }4561 }
4562 // Call postInputEvent to post the converted event to the ReactiveBuilderNode.4562 // Call postInputEvent to post the converted event to the ReactiveBuilderNode.
@@ -4661,16 +4661,16 @@ class MyNodeController extends NodeController {
4661 let changedTouchLen = touchEvent.changedTouches.length;4661 let changedTouchLen = touchEvent.changedTouches.length;
4662 for (let i = 0; i < changedTouchLen; i++) {4662 for (let i = 0; i < changedTouchLen; i++) {
4663 if (offsetX != null && offsetY != null && offsetX != undefined && offsetY != undefined) {4663 if (offsetX != null && offsetY != null && offsetX != undefined && offsetY != undefined) {
4664- touchEvent.changedTouches[i].x = uiContext.vp2px(offsetX + touchEvent.changedTouches[i].x);4664+ touchEvent.changedTouches[i].windowX = uiContext.vp2px(offsetX + touchEvent.changedTouches[i].x);
4665- touchEvent.changedTouches[i].y = uiContext.vp2px(offsetY + touchEvent.changedTouches[i].y);4665+ touchEvent.changedTouches[i].windowY = uiContext.vp2px(offsetY + touchEvent.changedTouches[i].y);
4666 }4666 }
4667 }4667 }
4668 // Convert the coordinates of all touch points in the touches array.4668 // Convert the coordinates of all touch points in the touches array.
4669 let touchesLen = touchEvent.touches.length;4669 let touchesLen = touchEvent.touches.length;
4670 for (let i = 0; i < touchesLen; i++) {4670 for (let i = 0; i < touchesLen; i++) {
4671 if (offsetX != null && offsetY != null && offsetX != undefined && offsetY != undefined) {4671 if (offsetX != null && offsetY != null && offsetX != undefined && offsetY != undefined) {
4672- touchEvent.touches[i].x = uiContext.vp2px(offsetX + touchEvent.touches[i].x);4672+ touchEvent.touches[i].windowX = uiContext.vp2px(offsetX + touchEvent.touches[i].x);
4673- touchEvent.touches[i].y = uiContext.vp2px(offsetY + touchEvent.touches[i].y);4673+ touchEvent.touches[i].windowY = uiContext.vp2px(offsetY + touchEvent.touches[i].y);
4674 }4674 }
4675 }4675 }
4676 }4676 }
@@ -4768,8 +4768,8 @@ class MyNodeController extends NodeController {
4768 4768 
4769 let axisEvent = event as AxisEvent;4769 let axisEvent = event as AxisEvent;
4770 if (offsetX != null && offsetY != null && offsetX != undefined && offsetY != undefined) {4770 if (offsetX != null && offsetY != null && offsetX != undefined && offsetY != undefined) {
4771- axisEvent.x = uiContext.vp2px(offsetX + axisEvent.x);4771+ axisEvent.windowX = uiContext.vp2px(offsetX + axisEvent.x);
4772- axisEvent.y = uiContext.vp2px(offsetY + axisEvent.y);4772+ axisEvent.windowY = uiContext.vp2px(offsetY + axisEvent.y);
4773 }4773 }
4774 // Call postInputEvent to post the converted event to the ReactiveBuilderNode.4774 // Call postInputEvent to post the converted event to the ReactiveBuilderNode.
4775 let result = this.rootNode.postInputEvent(event);4775 let result = this.rootNode.postInputEvent(event);
@@ -381,7 +381,7 @@ Sets the screen to independent display mode. This API uses a promise to return t
381 381 
382| Type | Description |382| Type | Description |
383| ------------------- | ------------------------- |383| ------------------- | ------------------------- |
384-| Promise&lt;Array&lt;number&gt;&gt; | Promise used to returns the independent screen IDs, where each ID is an integer greater than 0.|384+| Promise&lt;Array&lt;number&gt;&gt; | Promise used to return the independent screen IDs, where each ID is an integer greater than 0.|
385 385 
386**Error codes**386**Error codes**
387 387 
@@ -138,7 +138,7 @@ For details about the error codes, see [Universal Error Codes](../errorcode-univ
138| ID| Error Message|138| ID| Error Message|
139| ------- | -------------------------- |139| ------- | -------------------------- |
140| 201 | Permission verification failed. The application does not have the permission required to call the API.|140| 201 | Permission verification failed. The application does not have the permission required to call the API.|
141-| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.|141+| 401 | Parameter error. Possible causes: 1.Incorrect parameter types. 2.Parameter verification failed.|
142| 801 | Capability not supported on this device.|142| 801 | Capability not supported on this device.|
143| 1400003 | This display manager service works abnormally.|143| 1400003 | This display manager service works abnormally.|
144 144 
@@ -173,7 +173,7 @@ Provides entity information perceived, including content, links, images, and oth
173| Name| Type | Read-Only| Optional| Description |173| Name| Type | Read-Only| Optional| Description |
174| ---- | ------ | ---- | ---- | ---------------------------------------- |174| ---- | ------ | ---- | ---- | ---------------------------------------- |
175| entityName | string | No | No | Name of the perceived entity, which is fixed.|175| entityName | string | No | No | Name of the perceived entity, which is fixed.|
176-| entityInfo | Record<string, Object> | No | No | Entity information perceived , including content, links, images, and other types of entities.|176+| entityInfo | Record<string, Object> | No | No | Entity information perceived, including content, links, images, and other types of entities.|
177 177 
178 178 
179## OnscreenAwarenessInfo<sup>23+</sup>179## OnscreenAwarenessInfo<sup>23+</sup>