• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024-2025 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 /**
17  * @addtogroup ArkUI_NativeModule
18  * @{
19  *
20  * @brief Provides UI capabilities of ArkUI on the native side, such as UI component creation and destruction,
21  * tree node operations, attribute setting, and event listening.
22  *
23  * @since 12
24  */
25 
26 /**
27  * @file native_node.h
28  *
29  * @brief Provides type definitions for <b>NativeNode</b> APIs.
30  *
31  * @library libace_ndk.z.so
32  * @syscap SystemCapability.ArkUI.ArkUI.Full
33  * @since 12
34  */
35 
36 #ifndef ARKUI_NATIVE_NODE_H
37 #define ARKUI_NATIVE_NODE_H
38 
39 #include "native_type.h"
40 #include "ui_input_event.h"
41 
42 #ifdef __cplusplus
43 extern "C" {
44 #endif
45 
46 #define MAX_NODE_SCOPE_NUM 1000
47 
48 /**
49  * @brief Enumerates ArkUI component types that can be created on the native side.
50  *
51  * @since 12
52  */
53 typedef enum {
54     /** Custom node. */
55     ARKUI_NODE_CUSTOM = 0,
56     /** Text. */
57     ARKUI_NODE_TEXT = 1,
58     /** Text span. */
59     ARKUI_NODE_SPAN = 2,
60     /** Image span. */
61     ARKUI_NODE_IMAGE_SPAN = 3,
62     /** Image. */
63     ARKUI_NODE_IMAGE = 4,
64     /** Toggle. */
65     ARKUI_NODE_TOGGLE = 5,
66     /** Loading icon. */
67     ARKUI_NODE_LOADING_PROGRESS = 6,
68     /** Single-line text input. */
69     ARKUI_NODE_TEXT_INPUT = 7,
70     /** Multi-line text input. */
71     ARKUI_NODE_TEXT_AREA = 8,
72     /** Button. */
73     ARKUI_NODE_BUTTON = 9,
74     /** Progress indicator. */
75     ARKUI_NODE_PROGRESS = 10,
76     /** Check box. */
77     ARKUI_NODE_CHECKBOX = 11,
78     /** XComponent. */
79     ARKUI_NODE_XCOMPONENT = 12,
80     /** Date picker. */
81     ARKUI_NODE_DATE_PICKER = 13,
82     /** Time picker. */
83     ARKUI_NODE_TIME_PICKER = 14,
84     /** Text picker. */
85     ARKUI_NODE_TEXT_PICKER = 15,
86     /** Calendar picker. */
87     ARKUI_NODE_CALENDAR_PICKER = 16,
88     /** Slider. */
89     ARKUI_NODE_SLIDER = 17,
90     /** Radio button. */
91     ARKUI_NODE_RADIO = 18,
92     /** Frame-by-frame animation component. */
93     ARKUI_NODE_IMAGE_ANIMATOR = 19,
94     /** XComponent of type TEXTURE.
95      *  @since 16
96      */
97     ARKUI_NODE_XCOMPONENT_TEXTURE,
98     /** Check box group.
99      *  @since 15
100      */
101     ARKUI_NODE_CHECKBOX_GROUP = 21,
102     /** Stack container. */
103     ARKUI_NODE_STACK = MAX_NODE_SCOPE_NUM,
104     /** Swiper. */
105     ARKUI_NODE_SWIPER,
106     /** Scrolling container. */
107     ARKUI_NODE_SCROLL,
108     /** List. */
109     ARKUI_NODE_LIST,
110     /** List item. */
111     ARKUI_NODE_LIST_ITEM,
112     /** List item group. */
113     ARKUI_NODE_LIST_ITEM_GROUP,
114     /** Column container. */
115     ARKUI_NODE_COLUMN,
116     /** Row container. */
117     ARKUI_NODE_ROW,
118     /** Flex container. */
119     ARKUI_NODE_FLEX,
120     /** Refresh component. */
121     ARKUI_NODE_REFRESH,
122     /** Water flow container. */
123     ARKUI_NODE_WATER_FLOW,
124     /** Water flow item. */
125     ARKUI_NODE_FLOW_ITEM,
126     /** Relative layout component. */
127     ARKUI_NODE_RELATIVE_CONTAINER,
128     /** Grid. */
129     ARKUI_NODE_GRID,
130     /** Grid item. */
131     ARKUI_NODE_GRID_ITEM,
132     /** Custom_Span. */
133     ARKUI_NODE_CUSTOM_SPAN,
134     /**
135      * EmbeddedComponent.
136      * @since 20
137      */
138     ARKUI_NODE_EMBEDDED_COMPONENT,
139     /**
140      * Undefined.
141      * @since 20
142      */
143     ARKUI_NODE_UNDEFINED,
144 } ArkUI_NodeType;
145 
146 /**
147  * @brief Defines the general input parameter structure of the {@link setAttribute} function.
148  *
149  * @since 12
150  */
151 typedef struct {
152     /** Numeric array. */
153     const ArkUI_NumberValue* value;
154     /** Size of the numeric array. */
155     int32_t size;
156     /** String type. */
157     const char* string;
158     /** Object type. */
159     void* object;
160 } ArkUI_AttributeItem;
161 
162 /**
163  * @brief Defines the ArkUI style attributes that can be set on the native side.
164  *
165  * @since 12
166  */
167 typedef enum {
168     /**
169      * @brief Defines the width attribute, which can be set, reset, and obtained as required through APIs.
170      *
171      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
172      * .value[0].f32: width, in vp.\n
173      * \n
174      * Format of the return value {@link ArkUI_AttributeItem}:\n
175      * .value[0].f32: width, in vp.\n
176      *
177      */
178     NODE_WIDTH = 0,
179     /**
180      * @brief Defines the height attribute, which can be set, reset, and obtained as required through APIs.
181      *
182      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
183      * .value[0].f32: height, in vp.\n
184      * \n
185      * Format of the return value {@link ArkUI_AttributeItem}:\n
186      * .value[0].f32: height, in vp.\n
187      *
188      */
189     NODE_HEIGHT,
190     /**
191      * @brief Defines the background color attribute, which can be set, reset, and obtained as required through APIs.
192      *
193      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
194      * .value[0].u32: background color. The value is in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
195      * \n
196      * Format of the return value {@link ArkUI_AttributeItem}:\n
197      * .value[0].u32: background color. The value is in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
198      *
199      */
200     NODE_BACKGROUND_COLOR,
201     /**
202      * @brief Defines the background image attribute, which can be set, reset, and obtained as required through APIs.
203      *
204      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
205      * .string: image address;\n
206      * .value[0]?.i32: whether to repeat the image. Optional. The parameter type is {@link ArkUI_ImageRepeat}.
207      * The default value is <b>ARKUI_IMAGE_REPEAT_NONE</b>.\n
208      * \n
209      * Format of the return value {@link ArkUI_AttributeItem}:\n
210      * .string: image address;\n
211      * .value[0].i32: whether to repeat the image. The parameter type is {@link ArkUI_ImageRepeat}.\n
212      *
213      */
214     NODE_BACKGROUND_IMAGE,
215     /**
216      * @brief Defines the padding attribute, which can be set, reset, and obtained as required through APIs.
217      *
218      * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
219      * 1: Specify the same padding for the four directions. \n
220      * .value[0].f32: padding, in vp.\n
221      * 2: Specify different paddings for different directions. \n
222      * .value[0].f32: top padding, in vp.\n
223      * .value[1].f32: right padding, in vp.\n
224      * .value[2].f32: bottom padding, in vp.\n
225      * .value[3].f32: left padding, in vp.\n
226      * \n
227      * Format of the return value {@link ArkUI_AttributeItem}:\n
228      * .value[0].f32: top padding, in vp.\n
229      * .value[1].f32: right padding, in vp.\n
230      * .value[2].f32: bottom padding, in vp.\n
231      * .value[3].f32: left padding, in vp.\n
232      *
233      */
234     NODE_PADDING,
235     /**
236      * @brief Defines the component ID attribute, which can be set, reset, and obtained as required through APIs.
237      *
238      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
239      * .string: component ID.\n
240      * \n
241      * Format of the return value {@link ArkUI_AttributeItem}:\n
242      * .string: component ID.\n
243      *
244      */
245     NODE_ID,
246     /**
247      * @brief Defines the interactivity attribute, which can be set, reset, and obtained as required through APIs.
248      *
249      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
250      * .value[0].i32: The value <b>true</b> means that the component can interact with users, and <b>false</b> means
251      * the opposite.\n
252      * \n
253      * Format of the return value {@link ArkUI_AttributeItem}:\n
254      * .value[0].i32: The value <b>1</b> means that the component can interact with users, and <b>0</b> means
255      * the opposite. \n
256      *
257      */
258     NODE_ENABLED,
259     /**
260      * @brief Defines the margin attribute, which can be set, reset, and obtained as required through APIs.
261      *
262      * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
263      * 1: Specify the same margin for the four directions. \n
264      * .value[0].f32: margin, in vp.\n
265      * 2: Specify different margins for different directions. \n
266      * .value[0].f32: top margin, in vp.\n
267      * .value[1].f32: right margin, in vp.\n
268      * .value[2].f32: bottom margin, in vp.\n
269      * .value[3].f32: left margin, in vp.\n
270      * \n
271      * Format of the return value {@link ArkUI_AttributeItem}:\n
272      * .value[0].f32: top margin, in vp.\n
273      * .value[1].f32: right margin, in vp.\n
274      * .value[2].f32: bottom margin, in vp.\n
275      * .value[3].f32: left margin, in vp.\n
276      *
277      */
278     NODE_MARGIN,
279     /**
280      * @brief Defines the translate attribute, which can be set, reset, and obtained as required through APIs.
281      *
282      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
283      * .value[0].f32: distance to translate along the x-axis, in vp. The default value is <b>0</b>.\n
284      * .value[1].f32: distance to translate along the y-axis, in vp. The default value is <b>0</b>.\n
285      * .value[2].f32: distance to translate along the z-axis, in vp. The default value is <b>0</b>. \n
286      * \n
287      * Format of the return value {@link ArkUI_AttributeItem}:\n
288      * .value[0].f32: distance to translate along the x-axis, in vp.\n
289      * .value[1].f32: distance to translate along the y-axis, in vp.\n
290      * .value[2].f32: distance to translate along the z-axis, in vp. \n
291      *
292      */
293     NODE_TRANSLATE,
294     /**
295      * @brief Defines the scale attribute, which can be set, reset, and obtained as required through APIs.
296      *
297      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
298      * .value[0].f32: scale factor along the x-axis. The default value is <b>1</b>.\n
299      * .value[1].f32: scale factor along the y-axis. The default value is <b>1</b>. \n
300      * \n
301      * Format of the return value {@link ArkUI_AttributeItem}:\n
302      * .value[0].f32: scale factor along the x-axis.\n
303      * .value[1].f32: scale factor along the y-axis. \n
304      *
305      */
306     NODE_SCALE,
307     /**
308      * @brief Defines the rotate attribute, which can be set, reset, and obtained as required through APIs.
309      *
310      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
311      * .value[0].f32: X coordinate of the rotation axis vector. The default value is <b>0</b>.\n
312      * .value[1].f32: Y coordinate of the rotation axis vector. The default value is <b>0</b>.\n
313      * .value[2].f32: Z coordinate of the rotation axis vector. The default value is <b>0</b>.\n
314      * .value[3].f32: rotation angle. The default value is <b>0</b>.\n
315      * .value[4].f32: line of sight, that is, the distance from the viewpoint to the z=0 plane, in vp.
316      * The default value is <b>0</b>. \n
317      * \n
318      * Format of the return value {@link ArkUI_AttributeItem}:\n
319      * .value[0].f32: X coordinate of the rotation axis vector.\n
320      * .value[1].f32: Y coordinate of the rotation axis vector.\n
321      * .value[2].f32: Z coordinate of the rotation axis vector.\n
322      * .value[3].f32: rotation angle.\n
323      * .value[4].f32: line of sight, that is, the distance from the viewpoint to the z=0 plane, in vp. \n
324      *
325      */
326     NODE_ROTATE,
327     /**
328      * @brief Sets the brightness attribute, which can be set, reset, and obtained as required through APIs.
329      *
330      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
331      * .value[0].f32: brightness value. The default value is <b>1.0</b>, and the recommended value range is [0, 2]. \n
332      * \n
333      * Format of the return value {@link ArkUI_AttributeItem}:\n
334      * .value[0].f32: brightness value. \n
335      *
336      */
337     NODE_BRIGHTNESS,
338     /**
339      * @brief Sets the saturation attribute, which can be set, reset, and obtained as required through APIs.
340      *
341      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
342      * .value[0].f32: saturation value. The default value is <b>1.0</b>, and the recommended value range is [0, 50]. \n
343      * \n
344      * Format of the return value {@link ArkUI_AttributeItem}: \n
345      * .value[0].f32: saturation value. \n
346      *
347      */
348     NODE_SATURATION,
349     /**
350      * @brief Sets the blur attribute, which can be set, reset, and obtained as required through APIs.
351      *
352      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
353      * .value[0].f32: blur radius. A larger value indicates a higher blur degree. If the value is <b>0</b>,
354      * the component is not blurred. The unit is vp. The default value is <b>0.0</b>. \n
355      * \n
356      * Format of the return value {@link ArkUI_AttributeItem}:\n
357      * .value[0].f32: blur radius. The larger the fuzzy radius, the more blurred the image. If the value is <b>0</b>,
358      * the image is not blurred. The unit is vp. \n
359      *
360      */
361     NODE_BLUR,
362     /**
363      * @brief Sets the gradient attribute, which can be set, reset, and obtained as required through APIs.
364      *
365      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
366      * .value[0].f32: start angle of the linear gradient. A positive value indicates a clockwise rotation from the
367      * origin, (0, 0). The default value is <b>180</b>.\n
368      * .value[1].i32: direction of the linear gradient. It does not take effect when <b>angle</b> is set.
369      * The parameter type is {@link ArkUI_LinearGradientDirection}. \n
370      * .value[2].i32: whether the colors are repeated. The default value is <b>false</b>. \n
371      * .object: array of color stops, each of which consists of a color and its stop position.
372      * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
373      * colors: colors of the color stops. \n
374      * stops: stop positions of the color stops. \n
375      * size: number of colors. \n
376      * \n
377      * Format of the return value {@link ArkUI_AttributeItem}:\n
378      * .value[0].f32: start angle of the linear gradient. \n
379      * .value[1].i32: direction of the linear gradient. It does not take effect when <b>angle</b> is set. \n
380      * .value[2].i32: whether the colors are repeated. \n
381      * .object: array of color stops, each of which consists of a color and its stop position.
382      * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
383      * colors: colors of the color stops. \n
384      * stops: stop positions of the color stops. \n
385      * size: number of colors. \n
386      *
387      */
388     NODE_LINEAR_GRADIENT,
389     /**
390      * @brief Sets the alignment attribute, which can be set, reset, and obtained as required through APIs.
391      *
392      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
393      * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}.
394      * The default value is <b>ARKUI_ALIGNMENT_CENTER</b>. \n
395      * \n
396      * Format of the return value {@link ArkUI_AttributeItem}:\n
397      * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}. \n
398      *
399      */
400     NODE_ALIGNMENT,
401     /**
402      * @brief Defines the opacity attribute, which can be set, reset, and obtained as required through APIs.
403      *
404      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
405      * .value[0].f32: opacity value. The value ranges from 0 to 1. \n
406      * \n
407      * Format of the return value {@link ArkUI_AttributeItem}:\n
408      * .value[0].f32: opacity value. The value ranges from 0 to 1. \n
409      *
410      */
411     NODE_OPACITY,
412     /**
413      * @brief Defines the border width attribute, which can be set, reset, and obtained as required through APIs.
414      *
415      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
416      * 1: .value[0].f32: width of the four borders. \n
417      * 2: .value[0].f32: width of the top border. \n
418      * .value[1].f32: width of the right border. \n
419      * .value[2].f32: width of the bottom border. \n
420      * .value[3].f32: width of the left border. \n
421      * \n
422      * Format of the return value {@link ArkUI_AttributeItem}:\n
423      * .value[0].f32: width of the top border. \n
424      * .value[1].f32: width of the right border. \n
425      * .value[2].f32: width of the bottom border. \n
426      * .value[3].f32: width of the left border. \n
427      *
428      */
429     NODE_BORDER_WIDTH,
430     /**
431      * @brief Defines the border corner radius attribute, which can be set, reset, and obtained as required through APIs.
432      *
433      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
434      * 1: .value[0].f32: radius of the four corners. \n
435      * 2: .value[0].f32: radius of the upper left corner. \n
436      * .value[1].f32: radius of the upper right corner. \n
437      * .value[2].f32: radius of the lower left corner. \n
438      * .value[3].f32: radius of the lower right corner. \n
439      * \n
440      * Format of the return value {@link ArkUI_AttributeItem}:\n
441      * .value[0].f32: radius of the upper left corner. \n
442      * .value[1].f32: radius of the upper right corner. \n
443      * .value[2].f32: radius of the lower left corner. \n
444      * .value[3].f32: radius of the lower right corner. \n
445      *
446      */
447     NODE_BORDER_RADIUS,
448     /**
449      * @brief Defines the border color attribute, which can be set, reset, and obtained as required through APIs.
450      *
451      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
452      * 1: .value[0].u32: color of the four borders, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
453      * 2: .value[0].u32: color of the top border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
454      * .value[1].u32: color of the right border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
455      * .value[2].u32: color of the lower border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
456      * .value[3].u32: color of the left border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
457      * \n
458      * Format of the return value {@link ArkUI_AttributeItem}:\n
459      * .value[0].u32: color of the top border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
460      * .value[1].u32: color of the right border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
461      * .value[2].u32: color of the lower border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
462      * .value[3].u32: color of the left border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
463      *
464      */
465     NODE_BORDER_COLOR,
466     /**
467      * @brief Defines the border line style attribute, which can be set, reset, and obtained as required through APIs.
468      *
469      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
470      * 1: .value[0].i32: line style of the four borders. The parameter type is {@link ArkUI_BorderStyle}.
471      * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
472      * 2: .value[0].i32: line style of the top border. The parameter type is {@link ArkUI_BorderStyle}.
473      * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
474      * .value[1].i32: line style of the right border. The parameter type is {@link ArkUI_BorderStyle}.
475      * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
476      * .value[2].i32: line style of the bottom border. The parameter type is {@link ArkUI_BorderStyle}.
477      * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
478      * .value[3].i32: line style of the left border. The parameter type is {@link ArkUI_BorderStyle}.
479      * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
480      * \n
481      * Format of the return value {@link ArkUI_AttributeItem}:\n
482      * .value[0].i32: line style of the top border. \n
483      * .value[1].i32: line style of the right border. \n
484      * .value[2].i32: line style of the bottom border. \n
485      * .value[3].i32: line style of the left border. \n
486      *
487      */
488     NODE_BORDER_STYLE,
489     /**
490      * @brief Defines the z-index attribute for the stack sequence.
491      * This attribute can be set, reset, and obtained as required through APIs.
492      *
493      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
494      * .value[0].f32: z-index value. \n
495      * \n
496      * Format of the return value {@link ArkUI_AttributeItem}:\n
497      * .value[0].f32: z-index value. \n
498      *
499      */
500     NODE_Z_INDEX,
501     /**
502      * @brief Defines the visibility attribute, which can be set, reset, and obtained as required through APIs.
503      *
504      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
505      * .value[0].i32: whether to show or hide the component. The parameter type is {@link ArkUI_Visibility}.
506      * The default value is <b>ARKUI_VISIBILITY_VISIBLE</b>. \n
507      * \n
508      * Format of the return value {@link ArkUI_AttributeItem}:\n
509      * .value[0].i32: whether to show or hide the component. The parameter type is {@link ArkUI_Visibility}.
510      * The default value is <b>ARKUI_VISIBILITY_VISIBLE</b>. \n
511      *
512      */
513     NODE_VISIBILITY,
514     /**
515      * @brief Defines the clip attribute, which can be set, reset, and obtained as required through APIs.
516      *
517      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
518      * .value[0].i32: whether to clip the component based on the parent container bounds.
519      * The value <b>0</b> means to clip the component, and <b>1</b> means the opposite. \n
520      * \n
521      * Format of the return value {@link ArkUI_AttributeItem}:\n
522      * .value[0].i32: whether to clip the component based on the parent container bounds.
523      * The value <b>0</b> means to clip the component, and <b>1</b> means the opposite. \n
524      *
525      */
526     NODE_CLIP,
527     /**
528      * @brief Defines the clipping region on the component.
529      * This attribute can be set and obtained as required through APIs.
530      *
531      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute,
532      * which supports five types of shapes:\n
533      * 1. Rectangle:\n
534      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
535      * The value is <b>ARKUI_CLIP_TYPE_RECTANGLE</b> for the rectangle shape.\n
536      * .value[1].f32: width of the rectangle.\n
537      * .value[2].f32: height of rectangle.\n
538      * .value[3].f32: width of the rounded corner of the rectangle.\n
539      * .value[4].f32: height of the rounded corner of the rectangle.\n
540      * 2. Circle:\n
541      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
542      * The value is <b>ARKUI_CLIP_TYPE_CIRCLE</b> for the circle shape.\n
543      * .value[1].f32: width of the circle.\n
544      * .value[2].f32: height of the circle.\n
545      * 3. Ellipse:\n
546      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
547      * The value is <b>ARKUI_CLIP_TYPE_ELLIPSE</b> for the ellipse shape.\n
548      * .value[1].f32: width of the ellipse.\n
549      * .value[2].f32: height of the ellipse.\n
550      * 4. Path:\n
551      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
552      * The value is <b>ARKUI_CLIP_TYPE_PATH</b> for the path shape.\n
553      * .value[1].f32: width of the path.\n
554      * .value[2].f32: height of the path.\n
555      * .string: command for drawing the path.\n
556      * Format of the return value {@link ArkUI_AttributeItem}, which supports five types of shapes:\n
557      * 1. Rectangle:\n
558      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
559      * The value is <b>ARKUI_CLIP_TYPE_RECTANGLE</b> for the rectangle shape.\n
560      * .value[1].f32: width of the rectangle.\n
561      * .value[2].f32: height of rectangle.\n
562      * .value[3].f32: width of the rounded corner of the rectangle.\n
563      * .value[4].f32: height of the rounded corner of the rectangle.\n
564      * 2. Circle:\n
565      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
566      * The value is <b>ARKUI_CLIP_TYPE_CIRCLE</b> for the circle shape.\n
567      * .value[1].f32: width of the circle.\n
568      * .value[2].f32: height of the circle.\n
569      * 3. Ellipse:\n
570      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
571      * The value is <b>ARKUI_CLIP_TYPE_ELLIPSE</b> for the ellipse shape.\n
572      * .value[1].f32: width of the ellipse.\n
573      * .value[2].f32: height of the ellipse.\n
574      * 4. Path:\n
575      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
576      * The value is <b>ARKUI_CLIP_TYPE_PATH</b> for the path shape.\n
577      * .value[1].f32: width of the path.\n
578      * .value[2].f32: height of the path.\n
579      * .string: command for drawing the path.\n
580      *
581      */
582     NODE_CLIP_SHAPE,
583     /**
584      * @brief Defines the transform attribute, which can be used to translate, rotate, and scale images.
585      * This attribute can be set, reset, and obtained as required through APIs.
586      *
587      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
588      * .data[0...15].f32: 16 floating-point numbers. \n
589      * \n
590      * Format of the return value {@link ArkUI_AttributeItem}:\n
591      * .data[0...15].f32: 16 floating-point numbers. \n
592      *
593      */
594     NODE_TRANSFORM,
595     /**
596      * @brief Defines the hit test behavior attribute, which can be set, reset, and obtained as required through APIs.
597      *
598      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
599      * .value[0].i32: hit test mode. The parameter type is {@link ArkUI_HitTestMode}.
600      * The default value is <b>ARKUI_HIT_TEST_MODE_DEFAULT</b>. \n
601      * \n
602      * Format of the return value {@link ArkUI_AttributeItem}:\n
603      * .value[0].i32: hit test mode. The parameter type is {@link ArkUI_HitTestMode}.
604      * The default value is <b>ARKUI_HIT_TEST_MODE_DEFAULT</b>. \n
605      *
606      */
607     NODE_HIT_TEST_BEHAVIOR,
608     /**
609      * @brief Defines the offset attribute, which specifies the offset of the component's upper left corner relative
610      * to the parent container's. This attribute can be set, reset, and obtained as required through APIs.
611      *
612      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
613      * .value[0].f32: X coordinate. \n
614      * .value[1].f32: Y coordinate. \n
615      * \n
616      * Format of the return value {@link ArkUI_AttributeItem}:\n
617      * .value[0].f32: X coordinate. \n
618      * .value[1].f32: Y coordinate. \n
619      *
620      */
621     NODE_POSITION,
622     /**
623      * @brief Defines the shadow attribute, which can be set, reset, and obtained as required through APIs.
624      *
625      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
626      * .value[0].i32: shadow effect. The parameter type is {@link ArkUI_ShadowStyle}. \n
627      * \n
628      * Format of the return value {@link ArkUI_AttributeItem}:\n
629      * .value[0].i32: shadow effect. The parameter type is {@link ArkUI_ShadowStyle}. \n
630      *
631      */
632     NODE_SHADOW,
633     /**
634      * @brief Defines the custom shadow effect. This attribute can be set, reset, and obtained as required through APIs.
635      *
636      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
637      * .value[0]?.f32: blur radius of the shadow, in vp.\n
638      * .value[1]?.i32: whether to enable the coloring strategy. The value <b>1</b> means to enable the coloring
639      * strategy, and <b>0</b> (default value) means the opposite.\n
640      * .value[2]?.f32: offset of the shadow along the x-axis, in px.\n
641      * .value[3]?.f32: offset of the shadow along the y-axis, in px.\n
642      * .value[4]?.i32: shadow type {@link ArkUI_ShadowType}. The default value is <b>ARKUI_SHADOW_TYPE_COLOR</b>.\n
643      * .value[5]?.u32: shadow color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
644      * .value[6]?.u32: whether to fill the shadow. The value <b>1</b> means to fill the shadow, and <b>0</b>
645      * means the opposite.\n
646      *
647      * \n
648      * Format of the return value {@link ArkUI_AttributeItem}:\n
649      * .value[0].f32: blur radius of the shadow, in vp.\n
650      * .value[1].i32: whether to enable the coloring strategy. \n
651      * .value[2].f32: offset of the shadow along the x-axis, in px.\n
652      * .value[3].f32: offset of the shadow along the y-axis, in px.\n
653      * .value[4].i32: shadow type {@link ArkUI_ShadowType}. The default value is <b>ARKUI_SHADOW_TYPE_COLOR</b>.\n
654      * .value[5].u32: shadow color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
655      * .value[6].u32: whether to fill the shadow. The value <b>1</b> means to fill the shadow, and <b>0</b>
656      * means the opposite.\n
657      *
658      */
659     NODE_CUSTOM_SHADOW,
660     /**
661      * @brief Defines the background image width and height.
662      * This attribute can be set, reset, and obtained as required through APIs.
663      *
664      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
665      * .value[0].f32: width of the image. The value range is [0, +∞), and the unit is vp. \n
666      * .value[1].f32: height of the image. The value range is [0, +∞), and the unit is vp. \n
667      * \n
668      * Format of the return value {@link ArkUI_AttributeItem}:\n
669      * .value[0].f32: width of the image, in vp. \n
670      * .value[1].f32: height of the image, in vp. \n
671      *
672      */
673     NODE_BACKGROUND_IMAGE_SIZE,
674     /**
675      * @brief Defines the background image size.
676      * This attribute can be set, reset, and obtained as required through APIs.
677      *
678      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
679      * .value[0].i32: size of the background image. The value is an enum of {@link ArkUI_ImageSize}. \n
680      * \n
681      * Format of the return value {@link ArkUI_AttributeItem}:\n
682      * .value[0].i32: size of the background image. The value is an enum of {@link ArkUI_ImageSize}. \n
683      *
684      */
685     NODE_BACKGROUND_IMAGE_SIZE_WITH_STYLE,
686     /**
687      * @brief Defines the background blur attribute, which can be set, reset, and obtained as required through APIs.
688      *
689      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
690      * .value[0].i32: blue type. The value is an enum of {@link ArkUI_BlurStyle}. \n
691      * .value[1]?.i32: color mode. The value is an enum of {@link ArkUI_ColorMode}. \n
692      * .value[2]?.i32: adaptive color mode. The value is an enum of {@link ArkUI_AdaptiveColor}. \n
693      * .value[3]?.f32: blur degree. The value range is [0.0, 1.0]. \n
694      * .value[4]?.f32: start boundary of grayscale blur. \n
695      * .value[5]?.f32: end boundary of grayscale blur. \n
696      * \n
697      * Format of the return value {@link ArkUI_AttributeItem}:\n
698      * .value[0].i32: blue type. The value is an enum of {@link ArkUI_BlurStyle}. \n
699      * .value[1].i32: color mode. The value is an enum of {@link ArkUI_ColorMode}. \n
700      * .value[2].i32: adaptive color mode. The value is an enum of {@link ArkUI_AdaptiveColor}. \n
701      * .value[3].f32: blur degree. The value range is [0.0, 1.0]. \n
702      * .value[4].f32: start boundary of grayscale blur. \n
703      * .value[5].f32: end boundary of grayscale blur. \n
704      *
705      */
706     NODE_BACKGROUND_BLUR_STYLE,
707     /**
708      * @brief Defines the transform center attribute, which can be set, reset, and obtained as required through APIs.
709      *
710      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
711      * .value[0]?.f32: X coordinate of the center point, in vp.\n
712      * .value[1]?.f32: Y coordinate of the center point, in vp.\n
713      * .value[2]?.f32: Z coordinate of the center point, in vp.\n
714      * .value[3]?.f32 : X coordinate of the center point, expressed in a number that represents a percentage.
715      * For example, 0.2 indicates 20%. This attribute overwrites value[0].f32. The default value is <b>0.5f</b>. \n
716      * .value[4]?.f32 : Y coordinate of the center point, expressed in a number that represents a percentage.
717      * For example, 0.2 indicates 20%. This attribute overwrites value[1].f32. The default value is <b>0.5f</b>. \n
718      * .value[5]?.f32 : Z coordinate of the center point, expressed in a number that represents a percentage.
719      * For example, 0.2 indicates 20%. This attribute overwrites value[2].f32. The default value is <b>0.0f</b>. \n
720      * \n
721      * Format of the return value {@link ArkUI_AttributeItem}:\n
722      * .value[0].f32: X coordinate of the center point, in vp.\n
723      * .value[1].f32: Y coordinate of the center point, in vp.\n
724      * .value[2].f32: Z coordinate of the center point, in vp.\n
725      * Note: If the coordinate is expressed in a number that represents a percentage, the attribute obtaining API
726      * returns the calculated value in vp.
727      *
728      */
729     NODE_TRANSFORM_CENTER,
730     /**
731      * @brief Defines the transition opacity attribute, which can be set, reset, and obtained as required through APIs.
732      *
733      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
734      * .value[0].f32: opacity values of the start and end points.\n
735      * .value[1].i32: animation duration, in milliseconds.\n
736      * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
737      * .value[3]?.i32: animation delay duration, in milliseconds.\n
738      * .value[4]?.i32: number of times that the animation is played.\n
739      * .value[5]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}.\n
740      * .value[6]?.f32: animation playback speed.\n
741      * \n
742      * Format of the return value {@link ArkUI_AttributeItem}:\n
743      * .value[0].f32: opacity values of the start and end points.\n
744      * .value[1].i32: animation duration, in milliseconds.\n
745      * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
746      * .value[3].i32: animation delay duration, in milliseconds. \n
747      * .value[4].i32: number of times that the animation is played. \n
748      * .value[5].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
749      * .value[6].f32: animation playback speed. \n
750      *
751      */
752     NODE_OPACITY_TRANSITION,
753     /**
754      * @brief Defines the transition rotation attribute, which can be set, reset, and obtained as required through APIs.
755      *
756      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
757      * .value[0].f32: X-component of the rotation vector. \n
758      * .value[1].f32: Y-component of the rotation vector. \n
759      * .value[2].f32: Z-component of the rotation vector \n
760      * .value[3].f32: angle. \n
761      * .value[4].f32: line of sight. The default value is <b>0.0f</b>. \n
762      * .value[5].i32: animation duration, in milliseconds. \n
763      * .value[6].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
764      * .value[7]?.i32: animation delay duration, in milliseconds. \n
765      * .value[8]?.i32: number of times that the animation is played. \n
766      * .value[9]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
767      * .value[10]?.f32: animation playback speed. \n
768      * \n
769      * Format of the return value {@link ArkUI_AttributeItem}:\n
770      * .value[0].f32: X-component of the rotation vector. \n
771      * .value[1].f32: Y-component of the rotation vector. \n
772      * .value[2].f32: Z-component of the rotation vector \n
773      * .value[3].f32: angle. \n
774      * .value[4].f32: line of sight. \n
775      * .value[5].i32: animation duration, in milliseconds. \n
776      * .value[6].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
777      * .value[7].i32: animation delay duration, in milliseconds. \n
778      * .value[8].i32: number of times that the animation is played. \n
779      * .value[9].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
780      * .value[10].f32: animation playback speed. \n
781      *
782      */
783     NODE_ROTATE_TRANSITION,
784     /**
785      * @brief Defines the transition scaling attribute, which can be set, reset, and obtained as required through APIs.
786      *
787      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
788      * .value[0].f32: scale factor along the x-axis. \n
789      * .value[1].f32: scale factor along the y-axis. \n
790      * .value[2].f32: scale factor along the z-axis. \n
791      * .value[3].i32: animation duration, in milliseconds. \n
792      * .value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
793      * .value[5]?.i32: animation delay duration, in milliseconds. \n
794      * .value[6]?.i32: number of times that the animation is played. \n
795      * .value[7]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
796      * .value[8]?.f32: animation playback speed. \n
797      * \n
798      * Format of the return value {@link ArkUI_AttributeItem}:\n
799      * .value[0].f32: scale factor along the x-axis. \n
800      * .value[1].f32: scale factor along the y-axis. \n
801      * .value[2].f32: scale factor along the z-axis. \n
802      * .value[3].i32: animation duration, in milliseconds. \n
803      * .value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
804      * .value[5].i32: animation delay duration, in milliseconds. \n
805      * .value[6].i32: number of times that the animation is played. \n
806      * .value[7].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
807      * .value[8].f32: animation playback speed. \n
808      *
809      */
810     NODE_SCALE_TRANSITION,
811     /**
812      * @brief Defines the transition translation attribute.
813      * This attribute can be set, reset, and obtained as required through APIs.
814      *
815      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
816      * value[0].f32: translation distance along the x-axis, in vp.\n
817      * value[1].f32: translation distance along the y-axis, in vp.\n
818      * value[2].f32: translation distance along the z-axis, in vp.\n
819      * value[3].i32: animation duration, in milliseconds. \n
820      * value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
821      * value[5]?.i32: animation delay duration, in milliseconds. \n
822      * value[6]?.i32: number of times that the animation is played. \n
823      * value[7]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
824      * value[8]?.f32: animation playback speed. \n
825      * \n
826      * Format of the return value {@link ArkUI_AttributeItem}:\n
827      * value[0].f32: translation distance along the x-axis, in vp.\n
828      * value[1].f32: translation distance along the y-axis, in vp.\n
829      * value[2].f32: translation distance along the z-axis, in vp.\n
830      * value[3].i32: animation duration, in milliseconds. \n
831      * value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
832      * value[5].i32: animation delay duration, in milliseconds. \n
833      * value[6].i32: number of times that the animation is played. \n
834      * value[7].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
835      * value[8].f32: animation playback speed. \n
836      *
837      */
838     NODE_TRANSLATE_TRANSITION,
839     /**
840      * @brief Defines the slide-in and slide-out of the component from the screen edge during transition.
841      * This attribute can be set, reset, and obtained as required through APIs.
842      *
843      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
844      * .value[0].i32: The parameter type is {@link ArkUI_TransitionEdge}. \n
845      * .value[1].i32: animation duration, in milliseconds.\n
846      * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
847      * .value[3]?.i32: animation delay duration, in milliseconds. \n
848      * .value[4]?.i32: number of times that the animation is played. \n
849      * .value[5]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
850      * .value[6]?.f32: animation playback speed. \n
851      * \n
852      * Format of the return value {@link ArkUI_AttributeItem}:\n
853      * .value[0].i32: The parameter type is {@link ArkUI_TransitionEdge}. \n
854      * .value[1].i32: animation duration, in milliseconds.\n
855      * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
856      * .value[3].i32: animation delay duration, in milliseconds. \n
857      * .value[4].i32: number of times that the animation is played. \n
858      * .value[5].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
859      * .value[6].f32: animation playback speed. \n
860      *
861      */
862     NODE_MOVE_TRANSITION,
863 
864     /**
865      * @brief Defines the focus attribute, which can be set, reset, and obtained as required through APIs.
866      *
867      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
868      * .value[0].i32: The parameter type is 1 or 0.
869      * \n
870      * Format of the return value {@link ArkUI_AttributeItem}:\n
871      * .value[0].i32: The parameter type is 1 or 0.
872      *
873      */
874     NODE_FOCUSABLE,
875 
876     /**
877      * @brief Defines the default focus attribute, which can be set, reset, and obtained as required through APIs.
878      *
879      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
880      * value[0].i32: The parameter type is 1 or 0.
881      * \n
882      * Format of the return value {@link ArkUI_AttributeItem}:\n
883      * value[0].i32: The parameter type is 1 or 0.
884      *
885      */
886     NODE_DEFAULT_FOCUS,
887 
888     /**
889      * @brief Defines the touch target attribute, which can be set, reset, and obtained as required through APIs.
890      *
891      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
892      * .data[0].f32: X coordinate of the touch point relative to the upper left corner of the component, in vp. \n
893      * .data[1].f32: Y coordinate of the touch point relative to the upper left corner of the component, in vp. \n
894      * .data[2].f32: width of the touch target, in %. \n
895      * .data[3].f32: height of the touch target, in %. \n
896      * .data[4...].f32: Multiple touch targets can be set. The sequence of the parameters is the same as the preceding.
897      * \n
898      * Format of the return value {@link ArkUI_AttributeItem}:\n
899      * .data[0].f32: X coordinate of the touch point relative to the upper left corner of the component, in vp. \n
900      * .data[1].f32: Y coordinate of the touch point relative to the upper left corner of the component, in vp. \n
901      * .data[2].f32: width of the touch target, in %. \n
902      * .data[3].f32: height of the touch target, in %. \n
903      * .data[4...].f32: Multiple touch targets can be set. The sequence of the parameters is the same as the preceding.
904      *
905      */
906     NODE_RESPONSE_REGION,
907 
908     /**
909      * @brief Defines the overlay attribute, which can be set, reset, and obtained as required through APIs.
910      *
911      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
912      * .string: mask text.\n
913      * .value[0]?.i32: position of the overlay relative to the component. Optional.
914      * The parameter type is {@link ArkUI_Alignment}.
915      * The default value is <b>ARKUI_ALIGNMENT_TOP_START.</b> \n
916      * .value[1]?.f32: offset of the overlay relative to the upper left corner of itself on the x-axis, in vp. Optional. \n
917      * .value[2]?.f32: offset of the overlay relative to the upper left corner of itself on the y-axis, in vp. Optional.
918      * \n
919      * Format of the return value {@link ArkUI_AttributeItem}:\n
920      * .string: mask text.\n
921      * .value[0].i32: position of the overlay relative to the component.
922      * The parameter type is {@link ArkUI_Alignment}.
923      * The default value is <b>ARKUI_ALIGNMENT_TOP_START.</b> \n
924      * .value[1].f32: offset of the overlay relative to the upper left corner of itself on the x-axis, in vp. \n
925      * .value[2].f32: offset of the overlay relative to the upper left corner of itself on the y-axis, in vp.
926      *
927      *
928      */
929     NODE_OVERLAY,
930     /**
931      * @brief Defines the sweep gradient effect.
932      * This attribute can be set, reset, and obtained as required through APIs.
933      *
934      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
935      * .value[0]?.f32: X coordinate of the sweep gradient center relative to the upper left corner of the component.\n
936      * .value[1]?.f32: Y coordinate of the sweep gradient center relative to the upper left corner of the component.\n
937      * .value[2]?.f32: start point of the sweep gradient. The default value is <b>0</b>. \n
938      * .value[3]?.f32: end point of the sweep gradient. The default value is <b>0</b>. \n
939      * .value[4]?.f32: rotation angle of the sweep gradient. The default value is <b>0</b>. \n
940      * .value[5]?.i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
941      * and <b>0</b> means the opposite.\n
942      * .object: array of color stops, each of which consists of a color and its stop position.
943      * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
944      * colors: colors of the color stops. \n
945      * stops: stop positions of the color stops. \n
946      * size: number of colors. \n
947      * \n
948      * Format of the return value {@link ArkUI_AttributeItem}:\n
949      * .value[0].f32: X coordinate of the sweep gradient center relative to the upper left corner of the component. \n
950      * .value[1].f32: Y coordinate of the sweep gradient center relative to the upper left corner of the component. \n
951      * .value[2].f32: start point of the sweep gradient. The default value is <b>0</b>. \n
952      * .value[3].f32: end point of the sweep gradient. The default value is <b>0</b>. \n
953      * .value[4].f32: rotation angle of the sweep gradient. The default value is <b>0</b>. \n
954      * .value[5].i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
955      * and <b>0</b> means the opposite.\n
956      * .object: array of color stops, each of which consists of a color and its stop position.
957      * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
958      * colors: colors of the color stops. \n
959      * stops: stop positions of the color stops. \n
960      * size: number of colors. \n
961      *
962      */
963     NODE_SWEEP_GRADIENT,
964     /**
965      * @brief Defines the radial gradient effect.
966      * This attribute can be set, reset, and obtained as required through APIs.
967      *
968      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
969      * .value[0]?.f32: X coordinate of the radial gradient center relative to the upper left corner of the component. \n
970      * .value[1]?.f32: Y coordinate of the radial gradient center relative to the upper left corner of the component. \n
971      * .value[2]?.f32: radius of the radial gradient. The default value is <b>0</b>. \n
972      * .value[3]?.i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
973      * and <b>0</b> means the opposite. \n
974      * .object: array of color stops, each of which consists of a color and its stop position.
975      * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
976      * colors: colors of the color stops. \n
977      * stops: stop positions of the color stops. \n
978      * size: number of colors. \n
979      * \n
980      * Format of the return value {@link ArkUI_AttributeItem}:\n
981      * .value[0].f32: X coordinate of the radial gradient center relative to the upper left corner of the component. \n
982      * .value[1].f32: Y coordinate of the radial gradient center relative to the upper left corner of the component. \n
983      * .value[2].f32: radius of the radial gradient. The default value is <b>0</b>. \n
984      * .value[3].i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
985      * and <b>0</b> means the opposite.\n
986      * .object: array of color stops, each of which consists of a color and its stop position.
987      * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
988      * colors: colors of the color stops. \n
989      * stops: stop positions of the color stops. \n
990      * size: number of colors. \n
991      *
992      */
993     NODE_RADIAL_GRADIENT,
994     /**
995      * @brief Adds a mask of the specified shape to the component.
996      * This attribute can be set, reset, and obtained as required through APIs.
997      *
998      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute, which supports five types of
999      * shapes:\n
1000      * 1. Rectangle:\n
1001      * .value[0].u32 fill color, in 0xARGB format. \n
1002      * .value[1].u32: stroke color, in 0xARGB format. \n
1003      * .value[2].f32: stroke width, in vp. \n
1004      * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
1005      * The value is <b>ARKUI_MASK_TYPE_RECTANGLE</b> for the rectangle shape.\n
1006      * .value[4].f32: width of the rectangle.\n
1007      * .value[5].f32: height of the rectangle.\n
1008      * .value[6].f32: width of the rounded corner of the rectangle.\n
1009      * .value[7].f32: height of the rounded corner of the rectangle.\n
1010      * 2. Circle:\n
1011      * .value[0].u32 fill color, in 0xARGB format. \n
1012      * .value[1].u32: stroke color, in 0xARGB format. \n
1013      * .value[2].f32: stroke width, in vp. \n
1014      * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
1015      * The value is <b>ARKUI_MASK_TYPE_CIRCLE</b> for the circle shape.\n
1016      * .value[4].f32: width of the circle.\n
1017      * .value[5].f32: height of the circle.\n
1018      * 3. Ellipse:\n
1019      * .value[0].u32 fill color, in 0xARGB format. \n
1020      * .value[1].u32: stroke color, in 0xARGB format. \n
1021      * .value[2].f32: stroke width, in vp. \n
1022      * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
1023      * The value is <b>ARKUI_MASK_TYPE_ELLIPSE</b> for the ellipse shape.\n
1024      * .value[4].f32: width of the ellipse.\n
1025      * .value[5].f32: height of the ellipse.\n
1026      * 4. Path:\n
1027      * .value[0].u32 fill color, in 0xARGB format. \n
1028      * .value[1].u32: stroke color, in 0xARGB format. \n
1029      * .value[2].f32: stroke width, in vp. \n
1030      * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
1031      * The value is <b>ARKUI_MASK_TYPE_PATH</b> for the path shape.\n
1032      * .value[4].f32: width of the path.\n
1033      * .value[5].f32: height of the path.\n
1034      * .string: command for drawing the path.\n
1035      * 5. Progress:\n
1036      * .value[0].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
1037      * The value is <b>ARKUI_MASK_TYPE_PROSGRESS</b> for the progress shape.\n
1038      * .value[1].f32: current value of the progress indicator.\n
1039      * .value[2].f32: maximum value of the progress indicator.\n
1040      * .value[3].u32: color of the progress indicator.\n
1041      * \n
1042      * Format of the return value {@link ArkUI_AttributeItem}, which supports five types of shapes:\n
1043      * 1. Rectangle:\n
1044      * .value[0].u32 fill color, in 0xARGB format. \n
1045      * .value[1].u32: stroke color, in 0xARGB format. \n
1046      * .value[2].f32: stroke width, in vp. \n
1047      * .value[3].i32: mask type.\n
1048      * .value[4].f32: width of the rectangle.\n
1049      * .value[5].f32: height of the rectangle.\n
1050      * .value[6].f32: width of the rounded corner of the rectangle.\n
1051      * .value[7].f32: height of the rounded corner of the rectangle.\n
1052      * 2. Circle:\n
1053      * .value[0].u32 fill color, in 0xARGB format. \n
1054      * .value[1].u32: stroke color, in 0xARGB format. \n
1055      * .value[2].f32: stroke width, in vp. \n
1056      * .value[3].i32: mask type.\n
1057      * .value[4].f32: width of the circle.\n
1058      * .value[5].f32: height of the circle.\n
1059      * 3. Ellipse:\n
1060      * .value[0].u32 fill color, in 0xARGB format. \n
1061      * .value[1].u32: stroke color, in 0xARGB format. \n
1062      * .value[2].f32: stroke width, in vp. \n
1063      * .value[3].i32: mask type.\n
1064      * .value[4].f32: width of the ellipse.\n
1065      * .value[5].f32: height of the ellipse.\n
1066      * 4. Path:\n
1067      * .value[0].u32 fill color, in 0xARGB format. \n
1068      * .value[1].u32: stroke color, in 0xARGB format. \n
1069      * .value[2].f32: stroke width, in vp. \n
1070      * .value[3].i32: mask type.\n
1071      * .value[4].f32: width of the path.\n
1072      * .value[5].f32: height of the path.\n
1073      * .string: command for drawing the path.\n
1074      * 5. Progress:\n
1075      * .value[0].i32: mask type.\n
1076      * .value[1].f32: current value of the progress indicator.\n
1077      * .value[2].f32: maximum value of the progress indicator.\n
1078      * .value[3].u32: color of the progress indicator.\n
1079      *
1080      */
1081     NODE_MASK,
1082     /**
1083      * @brief Blends the component's background with the content of the component's child node.
1084      * This attribute can be set, reset, and obtained as required through APIs.
1085      *
1086      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1087      * .value[0].i32: blend mode. The parameter type is {@link ArkUI_BlendMode}. The default value is
1088      * <b>ARKUI_BLEND_MODE_NONE</b>. \n
1089      * .value[1].?i32: how the specified blend mode is applied. The parameter type is {@link ArkUI_BlendApplyType}.
1090      * The default value is <b>ARKUI_BLEND_APPLY_TYPE_FAST</b>. \n
1091      * \n
1092      * Format of the return value {@link ArkUI_AttributeItem}:\n
1093      * .value[0].i32: blend mode. The parameter type is {@link ArkUI_BlendMode}. The default value is
1094      * <b>ARKUI_BLEND_MODE_NONE</b>. \n
1095      * .value[1].i32: how the specified blend mode is applied. The parameter type is {@link ArkUI_BlendApplyType}.
1096      * The default value is <b>ARKUI_BLEND_APPLY_TYPE_FAST</b>. \n
1097      *
1098      */
1099     NODE_BLEND_MODE,
1100     /**
1101      * @brief Sets the direction of the main axis.
1102      * This attribute can be set, reset, and obtained as required through APIs.
1103      *
1104      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1105      * .value[0].i32: direction of the main axis.\n
1106      * The parameter type is {@link ArkUI_Direction}. The default value is <b>ARKUI_DIRECTION_AUTO</b>. \n
1107      * \n
1108      * Format of the return value {@link ArkUI_AttributeItem}:\n
1109      * .value[0].i32: direction of the main axis.\n
1110      * The parameter type is {@link ArkUI_Direction}. The default value is <b>ARKUI_DIRECTION_AUTO</b>. \n
1111      *
1112      */
1113     NODE_DIRECTION,
1114     /**
1115      * @brief Defines the size constraints.
1116      * This attribute can be set, reset, and obtained as required through APIs.
1117      *
1118      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1119      * .value[0].f32: minimum width, in vp.\n
1120      * .value[1].f32: maximum width, in vp.\n
1121      * .value[2].f32: minimum height, in vp.\n
1122      * .value[3].f32: maximum height, in vp.\n
1123      * \n
1124      * Format of the return value {@link ArkUI_AttributeItem}:\n
1125      * .value[0].f32: minimum width, in vp.\n
1126      * .value[1].f32: maximum width, in vp.\n
1127      * .value[2].f32: minimum height, in vp.\n
1128      * .value[3].f32: maximum height, in vp.\n
1129      *
1130      */
1131     NODE_CONSTRAINT_SIZE,
1132     /**
1133      * @brief Defines the grayscale effect.
1134      * This attribute can be set, reset, and obtained as required through APIs.
1135      *
1136      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1137      * .value[0].f32: grayscale conversion ratio. The value ranges from 0 to 1.
1138      * For example, 0.5 indicates a 50% grayscale conversion ratio. \n
1139      * \n
1140      * Format of the return value {@link ArkUI_AttributeItem}:\n
1141      * .value[0].f32: grayscale conversion ratio. The value ranges from 0 to 1.\n
1142      *
1143      */
1144     NODE_GRAY_SCALE,
1145     /**
1146      * @brief Inverts the image.
1147      * This attribute can be set, reset, and obtained as required through APIs.
1148      *
1149      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1150      * .value[0].f32: image inversion ratio. The value ranges from 0 to 1.
1151      * For example, 0.5 indicates a 50% image inversion ratio.\n
1152      * \n
1153      * Format of the return value {@link ArkUI_AttributeItem}:\n
1154      * .value[0].f32: image inversion ratio. The value ranges from 0 to 1.\n
1155      *
1156      */
1157     NODE_INVERT,
1158     /**
1159      * @brief Defines the sepia conversion ratio.
1160      * This attribute can be set, reset, and obtained as required through APIs.
1161      *
1162      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1163      * .value[0].f32: sepia conversion ratio. The value ranges from 0 to 1.
1164      * For example, 0.5 indicates that a 50% sepia conversion ratio.\n
1165      * \n
1166      * Format of the return value {@link ArkUI_AttributeItem}:\n
1167      * .value[0].f32: sepia conversion ratio. The value ranges from 0 to 1.\n
1168      *
1169      */
1170     NODE_SEPIA,
1171     /**
1172      * @brief Defines the contrast attribute, which can be set, reset, and obtained as required through APIs.
1173      *
1174      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1175      * .value[0].f32: contrast. If the value is <b>1</b>, the source image is displayed.
1176      * A larger value indicates a higher contrast. Value range: [0, 10).\n
1177      * \n
1178      * Format of the return value {@link ArkUI_AttributeItem}:\n
1179      * .value[0].f32: contrast. Value range: [0, 10).\n
1180      *
1181      */
1182     NODE_CONTRAST,
1183     /**
1184      * @brief Defines the foreground color attribute, which can be set, reset, and obtained as required through APIs.
1185      *
1186      * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
1187      * 1: .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
1188      * 2: .value[0].i32: color enum {@link ArkUI_ColoringStrategy}.\n
1189      * \n
1190      * Format of the return value {@link ArkUI_AttributeItem}:\n
1191      * .value[0].u32: color value, in 0xARGB format.\n
1192      *
1193      */
1194     NODE_FOREGROUND_COLOR,
1195 
1196     /**
1197      * @brief Defines the offset of the component's child relative to the component.
1198      * This attribute can be set, reset, and obtained as required through APIs.
1199      *
1200      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1201      * .value[0].f32 : offset along the x-axis, in vp. \n
1202      * .value[1].f32 : offset along the y-axis, in vp. \n
1203      * \n
1204      * Format of the return value {@link ArkUI_AttributeItem}:\n
1205      * .value[0].f32 : offset along the x-axis, in vp. \n
1206      * .value[1].f32 : offset along the y-axis, in vp. \n
1207      *
1208      */
1209     NODE_OFFSET,
1210     /**
1211      * @brief Sets the anchor for locating the component's child.
1212      * This attribute can be set, reset, and obtained as required through APIs.
1213      *
1214      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1215      * .value[0].f32: X coordinate of the anchor, in vp.\n
1216      * .value[1].f32: Y coordinate of the anchor, in vp.\n
1217      * \n
1218      * Format of the return value {@link ArkUI_AttributeItem}:\n
1219      * .value[0].f32: X coordinate of the anchor, in vp.\n
1220      * .value[1].f32: Y coordinate of the anchor, in vp.\n
1221      *
1222      */
1223     NODE_MARK_ANCHOR,
1224     /**
1225      * @brief Defines the position of the background image in the component, that is, the coordinates relative to
1226      * the upper left corner of the component. This attribute can be set, reset, and obtained as required through APIs.
1227      *
1228      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1229      * .value[0].f32: position along the x-axis, in px. \n
1230      * .value[1].f32: position along the y-axis, in px. \n
1231      * \n
1232      * Format of the return value {@link ArkUI_AttributeItem}:\n
1233      * .value[0].f32: position along the x-axis, in px. \n
1234      * .value[1].f32: position along the y-axis, in px. \n
1235      *
1236      */
1237     NODE_BACKGROUND_IMAGE_POSITION,
1238     /**
1239      * @brief Sets the alignment rules in the relative container.
1240      * This attribute can be set, reset, and obtained as required through APIs.
1241      *
1242      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1243      * .value[0]?.i32: ID of the component that functions as the anchor point for left alignment. \n
1244      * .value[1]?.i32: alignment mode relative to the anchor component for left alignment.
1245      * The value is an enum of {@link ArkUI_HorizontalAlignment}. \n
1246      * .value[2]?.i32: ID of the component that functions as the anchor point for center alignment. \n
1247      * .value[3]?.i32: alignment mode relative to the anchor component for center alignment.
1248      * The value is an enum of {@link ArkUI_HorizontalAlignment}. \n
1249      * .value[4]?.i32: ID of the component that functions as the anchor point for right alignment. \n
1250      * .value[5]?.i32: alignment mode relative to the anchor component for right alignment.
1251      * The value is an enum of {@link ArkUI_HorizontalAlignment}. \n
1252      * .value[6]?.i32: ID of the component that functions as the anchor point for top alignment. \n
1253      * .value[7]?.i32: alignment mode relative to the anchor component for top alignment.
1254      * The value is an enum of {@link ArkUI_VerticalAlignment}. \n
1255      * .value[8]?.i32: ID of the component that functions as the anchor point for center alignment in the
1256      * vertical direction. \n
1257      * .value[9]?.i32: alignment mode relative to the anchor component forcenter alignment in the vertical direction.
1258      * The value is an enum of {@link ArkUI_VerticalAlignment}. \n
1259      * .value[10]?.i32: ID of the component that functions as the anchor point for bottom alignment. \n
1260      * .value[11]?.i32: alignment mode relative to the anchor component for bottom alignment.
1261      * The value is an enum of {@link ArkUI_VerticalAlignment}. \n
1262      * .value[12]?.f32: bias value in the horizontal direction. \n
1263      * .value[13]?.f32: bias value in the vertical direction. \n
1264      * \n
1265      * Format of the return value {@link ArkUI_AttributeItem}:\n
1266      * .value[0].i32: ID of the component that functions as the anchor point for left alignment. \n
1267      * .value[1].i32: alignment mode relative to the anchor component for left alignment.
1268      * The value is an enum of {@link ArkUI_HorizontalAlignment}. \n
1269      * .value[2].i32: ID of the component that functions as the anchor point for center alignment. \n
1270      * .value[3].i32: alignment mode relative to the anchor component for center alignment.
1271      * The value is an enum of {@link ArkUI_HorizontalAlignment}. \n
1272      * .value[4].i32: ID of the component that functions as the anchor point for right alignment. \n
1273      * .value[5].i32: alignment mode relative to the anchor component for right alignment.
1274      * The value is an enum of {@link ArkUI_HorizontalAlignment}. \n
1275      * .value[6].i32: ID of the component that functions as the anchor point for top alignment. \n
1276      * .value[7].i32: alignment mode relative to the anchor component for top alignment.
1277      * The value is an enum of {@link ArkUI_VerticalAlignment}. \n
1278      * .value[8].i32: ID of the component that functions as the anchor point for center alignment in the
1279      * vertical direction. \n
1280      * .value[9].i32: alignment mode relative to the anchor component forcenter alignment in the vertical direction.
1281      * The value is an enum of {@link ArkUI_VerticalAlignment}. \n
1282      * .value[10].i32: ID of the component that functions as the anchor point for bottom alignment. \n
1283      * .value[11].i32: alignment mode relative to the anchor component for bottom alignment.
1284      * The value is an enum of {@link ArkUI_VerticalAlignment}. \n
1285      * .value[12].f32: bias value in the horizontal direction. \n
1286      * .value[13].f32: bias value in the vertical direction. \n
1287      *
1288      */
1289     NODE_ALIGN_RULES,
1290     /**
1291      * @brief Sets the alignment mode of the child components along the cross axis of the parent container.
1292      * This attribute can be set, reset, and obtained as required through APIs.
1293      *
1294      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1295      * .value[0].i32: alignment mode of the child components along the cross axis of the parent container.\n
1296      * The parameter type is {@link ArkUI_ItemAlignment}. The default value is <b>ARKUI_ITEM_ALIGNMENT_AUTO</b>. \n
1297      * \n
1298      * Format of the return value {@link ArkUI_AttributeItem}:\n
1299      * .value[0].i32: alignment mode of the child components along the cross axis of the parent container.\n
1300      * The parameter type is {@link ArkUI_ItemAlignment}. The default value is <b>ARKUI_ITEM_ALIGNMENT_AUTO</b>. \n
1301      *
1302      */
1303     NODE_ALIGN_SELF,
1304     /**
1305      * @brief Sets the percentage of the parent container's remaining space that is allocated to the component.
1306      * This attribute can be set, reset, and obtained as required through APIs.
1307      *
1308      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1309      * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
1310      * \n
1311      * Format of the return value {@link ArkUI_AttributeItem}:\n
1312      * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
1313      *
1314      */
1315     NODE_FLEX_GROW,
1316     /**
1317      * @brief Sets the percentage of the parent container's shrink size that is allocated to the component.
1318      * This attribute can be set, reset, and obtained as required through APIs.
1319      *
1320      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1321      * .value[0].f32: percentage of the parent container's shrink size that is allocated to the component. \n
1322      * \n
1323      * Format of the return value {@link ArkUI_AttributeItem}:\n
1324      * .value[0].f32: percentage of the parent container's shrink size that is allocated to the component. \n
1325      *
1326      */
1327     NODE_FLEX_SHRINK,
1328     /**
1329      * @brief Sets the base size of the component.
1330      * This attribute can be set, reset, and obtained as required through APIs.
1331      *
1332      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1333      * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
1334      * \n
1335      * Format of the return value {@link ArkUI_AttributeItem}:\n
1336      * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
1337      *
1338      */
1339     NODE_FLEX_BASIS,
1340     /**
1341      * @brief Sets the accessibility group. This attribute can be set, reset, and obtained as required through APIs.
1342      *
1343      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1344      * .value[0].i32: Accessibility group. The value <b>1</b> means that the component and all its child components
1345      * form an entire selectable component.
1346      * In this case, the accessibility service will no longer be available for the content of its child components.
1347      * The value is <b>1</b> or <b>0</b>.
1348      * \n
1349      * Format of the return value {@link ArkUI_AttributeItem}:\n
1350      * .value[0].i32: Accessibility group. The value <b>1</b> means that the component and all its child components
1351      * form an entire selectable component.
1352      * In this case, the accessibility service will no longer be available for the content of its child components.
1353      * The value is <b>1</b> or <b>0</b>.
1354      *
1355      */
1356     NODE_ACCESSIBILITY_GROUP,
1357 
1358     /**
1359      * @brief Sets the accessibility text. This attribute can be set, reset, and obtained as required through APIs.
1360      *
1361      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1362      * .string: accessibility text.
1363      * \n
1364      * Format of the return value {@link ArkUI_AttributeItem}:\n
1365      * .string: accessibility text.
1366      *
1367      */
1368     NODE_ACCESSIBILITY_TEXT,
1369 
1370     /**
1371      * @brief Sets the accessibility mode. This attribute can be set, reset, and obtained as required through APIs.
1372      *
1373      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1374      * .value[0].i32: accessibility mode. The parameter type is {@link ArkUI_AccessibilityMode}.
1375      * \n
1376      * Format of the return value {@link ArkUI_AttributeItem}:\n
1377      * .value[0].i32: accessibility mode. The parameter type is {@link ArkUI_AccessibilityMode}.
1378      *
1379      */
1380     NODE_ACCESSIBILITY_MODE,
1381 
1382     /**
1383      * @brief Sets the accessibility description.
1384      * This attribute can be set, reset, and obtained as required through APIs.
1385      *
1386      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1387      * .string: accessibility description.
1388      * \n
1389      * Format of the return value {@link ArkUI_AttributeItem}:\n
1390      * .string: accessibility description.
1391      *
1392      */
1393     NODE_ACCESSIBILITY_DESCRIPTION,
1394 
1395     /**
1396      * @brief Defines the focused state. This attribute can be set and obtained as required through APIs.
1397      *
1398      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1399      * .value[0].i32: The parameter type is 1 or 0.
1400      * \n
1401      * Format of the return value {@link ArkUI_AttributeItem}:\n
1402      * .value[0].i32: The parameter type is 1 or 0.
1403      *
1404      */
1405     NODE_FOCUS_STATUS,
1406     /**
1407      * @brief Defines the aspect ratio attribute, which can be set, reset, and obtained as required through APIs.
1408      *
1409      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1410      * .value[0].f32: aspect ratio of the component, in width/height format. \n
1411      * \n
1412      * Format of the return value {@link ArkUI_AttributeItem}:\n
1413      * .value[0].f32: aspect ratio of the component, in width/height format. \n
1414      *
1415      */
1416     NODE_ASPECT_RATIO,
1417     /**
1418      * @brief Defines the weight of the component within its row, column, or flex container for proportional
1419      * distribution of available space within the container.
1420      * This attribute can be set, reset, and obtained as required through APIs.
1421      *
1422      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1423      * .value[0].f32: weight of the component along the main axis. \n
1424      * \n
1425      * Format of the return value {@link ArkUI_AttributeItem}:\n
1426      * .value[0].f32: weight of the component along the main axis. \n
1427      *
1428      */
1429     NODE_LAYOUT_WEIGHT,
1430     /**
1431      * @brief Sets the display priority for the component in the row, column, or flex  (single-line) container.
1432      * This attribute can be set, reset, and obtained as required through APIs.
1433      *
1434      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1435      * .value[0].u32: display priority of the component in the container. \n
1436      * \n
1437      * Format of the return value {@link ArkUI_AttributeItem}:\n
1438      * .value[0].u32: display priority of the component in the container. \n
1439      *
1440      */
1441     NODE_DISPLAY_PRIORITY,
1442     /**
1443      * @brief Sets the thickness of an element's outline.
1444      *
1445      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1446      * .value[0].f32: thickness of the left outline. \n
1447      * .value[1].f32: thickness of the top outline. \n
1448      * .value[2].f32: thickness of the right outline. \n
1449      * .value[3].f32: thickness of the bottom outline. \n
1450      * \n
1451      * Format of the return value {@link ArkUI_AttributeItem}:\n
1452      * .value[0].f32: thickness of the left outline. \n
1453      * .value[1].f32: thickness of the top outline. \n
1454      * .value[2].f32: thickness of the right outline. \n
1455      * .value[3].f32: thickness of the bottom outline. \n
1456      *
1457      */
1458     NODE_OUTLINE_WIDTH,
1459     /**
1460      * @brief Defines the width attribute, which can be set, reset, and obtained as required through APIs.
1461      *
1462      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1463      * .value[0].f32: width, in percentage.\n
1464      * \n
1465      * Format of the return value {@link ArkUI_AttributeItem}:\n
1466      * .value[0].f32: width, in percentage.\n
1467      *
1468      */
1469     NODE_WIDTH_PERCENT,
1470     /**
1471      * @brief Defines the height attribute, which can be set, reset, and obtained as required through APIs.
1472      *
1473      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1474      * .value[0].f32: height, in percentage.\n
1475      * \n
1476      * Format of the return value {@link ArkUI_AttributeItem}:\n
1477      * .value[0].f32: height, in percentage.\n
1478      *
1479      */
1480     NODE_HEIGHT_PERCENT,
1481     /**
1482      * @brief Defines the padding attribute, which can be set, reset, and obtained as required through APIs.
1483      *
1484      * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
1485      * 1: Specify the same padding for the four directions. \n
1486      * .value[0].f32: padding, in percentage.\n
1487      * 2: Specify different paddings for different directions. \n
1488      * .value[0].f32: top padding, in percentage.\n
1489      * .value[1].f32: right padding, in percentage.\n
1490      * .value[2].f32: bottom padding, in percentage.\n
1491      * .value[3].f32: left padding, in percentage.\n
1492      * \n
1493      * Format of the return value {@link ArkUI_AttributeItem}:\n
1494      * .value[0].f32: top padding, in percentage.\n
1495      * .value[1].f32: right padding, in percentage.\n
1496      * .value[2].f32: bottom padding, in percentage.\n
1497      * .value[3].f32: left padding, in percentage.\n
1498      *
1499      */
1500     NODE_PADDING_PERCENT,
1501     /**
1502      * @brief Defines the margin attribute, which can be set, reset, and obtained as required through APIs.
1503      *
1504      * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
1505      * 1: Specify the same margin for the four directions. \n
1506      * .value[0].f32: margin, in percentage.\n
1507      * 2: Specify different margins for different directions. \n
1508      * .value[0].f32: top margin, in percentage.\n
1509      * .value[1].f32: right margin, in percentage.\n
1510      * .value[2].f32: bottom margin, in percentage.\n
1511      * .value[3].f32: left margin, in percentage.\n
1512      * \n
1513      * Format of the return value {@link ArkUI_AttributeItem}:\n
1514      * .value[0].f32: top margin, in percentage.\n
1515      * .value[1].f32: right margin, in percentage.\n
1516      * .value[2].f32: bottom margin, in percentage.\n
1517      * .value[3].f32: left margin, in percentage.\n
1518      *
1519      */
1520     NODE_MARGIN_PERCENT,
1521 
1522     /**
1523      * @brief The implicit shared element transition within the component supports attribute setting,
1524      * attribute reset, and attribute acquisition interfaces.
1525      *
1526      * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
1527      * .value[0]?.i32: The parameter type is 1 or 0. 2 components that share element bindings,
1528      * Whether to continue to participate in the shared element animation when the appearance element is not deleted,
1529      * the default is false, and the original position will remain unchanged if not involved. \n
1530      * .string is used to set the binding relationship. Set the id to "" to
1531      * clear the binding relationship to avoid participating in sharing behavior. \n
1532      * The id can be changed and the binding relationship re-established.
1533      * The same ID can only be bound to two components and they are in/out roles of different types.
1534      * Multiple components cannot be bound to the same id. \n
1535      *\n
1536      * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
1537      * .value[0].i32: The parameter type is 1 or 0. 2 components that share element bindings,
1538      * Whether to continue to participate in the shared element animation when the appearance element is not deleted,
1539      * the default is not false, if not involved, the original position will remain unchanged. \n
1540      * .string is used to set the binding relationship. Set the id to "" to
1541      * clear the binding relationship to avoid participating in sharing behavior. \n
1542      * The id can be changed and the binding relationship re-established.
1543      * The same ID can only be bound to two components and they are in/out roles of different types.
1544      * Multiple components cannot be bound to the same id. \n
1545      */
1546     NODE_GEOMETRY_TRANSITION,
1547 
1548     /**
1549      * @brief Specifies the parameters of the chain formed by this component as the chain head,
1550      * and supports attribute setting, attribute reset and attribute acquisition interfaces.
1551      *
1552      * Only takes effect when the parent container is RelativeContainer
1553      *
1554      * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
1555      * .value[0].i32: The direction of the chain. Enum {@link ArkUI_Axis}. \n
1556      * .value[1].i32: Chain style. Enum {@link ArkUI_RelativeLayoutChainStyle}. \n
1557      *\n
1558      * .value[0].i32: The direction of the chain. Enum {@link ArkUI_Axis}. \n
1559      * .value[1].i32: Chain style. Enum {@link ArkUI_RelativeLayoutChainStyle}. \n
1560      */
1561     NODE_RELATIVE_LAYOUT_CHAIN_MODE,
1562 
1563     /**
1564      * @brief Set the component content filling method in the process of width and height animation,
1565      * support property setting, property reset, property acquisition interface.
1566      *
1567      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1568      * .value[0].i32 Content filling mode {@link ArkUI_RenderFit}.\n
1569      * \n
1570      * Format of the return value {@link ArkUI_AttributeItem}:\n
1571      * .value[0].i32 Content filling mode {@link ArkUI_RenderFit}.\n
1572      *
1573      */
1574     NODE_RENDER_FIT,
1575 
1576     /**
1577      * @brief External stroke color properties, support property setting,
1578      * property reset and property acquisition interface.
1579      *
1580      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1581      * 1: .value[0].u32: Set the border color of the four sides uniformly, using 0xargb, such as 0xFFFF11FF. \n
1582      * 2: .value[0].u32: Set the top border color, represented by 0xargb, such as 0xFFFF11FF. \n
1583      * .value[1].u32: Set the right border color, represented by 0xargb, such as 0xFFFF11FF. \n
1584      * .value[2].u32: Set the lower side box color, denoted by 0xargb, such as 0xFFFF11FF. \n
1585      * .value[3].u32: Set the left border color, denoted by 0xargb, such as 0xFFFF11FF. \n
1586      * \n
1587      * Format of the return value {@link ArkUI_AttributeItem}:\n
1588      * .value[0].u32: Set the top border color, represented by 0xargb, such as 0xFFFF11FF. \n
1589      * .value[1].u32: Set the right border color, represented by 0xargb, such as 0xFFFF11FF. \n
1590      * .value[2].u32: Set the lower side box color, denoted by 0xargb, such as 0xFFFF11FF. \n
1591      * .value[3].u32: Set the left border color, denoted by 0xargb, such as 0xFFFF11FF. \n
1592      *
1593      */
1594     NODE_OUTLINE_COLOR,
1595 
1596     /**
1597      * @brief Set the height and width dimensions, support property setting,
1598      * property reset and property acquisition interface.
1599      *
1600      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1601      * .value[0].f32: Width value, unit is vp;\n
1602      * .value[1].f32: Height value, unit is vp;\n
1603      * \n
1604      * Format of the return value {@link ArkUI_AttributeItem}:\n
1605      * .value[0].f32: Width value, unit is vp;\n
1606      * .value[1].f32: Height value, unit is vp;\n
1607      *
1608      */
1609     NODE_SIZE,
1610 
1611     /**
1612      * @brief Set whether the current component and child component are
1613      * rendered off the screen first and then fused with the parent control,
1614      * supporting property setting, property reset and property acquisition.
1615      *
1616      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1617      * .value[0].i32: The parameter type is 1 or 0.
1618      * \n
1619      * Format of the return value {@link ArkUI_AttributeItem}:\n
1620      * .value[0].i32: The parameter type is 1 or 0.
1621      *
1622      */
1623     NODE_RENDER_GROUP,
1624 
1625     /**
1626      * @brief Add color overlay effect to components, support property setting,
1627      * property reset and property acquisition interface.
1628      *
1629      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1630      * .value[0].u32: The color of the overlay is represented by 0xargb, such as 0xFFFF11FF. \n
1631      * \n
1632      * Format of the return value {@link ArkUI_AttributeItem}:\n
1633      * .value[0].u32: The color of the overlay is represented by 0xargb, such as 0xFFFF11FF. \n
1634      *
1635      */
1636     NODE_COLOR_BLEND,
1637 
1638     /**
1639      * @brief Provide content ambiguity capability for the current component,
1640      * support property setting, property reset, property acquisition interface.
1641      *
1642      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1643      * .value[0].i32 Represents the content blurring style, and uses the {@link ArkUI_BlurStyle} enumeration value.\n
1644      * .value[1]?.i32 Represents the dark and light mode used by the content blur effect,\n
1645      * with the {@link ArkUI_ThemeColorMode} enumeration value.\n
1646      * .value[2]?.i32 The color extraction mode used to represent the content blur effect takes\n
1647      * the {@link ArkUI_AdaptiveColor} enumeration value.\n
1648      * .value[3]?.f32: blur degree. The value range is [0.0, 1.0]. \n
1649      * .value[4]?.f32 It is a gray-level fuzzy parameter. The value range is [0,127].\n
1650      * .value[5]?.f32 It is a gray-level fuzzy parameter. The value range is [0,127].\n
1651      * \n
1652      * Format of the return value {@link ArkUI_AttributeItem}:\n
1653      * .value[0].i32 Represents the content blurring style, and uses the {@link ArkUI_BlurStyle} enumeration value.\n
1654      * .value[1].i32 Represents the dark and light mode used by the content blur effect,\n
1655      * with the {@link ArkUI_ThemeColorMode} enumeration value.\n
1656      * .value[2].i32 The color extraction mode used to represent the content blur effect takes\n
1657      * the {@link ArkUI_AdaptiveColor} enumeration value.\n
1658      * .value[3].f32: blur degree. The value range is [0.0, 1.0]. \n
1659      * .value[4].f32 It is a gray-level fuzzy parameter. The value range is [0,127].\n
1660      * .value[5].f32 It is a gray-level fuzzy parameter. The value range is [0,127].\n
1661      *
1662      */
1663     NODE_FOREGROUND_BLUR_STYLE,
1664 
1665     /**
1666      * @brief Defines the component size and position for layout.
1667      * This attribute can be set, reset, and obtained as required through APIs.
1668      *
1669      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1670      * .value[0].i32: X coordinate of the component, in px. \n
1671      * .value[1].i32: Y coordinate of the component, in px. \n
1672      * .value[2].i32: width of the component, in px. \n
1673      * .value[3].i32: height of the component, in px. \n
1674      * \n
1675      * Format of the return value {@link ArkUI_AttributeItem}:\n
1676      * .value[0].i32: X coordinate of the component, in px. \n
1677      * .value[1].i32: Y coordinate of the component, in px. \n
1678      * .value[2].i32: width of the component, in px. \n
1679      * .value[3].i32: height of the component, in px. \n
1680      *
1681      */
1682     NODE_LAYOUT_RECT,
1683 
1684     /**
1685      * @brief Whether the current component supports click-to-focus capability,
1686      * which can be set, reset, and obtained as required through APIs.
1687      *
1688      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1689      * .value[0].i32: The parameter type is 1 or 0.
1690      * \n
1691      * Format of the return value {@link ArkUI_AttributeItem}:\n
1692      * .value[0].i32: The parameter type is 1 or 0.
1693      *
1694      */
1695     NODE_FOCUS_ON_TOUCH,
1696 
1697     /**
1698      * @brief Defines the border width attribute, which can be set, reset, and obtained as required through APIs.
1699      *
1700      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1701      * 1: .value[0].f32: width of the four borders, in percentage. \n
1702      * 2: .value[0].f32: width of the top border, in percentage. \n
1703      * .value[1].f32: width of the right border, in percentage. \n
1704      * .value[2].f32: width of the bottom border, in percentage. \n
1705      * .value[3].f32: width of the left border, in percentage. \n
1706      * \n
1707      * Format of the return value {@link ArkUI_AttributeItem}:\n
1708      * .value[0].f32: width of the top border, in percentage. \n
1709      * .value[1].f32: width of the right border, in percentage. \n
1710      * .value[2].f32: width of the bottom border, in percentage. \n
1711      * .value[3].f32: width of the left border, in percentage. \n
1712      *
1713      */
1714     NODE_BORDER_WIDTH_PERCENT,
1715     /**
1716      * @brief Defines the border corner radius attribute, which can be set, reset, and obtained as required through APIs.
1717      *
1718      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1719      * 1: .value[0].f32: radius of the four corners, in percentage. \n
1720      * 2: .value[0].f32: radius of the upper left corner, in percentage. \n
1721      * .value[1].f32: radius of the upper right corner, in percentage. \n
1722      * .value[2].f32: radius of the lower left corner, in percentage. \n
1723      * .value[3].f32: radius of the lower right corner, in percentage. \n
1724      * \n
1725      * Format of the return value {@link ArkUI_AttributeItem}:\n
1726      * .value[0].f32: radius of the upper left corner, in percentage. \n
1727      * .value[1].f32: radius of the upper right corner, in percentage. \n
1728      * .value[2].f32: radius of the lower left corner, in percentage. \n
1729      * .value[3].f32: radius of the lower right corner, in percentage. \n
1730      *
1731      */
1732     NODE_BORDER_RADIUS_PERCENT,
1733 
1734     /**
1735      * @brief Accessible ID, which can be obtained as required through APIs.
1736      *
1737      * Format of the return value {@link ArkUI_AttributeItem}:\n
1738      * .value[0].i32:Accessible ID.\n
1739      *
1740      */
1741     NODE_ACCESSIBILITY_ID = 87,
1742 
1743     /**
1744      * @brief Define accessible actions, which can be set, reset, and obtained as required through APIs.
1745      *
1746      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1747      * .value[0].u32:accessible action types,and uses the {@link ArkUI_AccessibilityActionType} enumeration value.\n
1748      * \n
1749      * Format of the return value {@link ArkUI_AttributeItem}:\n
1750      * .value[0].u32:accessible action types,and uses the {@link ArkUI_AccessibilityActionType} enumeration value.\n
1751      *
1752      */
1753     NODE_ACCESSIBILITY_ACTIONS = 88,
1754 
1755     /**
1756      * @brief Define accessible role, which can be set, reset, and obtained as required through APIs.
1757      *
1758      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1759      * .value[0].u32:accessible role type,and uses the {@link ArkUI_NodeType} enumeration value.\n
1760      * \n
1761      * Format of the return value {@link ArkUI_AttributeItem}:\n
1762      * .value[0].u32:accessible role type,and uses the {@link ArkUI_NodeType} enumeration value.\n
1763      *
1764      */
1765     NODE_ACCESSIBILITY_ROLE = 89,
1766 
1767     /**
1768      * @brief Define accessible state, which can be set, reset, and obtained as required through APIs.
1769      *
1770      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1771      * .object:the parameter type is {@link ArkUI_AccessibilityState}.\n
1772      * \n
1773      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1774      * .object:the parameter type is {@link ArkUI_AccessibilityState}.\n
1775      *
1776      */
1777     NODE_ACCESSIBILITY_STATE = 90,
1778 
1779     /**
1780      * @brief Define accessible value, which can be set, reset, and obtained as required through APIs.
1781      *
1782      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1783      * .object:the parameter type is {@link ArkUI_AccessibilityValue}.\n
1784      * \n
1785      * Format of the return value {@link ArkUI_AttributeItem}:\n
1786      * .object:the parameter type is {@link ArkUI_AccessibilityValue}.\n
1787      *
1788      */
1789     NODE_ACCESSIBILITY_VALUE = 91,
1790 
1791     /**
1792      * @brief defines control components to extend their security zones,
1793      * supporting property setting, property reset, and property fetching.
1794      *
1795      * Attribute setting method {@link ArkUI_AttributeItem} Parameter format:\n
1796      * .value[0]? .u32: Set of extended security zone enumerated values {@link ArkUI_SafeAreaType},
1797      * For example, ARKUI_SAFE_AREA_TYPE_SYSTEM | ARKUI_SAFE_AREA_TYPE_CUTOUT; \n
1798      * .value[1]? .u32: set of directional enum values for extended security zones {@link ArkUI_SafeAreaEdge}; \n
1799      * For example: ARKUI_SAFE_AREA_EDGE_TOP | ARKUI_SAFE_AREA_EDGE_BOTTOM; \n
1800      * \n
1801      * Attribute fetch method return value {@link ArkUI_AttributeItem} format:\n
1802      *.value[0].u32: extends the security zone. \n. \n
1803      *.value[1].u32: indicates the direction to extend the security zone. \n. \n
1804      *
1805      */
1806     NODE_EXPAND_SAFE_AREA = 92,
1807     /**
1808      * @brief Defines the visible area ratio (visible area/total area of the component) threshold for invoking the
1809      * visible area change event of the component.
1810      *
1811      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1812      * .value[...].f32: threshold array. The value range is 0 to 1.
1813      * \n
1814      * Format of the return value {@link ArkUI_AttributeItem}:\n
1815      * .value[...].f32: threshold array. \n
1816      *
1817      */
1818     NODE_VISIBLE_AREA_CHANGE_RATIO = 93,
1819 
1820     /**
1821      * @brief Sets the transition effect when the component is inserted or deleted.
1822      * This attribute can be set, and obtained as required through APIs.
1823      *
1824      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1825      * .object: transition effect. The parameter type is {@link ArkUI_TransitionEffect}. \n
1826      * \n
1827      * Format of the return value {@link ArkUI_AttributeItem}:\n
1828      * .object: transition effect. The parameter type is {@link ArkUI_TransitionEffect}. \n
1829      *
1830      */
1831     NODE_TRANSITION = 94,
1832 
1833     /**
1834      * @brief Defines the component ID.
1835      * This attribute can be obtained through APIs.
1836      *
1837      * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:\n
1838      * .value[0].i32: component ID. \n
1839      *
1840      */
1841     NODE_UNIQUE_ID = 95,
1842 
1843     /**
1844      * @brief Set the current component system focus box style.
1845      *
1846      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1847      * .value[0].f32: The distance between the focus box and the edge of the component. \n
1848      * Positive numbers represent the outer side, negative numbers represent the inner side. \n
1849      * Percentage is not supported. \n
1850      * .value[1].f32: Focus box width. Negative numbers and percentages are not supported. \n
1851      * .value[2].u32: Focus box color. \n
1852      * \n
1853      *
1854      */
1855     NODE_FOCUS_BOX = 96,
1856 
1857     /**
1858      * @brief Defines the moving distance limit for the component-bound tap gesture.
1859      * This attribute can be set as required through APIs.
1860      *
1861      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1862      * .value[0].f32: allowed moving distance of a finger, in vp. \n
1863      *
1864      */
1865     NODE_CLICK_DISTANCE = 97,
1866 
1867     /**
1868      * @brief Defines the moving distance limit for the component-bound tap gesture.
1869      * This attribute can be set as required through APIs.
1870      *
1871      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1872      * .value[0].f32: allowed moving distance of a finger, in vp. \n
1873      *
1874      */
1875     NODE_TAB_STOP = 98,
1876 
1877     /**
1878      * @brief Defines the backdrop blur attribute, which can be set, reset, and obtained as required through APIs.
1879      *
1880      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1881      * .value[0].f32:backdrop blur radius, in px. The value range is [0, +∞).\n
1882      * .value[1]?.f32:grayscale blur settings that control the brightness of the black color.\n
1883      * The value range is [0, 127].\n
1884      * .value[2]?.f32:grayscale blur settings that control the darkness of the white color.\n
1885      * The value range is [0, 127].\n
1886      * \n
1887      * Format of the return value {@link ArkUI_AttributeItem}:\n
1888      * .value[0].f32:backdrop blur radius, in px. The value range is [0, +∞).\n
1889      * .value[1].f32:grayscale blur settings that control the brightness of the black color.\n
1890      * The value range is [0, 127].\n
1891      * .value[2].f32:grayscale blur settings that control the darkness of the white color.\n
1892      * The value range is [0, 127].\n
1893      *
1894      * @since 15
1895      */
1896     NODE_BACKDROP_BLUR = 99,
1897 
1898     /*
1899      * @brief Defines the background image resizable attribute, which can be set, reset,
1900      * and obtained as required through APIs.
1901      *
1902      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1903      * .value[0].f32:width of the left edge. The unit is vp. \n
1904      * .value[1].f32:width of the top edge. The unit is vp. \n
1905      * .value[2].f32:width of the right edge. The unit is vp. \n
1906      * .value[3].f32:width of the bottom edge. The unit is vp. \n
1907      * \n
1908      * Format of the return value {@link ArkUI_AttributeItem}:\n
1909      * .value[0].f32:width of the left edge. The unit is vp. \n
1910      * .value[1].f32:width of the top edge. The unit is vp. \n
1911      * .value[2].f32:width of the right edge. The unit is vp. \n
1912      * .value[3].f32:width of the bottom edge. The unit is vp. \n
1913      *
1914      * @since 19
1915      */
1916     NODE_BACKGROUND_IMAGE_RESIZABLE_WITH_SLICE = 100,
1917 
1918     /**
1919      * @brief Sets the next focus node.
1920      *
1921      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
1922      * .value[0].i32: focus movement direction, as defined in {@link ArkUI_FocusMove}.
1923      * .object: next focus node. The parameter type is {@link ArkUI_NodeHandle}.\n
1924      * \n
1925      *
1926      */
1927     NODE_NEXT_FOCUS = 101,
1928 
1929     /**
1930      * @brief Sets the parameters for visible area change events.
1931      *
1932      * @note The visible area change callback is not a real-time callback. The actual callback interval may differ from
1933      * the expected interval due to system load and other factors.
1934      * The interval between two visible area change callbacks will not be less than the expected update interval. If the
1935      * provided expected interval is too short, the actual callback interval will be determined by the system load.
1936      * By default, the interval threshold of the visible area change callback includes 0. This means that,
1937      * if the provided threshold is [0.5], the effective threshold will be [0.0, 0.5].
1938      *
1939      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1940      * .object: parameters for visible area change events.
1941      * The parameter type is {@link ArkUI_VisibleAreaEventOptions}. \n
1942      * \n
1943      * Format of the return value {@link ArkUI_AttributeItem}:\n
1944      * .object: parameters for visible area change events.
1945      * The parameter type is {@link ArkUI_VisibleAreaEventOptions}. \n
1946      *
1947      */
1948     NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO = 102,
1949 
1950     /**
1951      * @brief Defines the translate attribute, which supports for percentile translation input, and can be set, reset,
1952      * and obtained as required through APIs.\n
1953      *
1954      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1955      * .value[0].f32: distance to translate along the x-axis. The default unit is percentage.
1956      * The unit is vp only if value[3] exists and value[3] is 0. The default value of value[0] is <b>0</b>.\n
1957      * .value[1].f32: distance to translate along the y-axis. The default unit is percentage.
1958      * The unit is vp only if value[4] exists and value[4] is 0. The default value of value[1] is <b>0</b>.\n
1959      * .value[2].f32: distance to translate along the z-axis, in vp. The default value is <b>0</b>.\n
1960      * .value[3]?.i32: Whether the translation distance along the x-axis is specified as a percentage.
1961      *  The value can be 0 or 1. When the value is 1, it is specified as a percentage.
1962      *  For example, value[0].f32=0.1 and value[3].i32=1 indicates a 10% shift in the x direction.
1963      *  The default value is <b>1</b>.\n
1964      * .value[4]?.i32: Whether the translation distance along the y-axis is specified as a percentage.
1965      *  The value can be 0 or 1. When the value is 1, it is specified as a percentage.
1966      *  For example, value[1].f32=0.1 and value[4].i32=1 indicates a 10% shift in the y direction.
1967      *  The default value is <b>1</b>.\n
1968      * \n
1969      * Format of the return value {@link ArkUI_AttributeItem}:\n
1970      * .value[0].f32: distance to translate along the x-axis. The unit depends on value[3].\n
1971      * .value[1].f32: distance to translate along the y-axis. The unit depends on value[4].\n
1972      * .value[2].f32: distance to translate along the z-axis. The unit is vp.\n
1973      * .value[3].i32: Whether the unit of the X-axis translation distance is in percentage. When value[3].i32 is 0,
1974      *  the unit of the X-axis translation distance is vp; when value[3].i32 is 1, the unit of the X-axis translation
1975      *  distance is percentage;\n
1976      * .value[4].i32: Whether the unit of the Y-axis translation distance is in percentage. When value[4].i32 is 0,
1977      *  the unit of the Y-axis translation distance is vp; when value[4].i32 is 1, the unit of the Y-axis translation
1978      *  distance is percentage;\n
1979      *
1980      * @since 20
1981      */
1982     NODE_TRANSLATE_WITH_PERCENT = 103,
1983 
1984     /**
1985      * @brief Defines the rotate attribute about angle, which can be set, reset, and obtained as required through APIs.
1986      *
1987      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1988      * .value[0].f32: rotation angle of the X-axis direction. The default value is <b>0</b>.\n
1989      * .value[1].f32: rotation angle of the Y-axis direction. The default value is <b>0</b>.\n
1990      * .value[2].f32: rotation angle of the Z-axis direction. The default value is <b>0</b>.\n
1991      * .value[3].f32: line of sight, that is, the distance from the viewpoint to the z=0 plane, in px.
1992      * The default value is <b>0</b>. \n
1993      * \n
1994      * Format of the return value {@link ArkUI_AttributeItem}:\n
1995      * .value[0].f32: rotation angle of the X-axis direction.\n
1996      * .value[1].f32: rotation angle of the Y-axis direction.\n
1997      * .value[2].f32: rotation angle of the Z-axis direction.\n
1998      * .value[3].f32: line of sight, that is, the distance from the viewpoint to the z=0 plane, in px. \n
1999      *
2000      * @since 20
2001      */
2002     NODE_ROTATE_ANGLE = 104,
2003 
2004     /**
2005      * @brief Defines the text content attribute, which can be set, reset, and obtained as required through APIs.
2006      *
2007      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2008      * .string: text content.\n
2009      * \n
2010      * Format of the return value {@link ArkUI_AttributeItem}:\n
2011      * .string: text content.\n
2012      */
2013     NODE_TEXT_CONTENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT,
2014     /**
2015      * @brief Defines the font color attribute, which can be set, reset, and obtained as required through APIs.
2016      *
2017      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2018      * .value[0].u32: font color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
2019      * \n
2020      * Format of the return value {@link ArkUI_AttributeItem}:\n
2021      * .value[0].u32: font color value, in 0xARGB format.\n
2022      *
2023      */
2024     NODE_FONT_COLOR,
2025     /**
2026      * @brief Defines the font size attribute, which can be set, reset, and obtained as required through APIs.
2027      *
2028      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2029      * .value[0].f32: font size, in fp.\n
2030      * \n
2031      * Format of the return value {@link ArkUI_AttributeItem}:\n
2032      * .value[0].f32: font size, in fp.\n
2033      *
2034      */
2035     NODE_FONT_SIZE,
2036     /**
2037      * @brief Defines the font style attribute, which can be set, reset, and obtained as required through APIs.
2038      *
2039      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2040      * .value[0].i32: font style {@link ArkUI_FontStyle}. The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.\n
2041      * \n
2042      * Format of the return value {@link ArkUI_AttributeItem}:\n
2043      * .value[0].i32: font style {@link ArkUI_FontStyle}.\n
2044      *
2045      */
2046     NODE_FONT_STYLE,
2047     /**
2048      * @brief Defines the font weight attribute, which can be set, reset, and obtained as required through APIs.
2049      *
2050      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2051      * .value[0].i32: font weight {@link ArkUI_FontWeight}. The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>.\n
2052      * \n
2053      * Format of the return value {@link ArkUI_AttributeItem}:\n
2054      * .value[0].i32: font weight {@link ArkUI_FontWeight}.\n
2055      *
2056      */
2057     NODE_FONT_WEIGHT,
2058     /**
2059      * @brief Defines the text line height attribute, which can be set, reset, and obtained as required through APIs.
2060      *
2061      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2062      * .value[0].f32: line height, in fp.\n
2063      * \n
2064      * Format of the return value {@link ArkUI_AttributeItem}:\n
2065      * .value[0].f32: line height, in fp.\n
2066      *
2067      */
2068     NODE_TEXT_LINE_HEIGHT,
2069     /**
2070      * @brief Defines the text decoration style and color.
2071      * This attribute can be set, reset, and obtained as required through APIs.
2072      *
2073      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2074      * .value[0].i32: text decoration type {@link ArkUI_TextDecorationType}.
2075      * The default value is <b>ARKUI_TEXT_DECORATION_TYPE_NONE</b>.\n
2076      * .value[1]?.u32: text decoration color, in 0xARGB format. For example, 0xFFFF0000 indicates red. Optional.\n
2077      * .value[2]?.i32: text decoration style {@link ArkUI_TextDecorationStyle}. \n
2078      * \n
2079      * Format of the return value {@link ArkUI_AttributeItem}:\n
2080      * .value[0].i32: text decoration type {@link ArkUI_TextDecorationType}.\n
2081      * .value[1].u32: text decoration color, in 0xARGB format. \n
2082      * .value[2].i32: text decoration style {@link ArkUI_TextDecorationStyle}. \n
2083      *
2084      */
2085     NODE_TEXT_DECORATION,
2086     /**
2087      * @brief Defines the text case attribute, which can be set, reset, and obtained as required through APIs.
2088      *
2089      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2090      * .value[0].i32: text case.\n
2091      * \n
2092      * Format of the return value {@link ArkUI_AttributeItem}:\n
2093      * .value[0].i32: text case.\n
2094      *
2095      */
2096     NODE_TEXT_CASE,
2097     /**
2098      * @brief Defines the letter spacing attribute, which can be set, reset, and obtained as required through APIs.
2099      *
2100      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2101      * .value[0].f32: letter spacing, in fp.\n
2102      * \n
2103      * Format of the return value {@link ArkUI_AttributeItem}:\n
2104      * .value[0].f32: letter spacing, in fp.\n
2105      *
2106      */
2107     NODE_TEXT_LETTER_SPACING,
2108     /**
2109      * @brief Sets the maximum number of lines in the text.
2110      * This attribute can be set, reset, and obtained as required through APIs.
2111      *
2112      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2113      * .value[0].i32: maximum number of lines in the text.\n
2114      * \n
2115      * Format of the return value {@link ArkUI_AttributeItem}:\n
2116      * .value[0].i32: maximum number of lines in the text.\n
2117      *
2118      */
2119     NODE_TEXT_MAX_LINES,
2120     /**
2121      * @brief Horizontal alignment mode of the text.
2122      * This attribute can be set, reset, and obtained as required through APIs.
2123      *
2124      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2125      * .value[0].i32: horizontal alignment mode of the text. The value is an enum of {@link ArkUI_TextAlignment}. \n
2126      * \n
2127      * Format of the return value {@link ArkUI_AttributeItem}:\n
2128      * .value[0].i32: horizontal alignment mode of the text. The value is an enum of {@link ArkUI_TextAlignment}. \n
2129      *
2130      */
2131     NODE_TEXT_ALIGN,
2132     /**
2133      * @brief Defines the text overflow attribute, which can be set, reset, and obtained as required through APIs.
2134      *
2135      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2136      * .value[0].i32: display mode when the text is too long {@link ArkUI_TextOverflow}. \n
2137      * \n
2138      * Format of the return value {@link ArkUI_AttributeItem}:\n
2139      * .value[0].i32: display mode when the text is too long {@link ArkUI_TextOverflow}. \n
2140      *
2141      */
2142     NODE_TEXT_OVERFLOW,
2143     /**
2144      * @brief Defines the font family attribute, which can be set, reset, and obtained as required through APIs.
2145      *
2146      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2147      * .string: fonts, separated by commas (,).
2148      * \n
2149      * Format of the return value {@link ArkUI_AttributeItem}:\n
2150      * .string: fonts, separated by commas (,).
2151      *
2152      */
2153     NODE_FONT_FAMILY,
2154     /**
2155      * @brief Defines the copy option attribute, which can be set, reset, and obtained as required through APIs.
2156      *
2157      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2158      * .value[0].i32: copy option {@link ArkUI_CopyOptions}. The default value is <b>ARKUI_COPY_OPTIONS_NONE</b>.\n
2159      * \n
2160      * Format of the return value {@link ArkUI_AttributeItem}:\n
2161      * .value[0].i32: copy option {@link ArkUI_CopyOptions. \n
2162      *
2163      */
2164     NODE_TEXT_COPY_OPTION,
2165     /**
2166      * @brief Defines the text baseline offset attribute
2167      * This attribute can be set, reset, and obtained as required through APIs.
2168      *
2169      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2170      * .value[0].f32: baseline offset, in fp.\n
2171      * \n
2172      * Format of the return value {@link ArkUI_AttributeItem}:\n
2173      * .value[0].f32: baseline offset, in fp. \n
2174      *
2175      */
2176     NODE_TEXT_BASELINE_OFFSET,
2177     /**
2178      * @brief Defines the text shadow attribute, which can be set, reset, and obtained as required through APIs.
2179      *
2180      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2181      * .value[0].f32: blur radius of the shadow, in vp.\n
2182      * .value[1].i32: shadow type {@link ArkUI_ShadowType}. The default value is <b>ARKUI_SHADOW_TYPE_COLOR</b>.\n
2183      * .value[2].u32: shadow color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
2184      * .value[3].f32: offset of the shadow along the x-axis, in vp.\n
2185      * .value[4].f32: offset of the shadow along the y-axis, in vp.\n
2186      * \n
2187      * Format of the return value {@link ArkUI_AttributeItem}:\n
2188      * .value[0].f32: blur radius of the shadow, in vp.\n
2189      * .value[1].i32: shadow type {@link ArkUI_ShadowType}.\n
2190      * .value[2].u32: shadow color, in 0xARGB format.\n
2191      * .value[3].f32: offset of the shadow along the x-axis, in vp.\n
2192      * .value[4].f32: offset of the shadow along the y-axis, in vp.\n
2193      *
2194      */
2195     NODE_TEXT_TEXT_SHADOW,
2196     /**
2197      * @brief Defines the minimum font size attribute, which can be set, reset, and obtained as required through APIs.
2198      *
2199      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2200      * .value[0].f32: minimum font size, in fp.
2201      * \n
2202      * Format of the return value {@link ArkUI_AttributeItem}:\n
2203      * .value[0].f32: minimum font size, in fp.
2204      *
2205      */
2206     NODE_TEXT_MIN_FONT_SIZE,
2207 
2208     /**
2209      * @brief Defines the maximum font size attribute, which can be set, reset, and obtained as required through APIs.
2210      *
2211      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2212      * .value[0].f32: maximum font size, in fp.
2213      * \n
2214      * Format of the return value {@link ArkUI_AttributeItem}:\n
2215      * .value[0].f32: maximum font size, in fp.
2216      *
2217      */
2218     NODE_TEXT_MAX_FONT_SIZE,
2219 
2220     /**
2221      * @brief Defines the text style attribute, which can be set, reset, and obtained as required through APIs.
2222      *
2223      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2224      * .string?: font family. Optional. Use commas (,) to separate multiple fonts. \n
2225      * .value[0].f32: font size, in fp. \n
2226      * .value[1]?.i32: font weight. Optional. The parameter type is {@link ArkUI_FontWeight}.
2227      * The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>. \n
2228      * .value[2]?.i32: font style. Optional. The parameter type is {@link ArkUI_FontStyle}.
2229      * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.
2230      * \n
2231      * Format of the return value {@link ArkUI_AttributeItem}:\n
2232      * .string: font family. Use commas (,) to separate multiple fonts. \n
2233      * .value[0].f32: font size, in fp. \n
2234      * .value[1].i32: font weight. The parameter type is {@link ArkUI_FontWeight}.
2235      * The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>. \n
2236      * .value[2].i32: font style. The parameter type is {@link ArkUI_FontStyle}.
2237      * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.
2238      *
2239      */
2240     NODE_TEXT_FONT,
2241 
2242     /**
2243      * @brief Defines how the adaptive height is determined for the text.
2244      * This attribute can be set, reset, and obtained as required through APIs.
2245      *
2246      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2247      * .value[0].i32: how the adaptive height is determined for the text.
2248      * The parameter type is {@link ArkUI_TextHeightAdaptivePolicy}.
2249      * \n
2250      * Format of the return value {@link ArkUI_AttributeItem}:\n
2251      * .value[0].i32: how the adaptive height is determined for the text.
2252      * The parameter type is {@link ArkUI_TextHeightAdaptivePolicy}
2253      *
2254      */
2255     NODE_TEXT_HEIGHT_ADAPTIVE_POLICY,
2256     /**
2257      * @brief Defines the indentation of the first line.
2258      * This attribute can be set, reset, and obtained as required through APIs.
2259      *
2260      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2261      * .value[0].f32: indentation of the first line. \n
2262      * \n
2263      * Format of the return value {@link ArkUI_AttributeItem}:\n
2264      * .value[0].f32: indentation of the first line. \n
2265      *
2266      */
2267     NODE_TEXT_INDENT,
2268     /**
2269      * @brief Defines the line break rule. This attribute can be set, reset, and obtained as required through APIs.
2270      *
2271      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2272      * .value[0].i32: The parameter type is {@link ArkUI_WordBreak}. \n
2273      * \n
2274      * Format of the return value {@link ArkUI_AttributeItem}:\n
2275      * .value[0].i32: The parameter type is {@link ArkUI_WordBreak}. \n
2276      *
2277      */
2278     NODE_TEXT_WORD_BREAK,
2279     /**
2280      * @brief Defines the ellipsis position. This attribute can be set, reset, and obtained as required through APIs.
2281      *
2282      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2283      * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}. \n
2284      * \n
2285      * Format of the return value {@link ArkUI_AttributeItem}:\n
2286      * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}. \n
2287      *
2288      */
2289     NODE_TEXT_ELLIPSIS_MODE,
2290     /**
2291      * @brief Defines the text line spacing attribute, which can be set, reset, and obtained as required through APIs.
2292      *
2293      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2294      * .value[0].f32: line spacing, in fp.\n
2295      * \n
2296      * Format of the return value {@link ArkUI_AttributeItem}:\n
2297      * .value[0].f32: line spacing, in fp.\n
2298      *
2299      */
2300     NODE_TEXT_LINE_SPACING,
2301     /**
2302      * @brief  Set the text feature effect and the NODE_FONT_FEATURE attribute,
2303      * NODE_FONT_FEATURE is the advanced typesetting capability of OpenType
2304      * Features such as ligatures and equal-width digits are generally used in customized fonts. \n
2305      * The capabilities need to be supported by the fonts, \n
2306      * Interfaces for setting, resetting, and obtaining attributes are supported. \n
2307      * Attribute setting method parameter {@Link ArkUI_AttributeItem} format:\n
2308      * .string: complies with the text feature format. The format is normal | \n
2309      * is in the format of [ | on | off],\n.
2310      * There can be multiple values separated by commas (,). \n
2311      * For example, the input format of a number with the same width is ss01 on. \n
2312      * \n
2313      * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
2314      * .string indicates the content of the text feature. Multiple text features are separated by commas (,). \n
2315      */
2316     NODE_TEXT_FONT_FEATURE,
2317 
2318     /**
2319      * @brief Setting Enable Text Recognition.
2320      *
2321      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2322      * .value[0].i32:Enable text recognition, default value false.\n
2323      * \n
2324      * Format of the return value {@link ArkUI_AttributeItem}:\n
2325      * .value[0].i32:Enable Text Recognition\n
2326      *
2327      */
2328     NODE_TEXT_ENABLE_DATA_DETECTOR,
2329     /**
2330      * @brief Set the text recognition configuration.
2331      *
2332      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2333      * .value[0...].i32: Array of entity types, parameter types{@link ArkUI_TextDataDetectorType}.\n
2334      * \n
2335      * Format of the return value {@link ArkUI_AttributeItem}:\n
2336      * .value[0...].i32:Array of entity types, parameter types{@link ArkUI_TextDataDetectorType}.\n
2337      *
2338      */
2339     NODE_TEXT_ENABLE_DATA_DETECTOR_CONFIG,
2340     /**
2341      * @brief Defines the background color of the selected text.
2342      * This attribute can be set, reset, and obtained as required through APIs.
2343      *
2344      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2345      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2346      * \n
2347      * Format of the return value {@link ArkUI_AttributeItem}:\n
2348      * .value[0].u32: color value, in 0xARGB format. \n
2349      *
2350      */
2351     NODE_TEXT_SELECTED_BACKGROUND_COLOR,
2352 
2353     /**
2354     * @brief The text component uses a formatted string object to set text content properties,
2355     * and supports property setting, property reset, and property acquisition interfaces.
2356     *
2357     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2358     * .object indicates ArkUI_StyledString formatted string data. The parameter type is {@link ArkUI_StyledString}. \n
2359     * \n
2360     * Format of the return value {@link ArkUI_AttributeItem}:\n
2361     * .object indicates ArkUI_StyledString formatted string data. The parameter type is {@link ArkUI_StyledString}. \n
2362     */
2363     NODE_TEXT_CONTENT_WITH_STYLED_STRING,
2364 
2365     /**
2366      * @brief Sets whether to center text vertically in the text component.
2367      *
2368      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2369      * .value[0].i32: whether to center text vertically. The default value is <b>false</b>. \n
2370      * \n
2371      * Format of the return value {@link ArkUI_AttributeItem}:\n
2372      * .value[0].i32: whether to center text vertically. \n
2373      *
2374      */
2375     NODE_TEXT_HALF_LEADING = 1029,
2376 
2377     /**
2378      * @brief Defines the font weight attribute, which can be set, reset, and obtained as required through APIs.
2379      * The font weight specified by this API is not affected by any changes in the system font weight settings.
2380      *
2381      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2382      * .value[0].i32: font weight {@link ArkUI_FontWeight}. The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>.\n
2383      * \n
2384      * Format of the return value {@link ArkUI_AttributeItem}:\n
2385      * .value[0].i32: font weight {@link ArkUI_FontWeight}.\n
2386      *
2387      * @since 15
2388      */
2389     NODE_IMMUTABLE_FONT_WEIGHT = 1030,
2390 
2391     /**
2392      * @brief Defines the text line count attribute, which can only be obtained as required through APIs.
2393      *
2394      * Format of the return value {@link ArkUI_AttributeItem}:\n
2395      * .value[0].i32: line count of the node.
2396      *
2397      * @since 20
2398      */
2399     NODE_TEXT_LINE_COUNT = 1031,
2400 
2401     /**
2402      * @brief Defines whether to optimize whitespace at the end of each line,
2403      * which can be set, reset, and obtained as required through APIs.
2404      *
2405      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
2406      * value[0].i32: whether to optimize whitespace at the end of each line. The default value is false. \n
2407      * \n
2408      * Format of the return value {@link ArkUI_AttributeItem}: \n
2409      * value[0].i32: whether to optimize whitespace at the end of each line. \n
2410      *
2411      * @since 20
2412      */
2413     NODE_TEXT_OPTIMIZE_TRAILING_SPACE = 1032,
2414 
2415     /**
2416      * @brief Sets a linear gradient effect for text.
2417      * This attribute can be set, reset, and obtained as required through APIs.
2418      *
2419      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2420      * .value[0].f32: start angle of the linear gradient.
2421      * The setting takes effect only when <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>.
2422      * A positive value indicates a clockwise rotation from the origin, (0, 0). The default value is <b>180</b>. \n
2423      * .value[1].i32: direction of the linear gradient. When a direction other than
2424      * <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b> is set, the <b>angle</b> property is ignored.
2425      * The parameter type is {@link ArkUI_LinearGradientDirection}. \n
2426      * .value[2].i32: whether the colors are repeated. The default value is <b>false</b>.
2427      * .object: array of color stops, each of which consists of a color and its stop position.
2428      * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
2429      * colors: colors of the color stops. \n
2430      * stops: stop positions of the color stops. \n
2431      * size: number of colors. \n
2432      * \n
2433      * Format of the return value {@link ArkUI_AttributeItem}:\n
2434      * .value[0].f32: start angle of the linear gradient.
2435      * When <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>, <b>angle</b> at the set value;
2436      * otherwise, it is at default value. \n
2437      * .value[1].i32: direction of the linear gradient. \n
2438      * .value[2].i32: whether the colors are repeated. \n
2439      * .object: array of color stops, each of which consists of a color and its stop position.
2440      * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
2441      * colors: colors of the color stops. \n
2442      * stops: stop positions of the color stops. \n
2443      * size: number of colors. \n
2444      *
2445      * @since 20
2446      */
2447     NODE_TEXT_LINEAR_GRADIENT = 1033,
2448 
2449     /**
2450      * @brief Sets a radial gradient effect for text.
2451      * This attribute can be set, reset, and obtained as required through APIs.
2452      *
2453      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2454      * .value[0]?.f32: X-coordinate of the radial gradient center relative to the upper left corner of the text. \n
2455      * .value[1]?.f32: Y-coordinate of the radial gradient center relative to the upper left corner of the text. \n
2456      * .value[2]?.f32: radius of the radial gradient. The default value is <b>0</b>. \n
2457      * .value[3]?.i32: whether the colors are repeated.
2458      * The value <b>1</b> means that the colors are repeated, and <b>0</b> means the opposite.\n \n
2459      * .object: array of color stops, each of which consists of a color and its stop position.
2460      * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
2461      * colors: colors of the color stops. \n
2462      * stops: stop positions of the color stops. \n
2463      * size: number of colors. \n
2464      * \n
2465      * Format of the return value {@link ArkUI_AttributeItem}:\n
2466      * .value[0].f32: X-coordinate of the radial gradient center relative to the upper left corner of the text. \n
2467      * .value[1].f32: Y-coordinate of the radial gradient center relative to the upper left corner of the text. \n
2468      * .value[2].f32: radius of the radial gradient. The default value is <b>0</b>. \n
2469      * .value[3].i32: whether the colors are repeated.
2470      * The value <b>1</b> means that the colors are repeated, and <b>0</b> means the opposite.  \n
2471      * .object: array of color stops, each of which consists of a color and its stop position.
2472      * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
2473      * colors: colors of the color stops. \n
2474      * stops: stop positions of the color stops. \n
2475      * size: number of colors. \n
2476      *
2477      * @since 20
2478      */
2479     NODE_TEXT_RADIAL_GRADIENT = 1034,
2480 
2481     /**
2482      * @brief 设置文本内容垂直对齐方式,支持属性设置,属性重置和属性获取接口。
2483      *
2484      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
2485      * .value[0].i32:文本内容垂直对齐方式{@link ArkUI_TextVerticalAlignment},默认值:ARKUI_TEXT_VERTICAL_ALIGNMENT_BASELINE \n
2486      * \n
2487      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
2488      * .value[0].i32:文本内容垂直对齐方式{@link ArkUI_TextVerticalAlignment}。 \n
2489      *
2490      * @since 20
2491      */
2492     NODE_TEXT_VERTICAL_ALIGN = 1035,
2493 
2494     /**
2495      * @brief Defines the text content attribute, which can be set, reset, and obtained as required through APIs.
2496      *
2497      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2498      * .string: content of the text span. \n
2499      * \n
2500      * Format of the return value {@link ArkUI_AttributeItem}:\n
2501      * .string: content of the text span. \n
2502      *
2503      */
2504     NODE_SPAN_CONTENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SPAN,
2505     /**
2506      * @brief Defines the text background style.
2507      * This attribute can be set, reset, and obtained as required through APIs.
2508      *
2509      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2510      * .value[0].u32: color of the text background, in 0xARGB format, for example, <b>0xFFFF0000</b> indicating red. \n
2511      * The second parameter indicates the rounded corners of the text background. Two setting modes are available:\n
2512      * 1: .value[1].f32: radius of the four corners, in vp. \n
2513      * 2: .value[1].f32: radius of the upper left corner, in vp. \n
2514      * .value[2].f32: radius of the upper right corner, in vp. \n
2515      * .value[3].f32: radius of the lower left corner, in vp. \n
2516      * .value[4].f32: radius of the lower right corner, in vp. \n
2517      * \n
2518      * Format of the return value {@link ArkUI_AttributeItem}:\n
2519      * .value[0].u32: color of the text background, in 0xARGB format. \n
2520      * .value[1].f32: radius of the upper left corner, in vp. \n
2521      * .value[2].f32: radius of the upper right corner, in vp. \n
2522      * .value[3].f32: radius of the lower left corner, in vp. \n
2523      * .value[4].f32: radius of the lower right corner, in vp. \n
2524      *
2525      */
2526     NODE_SPAN_TEXT_BACKGROUND_STYLE,
2527     /**
2528      * @brief Defines the text baseline offset attribute
2529      * This attribute can be set, reset, and obtained as required through APIs.
2530      *
2531      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2532      * .value[0].f32: baseline offset, in fp.\n
2533      * \n
2534      * Format of the return value {@link ArkUI_AttributeItem}:\n
2535      * .value[0].f32: baseline offset, in fp. \n
2536      *
2537      */
2538     NODE_SPAN_BASELINE_OFFSET,
2539     /**
2540      * @brief Defines the image source of the image span.
2541      * This attribute can be set, reset, and obtained as required through APIs.
2542      *
2543      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2544      * .string: image address of the image span.\n
2545      * \n
2546      * Format of the return value {@link ArkUI_AttributeItem}:\n
2547      * .string: image address of the image span.\n
2548      *
2549      */
2550     NODE_IMAGE_SPAN_SRC = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE_SPAN,
2551     /**
2552      * @brief Defines the alignment mode of the image with the text.
2553      * This attribute can be set, reset, and obtained as required through APIs.
2554      *
2555      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2556      * .value[0].i32: alignment mode of the image with the text.
2557      * The value is an enum of {@link ArkUI_ImageSpanAlignment}. \n
2558      * \n
2559      * Format of the return value {@link ArkUI_AttributeItem}:\n
2560      * .value[0].i32: alignment mode of the image with the text.
2561      * The value is an enum of {@link ArkUI_ImageSpanAlignment}. \n
2562      *
2563      */
2564     NODE_IMAGE_SPAN_VERTICAL_ALIGNMENT,
2565     /**
2566      * @brief Defines the placeholder image source.
2567      * This attribute can be set, reset, and obtained as required through APIs.
2568      *
2569      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2570      * .string: placeholder image source. \n
2571      * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
2572      * \n
2573      * Format of the return value {@link ArkUI_AttributeItem}:\n
2574      * .string: placeholder image source. \n
2575      * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
2576      *
2577      */
2578     NODE_IMAGE_SPAN_ALT,
2579     /**
2580      * @brief Defines the image span baseline offset attribute
2581      * This attribute can be set, reset, and obtained as required through APIs.
2582      *
2583      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2584      * .value[0].f32: baseline offset, in fp.\n
2585      * \n
2586      * Format of the return value {@link ArkUI_AttributeItem}:\n
2587      * .value[0].f32: baseline offset, in fp. \n
2588      *
2589      */
2590     NODE_IMAGE_SPAN_BASELINE_OFFSET = 3003,
2591     /**
2592      * @brief Defines the image source of the <Image> component.
2593      * This attribute can be set, reset, and obtained as required through APIs.
2594      *
2595      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2596      * .string: image source.\n
2597      * \n
2598      * Format of the return value {@link ArkUI_AttributeItem}:\n
2599      * .string: image source.\n
2600      *
2601      */
2602     NODE_IMAGE_SRC = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE,
2603     /**
2604      * @brief Defines how the image is resized to fit its container.
2605      * This attribute can be set, reset, and obtained as required through APIs.
2606      *
2607      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2608      * .value[0].i32: how the image is resized to fit its container. The value is an enum of {@link ArkUI_ObjectFit}. \n
2609      * \n
2610      * Format of the return value {@link ArkUI_AttributeItem}:\n
2611      * .value[0].i32: how the image is resized to fit its container. The value is an enum of {@link ArkUI_ObjectFit}. \n
2612      *
2613      */
2614     NODE_IMAGE_OBJECT_FIT,
2615     /**
2616      * @brief Defines the interpolation effect of the image.
2617      * This attribute can be set, reset, and obtained as required through APIs.
2618      *
2619      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2620      * .value[0].i32: interpolation effect of the image. The value is an enum of {@link ArkUI_ImageInterpolation}. \n
2621      * \n
2622      * Format of the return value {@link ArkUI_AttributeItem}:\n
2623      * .value[0].i32: interpolation effect of the image. The value is an enum of {@link ArkUI_ImageInterpolation}. \n
2624      *
2625      */
2626     NODE_IMAGE_INTERPOLATION,
2627     /**
2628      * @brief Defines how the image is repeated.
2629      * This attribute can be set, reset, and obtained as required through APIs.
2630      *
2631      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2632      * .value[0].i32: how the image is repeated. The value is an enum of {@link ArkUI_ImageRepeat}. \n
2633      * \n
2634      * Format of the return value {@link ArkUI_AttributeItem}:\n
2635      * .value[0].i32: how the image is repeated. The value is an enum of {@link ArkUI_ImageRepeat}. \n
2636      *
2637      */
2638     NODE_IMAGE_OBJECT_REPEAT,
2639     /**
2640      * @brief Defines the color filter of the image.
2641      * This attribute can be set, reset, and obtained as required through APIs.
2642      *
2643      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2644      * .value[0].f32 to .value[19].f32: filter matrix array. \n
2645      * .size: 5 x 4 filter array size. \n
2646      * .object: the pointer to OH_Drawing_ColorFilter. Either .value or .object is set. \n
2647      * \n
2648      * Format of the return value {@link ArkUI_AttributeItem}:\n
2649      * .value[0].f32 to .value[19].f32: filter matrix array. \n
2650      * .size: 5 x 4 filter array size. \n
2651      * .object: the pointer to OH_Drawing_ColorFilter. \n
2652      *
2653      */
2654     NODE_IMAGE_COLOR_FILTER,
2655     /**
2656      * @brief Defines the auto resize attribute, which can be set, reset, and obtained as required through APIs.
2657      *
2658      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2659      * .value[0].i32 : whether to resize the image source. \n
2660      * \n
2661      * Format of the return value {@link ArkUI_AttributeItem}:\n
2662      * .value[0].i32 : whether to resize the image source. \n
2663      *
2664      */
2665     NODE_IMAGE_AUTO_RESIZE,
2666     /**
2667      * @brief Defines the placeholder image source.
2668      * This attribute can be set, reset, and obtained as required through APIs.
2669      *
2670      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2671      * .string: placeholder image source. \n
2672      * \n
2673      * Format of the return value {@link ArkUI_AttributeItem}:\n
2674      * .string: placeholder image source. \n
2675      *
2676      */
2677     NODE_IMAGE_ALT,
2678     /**
2679      * @brief Defines whether the image is draggable.
2680      * This attribute can be set, reset, and obtained as required through APIs.
2681      *
2682      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2683      * .value[0].i32: whether the image is draggable. The value <b>true</b> means that the image is draggable. \n
2684      * \n
2685      * Format of the return value {@link ArkUI_AttributeItem}:\n
2686      * .value[0].i32: whether the image is draggable. \n
2687      *
2688      */
2689     NODE_IMAGE_DRAGGABLE,
2690     /**
2691      * @brief Defines the image rendering mode. This attribute can be set, reset, and obtained as required through APIs.
2692      *
2693      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2694      * .value[0].i32: The parameter type is {@link ArkUI_ImageRenderMode}. \n
2695      * \n
2696      * Format of the return value {@link ArkUI_AttributeItem}:\n
2697      * .value[0].i32: The parameter type is {@link ArkUI_ImageRenderMode}. \n
2698      *
2699      */
2700     NODE_IMAGE_RENDER_MODE,
2701     /**
2702      * @brief Defines whether the image display size follows the image source size.
2703      * This attribute can be set, reset, and obtained as required through APIs.
2704      *
2705      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2706      * .value[0].i32: wheter to follow, true means to follow.\n
2707      * \n
2708      * Format of the return value {@link ArkUI_AttributeItem}:\n
2709      * .value[0].i32: wheter to follow, true means to follow.\n
2710      *
2711      */
2712     NODE_IMAGE_FIT_ORIGINAL_SIZE,
2713     /**
2714      * @brief Defines the fill color of the swiper.
2715      * This attribute can be set, reset, and obtained as required through APIs.
2716      *
2717      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2718      * .value[0].u32: fill color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2719      * \n
2720      * Format of the return value {@link ArkUI_AttributeItem}:\n
2721      * .value[0].u32: fill color, in 0xARGB format. \n
2722      *
2723      */
2724     NODE_IMAGE_FILL_COLOR,
2725     /**
2726      * @brief Sets the resizable image options.
2727      *
2728      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2729      * .value[0].f32: width of the left edge. The unit is vp. \n
2730      * .value[1].f32: width of the top edge. The unit is vp. \n
2731      * .value[2].f32: width of the right edge. The unit is vp. \n
2732      * .value[3].f32: width of the bottom edge. The unit is vp. \n
2733      * \n
2734      * Format of the return value {@link ArkUI_AttributeItem}:\n
2735      * .value[0].f32: width of the left edge. The unit is vp. \n
2736      * .value[1].f32: width of the top edge. The unit is vp. \n
2737      * .value[2].f32: width of the right edge. The unit is vp. \n
2738      * .value[3].f32: width of the bottom edge. The unit is vp. \n
2739      *
2740      */
2741     NODE_IMAGE_RESIZABLE,
2742     /**
2743      * @brief Defines the synchronous image loading attribute.
2744      * This attribute can be set, reset, and obtained as required through APIs.
2745      *
2746      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2747      * .value[0].i32: whether to load the image synchronously. \n
2748      * \n
2749      * Format of the return value {@link ArkUI_AttributeItem}:\n
2750      * .value[0].i32: whether to load the image synchronously. \n
2751      *
2752      */
2753     NODE_IMAGE_SYNC_LOAD = 4012,
2754     /**
2755      * @brief Defines the image decoding size attribute.
2756      * This attribute can be set, reset, and obtained as required through APIs.
2757      *
2758      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2759      * .value[0].i32: width of the image decoding, in px.\n
2760      * .value[1].i32: height of the image decoding, in px.\n
2761      * \n
2762      * Format of the return value {@link ArkUI_AttributeItem}:\n
2763      * .value[0].i32: width of the image decoding, in px.\n
2764      * .value[1].i32: height of the image decoding, in px.\n
2765      *
2766      * @since 21
2767      */
2768     NODE_IMAGE_SOURCE_SIZE = 4013,
2769     /**
2770      * @brief Defines the display tranformation matrix for an image.
2771      * This attribute can be set, reset, and obtained as required through APIs.
2772      *
2773      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2774      * .value[0...15].f32: 16 floating-point numbers.\n
2775      * \n
2776      * Format of the return value {@link ArkUI_AttributeItem}:\n
2777      * .value[0...15].f32: 16 floating-point numbers.\n
2778      *
2779      * @since 21
2780      */
2781     NODE_IMAGE_IMAGE_MATRIX = 4014,
2782     /**
2783      * @brief Defines the image follow text direction attribute.
2784      * This attribute can be set, reset, and obtained as required through APIs.
2785      *
2786      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2787      * .value[0].i32: whether to follows the text direction.\n
2788      * \n
2789      * Format of the return value {@link ArkUI_AttributeItem}:\n
2790      * .value[0].i32: whether to follows the text direction.\n
2791      *
2792      * @since 21
2793      */
2794     NODE_IMAGE_MATCH_TEXT_DIRECTION = 4015,
2795     /**
2796      * @brief Defines the image copy attribute.
2797      * This attribute can be set, reset, and obtained as required through APIs.
2798      *
2799      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2800      * .value[0].i32: copy option {@link ArkUI_CopyOptions}. The default value is <b>ARKUI_COPY_OPTIONS_NONE</b>.\n
2801      * \n
2802      * Format of the return value {@link ArkUI_AttributeItem}:\n
2803      * .value[0].i32: copy option {@link ArkUI_CopyOptions.\n
2804      *
2805      * @since 21
2806      */
2807     NODE_IMAGE_COPY_OPTION = 4016,
2808     /**
2809      * @brief Defines the image AI analysis enable attribute.
2810      * This attribute can be set, reset, and obtained as required through APIs.
2811      *
2812      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2813      * .value[0].i32: whether to enable AI analysis for the image.\n
2814      * \n
2815      * Format of the return value {@link ArkUI_AttributeItem}:\n
2816      * .value[0].i32: whether to enable AI analysis for the image.\n
2817      *
2818      * @since 21
2819      */
2820     NODE_IMAGE_ENABLE_ANALYZER = 4017,
2821     /**
2822      * @brief Defines the image dynamic display range attribute.
2823      * This attribute can be set, reset, and obtained as required through APIs.
2824      *
2825      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2826      * .value[0].i32: dynamic range mode {@link ArkUI_DynamicRangeMode}.
2827      * The default value is <b>ARKUI_DYNAMIC_RANGE_MODE_STANDARD</b>.\n
2828      * \n
2829      * Format of the return value {@link ArkUI_AttributeItem}:\n
2830      * .value[0].i32: dynamic range mode {@link ArkUI_DynamicRangeMode.\n
2831      *
2832      * @since 21
2833      */
2834     NODE_IMAGE_DYNAMIC_RANGE_MODE = 4018,
2835     /**
2836      * @brief Defines the image dynamic display brightness attribute.
2837      * This attribute can be set, reset, and obtained as required through APIs.
2838      *
2839      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2840      * .value[0].f32: hdr brightness. value range [0, 1]\n
2841      * \n
2842      * Format of the return value {@link ArkUI_AttributeItem}:\n
2843      * .value[0].f32: hdr brightness. value range [0, 1]\n
2844      *
2845      * @since 21
2846      */
2847     NODE_IMAGE_HDR_BRIGHTNESS = 4019,
2848     /**
2849      * @brief Defines the image display direction attribute.
2850      * This attribute can be set, reset, and obtained as required through APIs.
2851      *
2852      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2853      * .value[0].i32: orientation {@link ArkUI_Orientation}.
2854      * The default value is <b>ARKUI_ORIENTATION_UP</b>.\n
2855      * \n
2856      * Format of the return value {@link ArkUI_AttributeItem}:\n
2857      * .value[0].i32: orientation {@link ArkUI_Orientation.\n
2858      *
2859      * @since 21
2860      */
2861     NODE_IMAGE_ORIENTATION = 4020,
2862     /**
2863      * @brief Defines the color of the component when it is selected.
2864      * This attribute can be set, reset, and obtained as required through APIs.
2865      *
2866      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2867      * .value[0].u32: background color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2868      * \n
2869      * Format of the return value {@link ArkUI_AttributeItem}:\n
2870      * .value[0].u32: background color, in 0xARGB format. \n
2871      *
2872      */
2873     NODE_TOGGLE_SELECTED_COLOR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TOGGLE,
2874     /**
2875      * @brief Defines the color of the circular slider for the component of the switch type.
2876      * This attribute can be set, reset, and obtained as required through APIs.
2877      *
2878      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2879      * .value[0].u32: color of the circular slider, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2880      * \n
2881      * Format of the return value {@link ArkUI_AttributeItem}:\n
2882      * .value[0].u32: color of the circular slider, in 0xARGB format. \n
2883      *
2884      */
2885     NODE_TOGGLE_SWITCH_POINT_COLOR,
2886     /**
2887      * @brief Defines the toggle switch value. This attribute can be set, reset, and obtained as required through APIs.
2888      *
2889      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2890      * .value[0].i32: whether to enable the toggle. The value <b>true</b> means to enable the toggle. \n
2891      * \n
2892      * Format of the return value {@link ArkUI_AttributeItem}:\n
2893      * .value[0].i32: whether to enable the toggle. \n
2894      *
2895      */
2896     NODE_TOGGLE_VALUE,
2897     /**
2898      * @brief Defines the color of the component when it is deselected.
2899      * This attribute can be set, reset, and obtained as required through APIs.
2900      *
2901      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2902      * .value[0].u32: background color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2903      * \n
2904      * Format of the return value {@link ArkUI_AttributeItem}:\n
2905      * .value[0].u32: background color, in 0xARGB format. \n
2906      *
2907      */
2908     NODE_TOGGLE_UNSELECTED_COLOR,
2909 
2910     /**
2911      * @brief Defines the foreground color of the loading progress bar.
2912      * This attribute can be set, reset, and obtained as required through APIs.
2913      *
2914      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2915      * .value[0].u32: foreground color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2916      * \n
2917      * Format of the return value {@link ArkUI_AttributeItem}:\n
2918      * .value[0].u32: foreground color, in 0xARGB format. \n
2919      *
2920      */
2921     NODE_LOADING_PROGRESS_COLOR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LOADING_PROGRESS,
2922     /**
2923      * @brief Defines whether to show the loading animation for the <LoadingProgress> component.
2924      * This attribute can be set, reset, and obtained as required through APIs.
2925      *
2926      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2927      * .value[0].i32: whether to show the loading animation.
2928      * The value <b>true</b> means to show the loading animation, and <b>false</b> means the opposite.\n
2929      * \n
2930      * Format of the return value {@link ArkUI_AttributeItem}:\n
2931      * .value[0].i32: The value <b>1</b> means to show the loading animation, and <b>0</b> means the opposite. \n
2932      *
2933      */
2934     NODE_LOADING_PROGRESS_ENABLE_LOADING,
2935 
2936     /**
2937      * @brief Defines the default placeholder text of the single-line text box.
2938      * This attribute can be set, reset, and obtained as required through APIs.
2939      *
2940      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2941      * .string: default placeholder text. \n
2942      * \n
2943      * Format of the return value {@link ArkUI_AttributeItem}:\n
2944      * .string: default placeholder text. \n
2945      *
2946      */
2947     NODE_TEXT_INPUT_PLACEHOLDER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_INPUT,
2948     /**
2949      * @brief Defines the default text content of the single-line text box.
2950      * This attribute can be set, reset, and obtained as required through APIs.
2951      *
2952      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2953      * .string: default text content. \n
2954      * \n
2955      * Format of the return value {@link ArkUI_AttributeItem}:\n
2956      * .string: default text content. \n
2957      *
2958      */
2959     NODE_TEXT_INPUT_TEXT,
2960     /**
2961      * @brief Defines the caret color attribute.
2962      * This attribute can be set, reset, and obtained as required through APIs.
2963      *
2964      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2965      * .value[0].u32: caret color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
2966      * \n
2967      * Format of the return value {@link ArkUI_AttributeItem}:\n
2968      * .value[0].u32: caret color, in 0xARGB format. \n
2969      *
2970      */
2971     NODE_TEXT_INPUT_CARET_COLOR,
2972     /**
2973      * @brief Defines the caret style attribute.
2974      * This attribute can be set, reset, and obtained as required through APIs.
2975      *
2976      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2977      * .value[0].f32: caret width, in vp.\n
2978      * \n
2979      * Format of the return value {@link ArkUI_AttributeItem}:\n
2980      * .value[0].f32: caret width, in vp. \n
2981      *
2982      */
2983     NODE_TEXT_INPUT_CARET_STYLE,
2984     /**
2985      * @brief Defines the underline attribute of the single-line text box.
2986      * This attribute can be set, reset, and obtained as required through APIs.
2987      *
2988      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2989      * .value[0].i32: whether to show an underline.
2990      * The value <b>true</b> means to show an underline, and <b>false</b> means the opposite.\n
2991      * \n
2992      * Format of the return value {@link ArkUI_AttributeItem}:\n
2993      * .value[0].i32: The value <b>1</b> means to show an underline, and <b>0</b> means the opposite. \n
2994      *
2995      */
2996     NODE_TEXT_INPUT_SHOW_UNDERLINE,
2997     /**
2998      * @brief Defines the maximum number of characters in the TextInput.
2999      * This attribute can be set, reset, and obtained as required through APIs.
3000      *
3001      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3002      * .value[0].i32: maximum number of characters in the TextInput, without a unit. \n
3003      * \n
3004      * Format of the return value {@link ArkUI_AttributeItem}:\n
3005      * .value[0].i32: maximum number of characters in the TextInput. \n
3006      *
3007      */
3008     NODE_TEXT_INPUT_MAX_LENGTH,
3009     /**
3010      * @brief Defines the type of the Enter key.
3011      * This attribute can be set, reset, and obtained as required through APIs.
3012      *
3013      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3014      * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. The default value is
3015      * <b>ARKUI_ENTER_KEY_TYPE_DONE</b>. \n
3016      * \n
3017      * Format of the return value {@link ArkUI_AttributeItem}:\n
3018      * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. \n
3019      *
3020      */
3021     NODE_TEXT_INPUT_ENTER_KEY_TYPE,
3022     /**
3023      * @brief Defines the placeholder text color.
3024      * This attribute can be set, reset, and obtained as required through APIs.
3025      *
3026      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3027      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
3028      * \n
3029      * Format of the return value {@link ArkUI_AttributeItem}:\n
3030      * .value[0].u32: color value, in 0xARGB format. \n
3031      *
3032      */
3033     NODE_TEXT_INPUT_PLACEHOLDER_COLOR,
3034     /**
3035      * @brief Defines the placeholder text font.
3036      * This attribute can be set, reset, and obtained as required through APIs.
3037      *
3038      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3039      * .value[0]?.f32: font size, in fp. Optional. The default value is <b>16.0</b>.\n
3040      * .value[1]?.i32: font style {@link ArkUI_FontStyle}. Optional.
3041      * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>. \n
3042      * .value[2]?.i32: font weight {@link ArkUI_FontWeight}. Optional.
3043      * The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>. \n
3044      * ?.string: font family. Multiple font families are separated by commas (,).
3045      * Example: "font weight; font family 1, font family 2". \n
3046      * \n
3047      * Format of the return value {@link ArkUI_AttributeItem}:\n
3048      * .value[0].f32: font size, in fp.\n
3049      * .value[1].i32: font style {@link ArkUI_FontStyle}.\n
3050      * .value[2].i32: font weight {@link ArkUI_FontWeight}.\n
3051      * .string: font family. Multiple font families are separated by commas (,). \n
3052      *
3053      */
3054     NODE_TEXT_INPUT_PLACEHOLDER_FONT,
3055     /**
3056      * @brief Defines whether to enable the input method when the component obtains focus.
3057      * This attribute can be set, reset, and obtained as required through APIs.
3058      *
3059      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3060      * .value[0].i32: whether to enable the input method when the component obtains focus.
3061      * The value <b>true</b> means to enable the input method, and <b>false</b> means the opposite.\n \n
3062      * \n
3063      * Format of the return value {@link ArkUI_AttributeItem}:\n
3064       * .value[0].i32: The value <b>1</b> means to enable the input method when the component obtains focus,
3065       * and <b>0</b> means the opposite. \n
3066      *
3067      */
3068     NODE_TEXT_INPUT_ENABLE_KEYBOARD_ON_FOCUS,
3069     /**
3070      * @brief Defines the text box type. This attribute can be set, reset, and obtained as required through APIs.
3071      *
3072      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3073      * .value[0].i32: text box type {@link ArkUI_TextInputType}.
3074      * The default value is <b>ARKUI_TEXTINPUT_TYPE_NORMAL</b>. \n
3075      * \n
3076      * Format of the return value {@link ArkUI_AttributeItem}:\n
3077      * .value[0].i32: text box type {@link ArkUI_TextInputType}. \n
3078      *
3079      */
3080     NODE_TEXT_INPUT_TYPE,
3081     /**
3082      * @brief Defines the background color of the selected text.
3083      * This attribute can be set, reset, and obtained as required through APIs.
3084      *
3085      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3086      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
3087      * \n
3088      * Format of the return value {@link ArkUI_AttributeItem}:\n
3089      * .value[0].u32: color value, in 0xARGB format. \n
3090      *
3091      */
3092     NODE_TEXT_INPUT_SELECTED_BACKGROUND_COLOR,
3093     /**
3094      * @brief Defines whether to display the password icon at the end of the password text box.
3095      * This attribute can be set, reset, and obtained as required through APIs.
3096      *
3097      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3098      * .value[0].i32: whether to display the password icon at the end of the password text box.
3099      * The value <b>true</b> means to display the password icon, and <b>false</b> means the opposite.\n
3100      * \n
3101      * Format of the return value {@link ArkUI_AttributeItem}:\n
3102      * .value[0].i32: The value <b>1</b> means to display the password icon at the end of the password text box,
3103      * and <b>0</b> means the opposite. \n
3104      *
3105      */
3106     NODE_TEXT_INPUT_SHOW_PASSWORD_ICON,
3107     /**
3108      * @brief Defines the editable state for the single-line text box.
3109      * This attribute can be set as required through APIs.
3110      *
3111      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3112      * .value[0].i32: whether to remain in the editable state. The value
3113      * <b>true</b> means to remain in the editable state, and <b>false</b> means to exit the editable state. \n
3114      * \n
3115      * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:
3116      * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the editable
3117      * state, and <b>false</b> means to exit the editable state. \n
3118      *
3119      */
3120     NODE_TEXT_INPUT_EDITING,
3121     /**
3122      * @brief Defines the style of the cancel button on the right of the single-line text box.
3123      * This attribute can be set, reset, and obtained as required through APIs.
3124      *
3125      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3126      * .value[0].i32: button style {@link ArkUI_CancelButtonStyle}.
3127      * The default value is <b>ARKUI_CANCELBUTTON_STYLE_INPUT</b>.\n
3128      * .value[1]?.f32: button icon size, in vp.\n
3129      * .value[2]?.u32: button icon color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
3130      * ?.string: button icon image source. The value is the local address of the image, for example, /pages/icon.png. \n
3131      * \n
3132      * Format of the return value {@link ArkUI_AttributeItem}:\n
3133      * .value[0].i32: button style {@link ArkUI_CancelButtonStyle}.\n
3134      * .value[1].f32: icon size, in vp.\n
3135      * .value[2].u32: button icon color, in 0xARGB format.\n
3136      * .string: button icon image source. \n
3137      *
3138      */
3139     NODE_TEXT_INPUT_CANCEL_BUTTON,
3140     /**
3141      * @brief Sets the text selection area, which will be highlighted.
3142      * This attribute can be set, reset, and obtained as required through APIs.
3143      *
3144      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3145      * .value[0].i32: start position of the text selection. \n
3146      * .value[1].i32: end position of the text selection. \n
3147      * \n
3148      * Format of the return value {@link ArkUI_AttributeItem}:\n
3149      * .value[0].i32: start position of the text selection. \n
3150      * .value[1].i32: end position of the text selection. \n
3151      *
3152      */
3153     NODE_TEXT_INPUT_TEXT_SELECTION,
3154     /**
3155     * @brief Sets the color of the text underline when it is enabled.
3156     *
3157     * The default underline color configured for the theme is <b>'0x33182431'</b>.
3158     *
3159     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3160     * .value[0].u32: color of the underline applied to the text being typed in.
3161     * The value is in 0xARGB format. \n
3162     * .value[1].u32: color of the underline applied to the text in the normal state.
3163     * The value is in 0xARGB format. \n
3164     * .value[2].u32: color of the underline applied to the text when an error is detected.
3165     * The value is in 0xARGB format. \n
3166     * .value[3].u32: color of the underline applied to the text when it is disabled.
3167     * The value is in 0xARGB format. \n
3168     * \n
3169     * Format of the return value {@link ArkUI_AttributeItem}:\n
3170     * .value[0].u32: color of the underline applied to the text being typed in. The value is in 0xARGB format. \n
3171     * .value[1].u32: color of the underline applied to the text in the normal state. The value is in 0xARGB format. \n
3172     * .value[2].u32: color of the underline applied to the text when an error is detected.
3173     * The value is in 0xARGB format. \n
3174     * .value[3].u32: color of the underline applied to the text when it is disabled. The value is in 0xARGB format. \n
3175     *
3176     */
3177     NODE_TEXT_INPUT_UNDERLINE_COLOR,
3178     /**
3179     * @brief Sets whether to enable autofill.
3180     *
3181     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3182     * .value[0].i32: whether to enable autofill. The default value is <b>true</b>. \n
3183     * \n
3184     * Format of the return value {@link ArkUI_AttributeItem}:\n
3185     * .value[0].i32: whether to enable autofill. \n
3186     *
3187     */
3188     NODE_TEXT_INPUT_ENABLE_AUTO_FILL,
3189     /**
3190     * @brief Sets the autofill type.
3191     *
3192     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3193     * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
3194     * \n
3195     * Format of the return value {@link ArkUI_AttributeItem}:\n
3196     * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
3197     *
3198     */
3199     NODE_TEXT_INPUT_CONTENT_TYPE,
3200     /**
3201     * @brief Defines the rules for generating passwords. When autofill is used, these rules are transparently
3202     * transmitted to Password Vault for generating a new password.
3203     *
3204     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3205     * .string: rules for generating passwords. \n
3206     * \n
3207     * Format of the return value {@link ArkUI_AttributeItem}:\n
3208     * .string: rules for generating passwords. \n
3209     *
3210     */
3211     NODE_TEXT_INPUT_PASSWORD_RULES,
3212     /**
3213     * @brief Sets whether to select all text in the initial state. The inline mode is not supported.
3214     *
3215     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3216     * .value[0].i32: whether to select all text in the initial state. The default value is b>false</b>. \n
3217     * \n
3218     * Format of the return value {@link ArkUI_AttributeItem}:\n
3219     * .value[0].i32: whether to select all text in the initial state. \n
3220     *
3221     */
3222     NODE_TEXT_INPUT_SELECT_ALL,
3223     /**
3224     * @brief Sets the regular expression for input filtering. Only inputs that comply with the regular expression can be
3225     * displayed. Other inputs are filtered out. The specified regular expression can match single characters,
3226     * but not strings.
3227     *
3228     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3229     * .string: regular expression. \n
3230     * \n
3231     * Format of the return value {@link ArkUI_AttributeItem}:\n
3232     * .string: regular expression. \n
3233     *
3234     */
3235     NODE_TEXT_INPUT_INPUT_FILTER,
3236     /**
3237     * @brief Sets the text box to the default style or inline input style.
3238     *
3239     * For the inline input style, only <b>InputType.Normal</b> is supported.
3240     *
3241     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3242     * .value[0].i32: TextInput style. The parameter type is {@link ArkUI_TextInputStyle}. \n
3243     * \n
3244     * Format of the return value {@link ArkUI_AttributeItem}:\n
3245     * .value[0].i32: TextInput style. The parameter type is {@link ArkUI_TextInputStyle}. \n
3246     *
3247     */
3248     NODE_TEXT_INPUT_STYLE,
3249     /**
3250     * @brief Sets or obtains the caret position.
3251     *
3252     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3253     * In the case of setting the caret position:
3254     * .value[0].i32: character count from the beginning of a string to the caret position. \n
3255     *
3256     * Format of the return value {@link ArkUI_AttributeItem}:\n
3257     * In the case of obtaining the caret position: If this API is called when the caret position is updated in the
3258     * current frame, it will not take effect.
3259     * .value[0].i32: index of the caret position. \n
3260     * .value[1].f32: X coordinate of the caret relative to the text box. \n
3261     * .value[2].f32: Y coordinate of the caret relative to the text box. \n
3262     */
3263     NODE_TEXT_INPUT_CARET_OFFSET,
3264     /**
3265     * @brief Obtains the position of the edited TextArea relative to the component and its size.
3266     *
3267     * Format of the return value {@link ArkUI_AttributeItem}:\n
3268     * .value[0].f32: horizontal coordinate. \n
3269     * .value[1].f32: vertical coordinate. \n
3270     * .value[2].f32: content width. \n
3271     * .value[3].f32: content height. \n
3272     *
3273     */
3274     NODE_TEXT_INPUT_CONTENT_RECT,
3275     /**
3276     * @brief Obtains the number of lines of the edited text.
3277     *
3278     * Format of the return value {@link ArkUI_AttributeItem}:\n
3279     * .value[0].i32: number of lines of the edited text. \n
3280     *
3281     */
3282     NODE_TEXT_INPUT_CONTENT_LINE_COUNT,
3283     /**
3284      * @brief Sets whether to hide the text selection menu when the text box is long-pressed, double-click, or
3285      * right-clicked. This attribute can be set, reset, and obtained as required through APIs.
3286      *
3287      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3288      * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click, or
3289      * right-clicked. The default value is <b>false</b>. \n
3290      * \n
3291      * Format of the return value {@link ArkUI_AttributeItem}:\n
3292      * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click, or
3293      * right-clicked. \n
3294      *
3295      */
3296     NODE_TEXT_INPUT_SELECTION_MENU_HIDDEN,
3297     /**
3298      * @brief Sets whether the text box loses focus after the Enter key is pressed to submit information.
3299      *
3300      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3301      * .value[0].i32: whether the text box loses focus. \n
3302      * \n
3303      * Format of the return value {@link ArkUI_AttributeItem}:\n
3304      * .value[0].i32: whether the text box loses focus. \n
3305      *
3306      */
3307     NODE_TEXT_INPUT_BLUR_ON_SUBMIT,
3308     /**
3309      * @brief Set up a custom keyboard.
3310      *
3311      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3312      * .object:custom keyboard,The parameter type is{@Link ArkUI_NodeHandle}.\n
3313      * .value[0]?.i32:Sets whether the custom keyboard supports the avoidance feature, default value false.\n
3314      * \n
3315      * Format of the return value {@link ArkUI_AttributeItem}:\n
3316      * .object:custom keyboard,The parameter type is{@Link ArkUI_NodeHandle}.\n
3317      * .value[0].i32:Set whether the custom keyboard supports the avoidance function.\n
3318      *
3319      */
3320     NODE_TEXT_INPUT_CUSTOM_KEYBOARD,
3321     /**
3322      * @brief Defines the line break rule. This attribute can be set, reset, and obtained as required through APIs.
3323      *
3324      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3325      * .value[0].i32: The parameter type is {@link ArkUI_WordBreak}. \n
3326      * \n
3327      * Format of the return value {@link ArkUI_AttributeItem}:\n
3328      * .value[0].i32: The parameter type is {@link ArkUI_WordBreak}. \n
3329      *
3330      */
3331     NODE_TEXT_INPUT_WORD_BREAK,
3332 
3333     /**
3334      * @brief Sets whether the keyboard pops up when TextInput gains focus.
3335      * It supports property setting, property reset and property acquisition interfaces.
3336      *
3337      * Attribute setting method parameter {@link ArkUI_AttributeItem} format:\n
3338      * .value[0].i32: Whether to pop up the keyboard. \n
3339      * \n
3340      * Attribute acquisition method return value {@link ArkUI_AttributeItem} format:\n
3341      * .value[0].i32: Whether to pop up the keyboard. \n
3342      *
3343      */
3344     NODE_TEXT_INPUT_SHOW_KEYBOARD_ON_FOCUS,
3345 
3346     /**
3347      * @brief When this property is set, the height of the TextInput component is calculated using this property.
3348      *
3349      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3350      * .value[0].i32: set the value of numberOfLines.\n
3351      * \n
3352      * Format of the return value {@link ArkUI_AttributeItem}:\n
3353      * .value[0].i32: the value of numberOfLines.\n
3354      *
3355      */
3356     NODE_TEXT_INPUT_NUMBER_OF_LINES,
3357 
3358     /**
3359      * @brief Sets the letter spacing of the <b>TextInput</b> component.
3360      * This attribute can be set, reset, and obtained as required through APIs.
3361      *
3362      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3363      * .value[0].f32: letter spacing. The default unit is fp. \n
3364      * \n
3365      * Format of the return value {@link ArkUI_AttributeItem}:\n
3366      * .value[0].f32: letter spacing. The default unit is fp. \n
3367      *
3368      * @since 16
3369      */
3370     NODE_TEXT_INPUT_LETTER_SPACING = 7032,
3371 
3372     /**
3373      * @brief Sets whether to enable preview text for the <b>TextInput</b> component.
3374      * This attribute can be set, reset, and obtained as required through APIs.
3375      *
3376      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3377      * .value[0].i32: whether to enable preview tex. \n
3378      * \n
3379      * Format of the return value {@link ArkUI_AttributeItem}:\n
3380      * .value[0].i32: whether to enable preview tex. \n
3381      *
3382      * @since 16
3383      */
3384     NODE_TEXT_INPUT_ENABLE_PREVIEW_TEXT = 7033,
3385 
3386     /**
3387      * @brief Sets whether to center text vertically in the textInput component.
3388      *
3389      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3390      * .value[0].i32: whether to center text vertically. The default value is <b>false</b>. \n
3391      * \n
3392      * Format of the return value {@link ArkUI_AttributeItem}:\n
3393      * .value[0].i32: whether to center text vertically. \n
3394      *
3395      * @since 16
3396      */
3397     NODE_TEXT_INPUT_HALF_LEADING = 7034,
3398 
3399     /**
3400     * @brief Set the keyboard style of textInput
3401     *
3402     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3403     * .value[0].i32: keyboard style,the parameter type is {@link ArkUI_KeyboardAppearance}.\n
3404     * \n
3405     * Format of the return value {@link ArkUI_AttributeItem}:\n
3406     * .value[0].i32: keyboard style,the parameter type is {@link ArkUI_KeyboardAppearance}.\n
3407     *
3408     * @since 15
3409     */
3410     NODE_TEXT_INPUT_KEYBOARD_APPEARANCE = 7035,
3411 
3412     /**
3413      * @brief Set whether to enable the auto fill animation or not.
3414      *
3415      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3416      * .value[0].i32: Whether to enable the auto fill animation.\n
3417      * \n
3418      * Format of the return value {@link ArkUI_AttributeItem}: \n
3419      * .value[0].i32: Get the flag of whether the auto fill animation is enabled.\n
3420      *
3421      * @since 20
3422      */
3423      NODE_TEXT_INPUT_ENABLE_FILL_ANIMATION = 7036,
3424 
3425     /**
3426      * @brief Set the line height of the input node.
3427      * This attribute can be set, reset, and obtained as required through APIs.
3428      *
3429      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3430      * .value[0].i32: line height value. \n
3431      * \n
3432      * Format of the return value {@link ArkUI_AttributeItem}: \n
3433      * .value[0].i32: line height value. \n
3434      *
3435      * @since 20
3436      */
3437     NODE_TEXT_INPUT_LINE_HEIGHT = 7037,
3438 
3439     /**
3440      * @brief Defines the default placeholder text for the multi-line text box.
3441      * This attribute can be set, reset, and obtained as required through APIs.
3442      *
3443      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3444      * .string: default placeholder text. \n
3445      * \n
3446      * Format of the return value {@link ArkUI_AttributeItem}:\n
3447      * .string: default placeholder text. \n
3448      *
3449      */
3450     NODE_TEXT_AREA_PLACEHOLDER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_AREA,
3451     /**
3452      * @brief Defines the default text content for the multi-line text box.
3453      * This attribute can be set, reset, and obtained as required through APIs.
3454      *
3455      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3456      * .string: default text content. \n
3457      * \n
3458      * Format of the return value {@link ArkUI_AttributeItem}:\n
3459      * .string: default text content. \n
3460      *
3461      */
3462     NODE_TEXT_AREA_TEXT,
3463     /**
3464      * @brief Defines the maximum number of characters in the TextInput.
3465      * This attribute can be set, reset, and obtained as required through APIs.
3466      *
3467      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3468      * .value[0].i32: maximum number of characters in the TextInput. \n
3469      * \n
3470      * Format of the return value {@link ArkUI_AttributeItem}:\n
3471      * .value[0].i32: maximum number of characters in the TextInput. \n
3472      *
3473      */
3474     NODE_TEXT_AREA_MAX_LENGTH,
3475     /**
3476      * @brief Defines the placeholder text color.
3477      * This attribute can be set, reset, and obtained as required through APIs.
3478      *
3479      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3480      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
3481      * \n
3482      * Format of the return value {@link ArkUI_AttributeItem}:\n
3483      * .value[0].u32: color value, in 0xARGB format. \n
3484      *
3485      */
3486     NODE_TEXT_AREA_PLACEHOLDER_COLOR,
3487     /**
3488      * @brief Defines the placeholder text font.
3489      * This attribute can be set, reset, and obtained as required through APIs.
3490      *
3491      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3492      * .value[0]?.f32: font size, in fp. Optional. The default value is <b>16.0</b>.\n
3493      * .value[1]?.i32: font style {@link ArkUI_FontStyle}. Optional. The default value is
3494      * <b>ARKUI_FONT_STYLE_NORMAL</b>.\n
3495      * .value[2]?.i32: font weight {@link ArkUI_FontWeight}. Optional. The default value is
3496      * <b>ARKUI_FONT_WEIGHT_NORMAL</b>.\n
3497      * ?.string: font family. Multiple font families are separated by commas (,).
3498      * For example, "font weight; font family 1, font family 2". \n
3499      * \n
3500      * Format of the return value {@link ArkUI_AttributeItem}:\n
3501      * .value[0].f32: font size, in fp.\n
3502      * .value[1].i32: font style {@link ArkUI_FontStyle}.\n
3503      * .value[2].i32: font weight {@link ArkUI_FontWeight}.\n
3504      * .string: font family. Multiple font families are separated by commas (,). \n
3505      *
3506      */
3507     NODE_TEXT_AREA_PLACEHOLDER_FONT,
3508     /**
3509      * @brief Defines the caret color attribute.
3510      * This attribute can be set, reset, and obtained as required through APIs.
3511      *
3512      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3513      * .value[0].u32: background color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
3514      * \n
3515      * Format of the return value {@link ArkUI_AttributeItem}:\n
3516      * .value[0].u32: background color, in 0xARGB format. \n
3517      *
3518      */
3519     NODE_TEXT_AREA_CARET_COLOR,
3520     /**
3521      * @brief Defines the editable state for the multi-line text box.
3522      * This attribute can be set as required through APIs.
3523      *
3524      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3525      * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the
3526      * editable state, and <b>false</b> means to exit the editable state.\n \n
3527      * \n
3528      * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:
3529      * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the editable
3530      * state, and <b>false</b> means to exit the editable state.\n \n
3531      *
3532      */
3533     NODE_TEXT_AREA_EDITING,
3534     /**
3535      * @brief Defines the text box type. This attribute can be set, reset, and obtained as required through APIs.
3536      *
3537      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3538      * .value[0].i32: text box type {@link ArkUI_TextAreaType}.
3539      * The default value is <b>ARKUI_TEXTAREA_TYPE_NORMAL</b>. \n
3540      * \n
3541      * Format of the return value {@link ArkUI_AttributeItem}:\n
3542      * .value[0].i32: text box type {@link ArkUI_TextAreaType}. \n
3543      *
3544      */
3545     NODE_TEXT_AREA_TYPE,
3546     /**
3547      * @brief Defines the counter settings. This attribute can be set, reset, and obtained as required through APIs.
3548      *
3549      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3550      * .value[0].i32: whether to show a character counter. The value <b>true</b> means to show a character counter. \n
3551      * .value[1]?.f32: threshold percentage for displaying the character counter. The character counter is displayed
3552      * when the number of characters that have been entered is greater than the maximum number of characters multiplied
3553      * by the threshold percentage value. The value range is 1 to 100. If the value is a decimal, it is rounded down. \n
3554      * .value[2]?.i32: whether to highlight the border when the number of entered characters reaches the maximum. \n
3555      * \n
3556      * Format of the return value {@link ArkUI_AttributeItem}:\n
3557      * .value[0].i32: whether to show a character counter. \n
3558      * .value[1].f32: threshold percentage for displaying the character counter. The character counter is displayed
3559      * when the number of characters that have been entered is greater than the maximum number of characters multiplied
3560      * by the threshold percentage value. The value range is 1 to 100. \n
3561      * .value[2].i32: whether to highlight the border when the number of entered characters reaches the maximum.
3562      * The default value is <b>true</b>. \n
3563      *
3564      */
3565     NODE_TEXT_AREA_SHOW_COUNTER,
3566 
3567     /**
3568      * @brief Sets whether to hide the text selection menu when the text box is long-pressed, double-click,
3569      * or right-clicked. This attribute can be set, reset, and obtained as required through APIs.
3570      *
3571      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3572      * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click,
3573      * or right-clicked. The default value is <b>false</b>. \n
3574      * \n
3575      * Format of the return value {@link ArkUI_AttributeItem}:\n
3576      * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click,
3577      * or right-clicked. \n
3578      *
3579      */
3580     NODE_TEXT_AREA_SELECTION_MENU_HIDDEN,
3581     /**
3582      * @brief Sets whether the multi-line text box loses focus after the Enter key is pressed to submit information.
3583      *
3584      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3585      * .value[0].i32: whether the text box loses focus. \n
3586      * \n
3587      * Format of the return value {@link ArkUI_AttributeItem}:\n
3588      * .value[0].i32: whether the text box loses focus. \n
3589      *
3590      */
3591     NODE_TEXT_AREA_BLUR_ON_SUBMIT,
3592     /**
3593      * @brief Sets the regular expression for input filtering.
3594      * Only inputs that comply with the regular expression can be displayed.
3595      * Other inputs are filtered out. The specified regular expression can match single characters,
3596      * but not strings.
3597      *
3598      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3599      * .string: regular expression. \n
3600      * \n
3601      * Format of the return value {@link ArkUI_AttributeItem}:\n
3602      * .string: regular expression. \n
3603      *
3604      */
3605     NODE_TEXT_AREA_INPUT_FILTER,
3606     /**
3607      * @brief Defines the background color of the selected text.
3608      * This attribute can be set, reset, and obtained as required through APIs.
3609      *
3610      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3611      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
3612      * \n
3613      * Format of the return value {@link ArkUI_AttributeItem}:\n
3614      * .value[0].u32: color value, in 0xARGB format. \n
3615      *
3616      */
3617     NODE_TEXT_AREA_SELECTED_BACKGROUND_COLOR,
3618     /**
3619      * @brief Defines the type of the Enter key.
3620      * This attribute can be set, reset, and obtained as required through APIs.
3621      *
3622      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3623      * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. The default value is <b>ARKUI_ENTER_KEY_TYPE_DONE</b>. \n
3624      * \n
3625      * Format of the return value {@link ArkUI_AttributeItem}:\n
3626      * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. \n
3627      *
3628      */
3629     NODE_TEXT_AREA_ENTER_KEY_TYPE,
3630     /**
3631      * @brief Defines whether to enable the input method when the component obtains focus.
3632      * This attribute can be set, reset, and obtained as required through APIs.
3633      *
3634      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3635      * .value[0].i32: whether to enable the input method when the component obtains focus.
3636      * The value <b>true</b> means to enable the input method, and <b>false</b> means the opposite.\n \n
3637      * \n
3638      * Format of the return value {@link ArkUI_AttributeItem}:\n
3639      * .value[0].i32: The value <b>1</b> means to enable the input method when the component obtains focus,
3640      * and <b>0</b> means the opposite. \n
3641      *
3642      */
3643     NODE_TEXT_AREA_ENABLE_KEYBOARD_ON_FOCUS,
3644     /**
3645     * @brief Sets or retrieves the caret position information.
3646     *
3647     * The property setting method accepts parameters in the format of {@link ArkUI_AttributeItem}:\n
3648     * Sets the position of the input caret. \n
3649     * .value[0].i32: The number of characters from the start of the string to the caret position. \n
3650     *
3651     * The property retrieval method returns values in the format of {@link ArkUI_AttributeItem}:\n
3652     * Returns the current caret position information. \n
3653     * In the case of obtaining the caret position: If this API is called when the caret position is updated in the
3654     * current frame, it will not take effect. \n
3655     * value[0].i32: The index of the caret position. \n
3656     * value[1].f32: The x-coordinate of the caret relative to the TextArea. \n
3657     * value[2].f32: The y-coordinate of the caret relative to the TextArea. \n
3658     */
3659     NODE_TEXT_AREA_CARET_OFFSET,
3660     /**
3661      * @brief Obtains the position of the edited TextArea relative to the component and its size.
3662      *
3663      * Format of the return value {@link ArkUI_AttributeItem}:\n
3664      * .value[0].f32: horizontal coordinate. \n
3665      * .value[1].f32: vertical coordinate. \n
3666      * .value[2].f32: content width. \n
3667      * .value[3].f32: content height. \n
3668      *
3669      */
3670     NODE_TEXT_AREA_CONTENT_RECT,
3671     /**
3672      * @brief Obtains the number of lines of the edited text.
3673      *
3674      * Format of the return value {@link ArkUI_AttributeItem}:\n
3675      * .value[0].i32: number of lines of the edited text. \n
3676      *
3677      */
3678     NODE_TEXT_AREA_CONTENT_LINE_COUNT,
3679     /**
3680      * @brief Sets the text selection area, which will be highlighted.
3681      * This attribute can be set, reset, and obtained as required through APIs.
3682      *
3683      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3684      * .value[0].i32: start position of the text selection. \n
3685      * .value[1].i32: end position of the text selection. \n
3686      * \n
3687      * Format of the return value {@link ArkUI_AttributeItem}:\n
3688      * .value[0].i32: start position of the text selection. \n
3689      * .value[1].i32: end position of the text selection. \n
3690      *
3691      */
3692     NODE_TEXT_AREA_TEXT_SELECTION,
3693     /**
3694      * @brief Sets whether to enable autofill.
3695      *
3696      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3697      * .value[0].i32: whether to enable autofill. The default value is <b>true</b>. \n
3698      * \n
3699      * Format of the return value {@link ArkUI_AttributeItem}:\n
3700      * .value[0].i32: whether to enable autofill. \n
3701      *
3702      */
3703     NODE_TEXT_AREA_ENABLE_AUTO_FILL,
3704     /**
3705      * @brief Sets the autofill type.
3706      *
3707      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3708      * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
3709      * \n
3710      * Format of the return value {@link ArkUI_AttributeItem}:\n
3711      * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
3712      *
3713      */
3714     NODE_TEXT_AREA_CONTENT_TYPE,
3715 
3716     /**
3717      * @brief Sets whether the keyboard pops up when TextArea gains focus.
3718      * It supports property setting, property reset and property acquisition interfaces.
3719      *
3720      * Attribute setting method parameter {@link ArkUI_AttributeItem} format:\n
3721      * .value[0].i32: Whether to pop up the keyboard. \n
3722      * \n
3723      * Attribute acquisition method return value {@link ArkUI_AttributeItem} format:\n
3724      * .value[0].i32: Whether to pop up the keyboard. \n
3725      *
3726      */
3727     NODE_TEXT_AREA_SHOW_KEYBOARD_ON_FOCUS,
3728 
3729     /**
3730      * @brief When this property is set, the height of the textArea component is calculated using this property.
3731      *
3732      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3733      * .value[0].i32: set the value of numberOfLines.\n
3734      * \n
3735      * Format of the return value {@link ArkUI_AttributeItem}:\n
3736      * .value[0].i32: Set the value of numberOfLines\n
3737      *
3738      */
3739     NODE_TEXT_AREA_NUMBER_OF_LINES,
3740 
3741     /**
3742      * @brief Sets the letter spacing of the <b>TextArea</b> component.
3743      * This attribute can be set, reset, and obtained as required through APIs.
3744      *
3745      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3746      * .value[0].f32: letter spacing. The default unit is fp. \n
3747      * \n
3748      * Format of the return value {@link ArkUI_AttributeItem}:\n
3749      * .value[0].f32: letter spacing. The default unit is fp. \n
3750      *
3751      * @since 16
3752      */
3753     NODE_TEXT_AREA_LETTER_SPACING = 8023,
3754 
3755     /**
3756      * @brief Sets whether to enable preview text for the <b>TextArea</b> component.
3757      * This attribute can be set, reset, and obtained as required through APIs.
3758      *
3759      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3760      * .value[0].i32: whether to enable preview tex. \n
3761      * \n
3762      * Format of the return value {@link ArkUI_AttributeItem}:\n
3763      * .value[0].i32: whether to enable preview tex. \n
3764      *
3765      * @since 16
3766      */
3767     NODE_TEXT_AREA_ENABLE_PREVIEW_TEXT = 8024,
3768 
3769     /**
3770      * @brief Sets whether to center text vertically in the textArea component.
3771      *
3772      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3773      * .value[0].i32: whether to center text vertically. The default value is <b>false</b>. \n
3774      * \n
3775      * Format of the return value {@link ArkUI_AttributeItem}:\n
3776      * .value[0].i32: whether to center text vertically. \n
3777      *
3778      * @since 16
3779      */
3780     NODE_TEXT_AREA_HALF_LEADING = 8025,
3781 
3782     /**
3783     * @brief Set the keyboard style of textArea
3784     *
3785     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3786     * .value[0].i32:keyboard style,the parameter type is {@link ArkUI_KeyboardAppearance}.\n
3787     * \n
3788     * Format of the return value {@link ArkUI_AttributeItem}:\n
3789     * .value[0].i32:keyboard style,the parameter type is {@link ArkUI_KeyboardAppearance}.\n
3790     *
3791     * @since 15
3792     */
3793     NODE_TEXT_AREA_KEYBOARD_APPEARANCE = 8026,
3794 
3795     /**
3796      * @brief Set the max lines of the node. This attrilbute can be set, reset, and obtained as required through APIs.
3797      *
3798      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3799      * .value[0].i32: max lines count. \n
3800      * \n
3801      * Format of the return value {@link ArkUI_AttributeItem}:\n
3802      * .value[0].i32: max lines count. \n
3803      *
3804      * @since 20
3805      */
3806     NODE_TEXT_AREA_MAX_LINES = 8027,
3807 
3808     /**
3809      * @brief Set line spacing of the node. This attribute can be set, reset, and obtained as required through APIs.
3810      *
3811      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3812      * .value[0].i32: line spacing value. \n
3813      * \n
3814      * Format of the return value {@link ArkUI_AttributeItem}:\n
3815      * .value[0].i32: line spacing value. \n
3816      *
3817      * @since 20
3818      */
3819     NODE_TEXT_AREA_LINE_SPACING = 8028,
3820 
3821     /**
3822      * @brief Set the min lines of the node. This attribute can be set, reset, and obtained as required through APIs.
3823      *
3824      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3825      * .value[0].i32: min lines count.
3826      * \n
3827      * Format of the return value {@link ArkUI_AttributeItem}: \n
3828      * .value[0].i32: min line count.\n
3829      *
3830      * @since 20
3831      *
3832      */
3833     NODE_TEXT_AREA_MIN_LINES = 8029,
3834 
3835     /**
3836      * @brief Set the max lines of the node with scroll.
3837      * This attribute can be set, reset, and obtained as required through APIs.
3838      *
3839      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3840      * .value[0].i32: max lines count with scroll.
3841      * \n
3842      * Format of the return value {@link ArkUI_AttributeItem}: \n
3843      * .value[0].i32: max line count with scroll.\n
3844      *
3845      * @since 20
3846      *
3847      */
3848     NODE_TEXT_AREA_MAX_LINES_WITH_SCROLL = 8030,
3849 
3850     /**
3851      * @brief Set the line height of the node. This attribute can be set, reset, and obtained as required through APIs.
3852      *
3853      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3854      * .value[0].i32: line height value. \n
3855      * \n
3856      * Format of the return value {@link ArkUI_AttributeItem}: \n
3857      * .value[0].i32: line height value. \n
3858      *
3859      * @since 20
3860      */
3861     NODE_TEXT_AREA_LINE_HEIGHT = 8031,
3862 
3863     /**
3864      * @brief Defines the button text content. This attribute can be set, reset, and obtained as required through APIs.
3865      *
3866      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3867      * .string: default text content. \n
3868      * \n
3869      * Format of the return value {@link ArkUI_AttributeItem}:\n
3870      * .string: default text content. \n
3871      *
3872      */
3873     NODE_BUTTON_LABEL = MAX_NODE_SCOPE_NUM * ARKUI_NODE_BUTTON,
3874 
3875     /**
3876      * @brief Sets the button type. This attribute can be set, reset, and obtained as required through APIs.
3877      *
3878      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3879      * .value[0].i32: button type. The parameter type is {@link ArkUI_ButtonType}.
3880      * The default value is <b>ARKUI_BUTTON_TYPE_CAPSULE</b>. \n
3881      * \n
3882      * Format of the return value {@link ArkUI_AttributeItem}:\n
3883      * .value[0].i32: button type. The parameter type is {@link ArkUI_ButtonType}.
3884      * The default value is <b>ARKUI_BUTTON_TYPE_CAPSULE</b>. \n
3885      *
3886      */
3887     NODE_BUTTON_TYPE,
3888 
3889     /**
3890     * @brief Defines the minimum font scale attribute, which can be set, reset, and obtained as required through APIs.
3891     *
3892     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3893     * .value[0].f32: minimum font scale, in fp.
3894     * \n
3895     * Format of the return value {@link ArkUI_AttributeItem}:\n
3896     * .value[0].f32: minimum font scale, in fp.
3897     *
3898     * @since 18
3899     */
3900     NODE_BUTTON_MIN_FONT_SCALE,
3901 
3902     /**
3903     * @brief Defines the maximum font scale attribute, which can be set, reset, and obtained as required through APIs.
3904     *
3905     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3906     * .value[0].f32: maximum font scale, in fp.
3907     * \n
3908     * Format of the return value {@link ArkUI_AttributeItem}:\n
3909     * .value[0].f32: maximum font scale, in fp.
3910     *
3911     * @since 18
3912     */
3913     NODE_BUTTON_MAX_FONT_SCALE,
3914 
3915     /**
3916      * @brief Defines the current value of the progress indicator.
3917      * This attribute can be set, reset, and obtained as required through APIs.
3918      *
3919      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3920      * .value[0].f32: current value of the progress indicator. \n
3921      * \n
3922      * Format of the return value {@link ArkUI_AttributeItem}:\n
3923      * .value[0].f32: current value of the progress indicator. \n
3924      *
3925      */
3926     NODE_PROGRESS_VALUE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_PROGRESS,
3927     /**
3928      * @brief Defines the total value of the progress indicator.
3929      * This attribute can be set, reset, and obtained as required through APIs.
3930      *
3931      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3932      * .value[0].f32: total value of the progress indicator. \n
3933      * \n
3934      * Format of the return value {@link ArkUI_AttributeItem}:\n
3935      * .value[0].f32: total value of the progress indicator. \n
3936      *
3937      */
3938     NODE_PROGRESS_TOTAL,
3939     /**
3940      * @brief Defines the color for the progress value on the progress indicator.
3941      * This attribute can be set, reset, and obtained as required through APIs.
3942      *
3943      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3944      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
3945      * \n
3946      * Format of the return value {@link ArkUI_AttributeItem}:\n
3947      * .value[0].u32: color value, in 0xARGB format. \n
3948      *
3949      */
3950     NODE_PROGRESS_COLOR,
3951     /**
3952      * @brief Defines the type of the progress indicator.
3953      * This attribute can be set, reset, and obtained as required through APIs.
3954      *
3955      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3956      * .value[0].i32: type of the progress indicator {@link ArkUI_ProgressType}.
3957      * The default value is <b>ARKUI_PROGRESS_TYPE_LINEAR</b>. \n
3958      * \n
3959      * Format of the return value {@link ArkUI_AttributeItem}:\n
3960      * .value[0].i32: type of the progress indicator {@link ArkUI_ProgressType}. \n
3961      *
3962      */
3963     NODE_PROGRESS_TYPE,
3964     /**
3965      * @brief Sets the style of the linear progress indicator.
3966      * This attribute can be set, reset, and obtained as required through APIs.
3967      * If the progress indicator type is not linear, it will not take effect.
3968      *
3969      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3970      * .object: Use the {@link ArkUI_ProgressLinearStyleOption} object to set the style. \n
3971      * \n
3972      * Format of the return value {@link ArkUI_AttributeItem}:\n
3973      * .object: Use the {@link ArkUI_ProgressLinearStyleOption} object to get the style. \n
3974      *
3975      * @since 15
3976      */
3977     NODE_PROGRESS_LINEAR_STYLE,
3978 
3979     /**
3980      * @brief Defines whether the check box is selected.
3981      * This attribute can be set, reset, and obtained as required through APIs.
3982      *
3983      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3984      * .value[0].i32: whether the check box is selected.
3985      * The value <b>1</b> means that the check box is selected, and <b>0</b> means the opposite. \n
3986      * \n
3987      * Format of the return value {@link ArkUI_AttributeItem}:\n
3988      * .value[0].i32: The value <b>1</b> means that the check box is selected, and <b>0</b> means the opposite. \n
3989      *
3990      */
3991     NODE_CHECKBOX_SELECT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX,
3992 
3993     /**
3994      * @brief Defines the color of the check box when it is selected.
3995      * This attribute can be set, reset, and obtained as required through APIs.
3996      *
3997      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3998      * .value[0].u32: color of the check box when it is selected, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
3999      * \n
4000      * Format of the return value {@link ArkUI_AttributeItem}:\n
4001      * .value[0].u32: color of the check box when it is selected, in 0xARGB format, for example, <b>0xFF1122FF</b>.
4002      *
4003      */
4004     NODE_CHECKBOX_SELECT_COLOR,
4005 
4006     /**
4007      * @brief Defines the border color of the check box when it is not selected.
4008      * This attribute can be set, reset, and obtained as required through APIs.
4009      *
4010      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4011      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
4012      * \n
4013      * Format of the return value {@link ArkUI_AttributeItem}:\n
4014      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.
4015      *
4016      */
4017     NODE_CHECKBOX_UNSELECT_COLOR,
4018 
4019     /**
4020      * @brief Defines the internal icon style of the check box.
4021      * This attribute can be set, reset, and obtained as required through APIs.
4022      *
4023      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4024      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
4025      * .value[1]?.f32: size of the internal mark, in vp. Optional.\n
4026      * .value[2]?.f32: stroke width of the internal mark, in vp. Optional. The default value is <b>2</b>. \n
4027      * \n
4028      * Format of the return value {@link ArkUI_AttributeItem}:\n
4029      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
4030      * .value[1].f32: size of the internal mark, in vp. \n
4031      * .value[2].f32: stroke width of the internal mark, in vp. The default value is <b>2</b>. \n
4032      *
4033      */
4034     NODE_CHECKBOX_MARK,
4035 
4036     /**
4037      * @brief Defines the shape of the check box.
4038      * This attribute can be set, reset, and obtained as required through APIs.
4039      *
4040      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4041      * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}. \n
4042      * \n
4043      * Format of the return value {@link ArkUI_AttributeItem}:\n
4044      * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}.
4045      *
4046      */
4047     NODE_CHECKBOX_SHAPE,
4048 
4049     /**
4050      * @brief Defines the name of the checkbox.
4051      * This attribute can be set, reset, and obtained as required through APIs.
4052      *
4053      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4054      * .string: component name. \n
4055      * \n
4056      * Format of the return value {@link ArkUI_AttributeItem}:\n
4057      * .string: component name. \n
4058      *
4059      *@since 15
4060      */
4061     NODE_CHECKBOX_NAME = 11005,
4062 
4063     /**
4064      * @brief Defines the name of the checkbox.
4065      * This attribute can be set, reset, and obtained as required through APIs.
4066      *
4067      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4068      * .string: component name. \n
4069      * \n
4070      * Format of the return value {@link ArkUI_AttributeItem}:\n
4071      * .string: component name. \n
4072      *
4073      * @since 15
4074      */
4075     NODE_CHECKBOX_GROUP = 11006,
4076 
4077     /**
4078      * @brief Defines the ID of the <b><XComponent></b> component.
4079      * This attribute can be set and obtained as required through APIs.
4080      *
4081      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4082      * .string: component ID. \n
4083      * \n
4084      * Format of the return value {@link ArkUI_AttributeItem}:\n
4085      * .string: component ID. \n
4086      *
4087      */
4088     NODE_XCOMPONENT_ID = MAX_NODE_SCOPE_NUM * ARKUI_NODE_XCOMPONENT,
4089     /**
4090      * @brief Defines the type of the <b><XComponent></b> component.
4091      * This attribute can be set, reset, and obtained as required through APIs.
4092      *
4093      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4094      * .value[0].i32: type {@link ArkUI_XComponentType}. The default value is <b>ARKUI_XCOMPONENT_TYPE_SURFACE</b>. \n
4095      * \n
4096      * Format of the return value {@link ArkUI_AttributeItem}:\n
4097      * .value[0].i32: type {@link ArkUI_XComponentType}. \n
4098      *
4099      */
4100     NODE_XCOMPONENT_TYPE,
4101     /**
4102      * @brief Defines the width and height of the <b><XComponent></b> component.
4103      * This attribute can be set and obtained as required through APIs.
4104      *
4105      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4106      * .value[0].u32: width, in px. \n
4107      * .value[1].u32: height, in px. \n
4108      * \n
4109      * Format of the return value {@link ArkUI_AttributeItem}:\n
4110      * .value[0].u32: width, in px. \n
4111      * .value[1].u32: height, in px. \n
4112      *
4113      */
4114     NODE_XCOMPONENT_SURFACE_SIZE,
4115     /**
4116      * @brief Defines the rectangle information of surface created by the <b><XComponent></b> component.
4117      * This attribute can be set and obtained as required through APIs.
4118      *
4119      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4120      * .value[0].i32: The horizontal offset of the surface relative to XComponent, in pixels. \n
4121      * .value[1].i32: The vertical offset of the surface relative to XComponent, in pixels. \n
4122      * .value[2].i32: The width of the surface created by XComponent, in pixels. \n
4123      * .value[3].i32: The height of the surface created by XComponent, in pixels. \n
4124      * \n
4125      * Format of the return value {@link ArkUI_AttributeItem}:\n
4126      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4127      * .value[0].i32: The horizontal offset of the surface relative to XComponent, in pixels. \n
4128      * .value[1].i32: The vertical offset of the surface relative to XComponent, in pixels. \n
4129      * .value[2].i32: The width of the surface created by XComponent, in pixels. \n
4130      * .value[3].i32: The height of the surface created by XComponent, in pixels. \n
4131      * @since 18
4132      */
4133     NODE_XCOMPONENT_SURFACE_RECT,
4134     /**
4135      * @brief Defines whether to enable the AI analyzer for the <b><XComponent></b> component.
4136      * This attribute can be set and obtained as required through APIs.
4137      *
4138      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4139      * value[0].i32: The parameter type is 1 or 0.
4140      * \n
4141      * Format of the return value {@link ArkUI_AttributeItem}:\n
4142      * value[0].i32: The parameter type is 1 or 0.
4143      * @since 18
4144      */
4145     NODE_XCOMPONENT_ENABLE_ANALYZER,
4146 
4147     /**
4148      * @brief Defines whether to display the lunar calendar in the date picker.
4149      * This attribute can be set, reset, and obtained as required through APIs.
4150      *
4151      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4152      * .value[0].i32: whether to display the lunar calendar in the date picker. The default value is <b>false</b>. \n
4153      * \n
4154      * Format of the return value {@link ArkUI_AttributeItem}:\n
4155      * .value[0].i32: whether to display the lunar calendar in the date picker.
4156      *
4157      */
4158     NODE_DATE_PICKER_LUNAR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_DATE_PICKER,
4159     /**
4160      * @brief Defines the start date of the date picker.
4161      * This attribute can be set, reset, and obtained as required through APIs.
4162      *
4163      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4164      * .string: date. The default value is <b>"1970-1-1"</b>. \n
4165      * \n
4166      * Format of the return value {@link ArkUI_AttributeItem}:\n
4167      * .string: date. \n
4168      *
4169      */
4170     NODE_DATE_PICKER_START,
4171     /**
4172      * @brief Defines the end date of the date picker.
4173      * This attribute can be set, reset, and obtained as required through APIs.
4174      *
4175      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4176      * .string: date. The default value is <b>"2100-12-31"</b>. \n
4177      * \n
4178      * Format of the return value {@link ArkUI_AttributeItem}:\n
4179      * .string: date. \n
4180      *
4181      */
4182     NODE_DATE_PICKER_END,
4183     /**
4184      * @brief Defines the selected date of the date picker.
4185      * This attribute can be set, reset, and obtained as required through APIs.
4186      *
4187      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4188      * .string: date. The default value is <b>"2024-01-22"</b>. \n
4189      * \n
4190      * Format of the return value {@link ArkUI_AttributeItem}:\n
4191      * .string: date.
4192      *
4193      */
4194     NODE_DATE_PICKER_SELECTED,
4195     /**
4196      * @brief Defines the font color, font size, and font weight for the top and bottom items in the date picker.
4197      * This attribute can be set, reset, and obtained as required through APIs.
4198      *
4199      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4200      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4201      * Parameter 1: font color, in #ARGB format.\n
4202      * Parameter 2: font size, in fp. The value is a number.\n
4203      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4204      * Parameter 4: fonts, separated by commas (,).\n
4205      * Parameter 5: font style. Available options are ("normal", "italic").\n
4206      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4207      * \n
4208      * Format of the return value {@link ArkUI_AttributeItem}:\n
4209      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4210      * Parameter 1: font color, in #ARGB format.\n
4211      * Parameter 2: font size, in fp. The value is a number.\n
4212      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4213      * Parameter 4: fonts, separated by commas (,).\n
4214      * Parameter 5: font style. Available options are ("normal", "italic").\n
4215      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4216      *
4217      */
4218     NODE_DATE_PICKER_DISAPPEAR_TEXT_STYLE,
4219     /**
4220      * @brief Defines the font color, font size, and font weight of all items except the top, bottom, and selected
4221      * items in the date picker. This attribute can be set, reset, and obtained as required through APIs.
4222      *
4223      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4224      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4225      * Parameter 1: font color, in #ARGB format.\n
4226      * Parameter 2: font size, in fp. The value is a number.\n
4227      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4228      * Parameter 4: fonts, separated by commas (,).\n
4229      * Parameter 5: font style. Available options are ("normal", "italic").\n
4230      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4231      * \n
4232      * Format of the return value {@link ArkUI_AttributeItem}:\n
4233      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4234      * Parameter 1: font color, in #ARGB format.\n
4235      * Parameter 2: font size, in fp. The value is a number.\n
4236      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4237      * Parameter 4: fonts, separated by commas (,).\n
4238      * Parameter 5: font style. Available options are ("normal", "italic").\n
4239      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4240      *
4241      */
4242     NODE_DATE_PICKER_TEXT_STYLE,
4243     /**
4244      * @brief Defines the font color, font size, and font weight of the selected item in the date picker.
4245      * This attribute can be set, reset, and obtained as required through APIs.
4246      *
4247      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4248      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4249      * Parameter 1: font color, in #ARGB format.\n
4250      * Parameter 2: font size, in fp. The value is a number.\n
4251      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4252      * Parameter 4: fonts, separated by commas (,).\n
4253      * Parameter 5: font style. Available options are ("normal", "italic").\n
4254      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4255      * \n
4256      * Format of the return value {@link ArkUI_AttributeItem}:\n
4257      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4258      * Parameter 1: font color, in #ARGB format.\n
4259      * Parameter 2: font size, in fp. The value is a number.\n
4260      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4261      * Parameter 4: fonts, separated by commas (,).\n
4262      * Parameter 5: font style. Available options are ("normal", "italic").\n
4263      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4264      *
4265      */
4266     NODE_DATE_PICKER_SELECTED_TEXT_STYLE,
4267     /**
4268      * @brief Defines the mode of the date picker.
4269      * This attribute can be set, reset, and obtained as required through APIs.
4270      *
4271      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4272      * value[0].i32: the mode. The value is and enum of {@link ArkUI_DatePickerMode}.\n.
4273      * \n
4274      * Format of the return value {@link ArkUI_AttributeItem}:\n
4275      * value[0].i32: the mode. The value is and enum of {@link ArkUI_DatePickerMode}.\n.
4276      *
4277      * @since 18
4278      */
4279     NODE_DATE_PICKER_MODE = 13007,
4280     /**
4281      * @brief Defines whether haptic feedback.
4282      * This attribute can be set, reset, and obtained as required through APIs.
4283      *
4284      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4285      * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
4286      * <b>false</b> means the opposite.\n
4287      * \n
4288      * Format of the return value {@link ArkUI_AttributeItem}:\n
4289      * value[0].i32: whether to feedback.\n
4290      *
4291      * @since 18
4292      */
4293     NODE_DATE_PICKER_ENABLE_HAPTIC_FEEDBACK = 13008,
4294     /**
4295      * @brief Defines whether to support scroll looping for the date picker.
4296      * This attribute can be set, reset, and obtained as required through APIs.
4297      *
4298      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4299      * .value[0].i32: whether to support scroll looping. The value <b>true</b> means to support scroll looping, and
4300      * <b>false</b> means the opposite.\n
4301      * \n
4302      * Format of the return value {@link ArkUI_AttributeItem}:\n
4303      * value[0].i32: The value <b>1</b> means to support scroll looping, and <b>0</b> means the opposite. \n
4304      *
4305      * @since 20
4306      */
4307      NODE_DATE_PICKER_CAN_LOOP = 13009,
4308     /**
4309      * @brief Defines the time of the selected item. in the timer picker.
4310      * This attribute can be set, reset, and obtained as required through APIs.
4311      *
4312      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4313      * .string: time. The default value is the current system time. \n
4314      * \n
4315      * Format of the return value {@link ArkUI_AttributeItem}:\n
4316      * .string: time.
4317      *
4318      */
4319 
4320     NODE_TIME_PICKER_SELECTED = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TIME_PICKER,
4321     /**
4322      * @brief Defines whether the display time is in 24-hour format.
4323      * This attribute can be set, reset, and obtained as required through APIs.
4324      *
4325      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4326      * .value[0].i32: whether the display time is in 24-hour format. The default value is <b>false</b>. \n
4327      * \n
4328      * Format of the return value {@link ArkUI_AttributeItem}:\n
4329      * .value[0].i32: whether the display time is in 24-hour format.
4330      *
4331      */
4332     NODE_TIME_PICKER_USE_MILITARY_TIME,
4333     /**
4334      * @brief Defines the font color, font size, and font weight for the top and bottom items in the time picker.
4335      * This attribute can be set, reset, and obtained as required through APIs.
4336      *
4337      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4338      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4339      * Parameter 1: font color, in #ARGB format.\n
4340      * Parameter 2: font size, in fp. The value is a number.\n
4341      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4342      * Parameter 4: fonts, separated by commas (,).\n
4343      * Parameter 5: font style. Available options are ("normal", "italic").\n
4344      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4345      * \n
4346      * Format of the return value {@link ArkUI_AttributeItem}:\n
4347      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4348      * Parameter 1: font color, in #ARGB format.\n
4349      * Parameter 2: font size, in fp. The value is a number.\n
4350      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4351      * Parameter 4: fonts, separated by commas (,).\n
4352      * Parameter 5: font style. Available options are ("normal", "italic").\n
4353      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4354      *
4355      */
4356     NODE_TIME_PICKER_DISAPPEAR_TEXT_STYLE,
4357     /**
4358      * @brief Defines the font color, font size, and font weight of all items except the top, bottom, and selected items
4359      * in the time picker. This attribute can be set, reset, and obtained as required through APIs.
4360      *
4361      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4362      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4363      * Parameter 1: font color, in #ARGB format.\n
4364      * Parameter 2: font size, in fp. The value is a number.\n
4365      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4366      * Parameter 4: fonts, separated by commas (,).\n
4367      * Parameter 5: font style. Available options are ("normal", "italic").\n
4368      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4369      * \n
4370      * Format of the return value {@link ArkUI_AttributeItem}:\n
4371      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4372      * Parameter 1: font color, in #ARGB format.\n
4373      * Parameter 2: font size, in fp. The value is a number.\n
4374      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4375      * Parameter 4: fonts, separated by commas (,).\n
4376      * Parameter 5: font style. Available options are ("normal", "italic").\n
4377      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4378      *
4379      */
4380     NODE_TIME_PICKER_TEXT_STYLE,
4381     /**
4382      * @brief Defines the font color, font size, and font weight of the selected item in the time picker.
4383      * This attribute can be set, reset, and obtained as required through APIs.
4384      *
4385      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4386      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4387      * Parameter 1: font color, in #ARGB format.\n
4388      * Parameter 2: font size, in fp. The value is a number.\n
4389      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4390      * Parameter 4: fonts, separated by commas (,).\n
4391      * Parameter 5: font style. Available options are ("normal", "italic").\n
4392      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4393      * \n
4394      * Format of the return value {@link ArkUI_AttributeItem}:\n
4395      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4396      * Parameter 1: font color, in #ARGB format.\n
4397      * Parameter 2: font size, in fp. The value is a number.\n
4398      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4399      * Parameter 4: fonts, separated by commas (,).\n
4400      * Parameter 5: font style. Available options are ("normal", "italic").\n
4401      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4402      *
4403      */
4404     NODE_TIME_PICKER_SELECTED_TEXT_STYLE,
4405     /**
4406      * @brief Defines the start time of the time picker.
4407      * This attribute can be set, reset, and obtained as required through APIs.
4408      *
4409      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4410      * .string: time. The default value is <b>"00:00:00"</b>.\n
4411      * \n
4412      * Format of the return value {@link ArkUI_AttributeItem}:\n
4413      * .string: time. The default value is <b>"00:00:00"</b>.\n
4414      *
4415      * @since 18
4416      */
4417     NODE_TIME_PICKER_START = 14005,
4418     /**
4419      * @brief Defines the end time of the time picker.
4420      * This attribute can be set, reset, and obtained as required through APIs.
4421      *
4422      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4423      * .string: time. The default value is <b>"23:59:59"</b>.\n
4424      * \n
4425      * Format of the return value {@link ArkUI_AttributeItem}:\n
4426      * .string: time. The default value is <b>"23:59:59"</b>.\n
4427      *
4428      * @since 18
4429      */
4430     NODE_TIME_PICKER_END = 14006,
4431 
4432     /**
4433      * @brief Defines whether the AM/PM option is cascaded with the time in 12-hour mode.
4434      * This attribute can be set, reset, and obtained as required through APIs.
4435      *
4436      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4437      * .value[0].i32: whether to enable cascade. The default value is <b>false</b>.\n
4438      * \n
4439      * Format of the return value {@link ArkUI_AttributeItem}:\n
4440      * .value[0].i32: whether to enable cascade.\n
4441      *
4442      * @since 18
4443      */
4444     NODE_TIME_PICKER_ENABLE_CASCADE = 14007,
4445 
4446     /**
4447      * @brief Defines the data selection range of the text picker.
4448      * This attribute can be set, reset, and obtained as required through APIs.
4449      *
4450      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4451      * .value[0].i32: type of the text picker {@link ArkUI_TextPickerRangeType}.
4452      * The default value is <b>ARKUI_TEXTPICKER_RANGETYPE_SINGLE</b>. \n
4453      * ?.string: string input, whose format varies by picker type.\n
4454      * 1: single-column picker. The input format is a group of strings separated by semicolons (;).\n
4455      * 2: multi-column picker. Multiple pairs of plain text strings are supported. The pairs are separated by
4456      * semicolons (;), and strings within each pair are separated by commas (,). \n
4457      * ?.object: Object input, whose format varies by picker type.\n
4458      * 1: single-column picker with image support. The input structure is {@link ARKUI_TextPickerRangeContent}.\n
4459      * 2: multi-column interconnected picker. The input structure is {@link ARKUI_TextPickerCascadeRangeContent}.\n
4460      * \n
4461      * Format of the return value {@link ArkUI_AttributeItem}:\n
4462      * .value[0].i32: type of the text picker {@link ArkUI_TextPickerRangeType}.\n
4463      * ?.string: string output, whose format varies by picker type.\n
4464      * 1: single-column picker. The output format is a group of strings separated by semicolons (;).\n
4465      * 2: multi-column picker. Multiple pairs of plain text strings are supported. The pairs are separated by
4466      * semicolons (;), and strings within each pair are separated by commas (,). \n
4467      * ?.string: Object output, whose format varies by picker type.\n
4468      * 1: single-column picker with image support. The output structure is {@link ARKUI_TextPickerRangeContent}.\n
4469      * 2: multi-column interconnected picker. The output structure is {@link ARKUI_TextPickerCascadeRangeContent}.\n
4470      *
4471      */
4472     NODE_TEXT_PICKER_OPTION_RANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_PICKER,
4473     /**
4474      * @brief Defines the index of the default selected item in the data selection range of the text picker.
4475      * This attribute can be set, reset, and obtained as required through APIs.
4476      *
4477      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4478      * .value[0].u32: index. If there are multiple index values, add them one by one. \n
4479      * \n
4480      * Format of the return value {@link ArkUI_AttributeItem}:\n
4481      * .value[0].u32: index. If there are multiple index values, add them one by one.\n
4482      *
4483      */
4484     NODE_TEXT_PICKER_OPTION_SELECTED,
4485     /**
4486      * @brief Defines the value of the default selected item in the text picker.
4487      * This attribute can be set, reset, and obtained as required through APIs.
4488      *
4489      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4490      * .string: value of the selected item. If there are multiple values, add them one by one and
4491      * separate them with semicolons (;). \n
4492      * \n
4493      * Format of the return value {@link ArkUI_AttributeItem}:\n
4494      * .string: value of the selected item. If there are multiple values, add them one by one and
4495      * separate them with semicolons (;).\n
4496      *
4497      */
4498     NODE_TEXT_PICKER_OPTION_VALUE,
4499     /**
4500      * @brief Defines the font color, font size, and font weight for the top and bottom items in the text picker.
4501      * This attribute can be set, reset, and obtained as required through APIs.
4502      *
4503      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4504      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4505      * Parameter 1: font color, in #ARGB format.\n
4506      * Parameter 2: font size, in fp. The value is a number.\n
4507      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4508      * Parameter 4: fonts, separated by commas (,).\n
4509      * Parameter 5: font style. Available options are ("normal", "italic").\n
4510      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4511      * \n
4512      * Format of the return value {@link ArkUI_AttributeItem}:\n
4513      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4514      * Parameter 1: font color, in #ARGB format.\n
4515      * Parameter 2: font size, in fp. The value is a number.\n
4516      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4517      * Parameter 4: fonts, separated by commas (,).\n
4518      * Parameter 5: font style. Available options are ("normal", "italic").\n
4519      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4520      *
4521      */
4522     NODE_TEXT_PICKER_DISAPPEAR_TEXT_STYLE,
4523     /**
4524      * @brief Defines the font color, font size, and font weight for all items except the top, bottom, and selected
4525      * items in the text picker. This attribute can be set, reset, and obtained as required through APIs.
4526      *
4527      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4528      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4529      * Parameter 1: font color, in #ARGB format.\n
4530      * Parameter 2: font size, in fp. The value is a number.\n
4531      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4532      * Parameter 4: fonts, separated by commas (,).\n
4533      * Parameter 5: font style. Available options are ("normal", "italic").\n
4534      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4535      * \n
4536      * Format of the return value {@link ArkUI_AttributeItem}:\n
4537      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4538      * Parameter 1: font color, in #ARGB format.\n
4539      * Parameter 2: font size, in fp. The value is a number.\n
4540      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4541      * Parameter 4: fonts, separated by commas (,).\n
4542      * Parameter 5: font style. Available options are ("normal", "italic").\n
4543      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4544      *
4545      */
4546     NODE_TEXT_PICKER_TEXT_STYLE,
4547     /**
4548      * @brief Defines the font color, font size, and font weight for the selected item in the text picker.
4549      * This attribute can be set, reset, and obtained as required through APIs.
4550      *
4551      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4552      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4553      * Parameter 1: font color, in #ARGB format.\n
4554      * Parameter 2: font size, in fp. The value is a number.\n
4555      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4556      * Parameter 4: fonts, separated by commas (,).\n
4557      * Parameter 5: font style. Available options are ("normal", "italic").\n
4558      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4559      * \n
4560      * Format of the return value {@link ArkUI_AttributeItem}:\n
4561      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4562      * Parameter 1: font color, in #ARGB format.\n
4563      * Parameter 2: font size, in fp. The value is a number.\n
4564      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4565      * Parameter 4: fonts, separated by commas (,).\n
4566      * Parameter 5: font style. Available options are ("normal", "italic").\n
4567      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4568      *
4569      */
4570     NODE_TEXT_PICKER_SELECTED_TEXT_STYLE,
4571     /**
4572      * @brief Defines the index of the default selected item in the data selection range of the text picker.
4573      * This attribute can be set, reset, and obtained as required through APIs.
4574      *
4575      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4576      * .value[0...].i32: index of the default item in the data selection range.
4577      *
4578      */
4579     NODE_TEXT_PICKER_SELECTED_INDEX,
4580     /**
4581      * @brief Defines whether to support scroll looping for the text picker.
4582      * This attribute can be set, reset, and obtained as required through APIs.
4583      *
4584      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4585      * .value[0].i32: whether to support scroll looping. The value <b>true</b> means to support scroll looping, and
4586      * <b>false</b> means the opposite.\n \n
4587      * \n
4588      * Format of the return value {@link ArkUI_AttributeItem}:\n
4589      * value[0].i32: The value <b>1</b> means to support scroll looping, and <b>0</b> means the opposite. \n
4590      *
4591      */
4592     NODE_TEXT_PICKER_CAN_LOOP,
4593     /**
4594      * @brief Defines the height of each item in the picker. This attribute can be set, reset, and obtained as required
4595      * through APIs.
4596      *
4597      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4598      * .value[0].f32: item height, in vp. \n
4599      * \n
4600      * Format of the return value {@link ArkUI_AttributeItem}:\n
4601      * value[0].f32: item height, in vp. \n
4602      *
4603      */
4604     NODE_TEXT_PICKER_DEFAULT_PICKER_ITEM_HEIGHT,
4605     /**
4606      * @brief Defines whether haptic feedback.
4607      * This attribute can be set, reset, and obtained as required through APIs.
4608      *
4609      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4610      * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
4611      * <b>false</b> means the opposite.\n
4612      * \n
4613      * Format of the return value {@link ArkUI_AttributeItem}:\n
4614      * value[0].i32: whether to feedback.\n
4615      *
4616      * @since 18
4617      */
4618     NODE_TEXT_PICKER_ENABLE_HAPTIC_FEEDBACK = 15010,
4619     /**
4620      * @brief Defines the style of the background in the selected state of the calendar picker.
4621      * This attribute can be set, reset, and obtained as required through APIs.
4622      *
4623      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4624      * .value[0].f32: style of the background in the selected state of the calendar picker.
4625      * The value range is [0, +∞). If the value is <b>0</b>, the background is a rectangle with square corners.
4626      If the value is in the 0–16 range, the background is a rectangle with rounded corners. If the value is equal to
4627      * or greater than 16, the background is a circle. \n
4628      * \n
4629      * Format of the return value {@link ArkUI_AttributeItem}:\n
4630      * .value[0].f32: style of the background in the selected state of the calendar picker. The value range is [0, +∞).
4631      * If the value is <b>0</b>, the background is a rectangle with square corners.
4632      If the value is in the 0–16 range, the background is a rectangle with rounded corners. If the value is equal to or
4633      * greater than 16, the background is a circle. \n
4634      *
4635      */
4636     NODE_CALENDAR_PICKER_HINT_RADIUS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CALENDAR_PICKER,
4637     /**
4638      * @brief Defines the date of the selected item in the calendar picker.
4639      * This attribute can be set, reset, and obtained as required through APIs.
4640      *
4641      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4642      * .value[0].u32: year of the selected date. \n
4643      * .value[1].u32: month of the selected date. \n
4644      * .value[2].u32: day of the selected date. \n
4645      * \n
4646      * Format of the return value {@link ArkUI_AttributeItem}:\n
4647      * .value[0].u32: year of the selected date. \n
4648      * .value[1].u32: month of the selected date. \n
4649      * .value[2].u32: day of the selected date. \n
4650      *
4651      */
4652     NODE_CALENDAR_PICKER_SELECTED_DATE,
4653     /**
4654      * @brief Defines how the calendar picker is aligned with the entry component.
4655      * This attribute can be set, reset, and obtained as required through APIs.
4656      *
4657      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4658      * .value[0].i32: alignment mode. The parameter type is {@link ArkUI_CalendarAlignment}. \n
4659      * .value[1]?.f32: offset of the picker relative to the entry component along the x-axis after alignment based on
4660      * the specified alignment mode. \n
4661      * .value[2]?.f32: offset of the picker relative to the entry component along the y-axis after alignment based on
4662      * the specified alignment mode. \n
4663      * \n
4664      * Format of the return value {@link ArkUI_AttributeItem}:\n
4665      * .value[0].i32: alignment mode. The parameter type is {@link ArkUI_CalendarAlignment}. \n
4666      * .value[1]?.f32: offset of the picker relative to the entry component along the x-axis after alignment based on
4667      * the specified alignment mode. \n
4668      * .value[2]?.f32: offset of the picker relative to the entry component along the y-axis after alignment based on
4669      * the specified alignment mode. \n
4670      *
4671      */
4672     NODE_CALENDAR_PICKER_EDGE_ALIGNMENT,
4673     /**
4674      * @brief Defines the font color, font size, and font weight in the entry area of the calendar picker.
4675      *
4676      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4677      * .value[0]?.u32: font color of the entry area. \n
4678      * .value[1]?.f32: font size of the entry area, in fp. \n
4679      * .value[2]?.i32: font weight of the entry area. The parameter type is {@link ArkUI_FontWeight}. \n
4680      * \n
4681      * Format of the return value {@link ArkUI_AttributeItem}:\n
4682      * .value[0].u32: font color of the entry area. \n
4683      * .value[1].f32: font size of the entry area, in fp. \n
4684      * .value[2].i32: font weight of the entry area. The parameter type is {@link ArkUI_FontWeight}. \n
4685      *
4686      */
4687     NODE_CALENDAR_PICKER_TEXT_STYLE,
4688     /**
4689      * @brief Defines the start date of the calendar picker.
4690      * This attribute can be set, reset, and obtained as required through APIs.
4691      *
4692      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4693      * .string: date. The value like <b>"1970-1-1"</b>. \n
4694      * \n
4695      * Format of the return value {@link ArkUI_AttributeItem}:\n
4696      * .string: date. \n
4697      *
4698      * @since 18
4699      */
4700     NODE_CALENDAR_PICKER_START = 16004,
4701     /**
4702      * @brief Defines the end date of the calendar picker.
4703      * This attribute can be set, reset, and obtained as required through APIs.
4704      *
4705      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4706      * .string: date. The value like <b>"2100-12-31"</b>. \n
4707      * \n
4708      * Format of the return value {@link ArkUI_AttributeItem}:\n
4709      * .string: date. \n
4710      *
4711      * @since 18
4712      */
4713     NODE_CALENDAR_PICKER_END = 16005,
4714     /**
4715      * @brief Defines the color of the slider. This attribute can be set, reset, and obtained as required through APIs.
4716      *
4717      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4718      * .value[0].u32: color of the slider, in 0xARGB format, for example, <b>0xFF1122FF</b>.
4719      * \n
4720      * Format of the return value {@link ArkUI_AttributeItem}:\n
4721      * .value[0].u32: color of the slider, in 0xARGB format, for example, <b>0xFF1122FF</b>.
4722      *
4723      */
4724     NODE_SLIDER_BLOCK_COLOR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SLIDER,
4725 
4726     /**
4727      * @brief Defines the background color of the slider. This attribute can be set, reset, and obtained as required
4728      * through APIs.
4729      *
4730      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4731      * .value[0].u32: background color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
4732      * \n
4733      * Format of the return value {@link ArkUI_AttributeItem}:\n
4734      * .value[0].u32: background color, in 0xARGB format, for example, <b>0xFF1122FF</b>.
4735      *
4736      */
4737     NODE_SLIDER_TRACK_COLOR,
4738 
4739     /**
4740      * @brief Defines the color of the selected part of the slider track. This attribute can be set, reset, and obtained
4741      * as required through APIs.
4742      *
4743      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4744      * .value[0].u32: color of the selected part of the slider track, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
4745      * \n
4746      * Format of the return value {@link ArkUI_AttributeItem}:\n
4747      * .value[0].u32: color of the selected part of the slider track, in 0xARGB format, for example, <b>0xFF1122FF</b>.
4748      *
4749      */
4750     NODE_SLIDER_SELECTED_COLOR,
4751 
4752     /**
4753      * @brief Sets whether to display the stepping value. This attribute can be set, reset, and obtained as required
4754      * through APIs.
4755      *
4756      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4757      * .value[0].i32: whether to display the stepping value. The value <b>1</b> means to display the stepping value,
4758      * and <b>0</b> (default value) means the opposite. \n
4759      * \n
4760      * Format of the return value {@link ArkUI_AttributeItem}:\n
4761      * .value[0].i32: whether to display the stepping value. The value <b>1</b> means to display the stepping value,
4762      * and <b>0</b> (default value) means the opposite. \n
4763      *
4764      */
4765     NODE_SLIDER_SHOW_STEPS,
4766 
4767     /**
4768      * @brief Defines the slider shape, which can be set, reset, and obtained as required through APIs.
4769      *
4770      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4771      * .value[0].i32: shape. The parameter type is {@link ArkUI_SliderBlockStyle}. \n
4772      * .string?: depending on the shape. Optional. \n
4773      * ARKUI_SLIDER_BLOCK_STYLE_IMAGE: image resource of the slider. Example: /pages/common/icon.png. \n
4774      * ARKUI_SLIDER_BLOCK_STYLE_SHAPE: custom shape of the slider. \n
4775      * There are five types:\n
4776      * 1. Rectangle:\n
4777      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4778      * The value is <b>ARKUI_SHAPE_TYPE_RECTANGLE</b> for the rectangle shape.\n
4779      * .value[2].f32: width of the rectangle.\n
4780      * .value[3].f32: height of the rectangle.\n
4781      * .value[4].f32: width of the rounded corner of the rectangle.\n
4782      * .value[5].f32: height of the rounded corner of the rectangle.\n
4783      * 2. Circle:\n
4784      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4785      * The value is <b>ARKUI_SHAPE_TYPE_CIRCLE</b> for the circle shape.\n
4786      * .value[2].f32: width of the circle.\n
4787      * .value[3].f32: height of the circle.\n
4788      * 3.Ellipse:\n
4789      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4790      * The value is <b>ARKUI_SHAPE_TYPE_ELLIPSE</b> for the ellipse shape.\n
4791      * .value[2].f32: width of the ellipse.\n
4792      * .value[3].f32: height of the ellipse;\n
4793      * 4. Path:\n
4794      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4795      * The value is <b>ARKUI_SHAPE_TYPE_PATH</b> for the path shape.\n
4796      * .value[2].f32: width of the path.\n
4797      * .value[3].f32: height of the path.\n
4798      * .string: command for drawing the path.\n
4799      * \n
4800      * Format of the return value {@link ArkUI_AttributeItem}:\n
4801      * .value[0].i32: shape. The parameter type is {@link ArkUI_SliderBlockStyle}. \n
4802      * .string?: depending on the shape. Optional. \n
4803      * ARKUI_SLIDER_BLOCK_STYLE_IMAGE: image resource of the slider. Example: /pages/common/icon.png. \n
4804      * ARKUI_SLIDER_BLOCK_STYLE_SHAPE: custom shape of the slider. \n
4805       * There are five types:\n
4806      * 1. Rectangle:\n
4807      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4808      * The value is <b>ARKUI_SHAPE_TYPE_RECTANGLE</b> for the rectangle shape.\n
4809      * .value[2].f32: width of the rectangle.\n
4810      * .value[3].f32: height of the rectangle.\n
4811      * .value[4].f32: width of the rounded corner of the rectangle.\n
4812      * .value[5].f32: height of the rounded corner of the rectangle.\n
4813      * 2. Circle:\n
4814      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4815      * The value is <b>ARKUI_SHAPE_TYPE_CIRCLE</b> for the circle shape.\n
4816      * .value[2].f32: width of the circle.\n
4817      * .value[3].f32: height of the circle.\n
4818      * 3.Ellipse:\n
4819      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4820      * The value is <b>ARKUI_SHAPE_TYPE_ELLIPSE</b> for the ellipse shape.\n
4821      * .value[2].f32: width of the ellipse.\n
4822      * .value[3].f32: height of the ellipse;\n
4823      * 4. Path:\n
4824      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4825      * The value is <b>ARKUI_SHAPE_TYPE_PATH</b> for the path shape.\n
4826      * .value[2].f32: width of the path.\n
4827      * .value[3].f32: height of the path.\n
4828      * .string: command for drawing the path.\n
4829      *
4830      */
4831     NODE_SLIDER_BLOCK_STYLE,
4832 
4833     /**
4834      * @brief Defines the current value of the slider. This attribute can be set, reset, and obtained as required
4835      * through APIs.
4836      *
4837      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4838      * .value[0].f32: current value. \n
4839      * \n
4840      * Format of the return value {@link ArkUI_AttributeItem}:\n
4841      * .value[0].f32: current value.
4842      *
4843      */
4844     NODE_SLIDER_VALUE,
4845 
4846     /**
4847      * @brief Defines the minimum value of the slider. This attribute can be set, reset, and obtained as required
4848      * through APIs.
4849      *
4850      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4851      * .value[0].f32: minimum value. \n
4852      * \n
4853      * Format of the return value {@link ArkUI_AttributeItem}:\n
4854      * .value[0].f32: minimum value.
4855      *
4856      */
4857     NODE_SLIDER_MIN_VALUE,
4858 
4859     /**
4860      * @brief Defines the maximum value of the slider. This attribute can be set, reset, and obtained as required
4861      * through APIs.
4862      *
4863      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4864      * .value[0].f32: maximum value. \n
4865      * \n
4866      * Format of the return value {@link ArkUI_AttributeItem}:\n
4867      * .value[0].f32: maximum value.
4868      *
4869      */
4870     NODE_SLIDER_MAX_VALUE,
4871 
4872     /**
4873      * @brief Defines the step of the slider. This attribute can be set, reset, and obtained as required through APIs.
4874      *
4875      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4876      * .value[0].f32: step. The value range is [0.01, 100]. \n
4877      * \n
4878      * Format of the return value {@link ArkUI_AttributeItem}:\n
4879      * .value[0].f32: step. The value range is [0.01, 100].
4880      *
4881      */
4882     NODE_SLIDER_STEP,
4883 
4884     /**
4885      * @brief Defines whether the slider moves horizontally or vertically. This attribute can be set, reset, and
4886      * obtained as required through APIs.
4887      *
4888      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4889      * .value[0].i32: whether the slider moves horizontally or vertically.
4890      * The parameter type is {@link ArkUI_SliderDirection}. \n
4891      * \n
4892      * Format of the return value {@link ArkUI_AttributeItem}:\n
4893      * .value[0].i32: whether the slider moves horizontally or vertically.
4894      *
4895      */
4896     NODE_SLIDER_DIRECTION,
4897 
4898     /**
4899      * @brief Defines whether the slider values are reversed. This attribute can be set, reset, and obtained as required
4900      * through APIs.
4901      *
4902      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4903      * .value[0].i32: whether the slider values are reversed. The value <b>1</b> means that the slider values are
4904      * reversed, and <b>0</b> means the opposite. \n
4905      * \n
4906      * Format of the return value {@link ArkUI_AttributeItem}:\n
4907      * .value[0].i32: whether the slider values are reversed. The value <b>1</b> means that the slider values are
4908      * reversed, and <b>0</b> means the opposite.
4909      *
4910      */
4911     NODE_SLIDER_REVERSE,
4912 
4913     /**
4914      * @brief Defines the style of the slider thumb and track. This attribute can be set, reset, and obtained
4915      * as required through APIs.
4916      *
4917      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4918      * .value[0].i32: style of the slider thumb and track. The parameter type is {@link ArkUI_SliderStyle}. \n
4919      * \n
4920      * Format of the return value {@link ArkUI_AttributeItem}:\n
4921      * .value[0].i32: style of the slider thumb and track. The parameter type is {@link ArkUI_SliderStyle}.
4922      *
4923      */
4924     NODE_SLIDER_STYLE,
4925 
4926     /**
4927      * @brief Sets the track thickness of the slider.
4928      * This attribute can be set, reset, and obtained as required through APIs.
4929      *
4930      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4931      * .value[0].f32: track thickness of the slider, in vp. The default value is 4.0 vp when <b>NODE_SLIDER_STYLE</b>
4932      * is set to <b>ARKUI_SLIDER_STYLE_OUT_SET</b> and 20.0 vp when <b>NODE_SLIDER_STYLE</b> is set to
4933      * <b>ARKUI_SLIDER_STYLE_IN_SET</b>. \n
4934      * \n
4935      * Format of the return value {@link ArkUI_AttributeItem}:\n
4936      * .value[0].f32: track thickness of the slider, in vp. \n
4937      *
4938      */
4939     NODE_SLIDER_TRACK_THICKNESS,
4940 
4941     /**
4942      * @brief Defines whether haptic feedback.
4943      * This attribute can be set, reset, and obtained as required through APIs.
4944      *
4945      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4946      * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
4947      * <b>false</b> means the opposite.\n
4948      * \n
4949      * Format of the return value {@link ArkUI_AttributeItem}:\n
4950      * value[0].i32: whether to feedback.\n
4951      *
4952      * @since 18
4953      */
4954     NODE_SLIDER_ENABLE_HAPTIC_FEEDBACK = 17013,
4955 
4956     /**
4957      * @brief Sets a custom component on the leading side of the Slider component.
4958      *
4959      * Attribute setting method {@link ArkUI_AttributeItem} parameter format: \n
4960      * .object: Parameter type {@link ArkUI_NodeHandle}.
4961      *
4962      * The prefix component will be placed at the start position of the Slider,
4963      * typically on the left side in LTR layouts.
4964 	 *
4965 	 * @since 20
4966      */
4967     NODE_SLIDER_PREFIX,
4968 
4969     /**
4970      * @brief Sets a custom component on the trailing side of the Slider component.
4971      *
4972      * Attribute setting method {@link link ArkUI_AttributeItem} parameter format: \n
4973      * .object: Parameter type {@link ArkUI_NodeHandle}.
4974      *
4975      * The suffix component will be placed at the end position of the Slider,
4976      * typically on the right side in LTR layouts.
4977 	 *
4978 	 * @since 20
4979      */
4980     NODE_SLIDER_SUFFIX,
4981 
4982     /**
4983      * @brief Sets whether the radio button is selected.
4984      * This attribute can be set, reset, and obtained as required through APIs.
4985      *
4986      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4987      * .value[0].i32: whether the radio button is selected. The default value is <b>false</b>.
4988      * Format of the return value {@link ArkUI_AttributeItem}:\n
4989      * .value[0].i32: whether the radio button is selected.
4990      *
4991      */
4992     NODE_RADIO_CHECKED = MAX_NODE_SCOPE_NUM * ARKUI_NODE_RADIO,
4993     /**
4994      * @brief Sets the style of the radio button in selected or deselected state.
4995      * This attribute can be set, reset, and obtained as required through APIs.
4996      *
4997      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4998      * .value[0]?.u32: color of the background when the radio button is selected, in 0xARGB format.
4999      * The default value is <b>0xFF007DFF</b>. \n
5000      * .value[1]?.u32: color of the border when the radio button is deselected, in 0xARGB format.
5001      * The default value is <b>0xFF182431</b>. \n
5002      * .value[2]?.u32: color of the indicator when the radio button is selected, in 0xARGB format.
5003      * The default value is <b>0xFFFFFFFF</b>. \n
5004      * Format of the return value {@link ArkUI_AttributeItem}:\n
5005      * .value[0].u32: color of the background when the radio button is selected, in 0xARGB format.
5006      * The default value is <b>0xFF007DFF</b>. \n
5007      * .value[1].u32: color of the border when the radio button is deselected, in 0xARGB format.
5008      * The default value is <b>0xFF182431</b>. \n
5009      * .value[2].u32: color of the indicator when the radio button is selected, in 0xARGB format.
5010      * The default value is <b>0xFFFFFFFF</b>. \n
5011      *
5012      */
5013     NODE_RADIO_STYLE,
5014     /**
5015      * @brief Sets the current value of the radio button.
5016      * This attribute can be set, reset, and obtained as required through APIs.
5017      *
5018      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5019      * .string: value of the radio button. \n
5020      * \n
5021      * Format of the return value {@link ArkUI_AttributeItem}:\n
5022      * .string: value of the radio button. \n
5023      *
5024      */
5025     NODE_RADIO_VALUE,
5026     /**
5027      * @brief Sets the name of the group to which the radio button belongs. Only one radio button in a given group can
5028      * be selected at a time. This attribute can be set, reset, and obtained as required through APIs.
5029      *
5030      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5031      * .string: name of the group to which the radio button belongs. \n
5032      * \n
5033      * Format of the return value {@link ArkUI_AttributeItem}:\n
5034      * .string: name of the group to which the radio button belongs. \n
5035      *
5036      */
5037     NODE_RADIO_GROUP,
5038 
5039     /**
5040      * @brief Defines the name of the checkboxgroup.
5041      * This attribute can be set, reset, and obtained as required through APIs.
5042      *
5043      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5044      * .string: component name. \n
5045      * \n
5046      * Format of the return value {@link ArkUI_AttributeItem}:\n
5047      * .string: component name. \n
5048      *
5049      * @since 15
5050      */
5051     NODE_CHECKBOX_GROUP_NAME  = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX_GROUP,
5052 
5053     /**
5054      * @brief Defines whether the checkboxgroup is selected.
5055      * This attribute can be set, reset, and obtained as required through APIs.
5056      *
5057      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5058      * .value[0].i32: whether the check box is selected.
5059      * The value <b>1</b> means that the checkboxgroup is selected, and <b>0</b> means the opposite. \n
5060      * \n
5061      * Format of the return value {@link ArkUI_AttributeItem}:\n
5062      * .value[0].i32: The value <b>1</b> means that the checkboxgroup is selected, and <b>0</b> means the opposite. \n
5063      *
5064      * @since 15
5065      */
5066     NODE_CHECKBOX_GROUP_SELECT_ALL = 21001,
5067 
5068     /**
5069      * @brief Defines the color of the checkboxgroup when it is selected.
5070      * This attribute can be set, reset, and obtained as required through APIs.
5071      *
5072      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5073      * .value[0].u32: color of the checkboxgroup when it is selected, in 0xARGB format,
5074      * for example, <b>0xFF1122FF</b>. \n
5075      * \n
5076      * Format of the return value {@link ArkUI_AttributeItem}:\n
5077      * .value[0].u32: color of the checkboxgroup when it is selected, in 0xARGB format,
5078      * for example, <b>0xFF1122FF</b>.
5079      *
5080      * @since 15
5081      */
5082     NODE_CHECKBOX_GROUP_SELECTED_COLOR = 21002,
5083     /**
5084      * @brief Defines the border color of the checkboxgroup when it is not selected.
5085      * This attribute can be set, reset, and obtained as required through APIs.
5086      *
5087      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5088      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
5089      * \n
5090      * Format of the return value {@link ArkUI_AttributeItem}:\n
5091      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.
5092      *
5093      * @since 15
5094      */
5095     NODE_CHECKBOX_GROUP_UNSELECTED_COLOR = 21003,
5096 
5097     /**
5098      * @brief Defines the internal icon style of the checkboxgroup.
5099      * This attribute can be set, reset, and obtained as required through APIs.
5100      *
5101      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5102      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
5103      * .value[1]?.f32: size of the internal mark, in vp. Optional.\n
5104      * .value[2]?.f32: stroke width of the internal mark, in vp. Optional. The default value is <b>2</b>. \n
5105      * \n
5106      * Format of the return value {@link ArkUI_AttributeItem}:\n
5107      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
5108      * .value[1].f32: size of the internal mark, in vp. \n
5109      * .value[2].f32: stroke width of the internal mark, in vp. The default value is <b>2</b>. \n
5110      *
5111      * @since 15
5112      */
5113     NODE_CHECKBOX_GROUP_MARK = 21004,
5114 
5115     /**
5116      * @brief Defines the shape of the checkboxgroup.
5117      * This attribute can be set, reset, and obtained as required through APIs.
5118      *
5119      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5120      * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}. \n
5121      * \n
5122      * Format of the return value {@link ArkUI_AttributeItem}:\n
5123      * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}.
5124      *
5125      * @since 15
5126      */
5127     NODE_CHECKBOX_GROUP_SHAPE = 21005,
5128 
5129     /**
5130      * @brief Defines the alignment mode of the child components in the container. This attribute can be set, reset,
5131      * and obtained as required through APIs.
5132      *
5133      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5134      * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}.
5135      * The default value is <b>ARKUI_ALIGNMENT_CENTER</b>. \n
5136      * \n
5137      * Format of the return value {@link ArkUI_AttributeItem}:\n
5138      * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}. \n
5139      *
5140      */
5141     NODE_STACK_ALIGN_CONTENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_STACK,
5142 
5143     /**
5144      * @brief Defines the scrollbar status. This attribute can be set, reset, and obtained as required through APIs.
5145      *
5146      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5147      * .value[0].i32: scrollbar status. The parameter type is {@link ArkUI_ScrollBarDisplayMode}. The default value is
5148      * <b>ARKUI_SCROLL_BAR_DISPLAY_MODE_AUTO</b>. \n
5149      * \n
5150      * Format of the return value {@link ArkUI_AttributeItem}:\n
5151      * .value[0].i32: scrollbar status. The parameter type is {@link ArkUI_ScrollBarDisplayMode}. \n
5152      *
5153      */
5154     NODE_SCROLL_BAR_DISPLAY_MODE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SCROLL,
5155     /**
5156      * @brief Defines the width of the scrollbar. This attribute can be set, reset, and obtained as required
5157      * through APIs.
5158      *
5159      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5160      * .value[0].f32: width of the scrollbar, in vp. The default value is <b>4</b>. \n
5161      * \n
5162      * Format of the return value {@link ArkUI_AttributeItem}:\n
5163      * .value[0].f32: width of the scrollbar, in vp. \n
5164      *
5165      */
5166     NODE_SCROLL_BAR_WIDTH,
5167     /**
5168      * @brief Defines the color of the scrollbar. This attribute can be set, reset, and obtained as required
5169      * through APIs.
5170      *
5171      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5172      * .data[0].u32: color of the scrollbar, in 0xARGB format. \n
5173      * \n
5174      * Format of the return value {@link ArkUI_AttributeItem}:\n
5175      * .data[0].u32: color of the scrollbar, in 0xARGB format. \n
5176      *
5177      */
5178     NODE_SCROLL_BAR_COLOR,
5179     /**
5180      * @brief Defines the scroll direction. This attribute can be set, reset, and obtained as required through APIs.
5181      *
5182      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5183      * .value[0].i32: scroll direction. The parameter type is {@link ArkUI_ScrollDirection}.
5184      * The default value is <b>ARKUI_SCROLL_DIRECTION_VERTICAL</b>. \n
5185      * \n
5186      * Format of the return value {@link ArkUI_AttributeItem}:\n
5187      * .value[0].i32: scroll direction. The parameter type is {@link ArkUI_ScrollDirection}. \n
5188      *
5189      */
5190     NODE_SCROLL_SCROLL_DIRECTION,
5191     /**
5192      * @brief Defines the effect used at the edges of the component when the boundary of the scrollable content is
5193      * reached. This attribute can be set, reset, and obtained as required through APIs.
5194      *
5195      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5196      * .value[0].i32: effect used at the edges of the component when the boundary of the scrollable content is reached.
5197      * The parameter type is {@link ArkUI_EdgeEffect}. The default value is <b>ARKUI_EDGE_EFFECT_NONE</b>.\n
5198      * .value[1]?.i32: whether to enable the scroll effect when the component content size is smaller than the
5199      * component itself. Optional. The value <b>1</b> means to enable the scroll effect, and <b>0</b> means the
5200      * opposite. The default value for the List/Grid/WaterFlow component is <b>0</b>, and the default value for the
5201      * Scroll component is <b>1</b>. \n
5202      * \n
5203      * Format of the return value {@link ArkUI_AttributeItem}:\n
5204      * .value[0].i32: effect used at the edges of the component when the boundary of the scrollable content is reached.
5205      * The parameter type is {@link ArkUI_EdgeEffect}. \n
5206      * .value[1].i32: whether to enable the scroll effect when the component content size is smaller than the component
5207      * itself. Optional. The value <b>1</b> means to enable the scroll effect, and <b>0</b> means the opposite. \n
5208      *
5209      */
5210     NODE_SCROLL_EDGE_EFFECT,
5211     /**
5212      * @brief Defines whether to support scroll gestures. When this attribute is set to <b>false</b>, scrolling by
5213      * finger or mouse is not supported, but the scroll controller API is not affected.
5214      *
5215      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5216      * .value[0].i32: whether to support scroll gestures. The default value is <b>true</b>. \n
5217      * \n
5218      * Format of the return value {@link ArkUI_AttributeItem}:\n
5219      * .value[0].i32: whether to support scroll gestures. \n
5220      *
5221      */
5222     NODE_SCROLL_ENABLE_SCROLL_INTERACTION,
5223     /**
5224      * @brief Defines the friction coefficient. It applies only to gestures in the scrolling area, and it affects only
5225      * indirectly the scroll chaining during the inertial scrolling process.
5226      *
5227      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5228      * .value[0].f32: friction coefficient. The default value is <b>0.6</b> for non-wearable devices and <b>0.9</b>
5229      * for wearable devices. \n
5230      * \n
5231      * Format of the return value {@link ArkUI_AttributeItem}:\n
5232      * .value[0].f32: friction coefficient.
5233      *
5234      */
5235     NODE_SCROLL_FRICTION,
5236     /**
5237      * @brief Defines the scroll snapping mode. This attribute can be set, reset, and obtained as required through APIs.
5238      *
5239      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5240      * .value[0].i32: alignment mode for the scroll snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.
5241      * The default value is <b>ARKUI_SCROLL_SNAP_ALIGN_NONE</b>.\n
5242      * .value[1].i32: whether to enable the snap to start feature. When scroll snapping is defined for the
5243      * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
5244      * start edge and the first snap point. The default value is <b>true</b>. It is valid only when there are multiple
5245      * snap points.\n
5246      * .value[2].i32: Whether to enable the snap to end feature. When scroll snapping is defined for the
5247      * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
5248      * end edge and the last snap point. The default value is <b>true</b>. It is valid only when there are multiple
5249      * snap points.\n
5250      * .value[3...].f32: snap points for the <b><Scroll></b> component. Each snap point defines the offset from an
5251      * edge to which the <b><Scroll></b> component can scroll.  \n
5252      * \n
5253      * Format of the return value {@link ArkUI_AttributeItem}:\n
5254      * .value[0].i32: alignment mode for the scroll snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.\n
5255      * .value[1].i32: whether to enable the snap to start feature. When scroll snapping is defined for the
5256      * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
5257      * start edge and the first snap point.\n
5258      * .value[2].i32: Whether to enable the snap to end feature. When scroll snapping is defined for the
5259      * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
5260      * end edge and the last snap point.\n
5261      * .value[3...].f32: snap points for the <b><Scroll></b> component. Each snap point defines the offset from an edge
5262      * to which the <b><Scroll></b> component can scroll. \n
5263      *
5264      */
5265     NODE_SCROLL_SNAP,
5266 
5267     /**
5268      * @brief Defines the nested scrolling options. This attribute can be set, reset, and obtained as required
5269      * through APIs.
5270      *
5271      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5272      * .value[0].i32: nested scrolling option when the component scrolls forward.
5273      * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
5274      * .value[1].i32: nested scrolling option when the component scrolls backward.
5275      * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
5276      * \n
5277      * Format of the return value {@link ArkUI_AttributeItem}:\n
5278      * .value[0].i32: nested scrolling option when the component scrolls forward.
5279      * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
5280      * .value[1].i32: nested scrolling option when the component scrolls backward.
5281      * The parameter type is {@link ArkUI_ScrollNestedMode}.
5282      *
5283      */
5284     NODE_SCROLL_NESTED_SCROLL,
5285     /**
5286      * @brief Defines the specified position to scroll to. This attribute can be set, reset, and obtained as required
5287      * through APIs.
5288      *
5289      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5290      * .value[0].f32: horizontal scrolling offset, in vp. \n
5291      * .value[1].f32: vertical scrolling offset, in vp. \n
5292      * .value[2]?.i32: scrolling duration, in milliseconds. Optional. \n
5293      * .value[3]?.i32: scrolling curve. Optional. The parameter type is {@link ArkUI_AnimationCurve}.
5294      * The default value is <b>ARKUI_CURVE_EASE</b>. \n
5295      * .value[4]?.i32: whether to enable the default spring animation. Optional. The default value <b>0</b> means not
5296      * to enable the default spring animation. \n
5297      * \n
5298      * Format of the return value {@link ArkUI_AttributeItem}:\n
5299      * .value[0].f32: horizontal scrolling offset, in vp. \n
5300      * .value[1].f32: vertical scrolling offset, in vp. \n
5301      *
5302      */
5303     NODE_SCROLL_OFFSET,
5304 
5305     /**
5306      * @brief Defines the edge position to scroll to. This attribute can be set and obtained as required through APIs.
5307      *
5308      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5309      * .value[0].i32: edge position to scroll to. The parameter type is {@link ArkUI_ScrollEdge}. \n
5310      * \n
5311      * Format of the return value {@link ArkUI_AttributeItem}:\n
5312      * .value[0].i32: whether the container at the edge position. The value <b>-1</b> means that the container is not
5313      * at the edge position. If the container is at the edge position, the parameter type is {@link ArkUI_ScrollEdge}.
5314      *
5315      */
5316     NODE_SCROLL_EDGE,
5317 
5318     /**
5319      * @brief Defines whether to enable the swipe-to-turn-pages feature. This attribute can be set, reset, and obtained
5320      * as required through APIs.
5321      *
5322      * If both <b>enablePaging</b> and <b>scrollSnap</b> are set, <b>scrollSnap</b> takes effect, but
5323      * <b>enablePaging</b> does not. \n
5324      * \n
5325      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5326      * .value[0].i32: whether to enable the swipe-to-turn-pages feature. The default value is <b>false</b>. \n
5327      * \n
5328      * Format of the return value {@link ArkUI_AttributeItem}:\n
5329      * .value[0].i32: whether to enable the swipe-to-turn-pages feature. \n
5330      *
5331      */
5332     NODE_SCROLL_ENABLE_PAGING,
5333 
5334     /**
5335      * @brief Scroll to the next or previous page.
5336      *
5337      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5338      * .value[0].i32 Indicates whether to scroll to next page. Value 0 indicates scroll to next page and value 1
5339      * indicates scroll to previous page. \n
5340      * .value[1]?.i32 Indicates whether to enable animation. Value 1 indicates enable and 0 indicates disable. \n
5341      *
5342      */
5343     NODE_SCROLL_PAGE,
5344 
5345     /**
5346      * @brief Scroll a specified distance.
5347      *
5348      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5349      * .value[0].f32:Horizontal scrolling distance in vp; \n
5350      * .value[1].f32: Vertical scrolling distance in vp; \n
5351      *
5352      */
5353     NODE_SCROLL_BY,
5354 
5355     /**
5356      * @brief Performs inertial scrolling based on the initial velocity passed in.
5357      *
5358      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5359      * .value[0].f32: Initial velocity of inertial scrolling. Unit: vp/s. If the value specified is 0, it is
5360      * considered as invalid, and the scrolling for this instance will not take effect. If the value is positive,
5361      * the scroll will move downward; if the value is negative, the scroll will move upward. \n
5362      *
5363      */
5364     NODE_SCROLL_FLING,
5365 
5366     /**
5367     * @brief Sets the fading effect for the edges of scrollable components.
5368     *
5369     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:
5370     * .value[0].i32: whether to enable the fading effect on edges. The value 0 means to disable the fading effect, and 1 means to enable it.
5371     * .value[1]?.f32: length of the fading effect on edges, in vp. Default value: 32.
5372     *
5373     * Format of the return value {@link ArkUI_AttributeItem}:
5374     * .value[0].i32: whether the fading effect on edges is enabled. The value 0 means that the fading effect is disabled, and 1 means that it is enabled.
5375     * .value[1].f32: length of the fading effect on edges, in vp.
5376     *
5377     * @since 14
5378     */
5379     NODE_SCROLL_FADING_EDGE,
5380 
5381     /**
5382      * @brief Obtains the total size of all child components when fully expanded in the scrollable component.
5383      *
5384      * Format of the return value {@link ArkUI_AttributeItem}:\n
5385      * .value[0].f32: total width of all child components when fully expanded in the scrollable component.
5386      *                The default unit is vp. \n
5387      * .value[1].f32: total height of all child components when fully expanded in the scrollable component.
5388      *                The default unit is vp. \n
5389      *
5390      * @since 14
5391      */
5392     NODE_SCROLL_SIZE,
5393 
5394 	/**
5395      * @brief Sets the offset from the start of the scrollable components content.
5396      *
5397      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5398      * .value[0].f32: offset from the start of the content, in vp. \n
5399      * \n
5400      * Format of the return value {@link ArkUI_AttributeItem}:\n
5401      * .value[0].f32: offset from the start of the content, in vp. \n
5402      *
5403      * @since 15
5404      */
5405     NODE_SCROLL_CONTENT_START_OFFSET,
5406 
5407     /**
5408      * @brief Sets the offset from the end of the scrollable components content.
5409      *
5410      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5411      * .value[0].f32: offset from the end of the content, in vp. \n
5412      * \n
5413      * Format of the return value {@link ArkUI_AttributeItem}:\n
5414      * .value[0].f32: offset from the end of the content, in vp. \n
5415      *
5416      * @since 15
5417      */
5418     NODE_SCROLL_CONTENT_END_OFFSET,
5419 
5420     /**
5421      * @brief Defines the maximum starting fling speed of the scrollable when the fling animation starts.
5422      * This attribute can be set, reset, and obtained as required through APIs.
5423      *
5424      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
5425      * .value[0].f32: maximum starting fling speed, Unit: vp/s \n
5426      * \n
5427      * Format of the return value {@link ArkUI_AttributeItem}: \n
5428      * .value[0].f32: maximum starting fling speed, Unit: vp/s \n
5429      *
5430      * @since 16
5431      */
5432     NODE_SCROLL_FLING_SPEED_LIMIT,
5433 
5434     /**
5435      * @brief Sets the content clipping area for this scrollable component.
5436      * This attribute can be set, reset, and obtained as required through APIs.
5437      *
5438      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5439      * .value[0].i32: content clipping mode. The parameter type is {@link ArkUI_ContentClipMode}. \n
5440      * \n
5441      * Format of the return value {@link ArkUI_AttributeItem}:\n
5442      * .value[0].i32: content clipping mode. The parameter type is {@link ArkUI_ContentClipMode}. \n
5443      *
5444      * @since 16
5445      */
5446     NODE_SCROLL_CLIP_CONTENT,
5447 
5448     /**
5449      * @brief Defines whether the scrollable scrolls back to top when status bar is clicked.
5450      * This attribute can be set, reset, and obtained as required through APIs.
5451      *
5452      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5453      * .value[0].i32: whether the scrollable scrolls back to top when status bar is clicked. \n
5454      * The value <b>1</b> means to scroll back to top, and <b>0</b> means the opposite.
5455      * The default value is <b>0</b>. \n
5456      * \n
5457      * Format of the return value {@link ArkUI_AttributeItem}: \n
5458      * .value[0]i.32: whether the scrollable scrolls back to top when status bar is clicked. \n
5459      *
5460      * @since 15
5461      */
5462     NODE_SCROLL_BACK_TO_TOP = 1002021,
5463 
5464     /**
5465      * @brief Defines the margin of the scrollbar.
5466      * This attribute can be set, reset, and obtained as required through APIs.
5467      *
5468      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5469      * .value[0].f32: start margin of the scrollbar, in vp. The default value is <b>0</b>. \n
5470      * .value[1].f32: end margin of the scrollbar, in vp. The default value is <b>0</b>. \n
5471      * \n
5472      * Format of the return value {@link ArkUI_AttributeItem}:\n
5473      * .value[0].f32: start margin of the scrollbar, in vp. \n
5474      * .value[1].f32: end margin of the scrollbar, in vp. \n
5475      *
5476      * @since 20
5477      */
5478     NODE_SCROLL_BAR_MARGIN = 1002022,
5479 
5480     /**
5481      * @brief Sets the maximum zoom scale for scrollable content.
5482      *
5483      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5484      * .value[0].f32: maximum zoom scale to set. \n
5485      * \n
5486      * Format of the return value {@link ArkUI_AttributeItem}:\n
5487      * .value[0].f32: current maximum zoom scale. \n
5488      *
5489      * @since 20
5490      */
5491     NODE_SCROLL_MAX_ZOOM_SCALE = 1002023,
5492 
5493     /**
5494      * @brief Sets the minimum zoom scale for scrollable content.
5495      *
5496      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5497      * .value[0].f32: minimum zoom scale to set. \n
5498      * \n
5499      * Format of the return value {@link ArkUI_AttributeItem}:\n
5500      * .value[0].f32: current minimum zoom scale. \n
5501      *
5502      * @since 20
5503      */
5504     NODE_SCROLL_MIN_ZOOM_SCALE = 1002024,
5505 
5506     /**
5507      * @brief Sets the zoom scale for scrollable content.
5508      *
5509      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5510      * .value[0].f32: zoom scale to set. \n
5511      * \n
5512      * Format of the return value {@link ArkUI_AttributeItem}:\n
5513      * .value[0].f32: current zoom scale. \n
5514      *
5515      * @since 20
5516      */
5517     NODE_SCROLL_ZOOM_SCALE = 1002025,
5518 
5519     /**
5520      * @brief Sets whether to enable the zoom bounce effect when the scaling exceeds the limits.
5521      *
5522      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5523      * .value[0].i32: whether to enable the zoom bounce effect when the scaling exceeds the limits.
5524      * The value <b>1</b> means to enable the effect, and <b>0</b> means the opposite. \n
5525      * \n
5526      * Format of the return value {@link ArkUI_AttributeItem}:\n
5527      * .value[0].i32: whether to enable the zoom bounce effect when the scaling exceeds the limits.
5528      * The value <b>1</b> means to enable the effect, and <b>0</b> means the opposite. \n
5529      *
5530      * @since 20
5531      */
5532     NODE_SCROLL_ENABLE_BOUNCES_ZOOM = 1002026,
5533 
5534     /**
5535      * @brief Defines the direction in which the list items are arranged. This attribute can be set, reset, and
5536      * obtained as required through APIs.
5537      *
5538      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5539      * .value[0].i32: direction in which the list items are arranged. The parameter type is {@link ArkUI_Axis}.
5540      * The default value is <b>ARKUI_AXIS_VERTICAL</b>. \n
5541      * \n
5542      * Format of the return value {@link ArkUI_AttributeItem}:\n
5543      * .value[0].i32: direction in which the list items are arranged. The parameter type is {@link ArkUI_Axis}. \n
5544      *
5545      */
5546     NODE_LIST_DIRECTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST,
5547     /**
5548      * @brief Defines whether to pin the header to the top or the footer to the bottom in the <b><ListItemGroup></b>
5549      * component. This attribute can be set, reset, and obtained as required through APIs.
5550      *
5551      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5552      * .value[0].i32: whether to pin the header to the top or the footer to the bottom in the <b><ListItemGroup></b>
5553      * component. It is used together with the <b><ListItemGroup></b> component. The parameter type is
5554      * {@link ArkUI_StickyStyle}. The default value is <b>ARKUI_STICKY_STYLE_NONE</b>. \n
5555      * \n
5556      * Format of the return value {@link ArkUI_AttributeItem}:\n
5557      * .value[0].i32: whether to pin the header to the top or the footer to the bottom in the <b><ListItemGroup></b>
5558      * component. It is used together with the <b><ListItemGroup></b> component. The parameter type is
5559      * {@link ArkUI_StickyStyle}.
5560      *
5561      */
5562     NODE_LIST_STICKY,
5563     /**
5564      * @brief Defines the spacing between list items. This attribute can be set, reset, and obtained as required
5565      * through APIs.
5566      *
5567      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5568      * .value[0].f32: spacing between list items along the main axis. The default value is <b>0</b>. \n
5569      * \n
5570      * Format of the return value {@link ArkUI_AttributeItem}:\n
5571      * .value[0].f32: spacing between list items along the main axis. \n
5572      *
5573      */
5574     NODE_LIST_SPACE,
5575 
5576     /**
5577     * @brief Defines the list adapter. The attribute can be set, reset, and obtained as required through APIs.
5578     *
5579     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5580     * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
5581     * \n
5582     * Format of the return value {@link ArkUI_AttributeItem}:\n
5583     * .object: {@link ArkUI_NodeAdapter} object. \n
5584     */
5585     NODE_LIST_NODE_ADAPTER,
5586 
5587     /**
5588      * @brief Sets the number of cached items in the list adapter.
5589      * This attribute can be set, reset, and obtained as required through APIs.
5590      *
5591      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5592      * .value[0].i32: number of cached items in the list adapter. \n
5593      * .value[1]?.i32: whether to show cached items. The value <b>0</b> means to hide cached items, and <b>0</b> means
5594      * to show cached items. The default value is <b>0</b>. This parameter is supported since API version 15. \n
5595      * \n
5596      * Format of the return value {@link ArkUI_AttributeItem}:\n
5597      * .value[0].i32: number of cached items in the list adapter. \n
5598      * .value[1].i32: whether to show cached items. The value <b>0</b> means to hide cached items, and <b>0</b> means
5599      * to show cached items. This parameter is supported since API version 15. \n
5600      *
5601      */
5602     NODE_LIST_CACHED_COUNT,
5603 
5604     /**
5605      * @brief Scroll to the specified index.
5606      *
5607      * When activating the smooth animation, all items passed through will be loaded and layout calculated, which can
5608      * lead to performance issues when loading a large number of items.\n
5609      * \n
5610      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5611      * .value[0].i32:The index value of the target element to be slid to in the current container.\n
5612      * .value[1]?.i32:Set whether there is an action when sliding to the index value of a list item in the list, where
5613      * 1 indicates an action and 0 indicates no action. Default value: 0.\n
5614      * .value[2]?.i32:Specify the alignment of the sliding element with the current container,The parameter type is
5615      * {@link ArkUI_ScrollAlignment}, default value is ARKUI_SCROLL_ALIGNMENT_START. \n
5616      * .value[3]?.f32: extra offset, in vp. The default value is <b>0</b>.
5617      * This parameter is supported since API version 15. \n
5618      *
5619      */
5620     NODE_LIST_SCROLL_TO_INDEX,
5621 
5622     /**
5623      * @brief 设置List交叉轴方向宽度大于ListItem交叉轴宽度 * lanes时,
5624      * ListItem在List交叉轴方向的布局方式,支持属性设置,属性重置和属性获取接口。
5625      *
5626      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
5627      * .value[0].i32:交叉轴方向的布局方式。参数类型{@link ArkUI_ListItemAlignment} \n
5628      * \n
5629      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
5630      * .value[0].i32:交叉轴方向的布局方式。参数类型{@link ArkUI_ListItemAlignment}  \n
5631      */
5632     NODE_LIST_ALIGN_LIST_ITEM,
5633 
5634     /**
5635      * @brief Set the default spindle size for the List subcomponent.
5636      *
5637      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5638      * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
5639      * \n
5640      * Format of the return value {@link ArkUI_AttributeItem}:\n
5641      * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
5642      */
5643     NODE_LIST_CHILDREN_MAIN_SIZE = 1003007,
5644     /**
5645      * @brief 设置当前List初次加载时视口起始位置显示的item的索引值,支持属性设置,属性重置和属性获取接口。
5646      *
5647      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
5648      * .value[0].i32: 当前List初次加载时视口起始位置显示的item的索引值。 \n
5649      * \n
5650      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
5651      * .value[0].i32: 当前List初次加载时视口起始位置显示的item的索引值,默认值:0。 \n
5652      */
5653     NODE_LIST_INITIAL_INDEX = 1003008,
5654     /**
5655      * @brief sets the ListItem splitter style. By default, there is no splitter.
5656      * This attribute can be set, reset, and obtained as required through APIs.
5657      *
5658      * Attribute setting method parameter {@link ArkUI_AttributeItem} Format:\n
5659      *.value[0].u32: divider color, type 0xargb; \n
5660      *.value[1].f32: dividing line width; \n
5661      *.value[2].f32: the distance between the divider and the beginning of the side of the list, unit vp; \n
5662      *.value[3].f32: the distance between the divider and the end of the side of the list (unit: vp). \n
5663      * \n
5664      * Attribute fetch method return value {@link ArkUI_AttributeItem} format:\n
5665      *.value[0].u32: divider color, type 0xargb; \n
5666      *.value[1].f32: dividing line width; \n
5667      *.value[2].f32: the distance between the divider and the beginning of the side of the list, unit vp; \n
5668      *.value[3].f32: the distance between the divider and the end of the side of the list (unit: vp). \n
5669      *
5670      */
5671     NODE_LIST_DIVIDER = 1003009,
5672 
5673     /**
5674      * @brief Scrolls to the item with the specified index in the specified list item group.
5675      *
5676      * When <b>smooth</b> is set to <b>true</b>, all passed items are loaded and counted in layout calculation.
5677      * This may result in performance issues if a large number of items are involved. \n
5678      * \n
5679      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5680      * .value[0].i32: index of the target list item group in the current list. \n
5681      *.value[1].i32: index of the target list item in the list item group. \n
5682      * .value[2]?.i32: whether to enable the smooth animation for scrolling to the item with the specified index.
5683      * The value <b>1</b> means to enable the animation, and <b>0</b> means the opposite.
5684      * The default value is <b>0</b>. \n
5685      * .value[3]?.i32: how the item to scroll to is aligned with the container. The parameter type is
5686      * {@link ArkUI_ScrollAlignment}. The default value is <b>ARKUI_SCROLL_ALIGNMENT_START</b>. \n
5687      *
5688      * @since 15
5689      */
5690     NODE_LIST_SCROLL_TO_INDEX_IN_GROUP = 1003010,
5691 
5692     /**
5693      * @brief Sets the number of lanes in the list.
5694      * This attribute can be set, reset, and obtained as required through APIs.
5695      *
5696      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5697      * .value[0].u32: number of lanes in the list. If the maximum and minimum lane widths are set, setting the number
5698      * of lanes will not take effect. \n
5699      * .value[1]?.f32: minimum lane width, in vp. \n
5700      * .value[2]?.f32: maximum column width, in vp. \n
5701      * .value[3]?.f32: lane spacing, in vp. \n
5702      * \n
5703      * Format of the return value {@link ArkUI_AttributeItem}:\n
5704      * .value[0].u32: number of lanes in the list. \n
5705      * .value[1].f32: minimum lane width, in vp. \n
5706      * .value[2].f32: maximum column width, in vp. \n
5707      * .value[3].f32: lane spacing, in vp. \n \n
5708      *
5709      * @since 15
5710      */
5711     NODE_LIST_LANES = 1003011,
5712 
5713     /**
5714      * @brief Sets the list snap alignment mode.
5715      *
5716      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5717      * .value[0].i32: alignment mode for the list snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.
5718      * The default value is <b>ARKUI_SCROLL_SNAP_ALIGN_NONE</b>.\n
5719      * \n
5720      * Format of the return value {@link ArkUI_AttributeItem}:\n
5721      *.value[0].i32: alignment mode for the list snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.\n
5722      *
5723      * @since 15
5724      */
5725     NODE_LIST_SCROLL_SNAP_ALIGN = 1003012,
5726 
5727     /**
5728      * @brief Sets whether to maintain the visible content's position when data is inserted or deleted outside the
5729      * display area of the <b>List</b> component.
5730      *
5731      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5732      * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside the
5733      * display area of the <b>List</b> component. The value <b>0</b> means not to maintain the visible content's
5734      * position, and <b>1</b> means the opposite. The default value is <b>0</b>. \n
5735      * \n
5736      * Format of the return value {@link ArkUI_AttributeItem}:\n
5737      * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside the
5738      * display area of the <b>List</b> component. The value <b>0</b> means not to maintain the visible content's
5739      * position, and <b>1</b> means the opposite. The default value is <b>0</b>. \n
5740      *
5741      * @since 15
5742      */
5743     NODE_LIST_MAINTAIN_VISIBLE_CONTENT_POSITION = 1003013,
5744 
5745     /**
5746      * @brief Sets the layout of the List component from the end.
5747      *
5748      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5749      * .value[0].i32: whether the <b>List</b> is layout from the end.
5750      * The value <b>0</b> means not to layout from the end,
5751      * and <b>1</b> means the opposite. The default value is <b>0</b>. \n
5752      * \n
5753      * Format of the return value {@link ArkUI_AttributeItem}:\n
5754      * .value[0].i32: whether the <b>List</b> is layout from the end.
5755      * The value <b>0</b> means not to layout from the end, and <b>1</b> means the opposite.
5756      * The default value is <b>0</b>. \n
5757      *
5758      * @since 16
5759      */
5760     NODE_LIST_STACK_FROM_END = 1003014,
5761 
5762     /**
5763      * @brief Defines whether the <b>List</b> component loads child nodes synchronously.
5764      * This attribute can be set, reset, and obtained as required through APIs.
5765      *
5766      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5767      * .value[0].i32: whether the <b>List</b> component synchronously loads child nodes.
5768      * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
5769      * \n
5770      * Format of the return value {@link ArkUI_AttributeItem}:\n
5771      * .value[0].i32: whether the <b>List</b> component synchronously loads child nodes.
5772      * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
5773      *
5774      * @since 20
5775      */
5776     NODE_LIST_SYNC_LOAD = 1003016,
5777 
5778     /**
5779      * @brief Defines whether to enable loop playback for the swiper. This attribute can be set, reset, and obtained
5780      * as required through APIs.
5781      *
5782      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5783      * .value[0].i32: whether to enable loop playback. The value <b>1</b> means to enable loop playback, and <b>0</b>
5784      * means the opposite. The default value is <b>1/b>. \n
5785      * \n
5786      * Format of the return value {@link ArkUI_AttributeItem}:\n
5787      * .value[0].i32: whether to enable loop playback. The value <b>1</b> means to enable loop playback, and <b>0</b>
5788      * means the opposite. The default value is <b>1</b>. \n
5789      *
5790      */
5791     NODE_SWIPER_LOOP = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SWIPER,
5792     /**
5793      * @brief Defines whether to enable automatic playback for child component switching in the swiper.
5794      * This attribute can be set, reset, and obtained as required through APIs.
5795      *
5796      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5797      * .value[0].i32: whether to enable automatic playback for child component switching. The value <b>1</b>
5798      * means to enable automatic playback, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
5799      * \n
5800      * .value[1]?.i32: whether to stop automatic playback when the user touches the screen. The value <b>1</b> means
5801      * to stop automatic playback, and <b>0</b> means the opposite. The default value is <b>1</b>. This parameter is
5802      * supported since API version 16. \n
5803      * \n
5804      * Format of the return value {@link ArkUI_AttributeItem}:\n
5805      * .value[0].i32: whether to enable automatic playback for child component switching. The value <b>1</b> means
5806      * to enable automatic playback, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
5807      * .value[1].i32: whether to stop automatic playback when the user touches the screen. The value <b>1</b> means to
5808      * stop automatic playback, and <b>0</b> means the opposite. This parameter is supported since API version 16. \n
5809      *
5810      */
5811     NODE_SWIPER_AUTO_PLAY,
5812     /**
5813      * @brief Defines whether to enable the navigation point indicator for the swiper. This attribute can be set,
5814      * reset, and obtained as required through APIs.
5815      *
5816      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5817      * .value[0].i32: whether to enable the navigation point indicator. The value <b>1</b> means to enable the
5818      * navigation point indicator, and <b>0</b> means the opposite. The default value is <b>1</b>. \n
5819      * \n
5820      * Format of the return value {@link ArkUI_AttributeItem}:\n
5821      * .value[0].i32: whether to enable the navigation point indicator. The value <b>1</b> means to enable the
5822      * navigation point indicator, and <b>0</b> means the opposite. The default value is <b>1</b>. \n
5823      *
5824      */
5825     NODE_SWIPER_SHOW_INDICATOR,
5826     /**
5827      * @brief Defines the interval for automatic playback. This attribute can be set, reset, and obtained as required
5828      * through APIs.
5829      *
5830      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5831      * .value[0].f32: interval for automatic playback, in milliseconds. \n
5832      * \n
5833      * Format of the return value {@link ArkUI_AttributeItem}:\n
5834      * .value[0].f32: interval for automatic playback, in milliseconds. \n
5835      *
5836      */
5837     NODE_SWIPER_INTERVAL,
5838     /**
5839      * @brief Defines whether vertical swiping is used for the swiper. This attribute can be set, reset, and obtained
5840      * as required through APIs.
5841      *
5842      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5843      * .value[0].i32: whether vertical swiping is used. The value <b>1</b> means that vertical swiping is used, and
5844      * <b>0</b> means the opposite. The default value is <b>0</b>. \n
5845      * \n
5846      * Format of the return value {@link ArkUI_AttributeItem}:\n
5847      * .value[0].i32: whether vertical swiping is used. The value <b>1</b> means that vertical swiping is used, and
5848      * <b>0</b> means the opposite. The default value is <b>0</b>. \n
5849      *
5850      */
5851     NODE_SWIPER_VERTICAL,
5852 
5853     /**
5854      * @brief Defines the duration of the animation for switching child components. This attribute can be set, reset,
5855      * and obtained as required through APIs.
5856      *
5857      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5858      * .value[0].f32: duration of the animation for switching child components, in milliseconds. The default value is
5859      * <b>400</b>. \n
5860      * \n
5861      * Format of the return value {@link ArkUI_AttributeItem}:\n
5862      * .value[0].f32: duration of the animation for switching child components, in milliseconds. The default value is
5863      * <b>400</b>. \n
5864      *
5865      */
5866     NODE_SWIPER_DURATION,
5867 
5868     /**
5869      * @brief Defines the animation curve for the swiper. This attribute can be set, reset, and obtained as required
5870      * through APIs.
5871      *
5872      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5873      * .value[0].i32: animation curve. The parameter type is {@link ArkUI_AnimationCurve}.
5874      * The default value is <b>ARKUI_CURVE_LINEAR</b>. \n
5875      * \n
5876      * Format of the return value {@link ArkUI_AttributeItem}:\n
5877      * .value[0].i32: animation curve. The parameter type is {@link ArkUI_AnimationCurve}.
5878      * The default value is <b>ARKUI_CURVE_LINEAR</b>. \n
5879      *
5880      */
5881     NODE_SWIPER_CURVE,
5882 
5883     /**
5884      * @brief Defines the spacing between child components in the swiper.
5885      * This attribute can be set, reset, and obtained as required through APIs.
5886      *
5887      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5888      * .value[0].f32: spacing between child components. \n
5889      * \n
5890      * Format of the return value {@link ArkUI_AttributeItem}:\n
5891      * .value[0].f32: spacing between child components. \n
5892      *
5893      */
5894     NODE_SWIPER_ITEM_SPACE,
5895 
5896     /**
5897      * @brief Defines the index of the child component currently displayed in the swiper.
5898      * This attribute can be set, reset, and obtained as required through APIs.
5899      *
5900      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5901      * .value[0].i32: index value of the child component. \n
5902      * .value[1]?.i32: animation mode, the parameter type is {@linkArkUI_SwiperAnimationMode}. \n
5903      * The default value is ARKUI_SWIPER_NO_ANIMATION. This parameeter isvalidonlyforthecurrentcall. \n
5904      * This parameter is supported since API version 16. \n
5905      * \n
5906      * Format of the return value {@link ArkUI_AttributeItem}:\n
5907      * .value[0].i32: index value of the child component. \n
5908      * .value[1]?.i32: animation mode, the parameter type is {@linkArkUI_SwiperAnimationMode}. \n
5909      * The default value is ARKUI_SWIPER_NO_ANIMATION. This parameeter isvalidonlyforthecurrentcall. \n
5910      * This parameter is supported since API version 16. \n
5911      *
5912      */
5913     NODE_SWIPER_INDEX,
5914 
5915     /**
5916     * @brief Defines the number of elements to display per page.
5917     * This attribute can be set, reset, and obtained as required through APIs.
5918     *
5919     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5920     * .value[0].i32: number of elements to display per page. \n
5921     * .value[1]?.i32: whether to turn pages by group. The value <b>0</b> means to turn pages by child element,
5922     * and <b>1</b> means to turn pages by group. This parameter is supported since API version 16. \n
5923     * .string?: this parameter can only be set to 'auto'. When 'auto' is set, the value[] parameters are ignored.
5924     * This parameter is supported since API version 16. \n
5925     * \n
5926     * Format of the return value {@link ArkUI_AttributeItem}:\n
5927     * .value[0].i32: number of elements to display per page. \n
5928     * .value[1].i32: whether to turn pages by group. This parameter is supported since API version 16. \n
5929     * .string: 'auto' or empty string.
5930     *
5931     */
5932     NODE_SWIPER_DISPLAY_COUNT,
5933 
5934     /**
5935      * @brief Defines whether to disable the swipe feature.
5936      * This attribute can be set, reset, and obtained as required through APIs.
5937      *
5938      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5939      * .value[0].i32: whether to disable the swipe feature. The value <b>1</b> means to disable
5940      * the swipe feature, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
5941      * \n
5942      * Format of the return value {@link ArkUI_AttributeItem}:\n
5943      * .value[0].i32: whether to disable the swipe feature. The value <b>1</b> means to disable the swipe
5944      * feature, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
5945      *
5946      */
5947     NODE_SWIPER_DISABLE_SWIPE,
5948 
5949     /**
5950     * @brief Defines whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
5951     * This attribute can be set, reset, and obtained as required through APIs.
5952     *
5953     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5954     * .value[0].i32: whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
5955     * The parameter type is {@link ArkUI_SwiperArrow}.\n
5956     * The default value is <b>ARKUI_SWIPER_ARROW_HIDE</b>. \n
5957     * .?object: arrow style. The parameter type is {@link ArkUI_SwiperArrowStyle}. \n
5958     * This parameter is supported since API version 16. \n
5959     * \n
5960     * Format of the return value {@link ArkUI_AttributeItem}:\n
5961     * .value[0].i32: whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
5962     * The parameter type is {@link ArkUI_SwiperArrow}.\n
5963     * The default value is <b>ARKUI_SWIPER_ARROW_HIDE</b>. \n
5964     * .object: arrow style. The parameter type is {@link ArkUI_SwiperArrowStyle}. \n
5965     * This parameter is supported since API version 16. \n
5966     *
5967     */
5968     NODE_SWIPER_SHOW_DISPLAY_ARROW,
5969 
5970     /**
5971      * @brief Defines the effect used at the edges of the swiper when the boundary of the scrollable content is reached.
5972      * This attribute can be set, reset, and obtained as required through APIs.
5973      *
5974      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5975      * .value[0].i32: effect used at the edges of the swiper when the boundary of the scrollable content is reached.
5976      * The parameter type is {@link ArkUI_EdgeEffect}.\n
5977      * The default value is <b>ARKUI_EDGE_EFFECT_SPRING</b>. \n
5978      * \n
5979      * Format of the return value {@link ArkUI_AttributeItem}:\n
5980      * .value[0].i32: effect used at the edges of the swiper when the boundary of the scrollable content is reached.
5981      * The parameter type is {@link ArkUI_EdgeEffect}. \n
5982      *
5983      */
5984     NODE_SWIPER_EDGE_EFFECT_MODE,
5985 
5986     /**
5987     * @brief Defines the swiper adapter. The attribute can be set, reset, and obtained as required through APIs.
5988     *
5989     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5990     * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
5991     * \n
5992     * Format of the return value {@link ArkUI_AttributeItem}:\n
5993     * .object: {@link ArkUI_NodeAdapter} object. \n
5994     */
5995     NODE_SWIPER_NODE_ADAPTER,
5996 
5997     /**
5998     * @brief Sets the number of cached items in the swiper adapter.
5999     * This attribute can be set, reset, and obtained as required through APIs.
6000     *
6001     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6002     * .value[0].i32: number of cached items in the swiper adapter. \n
6003     * \n
6004     * Format of the return value {@link ArkUI_AttributeItem}:\n
6005     * .value[0].f32: number of cached items in the swiper adapter. \n
6006     * .value[1]?.i32: whether the cached items will be displayed. \n
6007     * The value <b>0</b> indicates that cached items will not be displayed, \n
6008     * and <b>1</b> indicates that cached nodes will be displayed. The default value is <b>0</b>. \n
6009     * This parameter is supported from API version 16. \n
6010     * \n
6011     * Format of the return value {@link ArkUI_AttributeItem}:\n
6012     * .value[0].i32: number of cached items in the swiper adapter. \n
6013     * .value[1].i32: whether the cached items will be displayed. This parameter is supported from API version 16. \n
6014     */
6015     NODE_SWIPER_CACHED_COUNT,
6016 
6017     /**
6018      * @brief Defines the front margin of the wiper.
6019      * The attribute can be set, reset, and obtained as required through APIs.
6020      *
6021      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6022      * .value[0].f32: the front margin. The unit is vp. The default value is <b>0.0</b>\n
6023      * .value[1]?.i32: whether to ignore blanks, the default value is 0.
6024      * The value <b>1</b> means to ignore blank areas, and <b>0</b> means the opposite. \n
6025      * Format of the return value {@link ArkUI_AttributeItem}:\n
6026      * .value[0].f32: the front margin, the unit is vp. \n
6027      * .value[1].i32: whether to ignore blank areas. The value <b>1</b> means to ignore blank areas, and <b>0</b> means
6028      * the opposite. \n
6029      */
6030     NODE_SWIPER_PREV_MARGIN,
6031 
6032     /**
6033      * @brief Defines the back margin of the wiper.
6034      * The attribute can be set, reset, and obtained as required through APIs.
6035      *
6036      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6037      * .value[0].f32: the back margin. The unit is vp. The default value is <b>0.0</b>\n
6038      * .value[1]?.i32: whether to ignore blanks, the default value is 0.
6039      * The value <b>1</b> means to ignore blank areas, and <b>0</b> means the opposite. \n
6040      * Format of the return value {@link ArkUI_AttributeItem}:\n
6041      * .value[0].f32: the back margin, the unit is vp. \n
6042      * .value[1].i32: whether to ignore blank areas. The value <b>1</b> means to ignore blank areas, and <b>0</b> means
6043      * the opposite. \n
6044      */
6045     NODE_SWIPER_NEXT_MARGIN,
6046 
6047     /**
6048     * @brief Defines the navigation indicator type of the swiper.
6049     * The attribute can be set, reset, and obtained as required through APIs.
6050     *
6051     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6052     * .value[0].i32: navigation indicator type, the parameter type is {@link ArkUI_SwiperIndicatorType}.\n
6053     * .object: The parameter type is {@link ArkUI_SwiperIndicator} when the indicator type \n
6054     * is <b>ARKUI_SWIPER_INDICATOR_TYPE_DOT</b>. The parameter type is {@link ArkUI_SwiperDigitIndicator}
6055     * when the indicator type is <b>ARKUI_SWIPER_INDICATOR_TYPE_DIGIT</b>. \n
6056     * {@link ArkUI_SwiperDigitIndicator} is supported since API version 16. \n
6057     * \n
6058     * Format of the return value {@link ArkUI_AttributeItem}:\n
6059     * .value[0].i32: navigation indicator type, the parameter type is {@link ArkUI_SwiperIndicatorType}.\n
6060     * .object: The parameter type is {@link ArkUI_SwiperIndicator} when the indicator type \n
6061     * is <b>ARKUI_SWIPER_INDICATOR_TYPE_DOT</b>. The parameter type is {@link ArkUI_SwiperDigitIndicator}
6062     * when the indicator type is <b>ARKUI_SWIPER_INDICATOR_TYPE_DIGIT</b>. \n
6063     * {@link ArkUI_SwiperDigitIndicator} is supported since API version 16. \n
6064     *
6065     */
6066     NODE_SWIPER_INDICATOR,
6067 
6068     /**
6069     * @brief Set the nested scrolling mode for the Swiper component and parent component.
6070     *
6071     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6072     * .value[0].i32:Nested scrolling patterns for Swiper components and parent components. The parameter type is
6073     * {@link ArkUI_SwiperNestedScrollMode} \n
6074     * The default value is <b>ARKUI_SWIPER_NESTED_SRCOLL_SELF_ONLY<b> \n
6075     * \n
6076     * Format of the return value {@link ArkUI_AttributeItem}:\n
6077     * .value[0].i32:Nested scrolling patterns for Swiper components and parent components. The parameter type is
6078     * {@link ArkUI_SwiperNestedScrollMode} \n
6079     */
6080     NODE_SWIPER_NESTED_SCROLL,
6081 
6082     /**
6083     * @brief Set the switcher component to flip to the specified page.
6084     *
6085     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6086     * .value[0].i32:Specify the index value of the page in Swiper.\n
6087     * .value[1]?.i32:Set whether there is an animation effect when flipping to the specified page. 1 indicates active
6088     * effect, 0 indicates no active effect, default value is 0.\n
6089     */
6090     NODE_SWIPER_SWIPE_TO_INDEX,
6091 
6092     /**
6093     * @brief Set to disable component navigation point interactions.
6094     *
6095     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6096     * .value[0].i32: Set to disable component navigation point interaction, set to true to indicate the navigation point
6097     * is interactive, default value is true.\n
6098     * \n
6099     * The return value of the attribute acquisition method {@link ArkUI_AttributeItem} format:\n
6100     * .value[0].i32: Set to disable component navigation point interactions. \n
6101     */
6102     NODE_SWIPER_INDICATOR_INTERACTIVE,
6103 
6104     /**
6105      * @brief Sets the page flipping mode using the mouse wheel.
6106      *
6107      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6108      * .value[0].i32: page flipping mode using the mouse wheel. The parameter type is {@link ArkUI_PageFlipMode}. \n
6109      * \n
6110      * Format of the return value {@link ArkUI_PageFlipMode}:\n
6111      * .value[0].i32: page flipping mode using the mouse wheel. \n
6112      *
6113      * @since 15
6114      */
6115     NODE_SWIPER_PAGE_FLIP_MODE,
6116 
6117     /**
6118      * @brief Defines the minimum main axis size of child element for swiper to works out the display count.
6119      * This attribute can be set, reset, and obtained as required through APIs.
6120      *
6121      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6122      * .value[0].f32: minimum main axis size of the child element, Unit: vp. \n
6123      * .value[1]?.i32: whether to turn pages by group. The value <b>0</b> means to turn pages by child element,
6124      * and <b>1</b> means to turn pages by group. The default value is <b>0</b>. \n
6125      * \n
6126      * Format of the return value {@link ArkUI_AttributeItem}:\n
6127      * .value[0].f32: minimum main axis size of the child element, Unit: vp. \n
6128      * .value[1].i32: whether to turn pages by group. \n
6129      *
6130      * @since 16
6131      */
6132     NODE_SWIPER_AUTO_FILL,
6133 
6134     /**
6135      * @brief Sets whether to maintain the visible content's position when data is inserted or deleted outside
6136      * the display area of the <b>Swiper</b> component.
6137      *
6138      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6139      * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside
6140      * the display area of the <b>Swiper</b> component. The value <b>0</b> means not to maintain the visible content's
6141      * position, and <b>1</b> means the opposite. The default value is <b>0</b>. \n
6142      * \n
6143      * Format of the return value {@link ArkUI_AttributeItem}:\n
6144      * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside
6145      * the display area of the <b>Swiper</b> component. The value <b>0</b> means not to maintain the visible content's
6146      * position, and <b>1</b> means the opposite. The default value is <b>0</b>. \n
6147      *
6148      * @since 20
6149      */
6150     NODE_SWIPER_MAINTAIN_VISIBLE_CONTENT_POSITION = 1001023,
6151 
6152     /**
6153      * @brief: Set the delineation component of the ListItem, supporting property settings, property resets, and
6154      * property acquisition interfaces.
6155      *
6156      * Attribute setting method parameter {@link ArkUI_AttributeItem} format:\n
6157      * .object: Construct using the {@link ArkUI_ListitemSwipeActionOption} object. \n
6158      * \n
6159      * The return value of the attribute acquisition method {@link ArkUI_AttributeItem} format:\n
6160      * .object: Construct using the {@link ArkUI_ListitemSwipeActionOption} object. \n
6161      *
6162      */
6163     NODE_LIST_ITEM_SWIPE_ACTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST_ITEM,
6164 
6165     /**
6166      * @brief Defines the header of the list item group.
6167      * This attribute can be set, reset, and obtained as required through APIs.
6168      *
6169      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6170      * .object: {@link ArkUI_NodeHandle} object to be used as the header of the list item group. \n
6171      * \n
6172      * Format of the return value {@link ArkUI_AttributeItem}:\n
6173      * .object: {@link ArkUI_NodeHandle} object to be used as the header of the list item group. \n
6174      *
6175      */
6176     NODE_LIST_ITEM_GROUP_SET_HEADER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST_ITEM_GROUP,
6177     /**
6178      * @brief Defines the footer of the list item group. This attribute can be set, reset, and obtained as
6179      * required through APIs.
6180      *
6181      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6182      * .object: {@link ArkUI_NodeHandle} object to be used as the footer of the list item group. \n
6183      * \n
6184      * Format of the return value {@link ArkUI_AttributeItem}:\n
6185      * .object: {@link ArkUI_NodeHandle} object to be used as the footer of the list item group. \n
6186      *
6187      */
6188     NODE_LIST_ITEM_GROUP_SET_FOOTER,
6189     /**
6190      * @brief Defines the style of the divider for the list items. This attribute can be set, reset, and obtained
6191      * as required through APIs.
6192      *
6193      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6194      * .value[0].u32: color of the divider, in 0xARGB format.\n
6195      * .value[1].f32: stroke width of the divider, in vp.\n
6196      * .value[2].f32: distance between the divider and the start of the list, in vp.\n
6197      * .value[3].f32: distance between the divider and the end of the list, in vp.\n \n
6198      * \n
6199      * Format of the return value {@link ArkUI_AttributeItem}:\n
6200      * .value[0].u32: color of the divider, in 0xARGB format.\n
6201      * .value[1].f32: stroke width of the divider, in vp.\n
6202      * .value[2].f32: distance between the divider and the start of the list, in vp.\n
6203      * .value[3].f32: distance between the divider and the end of the list, in vp.\n \n
6204      *
6205      */
6206     NODE_LIST_ITEM_GROUP_SET_DIVIDER,
6207 
6208     /**
6209      * @brief Set the default spindle size for the ListItem Group subcomponent.
6210      *
6211      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6212      * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
6213      * \n
6214      * Format of the return value {@link ArkUI_AttributeItem}:\n
6215      * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
6216      */
6217     NODE_LIST_ITEM_GROUP_CHILDREN_MAIN_SIZE = 1005003,
6218 
6219     /**
6220     * @brief Defines the list item group adapter.
6221     * This attribute can be set, reset, and obtained as required through APIs.
6222     *
6223     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6224     * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
6225     * \n
6226     * Format of the return value {@link ArkUI_AttributeItem}:\n
6227     * .object: {@link ArkUI_NodeAdapter} object. \n
6228     *
6229     * @since 15
6230     */
6231     NODE_LIST_ITEM_GROUP_NODE_ADAPTER = 1005004,
6232 
6233     /**
6234      * @brief Defines the horizontal alignment mode of child components in the column.
6235      * This attribute can be set, reset, and obtained as required through APIs.
6236      *
6237      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6238      * .value[0].i32: horizontal alignment mode of child components.
6239      * The parameter type is {@link ArkUI_HorizontalAlignment}.\n
6240      * Default value: <b>ARKUI_HORIZONTAL_ALIGNMENT_CENTER</b>. \n
6241      * \n
6242      * Format of the return value {@link ArkUI_AttributeItem}:\n
6243      * .value[0].i32: horizontal alignment mode of child components.
6244      * The parameter type is {@link ArkUI_HorizontalAlignment}. \n
6245      *
6246      */
6247     NODE_COLUMN_ALIGN_ITEMS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_COLUMN,
6248     /**
6249      * @brief Defines the vertical alignment mode of child components in the column.
6250      * This attribute can be set, reset, and obtained as required through APIs.
6251      *
6252      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6253      * .value[0].i32: vertical alignment mode of child components. The parameter type is {@link ArkUI_FlexAlignment}.\n
6254      * Default value: <b>ARKUI_FLEX_ALIGNMENT_START</b>. \n
6255      * \n
6256      * Format of the return value {@link ArkUI_AttributeItem}:\n
6257      * .value[0].i32: vertical alignment mode of child components. The parameter type is {@link ArkUI_FlexAlignment}. \n
6258      *
6259      */
6260     NODE_COLUMN_JUSTIFY_CONTENT,
6261 
6262     /**
6263      * @brief Defines the vertical alignment mode of child components in the row.
6264      * This attribute can be set, reset, and obtained as required through APIs.
6265      *
6266      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6267      * .value[0].i32: vertical alignment mode of child components.
6268      * The parameter type is {@link ArkUI_VerticalAlignment}.\n
6269      * Default value: <b>ARKUI_VERTICAL_ALIGNMENT_CENTER</b>. \n
6270      * \n
6271      * Format of the return value {@link ArkUI_AttributeItem}:\n
6272      * .value[0].i32: vertical alignment mode of child components.
6273      * The parameter type is {@link ArkUI_VerticalAlignment}. \n
6274      *
6275      */
6276     NODE_ROW_ALIGN_ITEMS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_ROW,
6277     /**
6278      * @brief Defines the horizontal alignment mode of child components in the row.
6279      * This attribute can be set, reset, and obtained as required through APIs.
6280      *
6281      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6282      * .value[0].i32: horizontal alignment mode of child components.
6283      * The parameter type is {@link ArkUI_FlexAlignment}.\n
6284      * Default value: <b>ARKUI_FLEX_ALIGNMENT_START</b>. \n
6285      * \n
6286      * Format of the return value {@link ArkUI_AttributeItem}:\n
6287      * .value[0].i32: horizontal alignment mode of child components.
6288      * The parameter type is {@link ArkUI_FlexAlignment}. \n
6289      *
6290      */
6291     NODE_ROW_JUSTIFY_CONTENT,
6292 
6293     /**
6294      * @brief Defines the flex attribute. This attribute can be set, reset, and obtained as required through APIs.
6295      *
6296      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6297      * .value[0]?.i32: direction in which flex items are arranged. The parameter type is {@link ArkUI_FlexDirection}.
6298      * The default value is <b>ARKUI_FLEX_DIRECTION_ROW</b>.\n
6299      * .value[1]?.i32: how the flex items are wrapped. The parameter type is {@link ArkUI_FlexWrap}.
6300      * The default value is <b>ARKUI_FLEX_WRAP_NO_WRAP</b>.\n
6301      * .value[2]?.i32: alignment mode along the main axis. The parameter type is {@link ArkUI_FlexAlignment}.
6302      * The default value is <b>ARKUI_FLEX_ALIGNMENT_START</b>.\n
6303      * .value[3]?.i32: alignment mode along the cross axis. The parameter type is {@link ArkUI_ItemAlignment}.
6304      * The default value is <b>ARKUI_ITEM_ALIGNMENT_START</b>.\n
6305      * .value[4]?.i32: alignment mode along the cross axis for multi-line content. The parameter type is
6306      * {@link ArkUI_FlexAlignment}. The default value is <b>ARKUI_FLEX_ALIGNMENT_START</b>.\n
6307      * \n
6308      * Format of the return value {@link ArkUI_AttributeItem}:\n
6309      * .value[0].i32: direction in which flex items are arranged. \n
6310      * .value[1].i32: how the flex items are wrapped. \n
6311      * .value[2].i32: alignment mode along the main axis. \n
6312      * .value[3].i32: alignment mode along the cross axis. \n
6313      * .value[4]?.i32: alignment mode along the cross axis for multi-line content.\n
6314      *
6315      */
6316     NODE_FLEX_OPTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_FLEX,
6317 
6318     /**
6319      * @brief Sets whether the component is being refreshed.
6320      * This attribute can be set and obtained as required through APIs.
6321      *
6322      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6323      * .value[0].i32: The parameter type is 1 or 0.
6324      * \n
6325      * Format of the return value {@link ArkUI_AttributeItem}:\n
6326      * .value[0].i32: The parameter type is 1 or 0.
6327      *
6328      */
6329     NODE_REFRESH_REFRESHING = MAX_NODE_SCOPE_NUM * ARKUI_NODE_REFRESH,
6330     /**
6331      * @brief Sets the custom content in the pull-down area.
6332      * This attribute can be set, reset, and obtained as required through APIs.
6333      *
6334      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6335      * .object: The parameter type is {@link ArkUI_NodeHandle}.
6336      *
6337      */
6338     NODE_REFRESH_CONTENT,
6339     /**
6340      * @brief Sets the pull-down ratio. This attribute can be set, reset, and obtained as required through APIs.
6341      *
6342      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6343      * .value[0].f32: pull-down ratio. The value is in the range from 0 to 1.
6344      * \n
6345      * Format of the return value {@link ArkUI_AttributeItem}:\n
6346      * .value[0].f32: pull-down ratio. The value is in the range from 0 to 1.
6347      *
6348      */
6349     NODE_REFRESH_PULL_DOWN_RATIO = 1009002,
6350     /**
6351      * @brief Sets the pull-down offset that initiates a refresh.
6352      * This attribute can be set, reset, and obtained as required through APIs.
6353      *
6354      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6355       *.value[0].f32: pull-down offset, in vp. The default value is <b>64vp</b>.
6356      * \n
6357      * Format of the return value {@link ArkUI_AttributeItem}:\n
6358       *.value[0].f32: pull-down offset, in vp. The default value is <b>64vp</b>.
6359      *
6360      */
6361     NODE_REFRESH_OFFSET = 1009003,
6362     /**
6363      * @brief Sets whether to initiate a refresh when the pull-down distance exceeds the value of <b>refreshOffset</b>.
6364      * This attribute can be set, reset, and obtained as required through APIs.
6365      *
6366      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6367      * .value[0].i32: whether to initiate a refresh. The value <b>true</b> means to initiate a refresh, and
6368      * <b>false</b> means the opposite.
6369      * \n
6370      * Format of the return value {@link ArkUI_AttributeItem}:\n
6371      * .value[0].i32: whether to initiate a refresh. The value <b>1</b> means to initiate a refresh, and
6372      * <b>0</b> means the opposite.
6373      *
6374      */
6375     NODE_REFRESH_PULL_TO_REFRESH = 1009004,
6376     /**
6377      * @brief Set the max pull down distance for Refresh.
6378      * This attribute can be set, reset, and obtained as required through APIs.
6379      *
6380      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6381      * .value[0].f32: max pull-down distance, in vp.
6382      * \n
6383      * Format of the return value {@link ArkUI_AttributeItem}:\n
6384      * .value[0].f32: max pull-down distance, in vp.
6385      *
6386      * @since 20
6387      */
6388     NODE_REFRESH_MAX_PULL_DOWN_DISTANCE = 1009005,
6389 
6390     /**
6391      * @brief Defines the main axis direction of the <b><WaterFlow></b> component layout.
6392      * This attribute can be set, reset, and obtained as required through APIs.
6393      *
6394      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6395      * .value[0].i32: main axis direction. The parameter type is {@link ArkUI_FlexDirection}.
6396      * \n
6397      * Format of the return value {@link ArkUI_AttributeItem}:\n
6398      * .value[0].i32: main axis direction. The parameter type is {@link ArkUI_FlexDirection}.
6399      *
6400      */
6401     NODE_WATER_FLOW_LAYOUT_DIRECTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_WATER_FLOW,
6402     /**
6403      * @brief Sets the number of columns in the water flow layout. If this parameter is not set, one column is used
6404      * by default. This attribute can be set, reset, and obtained as required through APIs.
6405      * For example, <b>'1fr 1fr 2fr'</b> indicates three columns, with the first column taking up 1/4 of the parent
6406      * component's full width, the second column 1/4, and the third column 2/4.
6407      * You can use <b>columnsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of
6408      * columns based on the specified column width <b>track-size</b>.
6409      * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
6410      * or a valid number.
6411      *
6412      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6413      * .string: number of columns in the layout.\n
6414      * \n
6415      * Format of the return value {@link ArkUI_AttributeItem}:\n
6416      * .string: number of columns in the layout.\n
6417      *
6418      */
6419     NODE_WATER_FLOW_COLUMN_TEMPLATE,
6420 
6421     /**
6422      * @brief Sets the number of rows in the water flow layout. If this parameter is not set, one row is used
6423      * by default. This attribute can be set, reset, and obtained as required through APIs.
6424      * For example, <b>'1fr 1fr 2fr'</b> indicates three rows, with the first row taking up 1/4 of the parent
6425      * component's full height, the second row 1/4, and the third row 2/4.
6426      * You can use <b>rowsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of rows
6427      * based on the specified row height <b>track-size</b>.
6428      * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
6429      * or a valid number.
6430      *
6431      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6432      * .string: number of rows in the layout. \n
6433      * \n
6434      * Format of the return value {@link ArkUI_AttributeItem}:\n
6435      * .string: number of rows in the layout. \n
6436      *
6437      */
6438     NODE_WATER_FLOW_ROW_TEMPLATE,
6439 
6440     /**
6441      * @brief Sets the gap between columns. This attribute can be set, reset, and obtained as required through APIs.
6442      *
6443      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6444      * .value[0].f32: gap between columns, in vp.\n
6445      * \n
6446      * Format of the return value {@link ArkUI_AttributeItem}:\n
6447      * .value[0].f32: gap between columns, in vp.\n
6448      *
6449      */
6450     NODE_WATER_FLOW_COLUMN_GAP,
6451 
6452     /**
6453      * @brief Sets the gap between rows. This attribute can be set, reset, and obtained as required through APIs.
6454      *
6455      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6456      * .value[0].f32: gap between lines, in vp.\n
6457      * \n
6458      * Format of the return value {@link ArkUI_AttributeItem}:\n
6459      * .value[0].f32: gap between lines, in vp.\n
6460      *
6461      */
6462     NODE_WATER_FLOW_ROW_GAP,
6463 
6464     /**
6465      * @brief Defines the water flow section configuration.
6466      * This attribute can be set, reset, and obtained as required through APIs.
6467      *
6468      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6469      * .value[0].i32: zero-based index of the water flow item section to update.
6470      * The value is converted to an integer. \n
6471      * .object: {@ArkUI_WaterFlowSectionOption} object.\n
6472      * \n
6473      * Format of the return value {@link ArkUI_AttributeItem}:\n
6474      * .object: {@ArkUI_WaterFlowSectionOption} object.\n
6475      *
6476      */
6477     NODE_WATER_FLOW_SECTION_OPTION,
6478 
6479     /**
6480     * @brief Defines the water flow adapter. The attribute can be set, reset, and obtained as required through APIs.
6481     *
6482     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6483     * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
6484      * \n
6485      * Format of the return value {@link ArkUI_AttributeItem}:\n
6486      * .object: {@link ArkUI_NodeAdapter} object. \n
6487     */
6488     NODE_WATER_FLOW_NODE_ADAPTER,
6489 
6490     /**
6491      * @brief Sets the number of cached items in the water flow adapter.
6492      * This attribute can be set, reset, and obtained as required through APIs.
6493      *
6494      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
6495      * .value[0].i32: number of cached items in the water flow adapter. \n
6496      * .value[1]?.i32: whether to the cached items will be displayed, 0: not displayed, 1: displayed, default value: 0.
6497      * This parameter is supported since API version 16. \n
6498      * \n
6499      * Format of the return value {@link ArkUI_AttributeItem}: \n
6500      * .value[0].i32: number of cached items in the water flow adapter. \n
6501      * .value[1].i32: whether to the cached items will be displayed, 0: not displayed, 1: displayed.
6502      * This parameter is supported since API version 16. \n
6503      */
6504     NODE_WATER_FLOW_CACHED_COUNT,
6505     /**
6506      * @brief 设置瀑布流组件末尾的自定义显示组件。
6507      *
6508      * 属性设置方法{@link ArkUI_AttributeItem}参数格式: \n
6509      * .object:参数类型{@Link ArkUI_NodeHandle}。
6510      *
6511      */
6512     NODE_WATER_FLOW_FOOTER,
6513     /**
6514      * @brief Scroll to the specified index.
6515      *
6516      * When activating the smooth animation, all items passed through will be loaded and layout calculated, which can
6517      * lead to performance issues when loading a large number of items.\n
6518      * \n
6519      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6520      * .value[0].i32:The index value of the target element to be slid to in the current container.\n
6521      * .value[1]?.i32:Set whether there is an action when sliding to the index value of a list item in the list, where
6522      * 1 indicates an action and 0 indicates no action. Default value is 0.\n
6523      * .value[2]?.i32:Specify the alignment of the sliding element with the current container,The parameter type is
6524      * {@link ArkUI_ScrollAlignment}. Default value is </b>ARKUI_SCROLL_ALIGNMENT_START</b>.\n
6525      *
6526      */
6527     NODE_WATER_FLOW_SCROLL_TO_INDEX,
6528 
6529     /**
6530      * @brief Defines the size constraints to apply to water flow items.
6531      * This attribute can be set, reset, and obtained as required through APIs.
6532      *
6533      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6534      * .value[0].f32: minimum width. The value <b>-1</b> indicates that the minimum width is not set. \n
6535      * .value[1].f32: maximum width. The value <b>-1</b> indicates that the maximum width is not set. \n
6536      * .value[2].f32: minimum height. The value <b>-1</b> indicates that the minimum height is not set. \n
6537      * .value[3].f32: maximum height. The value <b>-1</b> indicates that the maximum height is not set. \n
6538      * \n
6539      * Format of the return value {@link ArkUI_AttributeItem}:\n
6540      * .value[0].f32: minimum width. The value <b>-1</b> indicates that the minimum width is not set. \n
6541      * .value[1].f32: maximum width. The value <b>-1</b> indicates that the maximum width is not set. \n
6542      * .value[2].f32: minimum height. The value <b>-1</b> indicates that the minimum height is not set. \n
6543      * .value[3].f32: maximum height. The value <b>-1</b> indicates that the maximum height is not set. \n
6544      *
6545      */
6546     NODE_WATER_FLOW_ITEM_CONSTRAINT_SIZE,
6547 
6548     /**
6549      * @brief Sets the layout mode for this <b>WaterFlow</b> component.
6550      * This attribute can be set, reset, and obtained as required through APIs.
6551      *
6552      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6553      * .value[0].i32: layout mode. The parameter type is {@link ArkUI_WaterFlowLayoutMode}.
6554      * \n
6555      * Format of the return value {@link ArkUI_AttributeItem}:\n
6556      * .value[0].i32: layout mode. The parameter type is {@link ArkUI_WaterFlowLayoutMode}.
6557      *
6558      * @since 16
6559      */
6560     NODE_WATER_FLOW_LAYOUT_MODE,
6561 
6562     /**
6563      * @brief Defines whether the <b>WaterFlow</b> component loads child nodes synchronously.
6564      * This attribute can be set, reset, and obtained as required through APIs.
6565      *
6566      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6567      * .value[0].i32: whether the <b>WaterFlow</b> component synchronously loads child nodes.
6568      * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
6569      * \n
6570      * Format of the return value {@link ArkUI_AttributeItem}:\n
6571      * .value[0].i32: whether the <b>WaterFlow</b> component synchronously loads child nodes.
6572      * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
6573      *
6574      * @since 20
6575      */
6576     NODE_WATER_FLOW_SYNC_LOAD = 1010012,
6577 
6578     /**
6579      * @brief Sets the number of columns in the water flow layout. If this parameter is not set, one column is used by
6580      * default. This attribute can be set, reset, and obtained as required through APIs.
6581      * For example, <b>'1fr 1fr 2fr'</b> indicates three columns, with the first column taking up 1/4 of the parent
6582      * component's full width, the second column 1/4, and the third column 2/4.
6583      * You can use <b>columnsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of
6584      * columns based on the specified column width <b>track-size</b>.
6585      * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %, or
6586      * a valid number.
6587      *
6588      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6589      * .string: number of columns in the layout.\n
6590      * \n
6591      * Format of the return value {@link ArkUI_AttributeItem}:\n
6592      * .string: number of columns in the layout.\n
6593      *
6594      */
6595     NODE_GRID_COLUMN_TEMPLATE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_GRID,
6596 
6597     /**
6598      * @brief Sets the number of rows or the minimum row height in the grid layout. If this parameter is not set, one
6599      * row is used by default. This attribute can be set, reset, and obtained as required through APIs.
6600      * For example, <b>'1fr 1fr 2fr'</b> indicates three rows, with the first row taking up 1/4 of the parent
6601      * component's full height, the second row 1/4, and the third row 2/4.
6602      * You can use <b>rowsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of rows
6603      * based on the specified row height <b>track-size</b>.
6604      * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %, or
6605      * a valid number.
6606      *
6607      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6608      * .string: number of rows in the layout. \n
6609      * \n
6610      * Format of the return value {@link ArkUI_AttributeItem}:\n
6611      * .string: number of rows in the layout. \n
6612      *
6613      */
6614     NODE_GRID_ROW_TEMPLATE,
6615 
6616     /**
6617      * @brief Sets the gap between columns. This attribute can be set, reset, and obtained as required through APIs.
6618      *
6619      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6620      * .value[0].f32: gap between columns, in vp.\n
6621      * \n
6622      * Format of the return value {@link ArkUI_AttributeItem}:\n
6623      * .value[0].f32: gap between columns, in vp.\n
6624      *
6625      */
6626     NODE_GRID_COLUMN_GAP,
6627 
6628     /**
6629      * @brief Sets the gap between rows. This attribute can be set, reset, and obtained as required through APIs.
6630      *
6631      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6632      * .value[0].f32: gap between lines, in vp.\n
6633      * \n
6634      * Format of the return value {@link ArkUI_AttributeItem}:\n
6635      * .value[0].f32: gap between lines, in vp.\n
6636      *
6637      */
6638     NODE_GRID_ROW_GAP,
6639 
6640     /**
6641      * @brief Defines the grid adapter. The attribute can be set, reset, and obtained as required through APIs.
6642      *
6643      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6644      * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
6645      * \n
6646      * Format of the return value {@link ArkUI_AttributeItem}:\n
6647      * .object: {@link ArkUI_NodeAdapter} object. \n
6648      */
6649     NODE_GRID_NODE_ADAPTER,
6650 
6651     /**
6652      * @brief Sets the number of cached items in the grid adapter.
6653      * This attribute can be set, reset, and obtained as required through APIs.
6654      *
6655      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6656      * .value[0].i32: number of cached items in the water flow adapter. \n
6657      */
6658     NODE_GRID_CACHED_COUNT,
6659 
6660     /**
6661      * @brief Defines the focus wrap mode for the <b>Grid</b> component.
6662      * This attribute can be set, reset, and obtained as required through APIs.
6663      *
6664      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6665      * .value[0].i32: focus wrap mode of the <b>Grid</b> component.
6666      *                The parameter type is {@link ArkUI_FocusWrapMode}. \n
6667      * \n
6668      * Format of the return value {@link ArkUI_AttributeItem}:\n
6669      * .value[0].i32: focus wrap mode of the <b>Grid</b> component.
6670      *                The parameter type is {@link ArkUI_FocusWrapMode}. \n
6671      *
6672      * @since 20
6673      */
6674     NODE_GRID_FOCUS_WRAP_MODE = 1013006,
6675 
6676     /**
6677      * @brief Defines whether the <b>Grid</b> component loads child nodes synchronously.
6678      * This attribute can be set, reset, and obtained as required through APIs.
6679      *
6680      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6681      * .value[0].i32: whether the <b>Grid</b> component synchronously loads child nodes.
6682      * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
6683      * \n
6684      * Format of the return value {@link ArkUI_AttributeItem}:\n
6685      * .value[0].i32: whether the <b>Grid</b> component synchronously loads child nodes.
6686      * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
6687      *
6688      * @since 20
6689      */
6690     NODE_GRID_SYNC_LOAD = 1013007,
6691 
6692     /**
6693     * @brief Defines the column width of the text picker.
6694     * This attribute can be set, reset, and obtained as required through APIs.
6695     *
6696     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6697     * .value[0].f32: percentage of total width. The default value is that all colulmns are equal width.\n
6698     * .value[1]?.f32: percentage of total width. The default value is that all colulmns are equal width.\n
6699     * .value[2]?.f32: percentage of total width. The default value is that all colulmns are equal width.\n
6700     * ...\n
6701     * .value[n]?.f32: percentage of total width. The default value is that all colulmns are equal width.\n
6702     * \n
6703     * Format of the return value {@link ArkUI_AttributeItem}:\n
6704     * value[0].f32: percentage of total width.\n
6705     * value[1].f32: percentage of total width.\n
6706     * value[2].f32: percentage of total width.\n
6707     * ...\n
6708     * value[n].f32: percentage of total width.\n
6709     *
6710     * @since 18
6711     */
6712     NODE_TEXT_PICKER_COLUMN_WIDTHS = 15009,
6713     /**
6714      * @brief 设置RelativeContaine容器内的辅助线,支持属性设置,属性重置和属性获取接口。
6715      *
6716      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
6717      * .object: RelativeContaine容器内的辅助线: \n
6718      * \n
6719      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
6720      * .object: RelativeContaine容器内的辅助线:  \n
6721      *
6722      */
6723     NODE_RELATIVE_CONTAINER_GUIDE_LINE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_RELATIVE_CONTAINER,
6724 
6725     /**
6726      * @brief 设置RelativeContaine容器内的屏障,支持属性设置,属性重置和属性获取接口。
6727      *
6728      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
6729      * .object: RelativeContaine容器内的辅助线: \n
6730      * \n
6731      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
6732      * .object: RelativeContaine容器内的屏障:  \n
6733      *
6734      */
6735     NODE_RELATIVE_CONTAINER_BARRIER,
6736 
6737     /**
6738      * @brief 设置帧动画组件的图片帧信息集合。不支持动态更新。支持属性设置,属性重置和属性获取接口。
6739      *
6740      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
6741      * .size:图片帧的数量; \n
6742      * .object:图片帧数组,参数类型为{@ArkUI_ImageFrameInfo}数组; \n
6743      * \n
6744      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
6745      * .size:图片帧的数量; \n
6746      * .object:图片帧数组,参数类型为{@ArkUI_ImageFrameInfo}数组; \n
6747      *
6748     */
6749     NODE_IMAGE_ANIMATOR_IMAGES = ARKUI_NODE_IMAGE_ANIMATOR * MAX_NODE_SCOPE_NUM,
6750     /**
6751      * @brief 控制帧动画组件的播放状态。支持属性设置,属性重置和属性获取接口。
6752      *
6753      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
6754      * .value[0].i32:控制动画的播放状态,参数类型为{@link ArkUI_AnimationStatus},默认值为初始状态。 \n
6755      *
6756      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
6757      * .value[0].i32:控制动画的播放状态,参数类型为{@link ArkUI_AnimationStatus}。 \n
6758      *
6759     */
6760     NODE_IMAGE_ANIMATOR_STATE = 19001,
6761     /**
6762      * @brief 设置帧动画的播放时长,当数组中任意一帧图片单独设置了duration属性后,该属性设置无效。
6763      * 支持属性设置,属性重置和属性获取接口。
6764      *
6765      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
6766      * .value[0].i32:播放时长,单位为毫秒,默认值1000。 \n
6767      *
6768      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
6769      * .value[0].i32:播放时长,单位为毫秒,默认值1000。 \n
6770      *
6771     */
6772     NODE_IMAGE_ANIMATOR_DURATION = 19002,
6773     /**
6774      * @brief 设置帧动画的播放方向。支持属性设置,属性重置和属性获取接口。
6775      *
6776      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
6777      * .value[0].i32:播放方向,0表示从第一张图片播放到最后一张,1表示从最后一张图片播放到第一张,默认值为0。 \n
6778      *
6779      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
6780      * .value[0].i32:播放方向,0表示从第一张图片播放到最后一张,1表示从最后一张图片播放到第一张。 \n
6781      *
6782     */
6783     NODE_IMAGE_ANIMATOR_REVERSE = 19003,
6784     /**
6785      * @brief 设置图片大小是否固定为组件大小。支持属性设置,属性重置和属性获取接口。
6786      *
6787      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
6788      * .value[0].i32:设置图片大小是否固定为组件大小,1表示图片大小与组件大小一致。0表示每一张图片的width、height、top和left都要单独设置,默认值为1。\n
6789      *
6790      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
6791      * .value[0].i32:设置图片大小是否固定为组件大小,1表示图片大小与组件大小一致。0表示每一张图片的width、height、top和left都要单独设置。 \n
6792      *
6793     */
6794     NODE_IMAGE_ANIMATOR_FIXED_SIZE = 19004,
6795     /**
6796      * @brief 设置帧动画在当前播放方向下,动画开始前和结束后的状态。支持属性设置,属性重置和属性获取接口。
6797      *
6798      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
6799      * .value[0].i32:当前播放方向下,动画开始前和结束后的状态,参数类型为{ArkUI_AnimationFillMode},默认值为FORWARDS。 \n
6800      *
6801      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
6802      * .value[0].i32:当前播放方向下,动画开始前和结束后的状态,参数类型为{ArkUI_AnimationFillMode}。 \n
6803      *
6804     */
6805     NODE_IMAGE_ANIMATOR_FILL_MODE = 19005,
6806     /**
6807      * @brief 设置帧动画的播放次数。支持属性设置,属性重置和属性获取接口。
6808      *
6809      * 属性设置方法参数{@link ArkUI_AttributeItem}格式: \n
6810      * .value[0].i32:播放次数。 \n
6811      *
6812      * 属性获取方法返回值{@link ArkUI_AttributeItem}格式: \n
6813      * .value[0].i32:播放次数。 \n
6814      *
6815     */
6816     NODE_IMAGE_ANIMATOR_ITERATION = 19006,
6817     /**
6818      * @brief Defines the disabled date range of the calendar picker.
6819      * This attribute can be set, reset, and obtained as required through APIs.
6820      *
6821      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6822      * .string: A string of dates. The `1st start date`,`1st end date`,`2nd start date`,`2nd end date`,
6823      * ...,`nth start date`,`nth end date` of the disabled date range.\n
6824      *  Example: 1910-01-01,1910-12-31,2020-01-01,2020-12-31\n
6825      * \n
6826      * Format of the return value {@link ArkUI_AttributeItem}:\n
6827      * .string: A string of dates.\n
6828      *
6829      * @since 19
6830      */
6831     NODE_CALENDAR_PICKER_DISABLED_DATE_RANGE = 16006,
6832     /**
6833      * @brief Defines whether the calendar picker marks today.
6834      * This attribute can be set, reset, and obtained as required through APIs.
6835      *
6836      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6837      * .value[0].i32: whether to the calendar picker marks today. The default value is: <b>false</b>.\n
6838      * \n
6839      * Format of the return value {@link ArkUI_AttributeItem}:\n
6840      * .value[0].i32: whether to the calendar picker marks today.
6841      *
6842      * @since 19
6843      */
6844     NODE_CALENDAR_PICKER_MARK_TODAY = 16007,
6845 
6846     /**
6847      * @brief Defines the want used to start EmbeddedAbility.
6848      * This attribute can be set as required through APIs.
6849      *
6850      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6851      * .object: The want of EmbeddedComponent, with parameter type {@AbilityBase_Want}. The default value is <b>nullptr</b>.\n
6852      *
6853      * @since 20
6854      */
6855     NODE_EMBEDDED_COMPONENT_WANT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_EMBEDDED_COMPONENT,
6856 
6857     /**
6858      * @brief Set onError and onTerminated callbacks for EMBEDDED_COMPONENT.
6859      * This attribute can be set as required through APIs.
6860      *
6861      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6862      * .object: The option for EmbeddedComponent, with parameter type {@ArkUI_EmbeddedComponentOption}.\n
6863      *
6864      * @since 20
6865      */
6866     NODE_EMBEDDED_COMPONENT_OPTION,
6867 } ArkUI_NodeAttributeType;
6868 
6869 #define MAX_COMPONENT_EVENT_ARG_NUM 12
6870 /**
6871  * @brief Defines the parameter type of the component callback event.
6872  *
6873  * @since 12
6874  */
6875 typedef struct {
6876     /** Data array object. */
6877     ArkUI_NumberValue data[MAX_COMPONENT_EVENT_ARG_NUM];
6878 } ArkUI_NodeComponentEvent;
6879 
6880 /**
6881  * @brief Defines the string type parameter used by the component callback event.
6882  *
6883  * @since 12
6884  */
6885 typedef struct {
6886     /** String. */
6887     const char* pStr;
6888 } ArkUI_StringAsyncEvent;
6889 
6890 /**
6891  * @brief Defines a hybrid data structure for component events.
6892  *
6893  * @since 16
6894  */
6895 typedef struct {
6896     /** String data */
6897     const char* pStr;
6898     /** Extended string data */
6899     const char* pExtendStr;
6900     /** Numeric data */
6901     int32_t number;
6902 } ArkUI_TextChangeEvent;
6903 
6904 /**
6905  * @brief Enumerates the event types supported by the NativeNode component.
6906  *
6907  * @since 12
6908  */
6909 typedef enum {
6910     /**
6911      * @brief Defines the gesture event type.
6912      *
6913      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6914      * {@link ArkUI_UIInputEvent}.
6915      */
6916     NODE_TOUCH_EVENT = 0,
6917 
6918     /**
6919      * @brief Defines the mount event.
6920      *
6921      * This event is triggered when the component is mounted and displayed. \n
6922      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6923      * {@link ArkUI_NodeComponentEvent}. \n
6924      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
6925      */
6926     NODE_EVENT_ON_APPEAR,
6927     /**
6928      * @brief Defines the unmount event.
6929      *
6930      * This event is triggered when the component is unmounted and hidden. \n
6931      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6932      * {@link ArkUI_NodeComponentEvent}. \n
6933      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
6934      */
6935     NODE_EVENT_ON_DISAPPEAR,
6936 
6937     /**
6938      * @brief Defines the area change event.
6939      *
6940      * This event is triggered when the component's size, position, or any other attribute that may
6941      * affect its display area changes. \n
6942      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6943      *  {@link ArkUI_NodeComponentEvent}. \n
6944      * {@link ArkUI_NodeComponentEvent} contains 12 parameters:\n
6945      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: original width of the target element, in vp.
6946      * The value is a number. \n
6947      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: original height of the target element, in vp.
6948      * The value is a number. \n
6949      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: original X coordinate of the target element's upper left corner
6950      * relative to the parent element's, in vp. The value is a number. \n
6951      * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: original Y coordinate of the target element's upper left corner
6952      * relative to the parent element's, in vp. The value is a number. \n
6953      * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: original X coordinate of the target element's upper left corner
6954      * relative to the page's, in vp. The value is a number. \n
6955      * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: original Y coordinate of the target element's upper left corner
6956      * relative to the page's, in vp. The value is a number. \n
6957      * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: new width of the target element, in vp. The value is a number. \n
6958      * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: new height of the target element, in vp. The value is a number. \n
6959      * <b>ArkUI_NodeComponentEvent.data[8].f32</b>: new X coordinate of the target element's upper left corner relative
6960      * to the parent element's, in vp. The value is a number. \n
6961      * <b>ArkUI_NodeComponentEvent.data[9].f32</b>: new Y coordinate of the target element's upper left corner relative
6962      * to the parent element's, in vp. The value is a number. \n
6963      * <b>ArkUI_NodeComponentEvent.data[10].f32</b>: new X coordinate of the target element's upper left corner relative
6964      * to the page's, in vp. The value is a number. \n
6965      * <b>ArkUI_NodeComponentEvent.data[11].f32</b>: new Y coordinate of the target element's upper left corner relative
6966      * to the page's, in vp. The value is a number. \n
6967      */
6968     NODE_EVENT_ON_AREA_CHANGE,
6969     /**
6970      * @brief Defines the focus event.
6971      *
6972      * This event is triggered when the component obtains the focus. \n
6973      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6974      * {@link ArkUI_NodeComponentEvent}. \n
6975      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
6976      */
6977     NODE_ON_FOCUS,
6978     /**
6979      * @brief Defines the blur event.
6980      *
6981      * This event is triggered when the component loses the focus. \n
6982      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6983      * {@link ArkUI_NodeComponentEvent}. \n
6984      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
6985      */
6986     NODE_ON_BLUR,
6987     /**
6988      * @brief Defines the click event.
6989      *
6990      * This event is triggered when the component is clicked. \n
6991      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6992      * {@link ArkUI_NodeComponentEvent}. \n
6993      * {@link ArkUI_NodeComponentEvent} contains 12 parameters:\n
6994      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: X coordinate of the click relative to the upper left corner of the
6995      * clicked component's original area, in vp. \n
6996      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: Y coordinate of the click relative to the upper left corner of the
6997      * clicked component's original area, in vp. \n
6998      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: event timestamp. It is the interval between the time when the event
6999      * is triggered and the time when the system starts, in microseconds. \n
7000      * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: event input device. The value <b>1</b> indicates the mouse,
7001      * <b>2</b> indicates the touchscreen, and <b>4</b> indicates the key. \n
7002      * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: X coordinate of the click relative to the upper left corner of the
7003      * application window, in vp. \n
7004      * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: Y coordinate of the click relative to the upper left corner of the
7005      * application window, in vp. \n
7006      * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: X coordinate of the click relative to the upper left corner of the
7007      * application screen, in vp. \n
7008      * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: Y coordinate of the click relative to the upper left corner of the
7009      * application screen, in vp. \n
7010      */
7011     NODE_ON_CLICK,
7012     /**
7013      * @brief Defines event interception.
7014      *
7015      * This event is triggered when the component is touched. \n
7016      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7017      * {@link ArkUI_UIInputEvent}. \n
7018      */
7019     NODE_ON_TOUCH_INTERCEPT,
7020     /**
7021      * @brief Defines the visible area change event.
7022      *
7023      * This event is triggered when the ratio of the component's visible area to its total area is greater than or less
7024      * than the threshold.
7025      * Before registering this event, you must set <b>NODE_VISIBLE_AREA_CHANGE_RATIO</b>. \n
7026      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7027      * {@link ArkUI_NodeComponentEvent}. \n
7028      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7029      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: how the ratio of the component's visible area to its total area
7030      * changes compared to the previous one. The value <b>1</b> indicates an increase, and <b>0</b> indicates a
7031      * decrease. \n
7032      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: ratio of the component's visible area to its total area when this
7033      * callback is invoked. \n
7034      */
7035     NODE_EVENT_ON_VISIBLE_AREA_CHANGE,
7036     /**
7037      * @brief Defines the event triggered when the mouse pointer is moved over or away from the component.
7038      *
7039       \n
7040      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7041      * {@link ArkUI_NodeComponentEvent}. \n
7042      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7043      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: whether the mouse pointer is hovered over the component.
7044      * The value <b>1</b> indicates that the mouse pointer is hovered over the component, and <b>0</b> indicates that
7045      * the mouse pointer is moved away from the component. \n
7046      */
7047     NODE_ON_HOVER,
7048     /**
7049      * @brief Defines the click event.
7050      *
7051      * This event is triggered when the component is clicked by a mouse device button or when the mouse pointer moves
7052      * within the component. \n
7053      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7054      * {@link ArkUI_UIInputEvent}. \n
7055      */
7056     NODE_ON_MOUSE,
7057     /**
7058      * @brief Defines the mount event.
7059      *
7060      * This event is triggered when the component is mounted. \n
7061      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7062      * {@link ArkUI_NodeComponentEvent}. \n
7063      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
7064      */
7065     NODE_EVENT_ON_ATTACH,
7066     /**
7067      * @brief Defines the unmount event.
7068      *
7069      * This event is triggered when the component is unmount. \n
7070      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7071      * {@link ArkUI_NodeComponentEvent}. \n
7072      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
7073      */
7074     NODE_EVENT_ON_DETACH,
7075     /**
7076      * @brief Defines the event triggered when an accessibility action of the preconfigured type is performed.
7077      *
7078      * \n
7079      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7080      * {@link ArkUI_NodeComponentEvent}. \n
7081      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7082      * <b>ArkUI_NodeComponentEvent.data[0].u32</b>: action type. The parameter type is
7083      * {@link ArkUI_AccessibilityActionType}. \n
7084      *
7085      */
7086     NODE_ON_ACCESSIBILITY_ACTIONS,
7087 
7088     /**
7089      * @brief Notifies the listener of the interaction state prior to a drop and drop operation.
7090      *
7091      * This event is triggered when a drag operation is about to start on a draggable item. \n
7092      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7093      * {@link ArkUI_NodeComponentEvent}. \n
7094      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7095      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: corresponds to {@link ArkUI_PreDragStatus}. \n
7096      */
7097     NODE_ON_PRE_DRAG = 14,
7098     /**
7099      * @brief Called when the user starts to drag an ite
7100      *
7101      * A drag operation is recognized only when the dragged item is moved far enough. \n
7102      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
7103      * {@link ArkUI_NodeEvent} object. \n
7104      */
7105     NODE_ON_DRAG_START = 15,
7106     /**
7107      * @brief Called when a dragged item enters the boundaries of the current component.
7108      *
7109      * The current component refers to the component that listens for this event. \n
7110      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
7111      * {@link ArkUI_NodeEvent} object. \n
7112      */
7113     NODE_ON_DRAG_ENTER = 16,
7114     /**
7115      * @brief Called  when a dragged item moves in the current component.
7116      *
7117      * The current component refers to the component that listens for this event. \n
7118      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
7119      * {@link ArkUI_NodeEvent} object. \n
7120      */
7121     NODE_ON_DRAG_MOVE = 17,
7122     /**
7123      * @brief Called when a dragged item leaves the boundaries of the current component.
7124      *
7125      * The current component refers to the component that listens for this event. \n
7126      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
7127      * {@link ArkUI_NodeEvent} object. \n
7128      */
7129     NODE_ON_DRAG_LEAVE = 18,
7130     /**
7131      * @brief Called when a dragged item is dropped on the current component.
7132      * The component can obtain the drag data for processing through the callback.
7133      *
7134      * The current component refers to the component that listens for this event. \n
7135      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
7136      * {@link ArkUI_NodeEvent} object. \n
7137      */
7138     NODE_ON_DROP = 19,
7139     /**
7140      * @brief Called when a drag operation ends.
7141      * The drag source can obtain the drag result by registering this callback.
7142      *
7143      * A drag operation ends when the dragged item is released.
7144      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
7145      * {@link ArkUI_NodeEvent} object. \n
7146      */
7147     NODE_ON_DRAG_END = 20,
7148     /**
7149      * @brief Defines the event triggered when a key event occurs.
7150      *
7151      * The callback can be triggered during interactions with a focused window using an external keyboard or other input
7152      * device. \n
7153      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7154      * {@link ArkUI_NodeComponentEvent}. \n
7155      *
7156      * @since 14
7157      */
7158     NODE_ON_KEY_EVENT = 21,
7159     /**
7160      * @brief Defines the event triggered before the input method responds to the key action.
7161      *
7162      * If the return value of this callback is <b>true</b>, it is considered that the key event has been consumed, and
7163      * subsequent event callbacks (<b>keyboardShortcut</b>, input method events, <b>onKeyEvent</b>) will be intercepted
7164      * and no longer triggered.
7165      * The callback can be triggered during interactions with a focused window using an external keyboard or other input
7166      * device. \n
7167      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7168      * {@link ArkUI_NodeComponentEvent}. \n
7169      *
7170      * @since 14
7171      */
7172     NODE_ON_KEY_PRE_IME = 22,
7173 
7174     /**
7175      * @brief Defines the event triggered when the bound component receives a focus axis event after gaining focus.
7176      *
7177      * The event callback is triggered by interactions with a joystick and a focused component. \n
7178      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7179      * {@link ArkUI_UIInputEvent}. \n
7180      *
7181      * @since 15
7182      */
7183     NODE_ON_FOCUS_AXIS = 23,
7184 
7185     /**
7186      * @brief Dispatch key event on the component node.
7187      *
7188      * When the component node receives a key event, this callback will be triggered instead of dispatching event to its
7189      * children. \n
7190      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7191      * {@link ArkUI_NodeComponentEvent}. \n
7192      *
7193      * @since 15
7194      */
7195     NODE_DISPATCH_KEY_EVENT = 24,
7196 
7197     /**
7198      * @brief Defines the event triggered when the bound component receives an axis event.
7199      *
7200      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7201      * {@link ArkUI_UIInputEvent}. \n
7202      *
7203      * @since 17
7204      */
7205     NODE_ON_AXIS = 25,
7206 
7207     /**
7208      * @brief Defines the event triggered when the bound component is clicked.
7209      *
7210      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7211      * {@link ArkUI_UIInputEvent}.  \n
7212      *
7213      * @since 18
7214      */
7215     NODE_ON_CLICK_EVENT = 26,
7216 
7217     /**
7218      * @brief Defines the event triggered when the mouse pointer hovers over or moves away from a component.
7219      *
7220      * This event is triggered when the mouse pointer enters or leaves the component's bounding box. \n
7221      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7222      * {@link ArkUI_UIInputEvent}. \n
7223      *
7224      *@since 17
7225      */
7226     NODE_ON_HOVER_EVENT = 27,
7227 
7228     /**
7229      * @brief Sets the callback for the NODE_EVENT_ON_VISIBLE_AREA_CHANGE event, which limits the callback interval.
7230      *
7231      * The callback is triggered when the ratio of the component's visible area to its total area is greater than or
7232      * less than the threshold. Before registering the callback, you must configure the threshold and update interval
7233      * using <b>NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO</b>. \n
7234      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7235      * {@link ArkUI_NodeComponentEvent}. \n
7236      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7237      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: how the ratio of the component's visible area to its total area
7238      * changes compared to the previous one. The value <b>1</b> indicates an increase, and <b>0</b> indicates
7239      * a decrease. \n
7240      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: ratio of the component's visible area to its total area
7241      * when this callback is invoked. \n
7242      *
7243      * @since 17
7244      */
7245     NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_EVENT = 28,
7246 
7247     /**
7248      * @brief Defines the hover event.
7249      *
7250      * The event is triggered when the pointer is hovered by a pen device.
7251      * within the component. \n
7252      * When the event callback occurs, the {@link ArkUI_NodeEvent} object can be obtained from the
7253      * {@link ArkUI_UIInputEvent} object. \n
7254      * @since15
7255     */
7256     NODE_ON_HOVER_MOVE = 29,
7257 
7258     /**
7259      * @brief Triggers onDetectResultUpdate callback
7260      * when the text is set to TextDataDetectorConfig and recognized successfully.
7261      *
7262      * Trigger this event when TextDataDetectorConfig is set and recognized successfully.\n
7263      * When the event callback occurs, the event parameter{@link ArkUI_NodeEvent}The union type in the object is
7264      * {@link ArkUI_StringAsyncEvent}.\n
7265      * {@link ArkUI_StringAsyncEvent}contains 1 parameter\n
7266      * <b>ArkUI_StringAsyncEvent.pStr</b>:Indicates the result of text recognition, in Json format.\n
7267      *
7268      */
7269     NODE_TEXT_ON_DETECT_RESULT_UPDATE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT,
7270     /**
7271      * @brief Defines the long press event for span
7272      *
7273      * The event is triggered when the span is long pressed.
7274      * When the event callback occurs, the {@link ArkUI_NodeEvent} object can be obtained from the
7275      * {@link ArkUI_UIInputEvent} object.\n
7276      *@since 20
7277      */
7278     NODE_TEXT_SPAN_ON_LONG_PRESS = 1001,
7279     /**
7280      * @brief Defines the image loading success event.
7281      *
7282      * This event is triggered when an image is successfully loaded or decoded. \n
7283      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7284      * {@link ArkUI_NodeComponentEvent}. \n
7285      * {@link ArkUI_NodeComponentEvent} contains nine parameters:\n
7286      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: loading status. The value <b>0</b> indicates that the image is
7287      * loaded successfully, and the value <b>1</b> indicates that the image is decoded successfully. \n
7288      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: width of the image, in px. \n
7289      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: height of the image, in px. \n
7290      * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: width of the component, in px. \n
7291      * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: height of the component, in px. \n
7292      * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: offset of the rendered content relative to the component on the
7293      * x-axis, in px. \n
7294      * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: offset of the rendered content relative to the component on the
7295      * y-axis, in px. \n
7296      * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: actual rendered width of the image, in px. \n
7297      * <b>ArkUI_NodeComponentEvent.data[8].f32</b>: actual rendered height of the image, in px. \n
7298      */
7299     NODE_IMAGE_ON_COMPLETE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE,
7300     /**
7301      * @brief Defines the image loading failure event.
7302      *
7303      * This event is triggered when an error occurs during image loading. \n
7304      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7305      * {@link ArkUI_NodeComponentEvent}. \n
7306      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7307      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>error code:\n
7308      * 401: The image could not be obtained because the image path is invalid. \n
7309      * 103101: The image format is not supported. \n
7310      */
7311     NODE_IMAGE_ON_ERROR,
7312     /**
7313      * @brief Defines the SVG animation playback completion event.
7314      *
7315      * This event is triggered when the animation playback in the loaded SVG image is complete. \n
7316      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7317      * {@link ArkUI_NodeComponentEvent}. \n
7318      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
7319      */
7320     NODE_IMAGE_ON_SVG_PLAY_FINISH,
7321     /**
7322      * @brief Defines image download process event.
7323      *
7324      * This event is triggered when downloading webpage images from page components.\n
7325      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7326      * {@link ArkUI_NodeComponentEvent}. \n
7327      * {@link ArkUI_NodeComponentEvent} contains two parameter:\n
7328      * <b>ArkUI_NodeComponentEvent.data[0].u32</b>: the num of bytes downloaded. \n
7329      * <b>ArkUI_NodeComponentEvent.data[1].u32</b>: the total number of bytes to download. \n
7330      */
7331     NODE_IMAGE_ON_DOWNLOAD_PROGRESS,
7332     /**
7333      * @brief Defines the event triggered when the toggle status changes.
7334      *
7335       \n
7336      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7337      * {@link ArkUI_NodeComponentEvent}. \n
7338      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7339      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: toggle status. <b>1</b>: on; <b>0</b>: off.
7340      *
7341      */
7342     NODE_TOGGLE_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TOGGLE,
7343     /**
7344      * @brief Defines the event triggered when TextInput's content changes.
7345      *
7346       \n
7347      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7348      * {@link ArkUI_StringAsyncEvent}. \n
7349      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
7350      * <b>ArkUI_StringAsyncEvent.pStr</b>: TextInput.
7351      *
7352      */
7353     NODE_TEXT_INPUT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_INPUT,
7354     /**
7355      * @brief Defines the event triggered when the Enter key of the TextInput method is pressed.
7356      *
7357       \n
7358      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7359      * {@link ArkUI_NodeComponentEvent}. \n
7360      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7361      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Enter key type of the input method.
7362      *
7363      */
7364     NODE_TEXT_INPUT_ON_SUBMIT,
7365     /**
7366      * @brief Defines the event triggered when the cut button on the pasteboard, which displays when the text box
7367      * is long pressed, is clicked.
7368      *
7369       \n
7370      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7371      * {@link ArkUI_StringAsyncEvent}. \n
7372      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
7373      * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is cut.
7374      *
7375      */
7376     NODE_TEXT_INPUT_ON_CUT,
7377     /**
7378      * @brief Defines the event triggered when the paste button on the pasteboard, which displays when the text box
7379      * is long pressed, is clicked.
7380      *
7381       \n
7382      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7383      * {@link ArkUI_StringAsyncEvent}. \n
7384      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
7385      * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is pasted
7386      *
7387      */
7388     NODE_TEXT_INPUT_ON_PASTE,
7389     /**
7390      * @brief Defines the event triggered when the text selection position changes.
7391      *
7392       \n
7393      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7394      * {@link ArkUI_NodeComponentEvent}. \n
7395      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7396      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: start position of the text selection area. \n
7397      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: end position of the text selection area. \n
7398      *
7399      */
7400     NODE_TEXT_INPUT_ON_TEXT_SELECTION_CHANGE,
7401 
7402     /**
7403      * @brief Defines the event triggered when the input status changes.
7404      *
7405       \n
7406      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7407      * {@link ArkUI_NodeComponentEvent}. \n
7408      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7409      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: <b>true</b> indicates that TextInput is in progress. \n
7410      *
7411      */
7412     NODE_TEXT_INPUT_ON_EDIT_CHANGE,
7413 
7414     /**
7415      * @brief This event is triggered when the input content of TextInput changes.
7416      *
7417      * Conditions for triggering this event: When the input content changes. \n
7418      * When the event callback occurs, the union type in the event parameter
7419      * {@link ArkUI_NodeEvent} object is {@link ArkUI_NodeComponentEvent}. \n
7420      * {@link ArkUI_NodeComponentEvent} contains 2 parameters:\n
7421      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: Indicates the width of the text. \n
7422      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: Indicates the height of the text. \n
7423      *
7424      */
7425     NODE_TEXT_INPUT_ON_CONTENT_SIZE_CHANGE,
7426 
7427     /**
7428      * @brief Defines the event triggered when matching with the regular expression specified by
7429      * <b>NODE_TEXT_INPUT_INPUT_FILTER</b> fails.
7430      *
7431       \n
7432      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7433      * {@link ArkUI_StringAsyncEvent}. \n
7434      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
7435      * <b>ArkUI_StringAsyncEvent.pStr</b>: content that is filtered out when regular expression matching fails. \n
7436      *
7437      */
7438     NODE_TEXT_INPUT_ON_INPUT_FILTER_ERROR,
7439     /**
7440      * @brief This callback is triggered when the text content is scrolled.
7441      *
7442       \n
7443      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7444      * {@link ArkUI_NodeComponentEvent}. \n
7445      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7446      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Indicates the horizontal offset of the text in the content area. \n
7447      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: Indicates the vertical coordinate offset of \n
7448      * the text in the content area. \n
7449      *
7450      */
7451     NODE_TEXT_INPUT_ON_CONTENT_SCROLL,
7452     /**
7453      * @brief Defines the event triggered when text is about to be entered.
7454      *
7455      * The event parameter is {@link ArkUI_NodeEvent}. \n
7456      * value.f32: position of the text, with the index of <b>0</b>; obtained using
7457      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
7458      * buffer: string value of the text, with the index of <b>0</b>; obtained using
7459      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
7460      * @return Returns <b>true</b> if the text is entered; returns <b>false</b> otherwise.
7461      * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
7462      */
7463     NODE_TEXT_INPUT_ON_WILL_INSERT = 7009,
7464     /**
7465      * @brief Defines the event triggered when text is entered.
7466      *
7467      * The event parameter is {@link ArkUI_NodeEvent}. \n
7468      * value.f32: position of the text, with the index of <b>0</b>; obtained using
7469      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
7470      * buffer: string value of the text, with the index of <b>0</b>; obtained using
7471      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
7472      */
7473     NODE_TEXT_INPUT_ON_DID_INSERT = 7010,
7474     /**
7475      * @brief Defines the event triggered when text is about to be deleted.
7476      *
7477      * The event parameter is {@link ArkUI_NodeEvent}. \n
7478      * value.f32: position of the text to delete, with the index of <b>0</b>; obtained using
7479      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
7480      * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
7481      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
7482      * forward-delete. \n
7483      * buffer: string value of the text, with the index of <b>0</b>; obtained using
7484      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
7485      * @return Returns <b>true</b> if the text is deleted; returns <b>false</b> otherwise. \n
7486      * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
7487      */
7488     NODE_TEXT_INPUT_ON_WILL_DELETE = 7011,
7489     /**
7490      * @brief Defines the event triggered when text is deleted.
7491      *
7492      * The event parameter is {@link ArkUI_NodeEvent}. \n
7493      * value.f32: position of the text deleted, with the index of <b>0</b>; obtained using
7494      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
7495      * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
7496      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
7497      * forward-delete. \n
7498      * buffer: string value of the text, with the index of <b>0</b>; obtained using
7499      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
7500      */
7501     NODE_TEXT_INPUT_ON_DID_DELETE = 7012,
7502     /**
7503      * @brief Defines the event triggered when content (including preview text) changes in the <b>TextInput</b>
7504      * component.
7505      *
7506      * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
7507      * {@link ArkUI_TextChangeEvent} contains the following parameters:\n
7508      * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextInput</b> component.
7509      * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextInput</b> component.
7510      * <b>ArkUI_TextChangeEvent.number</b>: start position of the preview text in the <b>TextInput</b> component.
7511      *
7512      * @since 16
7513      */
7514     NODE_TEXT_INPUT_ON_CHANGE_WITH_PREVIEW_TEXT = 7013,
7515 
7516     /**
7517      * @brief Defines the event triggered before content changes.
7518      *
7519      * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
7520      * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
7521      * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextInput</b> component.
7522      * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextInput</b> component.
7523      * <b>ArkUI_TextChangeEvent.number</b>: start position of the preview text in the <b>TextInput</b> component.
7524      *
7525      * @since 20
7526      */
7527     NODE_TEXT_INPUT_ON_WILL_CHANGE = 7014,
7528 
7529     /**
7530      * @brief Defines the event triggered when the input in the text box changes.
7531      *
7532       \n
7533      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7534      * {@link ArkUI_StringAsyncEvent}. \n
7535      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
7536      * <b>ArkUI_StringAsyncEvent.pStr</b>: text entered.
7537      *
7538      */
7539     NODE_TEXT_AREA_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_AREA,
7540     /**
7541      * @brief Defines the event triggered when the paste button on the pasteboard, which displays when the text box is
7542      * long pressed, is clicked.
7543      *
7544       \n
7545      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7546      * {@link ArkUI_StringAsyncEvent}. \n
7547      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
7548      * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is pasted
7549      *
7550      */
7551     NODE_TEXT_AREA_ON_PASTE,
7552     /**
7553      * @brief Defines the event triggered when the text selection position changes.
7554      *
7555       \n
7556      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7557      * {@link ArkUI_NodeComponentEvent}. \n
7558      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7559      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: start position of the text selection area. \n
7560      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: end position of the text selection area. \n
7561      *
7562      */
7563     NODE_TEXT_AREA_ON_TEXT_SELECTION_CHANGE,
7564     /**
7565      * @brief Defines the event triggered when matching with the regular expression specified by
7566      * <b>NODE_TEXT_AREA_INPUT_FILTER</b> fails.
7567      *
7568      * \n
7569      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7570      * {@link ArkUI_StringAsyncEvent}. \n
7571      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
7572      * <b>ArkUI_StringAsyncEvent.pStr</b>: content that is filtered out when regular expression matching fails. \n
7573      *
7574      */
7575     NODE_TEXT_AREA_ON_INPUT_FILTER_ERROR,
7576     /**
7577      * @brief This callback is triggered when the text content is scrolled.
7578      *
7579      * \n
7580      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7581      * {@link ArkUI_NodeComponentEvent}. \n
7582      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7583      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Indicates the horizontal offset of the text in the content area. \n
7584      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: Indicates the vertical coordinate offset of \n
7585      * the text in the content area. \n
7586      *
7587      */
7588     NODE_TEXT_AREA_ON_CONTENT_SCROLL,
7589 
7590     /**
7591      * @brief Defines the event triggered when the input status changes.
7592      *
7593      * \n
7594      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is \n
7595      * {@link ArkUI_NodeComponentEvent}. \n
7596      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7597      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: <b>true</b> indicates that TextInput is in progress. \n
7598      *
7599      */
7600     NODE_TEXT_AREA_ON_EDIT_CHANGE,
7601 
7602     /**
7603      * @brief Defines the event triggered when the Enter key on the keyboard is pressed for the multi-line text box.
7604      *
7605      * This event is not triggered when <b>keyType</b> is <b>ARKUI_ENTER_KEY_TYPE_NEW_LINE</b>. \n
7606      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is \n
7607      * {@link ArkUI_NodeComponentEvent}. \n
7608      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7609      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: type of the Enter key.
7610      *
7611      */
7612     NODE_TEXT_AREA_ON_SUBMIT,
7613 
7614     /**
7615       * @brief  This event is triggered when the input content of TextArea changes.
7616       *
7617       * Conditions for triggering this event: When the input content changes. \n
7618       * When the event callback occurs, the union type in the event parameter {@link ArkUI_NodeEvent} object is \n
7619       * {@link ArkUI_NodeComponentEvent}.\n
7620       * {@link ArkUI_NodeComponentEvent} contains 2 parameters:\n
7621       * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: Indicates the width of the text. \n
7622       * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: Indicates the height of the text. \n
7623       *
7624       */
7625     NODE_TEXT_AREA_ON_CONTENT_SIZE_CHANGE,
7626     /**
7627      * @brief Defines the event triggered when text is about to be entered.
7628      *
7629      * The event parameter is {@link ArkUI_NodeEvent}. \n
7630      * value.f32: position of the text, with the index of <b>0</b>; obtained using
7631      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
7632      * buffer: string value of the text, with the index of <b>0</b>; obtained using
7633      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
7634      * @return Returns <b>true</b> if the text is entered; returns <b>false</b> otherwise.
7635      * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
7636      */
7637     NODE_TEXT_AREA_ON_WILL_INSERT = 8008,
7638     /**
7639      * @brief Defines the event triggered when text is entered.
7640      *
7641      * The event parameter is {@link ArkUI_NodeEvent}. \n
7642      * value.f32: position of the text, with the index of <b>0</b>; obtained using
7643      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
7644      * buffer: string value of the text, with the index of <b>0</b>; obtained using
7645      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
7646      */
7647     NODE_TEXT_AREA_ON_DID_INSERT = 8009,
7648     /**
7649      * @brief Defines the event triggered when text is about to be deleted.
7650      *
7651      * The event parameter is {@link ArkUI_NodeEvent}. \n
7652      * value.f32: position of the text to delete, with the index of <b>0</b>; obtained using
7653      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
7654      * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
7655      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
7656      * forward-delete. \n
7657      * buffer: string value of the text, with the index of <b>0</b>; obtained using
7658      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
7659      * @return Returns <b>true</b> if the text is deleted; returns <b>false</b> otherwise. \n
7660      * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
7661      */
7662     NODE_TEXT_AREA_ON_WILL_DELETE = 8010,
7663     /**
7664      * @brief Defines the event triggered when text is deleted.
7665      *
7666      * The event parameter is {@link ArkUI_NodeEvent}. \n
7667      * value.f32: position of the text deleted, with the index of <b>0</b>; obtained using
7668      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
7669      * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
7670      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
7671      * forward-delete. \n
7672      * buffer: string value of the text, with the index of <b>0</b>; obtained using
7673      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
7674      */
7675     NODE_TEXT_AREA_ON_DID_DELETE = 8011,
7676     /**
7677      * @brief Defines the event triggered when content (including preview text) changes in the <b>TextArea</b>
7678      * component.
7679      *
7680      * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
7681      * {@link ArkUI_TextChangeEvent} contains the following parameters:\n
7682      * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextArea</b> component.
7683      * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextArea</b> component.
7684      * <b>ArkUI_TextChangeEvent.number</b>: start position of the preview text in the <b>TextArea</b> component.
7685      *
7686      * @since 16
7687      */
7688     NODE_TEXT_AREA_ON_CHANGE_WITH_PREVIEW_TEXT = 8012,
7689     /**
7690      * @brief Defines the event triggered before content changes
7691      *
7692      * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
7693      * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
7694      * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextArea</b> component.
7695      * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextArea</b> component.
7696      * <b>ArkUI_TextChangeEvent.number</b>: start position of the preview text in the <b>TextArea</b> component.
7697      *
7698      * @since 20
7699      */
7700     NODE_TEXT_AREA_ON_WILL_CHANGE = 8013,
7701     /**
7702      * @brief Defines the event triggered when the selected status of the <b>ARKUI_NODE_CHECKBOX</b> component changes.
7703      *
7704      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7705      * {@link ArkUI_NodeComponentEvent}. \n
7706      * <b>ArkUI_NodeComponentEvent.data[0].i32</b><b>1</b>: selected; <b>0</b>: not selected.\n
7707      */
7708     NODE_CHECKBOX_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX,
7709 
7710     /**
7711      * @brief Defines the event triggered when a date is selected in the <b>ARKUI_NODE_DATE_PICKER</b> component.
7712      *
7713       \n
7714      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7715      * {@link ArkUI_NodeComponentEvent}. \n
7716      * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
7717      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: year of the selected date. \n
7718      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: month of the selected date. Value range: [0-11]. \n
7719      * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: day of the selected date. \n
7720      */
7721     NODE_DATE_PICKER_EVENT_ON_DATE_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_DATE_PICKER,
7722 
7723     /**
7724      * @brief Defines the event triggered when a time is selected in the <b>ARKUI_NODE_TIME_PICKER</b> component.
7725      *
7726       \n
7727      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7728      * {@link ArkUI_NodeComponentEvent}. \n
7729      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7730      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: hour of the selected time. Value range: [0-23]. \n
7731      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: minute of the selected time. Value range: [0-59]. \n
7732      */
7733     NODE_TIME_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TIME_PICKER,
7734 
7735     /**
7736      * @brief Defines the event triggered when an item is selected in the <b>ARKUI_NODE_TEXT_PICKER</b> component.
7737      *
7738       \n
7739      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7740      * {@link ArkUI_NodeComponentEvent}. \n
7741      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7742      * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the selected item. \n
7743      */
7744     NODE_TEXT_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_PICKER,
7745 
7746     /**
7747      * @brief Defines the event triggered when an item is selected and scrolling has stopped in the
7748      * <b>ARKUI_NODE_TEXT_PICKER</b> component.
7749      *
7750      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7751      * {@link ArkUI_NodeComponentEvent}. \n
7752      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7753      * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the selected item. \n
7754      *
7755      * @since 14
7756      */
7757     NODE_TEXT_PICKER_EVENT_ON_SCROLL_STOP = 15001,
7758 
7759     /**
7760      * @brief Defines the event triggered when a date is selected in the <b>NODE_CALENDAR_PICKER</b>.
7761      *
7762      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7763      * {@link ArkUI_NodeComponentEvent}. \n
7764      * <b>ArkUI_NodeComponent.data[0].u32</b>: year of the selected date. \n
7765      * <b>ArkUI_NodeComponent.data[1].u32</b>: month of the selected date. \n
7766      * <b>ArkUI_NodeComponent.data[2].u32</b>: day of the selected date. \n
7767      */
7768     NODE_CALENDAR_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CALENDAR_PICKER,
7769 
7770     /**
7771      * @brief Defines the event triggered when the <b>ARKUI_NODE_SLIDER</b> component is dragged or clicked.
7772      *
7773      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7774      * {@link ArkUI_NodeComponentEvent}. \n
7775      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7776      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: current slider value. \n
7777      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: state triggered by the event.\n
7778      */
7779     NODE_SLIDER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SLIDER,
7780 
7781     /**
7782      * @brief Defines the event triggered when the <b>ARKUI_NODE_RADIO</b> component is dragged or clicked.
7783      *
7784      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7785      * {@link ArkUI_NodeComponentEvent}. \n
7786      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7787      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: status of the radio button. \n
7788      */
7789     NODE_RADIO_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_RADIO,
7790 
7791     /**
7792      * @brief Defines the callback triggered when the selected status of the <b>ARKUI_NODE_CHECKBOX_GROOUP</b>
7793      * or checkbox changes.
7794      *
7795      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7796      * {@link ArkUI_StringAsyncEvent}. \n
7797      * <b>ArkUI_StringAsyncEvent.pStr</b>
7798      * Name: The names of the selected checkboxes;
7799      * Status:
7800      * 0: All checkboxes are selected.
7801      * 1: Some checkboxes are selected.
7802      * 2: No checkboxes are selected. \n
7803      *
7804      * @since 15
7805      */
7806     NODE_CHECKBOX_GROUP_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX_GROUP,
7807 
7808     /**
7809      * @brief Defines the event triggered when the index of the currently displayed element of this
7810      * <b>ARKUI_NODE_SWIPER</b> instance changes.
7811      *
7812      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7813      * {@link ArkUI_NodeComponentEvent}. \n
7814      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7815      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
7816      */
7817     NODE_SWIPER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SWIPER,
7818 
7819     /**
7820      * @brief Defines the event triggered when the switching animation of this <b>ARKUI_NODE_SWIPER</b> instance starts.
7821      *
7822      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7823      * {@link ArkUI_NodeComponentEvent}. \n
7824      * {@link ArkUI_NodeComponentEvent} contains five parameters:\n
7825      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
7826      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: index of the target element to switch to. \n
7827      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: offset of the currently displayed element relative to the
7828      * start position of the swiper along the main axis. \n
7829      * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: offset of the target element relative to the start position
7830      * of the swiper along the main axis. \n
7831      * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: hands-off velocity. \n
7832      */
7833     NODE_SWIPER_EVENT_ON_ANIMATION_START,
7834 
7835     /**
7836      * @brief Defines the event triggered when the switching animation of this <b>ARKUI_NODE_SWIPER</b> instance ends.
7837      *
7838      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7839      * {@link ArkUI_NodeComponentEvent}. \n
7840      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7841      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
7842      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: offset of the currently displayed element relative to the
7843      * start position of the swiper along the main axis. \n
7844      */
7845     NODE_SWIPER_EVENT_ON_ANIMATION_END,
7846 
7847     /**
7848      * @brief Defines the event triggered on a frame-by-frame basis when the page is turned by a swipe in this
7849      * <b>ARKUI_NODE_SWIPER</b> instance.
7850      *
7851      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7852      * {@link ArkUI_NodeComponentEvent}. \n
7853      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7854      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
7855      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: offset of the currently displayed element relative to the
7856      * start position of the swiper along the main axis. \n
7857      */
7858     NODE_SWIPER_EVENT_ON_GESTURE_SWIPE,
7859 
7860     /**
7861      * @brief Defines the event triggered when content in the swiper component scrolls.
7862      * Instructions:\n
7863      * 1. This API does not work when {@link ArkUI_SwiperDisplayModeType} is set to
7864      * <b>ARKUI_SWIPER_DISPLAY_MODE_AUTO_LINEAR</b>. \n
7865      * 2. This API does not work when <b>prevMargin</b> and <b>nextMargin</b> are set in such a way that the
7866      * swiper frontend and backend display the same page during loop playback. \n
7867      * 3. During page scrolling, the </b>ContentDidScrollCallback</b> callback is invoked for all pages in the viewport
7868      * on a frame-by-frame basis. \n
7869      * For example, when there are two pages whose subscripts are 0 and 1 in the viewport, two callbacks whose indexes
7870      * are 0 and 1 are invoked in each frame. \n
7871      * 4. When the </b>swipeByGroup</b> parameter of the </b>displayCount</b> attribute is set to </b>true</b>,
7872      * the callback is invoked for all pages in a group if any page in the group is within the viewport. \n \n
7873      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7874      * {@link ArkUI_NodeComponentEvent}. \n
7875      * {@link ArkUI_NodeComponentEvent} contains four parameters:\n
7876      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the swiper component, which is the same as the index in the
7877      * <b>onChange</b> event. \n
7878      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: index of a page in the viewport. \n
7879      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: position of the page relative to the start position of the swiper
7880      * main axis (start position of the page corresponding to <b>selectedIndex</b>). \n
7881      * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: length of the page in the main axis direction. \n
7882      */
7883     NODE_SWIPER_EVENT_ON_CONTENT_DID_SCROLL,
7884 
7885     /**
7886      * @brief Defines the event triggered when a new <b>ARKUI_NODE_SWIPER</b> instance becomes selected.
7887      * Animation is not necessarily complete.
7888      *
7889      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7890      * {@link ArkUI_NodeComponentEvent}. \n
7891      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7892      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: the index of the element becomes selected. \n
7893      */
7894     NODE_SWIPER_EVENT_ON_SELECTED,
7895 
7896     /**
7897      * @brief Defines the event triggered when a new <b>ARKUI_NODE_SWIPER</b> instance becomes unselected.
7898      * Animation is not necessarily complete.
7899      *
7900      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7901      * {@link ArkUI_NodeComponentEvent}. \n
7902      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7903      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: the index of the element becomes unselected. \n
7904      */
7905     NODE_SWIPER_EVENT_ON_UNSELECTED = 1001006,
7906 
7907     /**
7908      * @brief Defines the event triggered when content in the swiper component will scroll.
7909      * Instructions: Before page scrolling, the </b>ContentWillScrollCallback</b> callback is invoked. \n \n
7910      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7911      * {@link ArkUI_NodeComponentEvent}. \n
7912      * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
7913      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: the index value of the current child page. \n
7914      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: the index value of the child page that will display. \n
7915      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: the sliding offset of each frame.
7916      * Positive numbers indicating slide backward(e.g. from index=1 to index=0), negative numbers indicating
7917      * slide forward(e.g. from index=0 to index=1). \n
7918      */
7919     NODE_SWIPER_EVENT_ON_CONTENT_WILL_SCROLL = 1001007,
7920 
7921     /**
7922      * @brief Defines the <b>ARKUI_NODE_SWIPER</b> scroll state change event.
7923      * This event is triggered when the scroll state of the <b>Swiper</b> component changes during user dragging,
7924      * during the animation phase after the user lifts their finger, or upon stopping of scrolling.
7925      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7926      * {@link ArkUI_NodeComponentEvent}. \n
7927      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7928      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: current scroll state. The parameter type is
7929      * {@link ArkUI_ScrollState}. \n
7930      *
7931      * @since 20
7932      */
7933     NODE_SWIPER_EVENT_ON_SCROLL_STATE_CHANGED = 1001008,
7934 
7935     /**
7936      * @brief Defines the event triggered when the <b>ARKUI_NODE_SCROLL</b> component scrolls.
7937      *
7938      * Notes for triggering the event:\n
7939      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
7940      * settings, such as keyboard and mouse operations. \n
7941      * 2. Scrolling can be initiated by calling the controller API. \n
7942      * 3. The out-of-bounds bounce effect is supported. \n
7943      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7944      * {@link ArkUI_NodeComponentEvent}. \n
7945      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7946      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: horizontal scrolling offset. \n
7947      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: vertical scrolling offset. \n
7948      */
7949     NODE_SCROLL_EVENT_ON_SCROLL = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SCROLL,
7950     /**
7951      * @brief Defines the event triggered when each frame scrolling starts in the <b>ARKUI_NODE_SCROLL</b> component.
7952      *
7953      * Notes for triggering the event:\n
7954      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
7955      * settings, such as keyboard and mouse operations. \n
7956      * 2. This event is not triggered when the controller API is called. \n
7957      * 3. This event does not support the out-of-bounds bounce effect. \n
7958      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7959      * {@link ArkUI_NodeComponentEvent}. \n
7960      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7961      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: amount to scroll by. \n
7962      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scrolling state. \n
7963      * <b>::ArkUI_NodeComponentEvent</b> contains one return value:\n
7964      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: The event handler can work out the amount by which the component
7965      * needs to scroll based on the real-world situation and return the result in this parameter. \n
7966      */
7967     NODE_SCROLL_EVENT_ON_SCROLL_FRAME_BEGIN,
7968     /**
7969      * @brief Defines the event triggered when the container is about to scroll.
7970      *
7971      * Notes for triggering the event:\n
7972      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
7973      * settings, such as keyboard and mouse operations. \n
7974      * 2. Scrolling can be initiated by calling the controller API. \n
7975      * 3. The out-of-bounds bounce effect is supported. \n
7976      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7977      * {@link ArkUI_NodeComponentEvent}. \n
7978      * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
7979      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: scroll offset of each frame, in vp. The offset is positive when
7980      * the content is scrolled left and negative when the content is scrolled right. \n
7981      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: scroll offset of each frame, in vp. The offset is positive when
7982      * the content is scrolled up and negative when the content is scrolled down. \n
7983      * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: current scroll state.
7984      * The parameter type is {@link ArkUI_ScrollState}. \n
7985      */
7986     NODE_SCROLL_EVENT_ON_WILL_SCROLL,
7987     /**
7988      * @brief Defines the event triggered when the container scrolls.
7989      *
7990      * Notes for triggering the event:\n
7991      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
7992      * settings, such as keyboard and mouse operations. \n
7993      * 2. Scrolling can be initiated by calling the controller API. \n
7994      * 3. The out-of-bounds bounce effect is supported. \n
7995      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7996      * {@link ArkUI_NodeComponentEvent}. \n
7997      * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
7998      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: scroll offset of each frame, in vp. The offset is positive when the
7999      * content is scrolled left and negative when the content is scrolled right. \n
8000      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: scroll offset of each frame, in vp. The offset is positive when the
8001      * content is scrolled up and negative when the content is scrolled down. \n
8002      * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: current scroll state. The parameter type is
8003      * {@link ArkUI_ScrollState}. \n
8004      */
8005     NODE_SCROLL_EVENT_ON_DID_SCROLL,
8006     /**
8007      * @brief Defines the event triggered when the container starts scrolling.
8008      *
8009      * Notes for triggering the event:\n
8010      * 1. This event is triggered when scrolling is started, with support for other input settings, such as keyboard
8011      * and mouse operations. \n
8012      * 2. This event is triggered when the controller API is called, accompanied by a transition animation. \n
8013      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
8014      * {@link ArkUI_NodeComponentEvent}. \n
8015      * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
8016      */
8017     NODE_SCROLL_EVENT_ON_SCROLL_START,
8018     /**
8019      * @brief Defines the event triggered when scrolling of the <b>ARKUI_NODE_SCROLL</b> component stops.
8020      *
8021      * Notes for triggering the event:\n
8022      * 1. This event is triggered when scrolling is stopped by the <b>ARKUI_NODE_SCROLL</b> component or other input
8023      * settings, such as keyboard and mouse operations. \n
8024      * 2. This event is triggered when the controller API is called, accompanied by a transition animation. \n
8025      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
8026      * {@link ArkUI_NodeComponentEvent}. \n
8027      * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
8028      */
8029     NODE_SCROLL_EVENT_ON_SCROLL_STOP,
8030     /**
8031      * @brief Defines the event triggered when scrolling of the <b>ARKUI_NODE_SCROLL</b> component reaches
8032      * one of the edges.
8033      *
8034      * Notes for triggering the event:\n
8035      * 1. This event is triggered when scrolling reaches the edge after being started by the <b>ARKUI_NODE_SCROLL</b>
8036      * component or other input settings, such as keyboard and mouse operations. \n
8037      * 2. Scrolling can be initiated by calling the controller API. \n
8038      * 3. The out-of-bounds bounce effect is supported. \n
8039      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
8040      * {@link ArkUI_NodeComponentEvent}. \n
8041      * {@link ArkUI_NodeComponentEvent} contains one parameter. \n
8042      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: edge (top, bottom, left, or right) that the scrolling reaches. \n
8043      */
8044     NODE_SCROLL_EVENT_ON_SCROLL_EDGE,
8045     /**
8046      * @brief Define that a callback is triggered
8047      * when the scrolling container component reaches the start position.
8048      * Condition for triggering the event:\n
8049      * Triggered when the component reaches the start position. \n
8050      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is
8051      * {@Link ArkUI_NodeComponentEvent}. \n
8052      * {@Link ArkUI_NodeComponentEvent} contains no parameters. \n
8053      */
8054     NODE_SCROLL_EVENT_ON_REACH_START,
8055     /**
8056      * @brief Define that a callback is triggered when the scrolling container component ends. \n
8057      * Condition for triggering the event:\n
8058      * Triggered when the component reaches the end. \n
8059      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
8060      * {@Link ArkUI_NodeComponentEvent}. \n
8061      * {@Link ArkUI_NodeComponentEvent} contains no parameters. \n
8062      */
8063     NODE_SCROLL_EVENT_ON_REACH_END,
8064     /**
8065      * @brief Defines the callback for when the user is about to release the drag on the scrollable container component.
8066      *
8067      * Notes for triggering the event:\n
8068      * This event is triggered when the user is about to release the drag on the scrollable container component. \n
8069      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object
8070      * is {@link ArkUI_NodeComponentEvent}. \n
8071      * {@link ArkUI_NodeComponentEvent} contains two parameters: \n
8072      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: speed at which the user releases the drag, in vp. \n
8073      *
8074      * @since 20
8075      */
8076     NODE_SCROLL_EVENT_ON_WILL_STOP_DRAGGING,
8077     /**
8078      * @brief Defines the callback for the <b>Scroll</b> component's zoom event,
8079      * triggered at the end of each frame during zooming. \n
8080      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object
8081      * is {@link ArkUI_NodeComponentEvent}. \n
8082      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
8083      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: current zoom scale. \n
8084      *
8085      * @since 20
8086      */
8087     NODE_SCROLL_EVENT_ON_DID_ZOOM,
8088     /**
8089      * @brief Defines the callback for the <b>Scroll</b> component's zoom start event,
8090      * triggered when zooming begins. \n
8091      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object
8092      * is {@link ArkUI_NodeComponentEvent}. \n
8093      * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
8094      *
8095      * @since 20
8096      */
8097     NODE_SCROLL_EVENT_ON_ZOOM_START,
8098     /**
8099      * @brief Defines the callback for the <b>Scroll</b> component's zoom end event,
8100      * triggered when zooming ends. \n
8101      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object
8102      * is {@link ArkUI_NodeComponentEvent}. \n
8103      * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
8104      *
8105      * @since 20
8106      */
8107     NODE_SCROLL_EVENT_ON_ZOOM_STOP,
8108 
8109     /**
8110      * @brief Defines the event triggered when a child component enters or leaves the list display area.
8111      *
8112      * Notes for triggering the event:\n
8113      * This event is triggered once when the list is initialized and when the index of the first child component or the
8114      * next child component in the list display area changes. \n
8115      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
8116      * {@link ArkUI_NodeComponentEvent}. \n
8117      * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
8118      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the first child component in the list display area. \n
8119      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: index of the last child component in the list display area. \n
8120      * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the center child component in the list display area. \n
8121      */
8122     NODE_LIST_ON_SCROLL_INDEX = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST,
8123     /**
8124      * @brief Defines the event triggered when the list is about to scroll.
8125      *
8126      * Notes for triggering the event:\n
8127      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
8128      * settings, such as keyboard and mouse operations. \n
8129      * 2. Scrolling can be initiated by calling the controller API. \n
8130      * 3. The out-of-bounds bounce effect is supported. \n
8131      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
8132      * {@link ArkUI_NodeComponentEvent}. \n
8133      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
8134      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: scroll offset of each frame. The offset is positive when the list
8135      * is scrolled up and negative when the list is scrolled down. \n
8136      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scroll state. \n
8137      */
8138     NODE_LIST_ON_WILL_SCROLL,
8139     /**
8140      * @brief Defines the event triggered when the list scrolls.
8141      *
8142      * Notes for triggering the event:\n
8143      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
8144      * settings, such as keyboard and mouse operations. \n
8145      * 2. Scrolling can be initiated by calling the controller API. \n
8146      * 3. The out-of-bounds bounce effect is supported. \n
8147      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
8148      * {@link ArkUI_NodeComponentEvent}. \n
8149      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
8150      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: scroll offset of each frame. The offset is positive when the list
8151      * is scrolled up and negative when the list is scrolled down. \n
8152      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scroll state. \n
8153      */
8154     NODE_LIST_ON_DID_SCROLL,
8155 
8156      /**
8157      * @brief Defines the event triggered when the currently displayed content of the <b>ARKUI_NODE_LIST</b> changes.
8158      *
8159      * Notes for triggering the event:\n
8160      * This event is triggered once when the list is initialized and when the index of the first child component or the
8161      * next child component in the list display area changes.
8162      * During index calculation, the list item, header of the list item group, and footer of the list item group each
8163      * are counted as a child component. \n
8164      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
8165      * {@link ArkUI_NodeComponentEvent}. \n
8166      * {@link ArkUI_NodeComponentEvent} contains three parameters: \n
8167      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the first child component in the list display area. \n
8168      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: area in the list item group where the list display area starts.
8169      * The type is {@link ArkUI_ListItemGroupArea}. \n
8170      * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the list item at the start of the list display area
8171      * in the list item group.
8172      * If the start of the list display area is not on a list item, the value is <b>-1</b>. \n
8173      * <b>ArkUI_NodeComponentEvent.data[4].i32</b>: index of the last child component in the list display area. \n
8174      * <b>ArkUI_NodeComponentEvent.data[5].i32</b>: area in the list item group where the list display area ends.
8175      * The type is {@link ArkUI_ListItemGroupArea}. \n
8176      * <b>ArkUI_NodeComponentEvent.data[6].i32</b>: index of the list item at the end of the list display area in the
8177      * list item group.
8178      * If the end of the list display area is not on a list item, the value is <b>-1</b>. \n
8179      *
8180      * @since 15
8181      */
8182     NODE_LIST_ON_SCROLL_VISIBLE_CONTENT_CHANGE,
8183 
8184     /**
8185      * @brief Defines the event triggered when the refresh state of the <b>ARKUI_NODE_REFRESH</b> object changes.
8186      *
8187      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
8188      * {@link ArkUI_NodeComponentEvent}. \n
8189      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
8190      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: refresh state. \n
8191      */
8192     NODE_REFRESH_STATE_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_REFRESH,
8193     /**
8194      * @brief Defines the event triggered when the <b>ARKUI_NODE_REFRESH</b> object enters the refresh state.
8195      *
8196      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
8197      * {@link ArkUI_NodeComponentEvent}. \n
8198      * {@link ArkUI_NodeComponentEvent} does not contain parameters:\n
8199      */
8200     NODE_REFRESH_ON_REFRESH,
8201     /**
8202      * @brief Defines the event triggered when the pull-down distance of <b>ARKUI_NODE_REFRESH</b> changes.
8203      *
8204      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
8205      * {@link ArkUI_NodeComponentEvent}. \n
8206      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
8207      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: pull-down distance. \n
8208      */
8209     NODE_REFRESH_ON_OFFSET_CHANGE = 1009002,
8210 
8211     /**
8212      * @brief Defines the event triggered when the <b>ARKUI_NODE_SCROLL</b> component is about to scroll.
8213      *
8214      * Notes for triggering the event:\n
8215      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other
8216      * input settings, such as keyboard and mouse operations. \n
8217      * 2. Scrolling can be initiated by calling the controller API. \n
8218      * 3. The out-of-bounds bounce effect is supported. \n
8219      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
8220      * {@link ArkUI_NodeComponentEvent}. \n
8221      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
8222      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: scroll offset of each frame. The offset is positive when the
8223      * component is scrolled up and negative when the component is scrolled down. \n
8224      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scroll state. \n
8225      */
8226     NODE_ON_WILL_SCROLL = MAX_NODE_SCOPE_NUM * ARKUI_NODE_WATER_FLOW,
8227     /**
8228      * @brief Defines the event triggered when the water flow container scrolls.
8229      *
8230      * Notes for triggering the event:\n
8231      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
8232      * settings, such as keyboard and mouse operations. \n
8233      * 2. Scrolling can be initiated by calling the controller API. \n
8234      * 3. The out-of-bounds bounce effect is supported. \n
8235      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
8236      * {@link ArkUI_NodeComponentEvent}. \n
8237      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
8238      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: scroll offset of each frame. The offset is positive when the
8239      * content is scrolled up and negative when the content is scrolled down. \n
8240      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scroll state. \n
8241      */
8242     NODE_WATER_FLOW_ON_DID_SCROLL,
8243     /**
8244      * @brief Defines the enumerated values of the event triggered,
8245      * when the subcomponent of the start position or end position displayed in the current waterfall changes.
8246      * Condition for triggering the event:\n
8247      * This event is triggered when the index value of the first or last subcomponent \n
8248      * in the waterfall display area changes. \n
8249      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
8250      * {@Link ArkUI_NodeComponentEvent}. \n
8251      * {@Link ArkUI_NodeComponentEvent} contains three parameters:\n
8252      * ArkUI_NodeComponentEvent.data[0].i32: The index value of \n
8253      * the start position of the currently displayed WaterFlow. \n
8254      * ArkUI_NodeComponentEvent.data[1].i32: The index value of \n
8255      * the end position of the currently displayed waterfall. \n
8256      */
8257     NODE_WATER_FLOW_ON_SCROLL_INDEX,
8258 
8259     /**
8260      * @brief 定义帧动画开始的状态回调。
8261      *
8262      * 触发该事件的条件:\n
8263      * 1、帧动画开始播放时。\n
8264      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。\n
8265      * {@link ArkUI_NodeComponentEvent}中不包含参数。\n
8266      *
8267     */
8268     NODE_IMAGE_ANIMATOR_EVENT_ON_START = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE_ANIMATOR,
8269     /**
8270      * @brief 定义帧动画播放暂停时的状态回调。
8271      *
8272      * 触发该事件的条件:\n
8273      * 1、帧动画暂停播放时。\n
8274      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。\n
8275      * {@link ArkUI_NodeComponentEvent}中不包含参数。\n
8276      *
8277     */
8278     NODE_IMAGE_ANIMATOR_EVENT_ON_PAUSE = 19001,
8279     /**
8280      * @brief 定义帧动画c重复播放时的状态回调。
8281      *
8282      * 触发该事件的条件:\n
8283      * 1、帧动画重复播放时。\n
8284      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。\n
8285      * {@link ArkUI_NodeComponentEvent}中不包含参数。\n
8286      *
8287     */
8288     NODE_IMAGE_ANIMATOR_EVENT_ON_REPEAT = 19002,
8289     /**
8290      * @brief 定义帧动画返回最初状态时的状态回调。
8291      *
8292      * 触发该事件的条件:\n
8293      * 1、帧动画返回最初状态时。\n
8294      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。\n
8295      * {@link ArkUI_NodeComponentEvent}中不包含参数。\n
8296      *
8297     */
8298     NODE_IMAGE_ANIMATOR_EVENT_ON_CANCEL = 19003,
8299     /**
8300      * @brief 定义帧动画播放完成时或者停止播放时的状态回调。
8301      *
8302      * 触发该事件的条件:\n
8303      * 1、帧动画播放完成时或停止播放时。\n
8304      * 事件回调发生时,事件参数{@link ArkUI_NodeEvent}对象中的联合体类型为{@link ArkUI_NodeComponentEvent}。\n
8305      * {@link ArkUI_NodeComponentEvent}中不包含参数。\n
8306      *
8307     */
8308     NODE_IMAGE_ANIMATOR_EVENT_ON_FINISH = 19004,
8309 } ArkUI_NodeEventType;
8310 
8311 /**
8312  * @brief Defines the common structure type of a component event.
8313  *
8314  * @since 12
8315  */
8316 typedef struct ArkUI_NodeEvent ArkUI_NodeEvent;
8317 
8318 /**
8319  * @brief Obtains the type of a component event.
8320  *
8321  * @param event Indicates the pointer to the component event.
8322  * @return Returns the type of the component event.
8323  * @since 12
8324  */
8325 ArkUI_NodeEventType OH_ArkUI_NodeEvent_GetEventType(ArkUI_NodeEvent* event);
8326 
8327 /**
8328  * @brief Obtains the custom ID of a component event.
8329  *
8330  * The event ID is passed in as a parameter when the {@link registerNodeEvent} function is called and can be applied
8331  * to the dispatch logic of the same event entry function {@link registerNodeEventReceiver}.
8332  *
8333  * @param event Indicates the pointer to the component event.
8334  * @return Returns the custom ID of the component event.
8335  * @since 12
8336  */
8337 int32_t OH_ArkUI_NodeEvent_GetTargetId(ArkUI_NodeEvent* event);
8338 
8339 /**
8340  * @brief Obtains the component object that triggers a component event.
8341  *
8342  * @param event Indicates the pointer to the component event.
8343  * @return Returns the component object that triggers the component event.
8344  * @since 12
8345  */
8346 ArkUI_NodeHandle OH_ArkUI_NodeEvent_GetNodeHandle(ArkUI_NodeEvent* event);
8347 
8348 /**
8349  * @brief Obtains input event (for example, touch event) data for a component event.
8350  *
8351  * @param event Indicates the pointer to the component event.
8352  * @return Returns the pointer to the input event data.
8353  * @since 12
8354  */
8355 ArkUI_UIInputEvent* OH_ArkUI_NodeEvent_GetInputEvent(ArkUI_NodeEvent* event);
8356 
8357 /**
8358  * @brief Obtains the numerical data in a component event.
8359  *
8360  * @param event Indicates the pointer to the component event.
8361  * @return Returns the pointer to the numerical data.
8362  * @since 12
8363  */
8364 ArkUI_NodeComponentEvent* OH_ArkUI_NodeEvent_GetNodeComponentEvent(ArkUI_NodeEvent* event);
8365 
8366 /**
8367  * @brief Obtains the string data in a component event.
8368  *
8369  * @param event Indicates the pointer to the component event.
8370  * @return Returns the pointer to the string data.
8371  * @since 12
8372  */
8373 ArkUI_StringAsyncEvent* OH_ArkUI_NodeEvent_GetStringAsyncEvent(ArkUI_NodeEvent* event);
8374 
8375 /**
8376  * @brief 获取ArkUI_TextChangeEvent的数据。
8377  *
8378  * @param event ArkUI_NodeEvent的指针,不应为空。
8379  * @return 返回ArkUI_TextChangeEvent对象的指针。
8380  * @since 16
8381  */
8382 ArkUI_TextChangeEvent* OH_ArkUI_NodeEvent_GetTextChangeEvent(ArkUI_NodeEvent* event);
8383 
8384 /**
8385  * @brief Obtains the custom data in a component event.
8386  *
8387  * This parameter is passed in {@link registerNodeEvent} and can be applied to the service logic when the event
8388  * is triggered.
8389  *
8390  * @param event Indicates the pointer to the component event.
8391  * @return Returns the pointer to the custom data.
8392  * @since 12
8393  */
8394 void* OH_ArkUI_NodeEvent_GetUserData(ArkUI_NodeEvent* event);
8395 
8396 /**
8397  * @brief 获取组件回调事件的数字类型参数。
8398  *
8399  * @param event 组件事件指针。
8400  * @param index 返回值索引。
8401  * @param value 具体返回值。
8402  * @return 错误码。
8403  *         {@link ARKUI_ERROR_CODE_NO_ERROR} 成功。
8404  *         {@link ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INVALID} 组件事件中参数长度超限。
8405  * @since 12
8406  */
8407 int32_t OH_ArkUI_NodeEvent_GetNumberValue(ArkUI_NodeEvent* event, int32_t index, ArkUI_NumberValue* value);
8408 
8409     /**
8410  * @brief 获取组件回调事件的字符串类型参数,字符串数据仅在事件回调过程中有效,需要在事件回调外使用建议进行额外拷贝处理。
8411  *
8412  * @param event 组件事件指针。
8413  * @param index 返回值索引。
8414  * @param string 字符串数组的指针。
8415  * @param stringSize 字符串数组的长度。
8416  * @return 错误码。
8417  *         {@link ARKUI_ERROR_CODE_NO_ERROR} 成功。
8418  *         {@link ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INDEX_OUT_OF_RANGE} 组件事件中参数长度超限。
8419  *         {@link ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INVALID} 组件事件中不存在该数据。
8420  * @since 12
8421  */
8422 int32_t OH_ArkUI_NodeEvent_GetStringValue(ArkUI_NodeEvent* event, int32_t index, char** string, int32_t* stringSize);
8423 
8424 /**
8425     * @brief 设置组件回调事件的返回值。
8426     *
8427     * @param event 组件事件指针。
8428     * @param value 事件数字类型数组。
8429     * @param size 数组长度。
8430     * @return 错误码。
8431     *         {@link ARKUI_ERROR_CODE_NO_ERROR} 成功。
8432     * @since 12
8433     */
8434 int32_t OH_ArkUI_NodeEvent_SetReturnNumberValue(ArkUI_NodeEvent* event, ArkUI_NumberValue* value, int32_t size);
8435 
8436 /**
8437     * @brief Defines the dirty area flag passed in the <b>::markDirty</b> API.
8438     *
8439     * @since 12
8440     */
8441 typedef enum {
8442     /**
8443      * @brief Remeasure.
8444      *
8445      * When this type of flag is specified, re-layout is triggered by default.
8446      */
8447     NODE_NEED_MEASURE = 1,
8448 
8449     /** Re-layout. */
8450     NODE_NEED_LAYOUT,
8451     /** Re-rendering. */
8452     NODE_NEED_RENDER,
8453 } ArkUI_NodeDirtyFlag;
8454 
8455 /**
8456  * @brief Defines the custom component event type.
8457  *
8458  * @since 12
8459  */
8460 typedef enum {
8461     /** Measure type. */
8462     ARKUI_NODE_CUSTOM_EVENT_ON_MEASURE = 1 << 0,
8463     /** Layout type. */
8464     ARKUI_NODE_CUSTOM_EVENT_ON_LAYOUT = 1 << 1,
8465     /** Draw type. */
8466     ARKUI_NODE_CUSTOM_EVENT_ON_DRAW = 1 << 2,
8467     /** Foreground type. */
8468     ARKUI_NODE_CUSTOM_EVENT_ON_FOREGROUND_DRAW = 1 << 3,
8469     /** Overlay type. */
8470     ARKUI_NODE_CUSTOM_EVENT_ON_OVERLAY_DRAW = 1 << 4,
8471     /** Draw front type. */
8472     ARKUI_NODE_CUSTOM_EVENT_ON_DRAW_FRONT = 1 << 5,
8473     /** Draw behind type. */
8474     ARKUI_NODE_CUSTOM_EVENT_ON_DRAW_BEHIND = 1 << 6,
8475 } ArkUI_NodeCustomEventType;
8476 
8477 /**
8478  * @brief Defines the general structure of a custom component event.
8479  *
8480  * @since 12
8481  */
8482 typedef struct ArkUI_NodeCustomEvent ArkUI_NodeCustomEvent;
8483 
8484 /**
8485  * @brief Defines the component adapter, which is used for lazy loading of elements of scrollable components.
8486  *
8487  * @since 12
8488  */
8489 typedef struct ArkUI_NodeAdapter* ArkUI_NodeAdapterHandle;
8490 
8491 /**
8492  * @brief Defines the component adapter event.
8493  *
8494  * @since 12
8495  */
8496 typedef struct ArkUI_NodeAdapterEvent ArkUI_NodeAdapterEvent;
8497 
8498 /**
8499  * @brief Enumerates component adapter events.
8500  *
8501  * @since 12
8502  */
8503 typedef enum {
8504     /** This event occurs when the component is attached to the adapter. */
8505     NODE_ADAPTER_EVENT_WILL_ATTACH_TO_NODE = 1,
8506     /** This event occurs when the component is detached from the adapter. */
8507     NODE_ADAPTER_EVENT_WILL_DETACH_FROM_NODE = 2,
8508     /** This event occurs when the adapter obtains the unique ID of the new element to add. */
8509     NODE_ADAPTER_EVENT_ON_GET_NODE_ID = 3,
8510     /** This event occurs when the adapter obtains the content of the new element to add. */
8511     NODE_ADAPTER_EVENT_ON_ADD_NODE_TO_ADAPTER = 4,
8512     /** This event occurs when the adapter removes an element. */
8513     NODE_ADAPTER_EVENT_ON_REMOVE_NODE_FROM_ADAPTER = 5,
8514 } ArkUI_NodeAdapterEventType;
8515 
8516 /**
8517 * @brief Creates a component adapter.
8518 *
8519 * @since 12
8520 */
8521 ArkUI_NodeAdapterHandle OH_ArkUI_NodeAdapter_Create(void);
8522 
8523 /**
8524 * @brief Destroys a component adapter.
8525 *
8526 * @param handle Indicates the target component adapter.
8527 * @since 12
8528 */
8529 void OH_ArkUI_NodeAdapter_Dispose(ArkUI_NodeAdapterHandle handle);
8530 
8531 /**
8532 * @brief Sets the total number of elements in the specified adapter.
8533 *
8534 * @param handle Indicates the target component adapter.
8535 * @param size Indicates the number of elements.
8536 * @return Returns the error code.
8537 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8538 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8539 * @since 12
8540 */
8541 int32_t OH_ArkUI_NodeAdapter_SetTotalNodeCount(ArkUI_NodeAdapterHandle handle, uint32_t size);
8542 
8543 /**
8544 * @brief Obtains the total number of elements in the specified adapter.
8545 *
8546 * @param handle Indicates the target component adapter.
8547 * @return Returns the total number of elements in the adapter.
8548 * @since 12
8549 */
8550 uint32_t OH_ArkUI_NodeAdapter_GetTotalNodeCount(ArkUI_NodeAdapterHandle handle);
8551 
8552 /**
8553 * @brief Registers an event callback for the adapter.
8554 *
8555 * @param handle Indicates the target component adapter.
8556 * @param userData Indicates custom data.
8557 * @param receiver Indicates the event receiver callback.
8558 * @return Returns the error code.
8559 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8560 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8561 * @since 12
8562 */
8563 int32_t OH_ArkUI_NodeAdapter_RegisterEventReceiver(
8564     ArkUI_NodeAdapterHandle handle, void* userData, void (*receiver)(ArkUI_NodeAdapterEvent* event));
8565 
8566 /**
8567 * @brief Deregisters an event callback for the adapter.
8568 *
8569 * @param handle Indicates the target component adapter.
8570 * @since 12
8571 */
8572 void OH_ArkUI_NodeAdapter_UnregisterEventReceiver(ArkUI_NodeAdapterHandle handle);
8573 
8574 /**
8575 * @brief Instructs the specified adapter to reload all elements.
8576 *
8577 * @param handle Indicates the target component adapter.
8578 * @return Returns the error code.
8579 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8580 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8581 * @since 12
8582 */
8583 int32_t OH_ArkUI_NodeAdapter_ReloadAllItems(ArkUI_NodeAdapterHandle handle);
8584 
8585 /**
8586 * @brief Instructs the specified adapter to reload certain elements.
8587 *
8588 * @param handle Indicates the target component adapter.
8589 * @param startPosition Indicates the start position of the elements to reload.
8590 * @param itemCount Indicates the number of the elements to reload.
8591 * @return Returns the error code.
8592 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8593 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8594 * @since 12
8595 */
8596 int32_t OH_ArkUI_NodeAdapter_ReloadItem(ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);
8597 
8598 /**
8599 * @brief Instructs the specified adapter to remove certain elements.
8600 *
8601 * @param handle Indicates the target component adapter.
8602 * @param startPosition Indicates the start position of the elements to remove.
8603 * @param itemCount Indicates the number of the elements to remove.
8604 * @return Returns the error code.
8605 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8606 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8607 * @since 12
8608 */
8609 int32_t OH_ArkUI_NodeAdapter_RemoveItem(ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);
8610 
8611 /**
8612 * @brief Instructs the specified adapter to insert certain elements.
8613 *
8614 * @param handle Indicates the target component adapter.
8615 * @param startPosition Indicates the start position of the elements to insert.
8616 * @param itemCount Indicates the number of the elements to insert.
8617 * @return Returns the error code.
8618 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8619 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8620 * @since 12
8621 */
8622 int32_t OH_ArkUI_NodeAdapter_InsertItem(ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);
8623 
8624 /**
8625 * @brief Instructs the specified adapter to move certain elements.
8626 *
8627 * @param handle Indicates the target component adapter.
8628 * @param from Indicates the start position of the elements to move.
8629 * @param to Indicates the end position of the elements to move.
8630 * @return Returns the error code.
8631 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8632 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8633 * @since 12
8634 */
8635 int32_t OH_ArkUI_NodeAdapter_MoveItem(ArkUI_NodeAdapterHandle handle, uint32_t from, uint32_t to);
8636 
8637 /**
8638 * @brief Obtains all elements stored in the specified adapter.
8639 *
8640 * This API returns the pointer to the array of the elements. You need to manually release the memory data
8641 * to which the pointer points.
8642 *
8643 * @param handle Indicates the target component adapter.
8644 * @param items Indicates the pointer to the array of the elements in the adapter.
8645 * @param size Indicates the number of elements.
8646 * @return Returns the error code.
8647 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8648 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8649 * @since 12
8650 */
8651 int32_t OH_ArkUI_NodeAdapter_GetAllItems(ArkUI_NodeAdapterHandle handle, ArkUI_NodeHandle** items, uint32_t* size);
8652 
8653 /**
8654 * @brief Obtains the custom data passed in during registration of the specified event.
8655 *
8656 * @param event Indicates the target adapter event.
8657 * @since 12
8658 */
8659 void* OH_ArkUI_NodeAdapterEvent_GetUserData(ArkUI_NodeAdapterEvent* event);
8660 
8661 /**
8662 * @brief Obtains the event type.
8663 *
8664 * @param event Indicates the target adapter event.
8665 * @return Returns the event type.
8666 * @since 12
8667 */
8668 ArkUI_NodeAdapterEventType OH_ArkUI_NodeAdapterEvent_GetType(ArkUI_NodeAdapterEvent* event);
8669 
8670 /**
8671 * @brief Obtains the element to be removed for the event to be destroyed.
8672 *
8673 * @param event Indicates the target adapter event.
8674 * @return Returns the element to be removed.
8675 * @since 12
8676 */
8677 ArkUI_NodeHandle OH_ArkUI_NodeAdapterEvent_GetRemovedNode(ArkUI_NodeAdapterEvent* event);
8678 
8679 /**
8680 * @brief Obtains the index of the element to be operated for the specified adapter event.
8681 *
8682 * @param event Indicates the target adapter event.
8683 * @return Returns the index of the element.
8684 * @since 12
8685 */
8686 uint32_t OH_ArkUI_NodeAdapterEvent_GetItemIndex(ArkUI_NodeAdapterEvent* event);
8687 
8688 /**
8689 * @brief Obtains the scrollable container node that uses the specified adapter.
8690 *
8691 * @param event Indicates the target adapter event.
8692 * @return Returns the error code.
8693 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8694 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8695 * @since 12
8696 */
8697 ArkUI_NodeHandle OH_ArkUI_NodeAdapterEvent_GetHostNode(ArkUI_NodeAdapterEvent* event);
8698 
8699 /**
8700 * @brief Sets the component to be added to the specified adapter.
8701 *
8702 * @param event Indicates the target adapter event.
8703 * @param node Indicates the component to be added.
8704 * @return Returns the error code.
8705 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8706 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8707 * @since 12
8708 */
8709 int32_t OH_ArkUI_NodeAdapterEvent_SetItem(ArkUI_NodeAdapterEvent* event, ArkUI_NodeHandle node);
8710 
8711 /**
8712 * @brief Sets the component ID to be generated.
8713 *
8714 * @param event Indicates the target adapter event.
8715 * @param id Indicates the component ID to set.
8716 * @return Returns the error code.
8717 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8718 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8719 * @since 12
8720 */
8721 int32_t OH_ArkUI_NodeAdapterEvent_SetNodeId(ArkUI_NodeAdapterEvent* event, int32_t id);
8722 
8723 /**
8724  * @brief Declares a collection of native node APIs provided by ArkUI.
8725  *
8726  * The APIs related to the native node must be called in the main thread.
8727  *
8728  * @version 1
8729  * @since 12
8730  */
8731 typedef struct {
8732     /** Struct version. */
8733     int32_t version;
8734 
8735     /**
8736      * @brief Creates a component based on {@link ArkUI_NodeType} and returns the pointer to the created component.
8737      *
8738      * @param type Indicates the type of component to create.
8739      * @return Returns the pointer to the created component. If the component fails to be created, NULL is returned.
8740      */
8741     ArkUI_NodeHandle (*createNode)(ArkUI_NodeType type);
8742 
8743     /**
8744      * @brief Destroys the component to which the specified pointer points.
8745      *
8746      * @param node Indicates the pointer.
8747      */
8748     void (*disposeNode)(ArkUI_NodeHandle node);
8749 
8750     /**
8751      * @brief Adds a component to a parent node.
8752      *
8753      * @param parent Indicates the pointer to the parent node.
8754      * @param child Indicates the pointer to the child node.
8755      * @return Returns the error code.
8756      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8757      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8758      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8759      * on BuilderNode generated nodes:
8760      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8761      */
8762     int32_t (*addChild)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child);
8763 
8764     /**
8765      * @brief Removes a component from its parent node.
8766      *
8767      * @param parent Indicates the pointer to the parent node.
8768      * @param child Indicates the pointer to the child node.
8769      * @return Returns the error code.
8770      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8771      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8772      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8773      * on BuilderNode generated nodes:
8774      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8775      */
8776     int32_t (*removeChild)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child);
8777 
8778     /**
8779      * @brief Inserts a component to a parent node after the specified <b>sibling</b> node.
8780      *
8781      * @param parent Indicates the pointer to the parent node.
8782      * @param child Indicates the pointer to the child node.
8783      * @param sibling Indicates the pointer to the sibling node after which the target node is to be inserted.
8784      * If the value is null, the node is inserted at the start of the parent node.
8785      * @return Returns the error code.
8786      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8787      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8788      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8789      * on BuilderNode generated nodes:
8790      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8791      */
8792     int32_t (*insertChildAfter)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, ArkUI_NodeHandle sibling);
8793 
8794     /**
8795      * @brief Inserts a component to a parent node before the specified <b>sibling</b> node.
8796      *
8797      * @param parent Indicates the pointer to the parent node.
8798      * @param child Indicates the pointer to the child node.
8799      * @param sibling Indicates the pointer to the sibling node before which the target node is to be inserted.
8800      * If the value is null, the node is inserted at the end of the parent node.
8801      * @return Returns the error code.
8802      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8803      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8804      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8805      * on BuilderNode generated nodes:
8806      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8807      */
8808     int32_t (*insertChildBefore)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, ArkUI_NodeHandle sibling);
8809 
8810     /**
8811      * @brief Inserts a component to the specified position in a parent node.
8812      *
8813      * @param parent Indicates the pointer to the parent node.
8814      * @param child Indicates the pointer to the child node.
8815      * @param position Indicates the position to which the target child node is to be inserted. If the value is a
8816      * negative number or invalid, the node is inserted at the end of the parent node.
8817      * @return Returns the error code.
8818      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8819      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8820      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8821      * on BuilderNode generated nodes:
8822      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8823      */
8824     int32_t (*insertChildAt)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, int32_t position);
8825 
8826     /**
8827      * @brief Sets the attribute of a node.
8828      *
8829      * @param node Indicates the node whose attribute needs to be set.
8830      * @param attribute Indicates the type of attribute to set.
8831      * @param item Indicates the attribute value.
8832      * @return Returns the error code.
8833      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8834      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8835      *         Returns {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
8836      *         of the native API was not found.
8837      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8838      *         on BuilderNode generated nodes:
8839      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8840      */
8841     int32_t (*setAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute, const ArkUI_AttributeItem* item);
8842 
8843     /**
8844      * @brief Obtains an attribute.
8845      *
8846      * The pointer returned by this API is an internal buffer pointer of the ArkUI framework. As such, you do not need
8847      * to call <b>delete</b> to release the memory. However, the pointer must be used before this API is called next
8848      * time. Otherwise, the pointer may be overwritten by other values.
8849      *
8850      * @param node Indicates the node whose attribute needs to be obtained.
8851      * @param attribute Indicates the type of attribute to obtain.
8852      * @return Returns the attribute value. If the operation fails, a null pointer is returned.
8853      */
8854     const ArkUI_AttributeItem* (*getAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute);
8855 
8856     /**
8857      * @brief Resets an attribute.
8858      *
8859      * @param node Indicates the node whose attribute needs to be reset.
8860      * @param attribute Indicates the type of attribute to reset.
8861      * @return Returns the error code.
8862      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8863      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8864      *         Returns {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
8865      *         of the native API was not found.
8866      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8867      *         on BuilderNode generated nodes:
8868      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8869      */
8870     int32_t (*resetAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute);
8871 
8872     /**
8873      * @brief Registers an event for the specified node.
8874      *
8875      * @param node Indicates the target node.
8876      * @param eventType Indicates the type of event to register.
8877      * @param targetId Indicates the custom event ID, which is passed in the callback of {@link ArkUI_NodeEvent}
8878      * when the event is triggered.
8879      * @param userData Indicates the custom event parameter, which is passed in the callback of {@link ArkUI_NodeEvent}
8880      * when the event is triggered.
8881      * @return Returns the error code.
8882      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8883      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8884      *         Returns {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
8885      *         of the native API was not found.
8886      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8887      *         on BuilderNode generated nodes:
8888      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8889      */
8890     int32_t (*registerNodeEvent)(
8891         ArkUI_NodeHandle node, ArkUI_NodeEventType eventType, int32_t targetId, void* userData);
8892 
8893     /**
8894      * @brief Unregisters an event for the specified node.
8895      *
8896      * @param node Indicates the target node.
8897      * @param eventType Indicates the type of event to unregister.
8898      */
8899     void (*unregisterNodeEvent)(ArkUI_NodeHandle node, ArkUI_NodeEventType eventType);
8900 
8901     /**
8902      * @brief Registers an event receiver.
8903      *
8904      * The ArkUI framework collects component events generated during the process and calls back the events through
8905      * the registered event receiver. \n
8906      * A new call to this API will overwrite the previously registered event receiver. \n
8907      * Do not directly save the <b>ArkUI_NodeEvent</b> object pointer. The data will be destroyed after the callback
8908      * is complete. \n
8909      * To bind with a component instance, you can use the <b>addNodeEventReceiver</b> function. \n
8910      *
8911      * @param eventReceiver Indicates the event receiver to register.
8912      */
8913     void (*registerNodeEventReceiver)(void (*eventReceiver)(ArkUI_NodeEvent* event));
8914 
8915     /**
8916      * @brief Unregisters the event receiver.
8917      *
8918      */
8919     void (*unregisterNodeEventReceiver)();
8920 
8921     /**
8922      * @brief Forcibly marks the current node that needs to be measured, laid out, or rendered again.
8923      *
8924      * Regarding updates to system attributes, the ArkUI framework automatically marks the dirty area and performs
8925      * measuring, layout, or rendering again. In this case, you do not need to call this API.
8926      *
8927      * @param node Indicates the node for which you want to mark as dirty area.
8928      * @param dirtyFlag Indicates type of dirty area.
8929      */
8930     void (*markDirty)(ArkUI_NodeHandle node, ArkUI_NodeDirtyFlag dirtyFlag);
8931 
8932     /**
8933      * @brief Obtains the number of subnodes.
8934      *
8935      * @param node Indicates the target node.
8936      * @return Returns the error code.
8937      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8938      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8939      */
8940     uint32_t (*getTotalChildCount)(ArkUI_NodeHandle node);
8941 
8942     /**
8943      * @brief Obtains a subnode.
8944      *
8945      * @param node Indicates the target node.
8946      * @param position Indicates the position of the subnode.
8947      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
8948      */
8949     ArkUI_NodeHandle (*getChildAt)(ArkUI_NodeHandle node, int32_t position);
8950 
8951     /**
8952      * @brief Obtains the first subnode.
8953      *
8954      * @param node Indicates the target node.
8955      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
8956      */
8957     ArkUI_NodeHandle (*getFirstChild)(ArkUI_NodeHandle node);
8958 
8959     /**
8960      * @brief Obtains the last subnode.
8961      *
8962      * When the component is being displayed, this API must be called in the main thread.
8963      *
8964      * @param node Indicates the target node.
8965      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
8966      */
8967     ArkUI_NodeHandle (*getLastChild)(ArkUI_NodeHandle node);
8968 
8969     /**
8970      * @brief Obtains the previous sibling node.
8971      *
8972      * @param node Indicates the target node.
8973      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
8974      */
8975     ArkUI_NodeHandle (*getPreviousSibling)(ArkUI_NodeHandle node);
8976 
8977     /**
8978      * @brief Obtains the next sibling node.
8979      *
8980      * @param node Indicates the target node.
8981      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
8982      */
8983     ArkUI_NodeHandle (*getNextSibling)(ArkUI_NodeHandle node);
8984 
8985     /**
8986      * @brief Registers a custom event for a node. When the event is triggered, the value is returned through the entry
8987      * point function registered by <b>registerNodeCustomEventReceiver</b>.
8988      *
8989      * @param node Indicates the target node.
8990      * @param eventType Indicates the type of event to register.
8991      * @param targetId Indicates the custom event ID, which is passed in the callback of {@link ArkUI_NodeCustomEvent}
8992      * when the event is triggered.
8993      * @param userData Indicates the custom event parameter, which is passed in the callback of
8994      * {@link ArkUI_NodeCustomEvent} when the event is triggered.
8995      * @return Returns the error code.
8996      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8997      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8998      *         Returns {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
8999      *         of the native API was not found.
9000      */
9001     int32_t (*registerNodeCustomEvent)(
9002         ArkUI_NodeHandle node, ArkUI_NodeCustomEventType eventType, int32_t targetId, void* userData);
9003 
9004     /**
9005      * @brief Unregisters a custom event for a node.
9006      *
9007      * @param node Indicates the target node.
9008      * @param eventType Indicates the type of event to unregister.
9009      */
9010     void (*unregisterNodeCustomEvent)(ArkUI_NodeHandle node, ArkUI_NodeCustomEventType eventType);
9011 
9012     /**
9013      * @brief Registers a unified entry point function for custom node event callbacks.
9014      *
9015      * The ArkUI framework collects custom component events generated during the process and calls back the events
9016      * through the registered <b>registerNodeCustomEventReceiver</b>. \n
9017      * A new call to this API will overwrite the previously registered event receiver.
9018      * Do not directly save the <b>ArkUI_NodeCustomEvent</b> object pointer.
9019      * The data will be destroyed after the callback is complete. \n
9020      * To bind with a component instance, you can use the <b>addNodeCustomEventReceiver</b> function. \n
9021      *
9022      * @param eventReceiver Indicates the event receiver to register.
9023      */
9024     void (*registerNodeCustomEventReceiver)(void (*eventReceiver)(ArkUI_NodeCustomEvent* event));
9025 
9026     /**
9027      * @brief Unregisters the unified entry point function for custom node event callbacks.
9028      *
9029      */
9030     void (*unregisterNodeCustomEventReceiver)();
9031 
9032     /**
9033      * @brief Sets the width and height for a component after the measurement.
9034      *
9035      * @param node Indicates the target node.
9036      * @param width Indicates the width.
9037      * @param height Indicates the height.
9038      * @return Returns the error code.
9039      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9040      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9041      */
9042     int32_t (*setMeasuredSize)(ArkUI_NodeHandle node, int32_t width, int32_t height);
9043 
9044     /**
9045      * @brief Sets the position for a component.
9046      *
9047      * @param node Indicates the target node.
9048      * @param positionX Indicates the X coordinate.
9049      * @param positionY Indicates the Y coordinate.
9050      * @return Returns the error code.
9051      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9052      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9053      */
9054     int32_t (*setLayoutPosition)(ArkUI_NodeHandle node, int32_t positionX, int32_t positionY);
9055 
9056     /**
9057      * @brief Obtains the width and height of a component after measurement.
9058      *
9059      * @param node Indicates the target node.
9060      * @return Returns the width and height of the component.
9061      */
9062     ArkUI_IntSize (*getMeasuredSize)(ArkUI_NodeHandle node);
9063 
9064     /**
9065      * @brief Obtains the position of a component after the layout is complete.
9066      *
9067      * @param node Indicates the target node.
9068      * @return Returns the position of the component.
9069      */
9070     ArkUI_IntOffset (*getLayoutPosition)(ArkUI_NodeHandle node);
9071 
9072     /**
9073      * @brief Measures a node. You can use the <b>getMeasuredSize</b> API to obtain the size after the measurement.
9074      *
9075      * @param node Indicates the target node.
9076      * @param Constraint Indicates the size constraint.
9077      * @return Returns the error code.
9078      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9079      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9080      */
9081     int32_t (*measureNode)(ArkUI_NodeHandle node, ArkUI_LayoutConstraint* Constraint);
9082 
9083     /**
9084      * @brief Lays outs a component and passes the expected position of the component relative to its parent component.
9085      *
9086      * @param node Indicates the target node.
9087      * @param positionX Indicates the X coordinate.
9088      * @param positionY Indicates the Y coordinate.
9089      * @return Returns the error code.
9090      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9091      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9092      */
9093     int32_t (*layoutNode)(ArkUI_NodeHandle node, int32_t positionX, int32_t positionY);
9094 
9095     /**
9096      * @brief Adds a component event callback function to a component to receive component events generated
9097      * by the component.
9098      *
9099      * Unlike the global registration function <b>registerNodeEventReceiver</b>, this API allows multiple event
9100      * receivers to be added to the same component. \n
9101      * The callback added by this API is triggered before the global callback registered by
9102      * <b>registerNodeEventReceiver</b>. \n
9103      * Do not directly save the <b>ArkUI_NodeEvent</b> object pointer.
9104      * The data will be destroyed after the callback is complete. \n
9105      *
9106      * @param node Indicates the component for which you want to add the event callback function.
9107      * @param eventReceiver Indicates the component event callback function to add.
9108      * @return Returns the error code.
9109      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9110      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9111      */
9112     int32_t (*addNodeEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeEvent* event));
9113 
9114     /**
9115      * @brief Removes the registered component event callback function from a component.
9116      *
9117      * @param node Indicates the component from which you want to remove the event callback function.
9118      * @param eventReceiver Indicates the component event callback function to remove.
9119      * @return Returns the error code.
9120      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9121      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9122      */
9123     int32_t (*removeNodeEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeEvent* event));
9124 
9125     /**
9126      * @brief Adds a custom event callback function to a component to receive custom events
9127      * (such as layout and drawing events) generated by the component.
9128      *
9129      * Unlike the global registration function <b>registerNodeCustomEventReceiver</b>, this API allows
9130      * multiple event receivers to be added to the same component. \n
9131      * The callback added by this API is triggered before the global callback registered by
9132      * <b>registerNodeCustomEventReceiver</b>. \n
9133      * Do not directly save the <b>ArkUI_NodeCustomEvent</b> object pointer.
9134      * The data will be destroyed after the callback is complete. \n
9135      *
9136      * @param node Indicates the component for which you want to add the custom event callback function.
9137      * @param eventReceiver Indicates the custom event callback function to add.
9138      * @return Returns the error code.
9139      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9140      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9141      */
9142     int32_t (*addNodeCustomEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeCustomEvent* event));
9143 
9144     /**
9145      * @brief Removes a registered custom event callback function from a component.
9146      *
9147      * @param node Indicates the component from which you want to remove the custom event callback function.
9148      * @param eventReceiver Indicates the custom event callback function to remove.
9149      * @return Returns the error code.
9150      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9151      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9152      */
9153     int32_t (*removeNodeCustomEventReceiver)(
9154         ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeCustomEvent* event));
9155 
9156     /**
9157      * @brief Saves custom data on the specified component.
9158      *
9159      * @param node Indicates the component on which the custom data will be saved.
9160      * @param userData Indicates the custom data to be saved.
9161      * @return Returns the error code.
9162      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9163      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9164      */
9165     int32_t (*setUserData)(ArkUI_NodeHandle node, void* userData);
9166 
9167     /**
9168      * @brief Obtains the custom data saved on the specified component.
9169      *
9170      * @param node Indicates the target component.
9171      * @return Returns the custom data.
9172      */
9173     void* (*getUserData)(ArkUI_NodeHandle node);
9174 
9175     /**
9176      * @brief Sets the unit for a component.
9177      *
9178      * @param node Indicates the component for which you want to set the unit.
9179      * @param unit Indicates the unit, which is an enumerated value of {@link ArkUI_LengthMetricUnit}.
9180      * @return Returns the error code.
9181      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9182      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9183      */
9184     int32_t (*setLengthMetricUnit)(ArkUI_NodeHandle node, ArkUI_LengthMetricUnit unit);
9185 
9186     /**
9187      * @brief Obtains the parent node.
9188      *
9189      * @param node Indicates the target node.
9190      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
9191      */
9192     ArkUI_NodeHandle (*getParent)(ArkUI_NodeHandle node);
9193 
9194     /**
9195     * @brief Remove all child nodes from the parent component.
9196     *
9197     * @param parent target node object.
9198     * @return Returns the error code.
9199     *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9200     *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9201     * @since 12
9202     */
9203     int32_t (*removeAllChildren)(ArkUI_NodeHandle parent);
9204 } ArkUI_NativeNodeAPI_1;
9205 
9206 /**
9207 * @brief Obtains the size constraint for measurement through a custom component event.
9208 *
9209 * @param event Indicates the pointer to the custom component event.
9210 * @return Returns the pointer to the size constraint.
9211 * @since 12
9212 */
9213 ArkUI_LayoutConstraint* OH_ArkUI_NodeCustomEvent_GetLayoutConstraintInMeasure(ArkUI_NodeCustomEvent* event);
9214 
9215 /**
9216 * @brief Obtains the expected position of a component relative to its parent component in the layout phase through a
9217 * custom component event.
9218 *
9219 * @param event Indicates the pointer to the custom component event.
9220 * @return Returns the expected position relative to the parent component.
9221 * @since 12
9222 */
9223 ArkUI_IntOffset OH_ArkUI_NodeCustomEvent_GetPositionInLayout(ArkUI_NodeCustomEvent* event);
9224 
9225 /**
9226 * @brief Obtains the drawing context through a custom component event.
9227 *
9228 * @param event Indicates the pointer to the custom component event.
9229 * @return Returns the drawing context.
9230 * @since 12
9231 */
9232 ArkUI_DrawContext* OH_ArkUI_NodeCustomEvent_GetDrawContextInDraw(ArkUI_NodeCustomEvent* event);
9233 
9234 /**
9235 * @brief Obtains the ID of a custom component event.
9236 *
9237 * @param event Indicates the pointer to the custom component event.
9238 * @return Returns the ID of the custom component event.
9239 * @since 12
9240 */
9241 int32_t OH_ArkUI_NodeCustomEvent_GetEventTargetId(ArkUI_NodeCustomEvent* event);
9242 
9243 /**
9244 * @brief Obtains custom event parameters through a custom component event.
9245 *
9246 * @param event Indicates the pointer to the custom component event.
9247 * @return Returns the custom event parameters.
9248 * @since 12
9249 */
9250 void* OH_ArkUI_NodeCustomEvent_GetUserData(ArkUI_NodeCustomEvent* event);
9251 
9252 /**
9253 * @brief Obtains a component object through a custom component event.
9254 *
9255 * @param event Indicates the pointer to the custom component event.
9256 * @return Returns the component object.
9257 * @since 12
9258 */
9259 ArkUI_NodeHandle OH_ArkUI_NodeCustomEvent_GetNodeHandle(ArkUI_NodeCustomEvent* event);
9260 
9261 /**
9262 * @brief Obtains the event type through a custom component event.
9263 *
9264 * @param event Indicates the pointer to the custom component event.
9265 * @return Returns the type of the custom component event.
9266 * @since 12
9267 */
9268 ArkUI_NodeCustomEventType OH_ArkUI_NodeCustomEvent_GetEventType(ArkUI_NodeCustomEvent* event);
9269 
9270 /**
9271 * @brief 通过自定义组件事件获取自定义段落组件的测量信息。
9272 *
9273 * @param event 自定义组件事件。
9274 * @param info 需要获取的测量信息。
9275 * @return 错误码。
9276 *         {@link ARKUI_ERROR_CODE_NO_ERROR} 成功。
9277 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} 函数参数异常。
9278 * @since 12
9279 */
9280 int32_t OH_ArkUI_NodeCustomEvent_GetCustomSpanMeasureInfo(
9281     ArkUI_NodeCustomEvent* event, ArkUI_CustomSpanMeasureInfo* info);
9282 
9283 /**
9284 * @brief 通过自定义组件事件设置自定义段落的度量指标。
9285 *
9286 * @param event 自定义组件事件。
9287 * @param metrics 需要获取的度量指标信息。
9288 * @return 错误码。
9289 *         {@link ARKUI_ERROR_CODE_NO_ERROR} 成功。
9290 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} 函数参数异常。
9291 * @since 12
9292 */
9293 int32_t OH_ArkUI_NodeCustomEvent_SetCustomSpanMetrics(
9294     ArkUI_NodeCustomEvent* event, ArkUI_CustomSpanMetrics* metrics);
9295 
9296 /**
9297 * @brief 通过自定义组件事件获取自定义段落组件的绘制信息。
9298 *
9299 * @param event 自定义组件事件。
9300 * @param event 需要获取的绘制信息。
9301 * @return 错误码。
9302 *         {@link ARKUI_ERROR_CODE_NO_ERROR} 成功。
9303 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} 函数参数异常。
9304 * @since 12
9305 */
9306 int32_t OH_ArkUI_NodeCustomEvent_GetCustomSpanDrawInfo(
9307     ArkUI_NodeCustomEvent* event, ArkUI_CustomSpanDrawInfo* info);
9308 
9309 /**
9310  * @brief Adds a component to a node content.
9311  *
9312  * @param content Indicates the pointer to the node content instance.
9313  * @param node Indicates the pointer to the node.
9314  * @return Returns 0 if success.
9315  *         Returns 401 if a parameter exception occurs.
9316  * @since 12
9317  */
9318 int32_t OH_ArkUI_NodeContent_AddNode(ArkUI_NodeContentHandle content, ArkUI_NodeHandle node);
9319 
9320 /**
9321  * @brief Adds a component to a node content.
9322  *
9323  * @param content Indicates the pointer to the node content instance.
9324  * @param node Indicates the pointer to the node.
9325  * @return Returns 0 if success.
9326  *         Returns 401 if a parameter exception occurs.
9327  * @since 12
9328  */
9329 int32_t OH_ArkUI_NodeContent_InsertNode(ArkUI_NodeContentHandle content, ArkUI_NodeHandle node, int32_t position);
9330 
9331 /**
9332  * @brief Removes a component from a node content.
9333  *
9334  * @param content Indicates the pointer to the node content.
9335  * @param node Indicates the pointer to the node.
9336  * @return Returns 0 if success.
9337  *         Returns 401 if a parameter exception occurs.
9338  * @since 12
9339  */
9340 int32_t OH_ArkUI_NodeContent_RemoveNode(ArkUI_NodeContentHandle content, ArkUI_NodeHandle node);
9341 
9342 /**
9343  * @brief Defines the node content event type.
9344  *
9345  * @since 12
9346  */
9347 typedef enum {
9348     /** Defines the mount event. */
9349     NODE_CONTENT_EVENT_ON_ATTACH_TO_WINDOW = 0,
9350     /** Defines the unmount event. */
9351     NODE_CONTENT_EVENT_ON_DETACH_FROM_WINDOW = 1,
9352 } ArkUI_NodeContentEventType;
9353 
9354 
9355 /**
9356  * @brief Enumerates the inspector error codes.
9357  * @since 15
9358  */
9359 typedef enum {
9360     /**
9361      * @error Success.
9362      */
9363     ARKUI_INSPECTOR_NATIVE_RESULT_SUCCESSFUL = 0,
9364     /**
9365      * @error Invalid parameter.
9366      */
9367     ARKUI_INSPECTOR_NATIVE_RESULT_BAD_PARAMETER = -1,
9368 } ArkUI_InspectorErrorCode;
9369 
9370 /**
9371  * @brief Defines the general structure of a node content event.
9372  *
9373  * @since 12
9374  */
9375 typedef struct ArkUI_NodeContentEvent ArkUI_NodeContentEvent;
9376 
9377 /**
9378   * @brief Defines the node content event callback function.
9379   *
9380   * @since 12
9381   */
9382 typedef void (*ArkUI_NodeContentCallback)(ArkUI_NodeContentEvent* event);
9383 
9384 /**
9385  * @brief Register a callback for this <b>ArkUI_NodeContentHandle</b> instance.
9386  *
9387  * @param content Indicates the <b>ArkUI_NodeContentHandle</b> instance.
9388  * @param callback Indicates the callback of <b>ArkUI_NodeContentHandle</b>
9389  * @return Returns the status code
9390  * @since 12
9391  */
9392 int32_t OH_ArkUI_NodeContent_RegisterCallback(ArkUI_NodeContentHandle content, ArkUI_NodeContentCallback callback);
9393 
9394 /**
9395  * @brief Obtains the type of a node content.
9396  *
9397  * @param event Indicates the pointer to the node content.
9398  * @return Returns the type of the node content.
9399  * @since 12
9400  */
9401 ArkUI_NodeContentEventType OH_ArkUI_NodeContentEvent_GetEventType(ArkUI_NodeContentEvent* event);
9402 
9403 /**
9404  * @brief Obtains the node content object that triggers a node content event.
9405  *
9406  * @param event Indicates the pointer to the node content event.
9407  * @return Returns the node content object that triggers the node content event.
9408  * @since 12
9409  */
9410 ArkUI_NodeContentHandle OH_ArkUI_NodeContentEvent_GetNodeContentHandle(ArkUI_NodeContentEvent* event);
9411 
9412 /**
9413  * @brief Saves custom data on the specified node content.
9414  *
9415  * @param content Indicates the node content on which the custom data will be saved.
9416  * @param userData Indicates the custom data to be saved.
9417  * @return Returns the error code.
9418  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9419  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9420  * @since 12
9421  */
9422 int32_t OH_ArkUI_NodeContent_SetUserData(ArkUI_NodeContentHandle content, void* userData);
9423 
9424 /**
9425  * @brief Obtains the custom data saved on the specified node content.
9426  *
9427  * @param content Indicates the target node content.
9428  * @return Returns the custom data.
9429  * @since 12
9430  */
9431 void* OH_ArkUI_NodeContent_GetUserData(ArkUI_NodeContentHandle content);
9432 
9433 /**
9434  * @brief Get the size of the component layout area.
9435  * The layout area size does not include graphic variation attributes such as scaling.
9436  *
9437  * @param node ArkUI_NodeHandle pointer.
9438  * @param size The drawing area size of the component handle, in px.
9439  * @return Error code.
9440  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
9441  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9442  * @since 12
9443  */
9444 int32_t OH_ArkUI_NodeUtils_GetLayoutSize(ArkUI_NodeHandle node, ArkUI_IntSize* size);
9445 
9446 /**
9447  * @brief Obtain the position of the component layout area relative to the parent component.
9448  * The relative position of the layout area does not include graphic variation attributes, such as translation.
9449  *
9450  * @param node ArkUI_NodeHandle pointer.
9451  * @param localOffset The offset value of the component handle relative to the parent component, in px.
9452  * @return Error code.
9453  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
9454  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9455  * @since 12
9456  */
9457 int32_t OH_ArkUI_NodeUtils_GetLayoutPosition(ArkUI_NodeHandle node, ArkUI_IntOffset* localOffset);
9458 
9459 /**
9460  * @brief Obtain the position of the component layout area relative to the window.
9461  * The relative position of the layout area does not include graphic variation attributes, such as translation.
9462  *
9463  * @param node ArkUI_NodeHandle pointer.
9464  * @param globalOffset The offset value of the component handle relative to the window, in px.
9465  * @return Error code.
9466  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
9467  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9468  * @since 12
9469  */
9470 int32_t OH_ArkUI_NodeUtils_GetLayoutPositionInWindow(ArkUI_NodeHandle node, ArkUI_IntOffset* globalOffset);
9471 
9472 /**
9473  * @brief Obtain the position of the component layout area relative to the screen.
9474  * The relative position of the layout area does not include graphic variation attributes, such as translation.
9475  *
9476  * @param node ArkUI_NodeHandle pointer.
9477  * @param screenOffset The offset value of the component handle relative to the screen, in px.
9478  * @return Error code.
9479  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
9480  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9481  * @since 12
9482  */
9483 int32_t OH_ArkUI_NodeUtils_GetLayoutPositionInScreen(ArkUI_NodeHandle node, ArkUI_IntOffset* screenOffset);
9484 
9485 /**
9486  * @brief Obtains the offset of a component relative to the global display.
9487  * The relative position does not count in transformation attributes, such as translate.
9488  *
9489  * @param node Pointer to the <b>ArkUI_NodeHandle</b> representing the component.
9490  * @param offset Offset of the component relative to the global display, in px.
9491  * @return Result code.
9492  *         {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9493  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9494  * @since 20
9495  */
9496 int32_t OH_ArkUI_NodeUtils_GetLayoutPositionInGlobalDisplay(ArkUI_NodeHandle node, ArkUI_IntOffset* offset);
9497 
9498 /**
9499  * @brief Obtain the position of the component in the window, including the properties of graphic translation changes.
9500  *
9501  * @param node ArkUI_NodeHandle pointer.
9502  * @param translateOffset The cumulative offset value of the component handle itself,
9503  * parent components, and ancestor nodes, in px.
9504  * @return Error code.
9505  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
9506  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9507  * @since 12
9508  */
9509 int32_t OH_ArkUI_NodeUtils_GetPositionWithTranslateInWindow(ArkUI_NodeHandle node, ArkUI_IntOffset* translateOffset);
9510 
9511 /**
9512  * @brief Obtain the position of the component on the screen, including the attributes of graphic translation changes.
9513  *
9514  * @param node ArkUI_NodeHandle pointer.
9515  * @param translateOffset The cumulative offset value of the component handle itself,
9516  * parent components, and ancestor nodes, in px.
9517  * @return Error code.
9518  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
9519  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9520  * @since 12
9521  */
9522 int32_t OH_ArkUI_NodeUtils_GetPositionWithTranslateInScreen(ArkUI_NodeHandle node, ArkUI_IntOffset* translateOffset);
9523 
9524 /**
9525  * @brief Add the custom property of the component. This interface only works on the main thread.
9526  *
9527  * @param node ArkUI_NodeHandle pointer.
9528  * @param name The name of the custom property. Passing null pointers is not allowed.
9529  * @param value The value of the custom property. Passing null pointers is not allowed.
9530  * @since 13
9531  */
9532 void OH_ArkUI_NodeUtils_AddCustomProperty(ArkUI_NodeHandle node, const char* name, const char* value);
9533 
9534 /**
9535  * @brief Remove the custom property of the component.
9536  *
9537  * @param node ArkUI_NodeHandle pointer.
9538  * @param name The name of the custom property.
9539  * @since 13
9540  */
9541 void OH_ArkUI_NodeUtils_RemoveCustomProperty(ArkUI_NodeHandle node, const char* name);
9542 
9543 /**
9544  * @brief Get the value of the custom property of the component.
9545  *
9546  * @param node ArkUI-NodeHandle pointer.
9547  * @param name The name of the custom attribute.
9548  * @param handle The structure of the custom attribute corresponding to the key parameter name obtained.
9549  * @return Error code.
9550  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9551  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9552  * @since 14
9553  */
9554 int32_t OH_ArkUI_NodeUtils_GetCustomProperty(ArkUI_NodeHandle node, const char* name, ArkUI_CustomProperty** handle);
9555 
9556 /**
9557  * @brief Get the parent node to obtain the component nodes created by ArkTs.
9558  *
9559  * @param node Target node object.
9560  * @return Return the pointer of the component.
9561  * @since 14
9562  */
9563 ArkUI_NodeHandle OH_ArkUI_NodeUtils_GetParentInPageTree(ArkUI_NodeHandle node);
9564 
9565 /**
9566  * @brief Retrieve all active child nodes of a node. Span and ImageSpan will not be counted in the children.
9567  *
9568  * @param head Pass in the node that needs to be obtained.
9569  * @param handle The structure corresponding to the sub node information of the head node.
9570  * @return Error code.
9571  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9572  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9573  * @since 14
9574  */
9575 int32_t OH_ArkUI_NodeUtils_GetActiveChildrenInfo(ArkUI_NodeHandle head, ArkUI_ActiveChildrenInfo** handle);
9576 
9577 /**
9578  * @brief Retrieve the root node of the current page.
9579  *
9580  * @param node Target node object.
9581  * @return Return the pointer of the component.
9582  * @since 14
9583  */
9584 ArkUI_NodeHandle OH_ArkUI_NodeUtils_GetCurrentPageRootNode(ArkUI_NodeHandle node);
9585 
9586 /**
9587  * @brief Retrieve whether the component is labeled by C-API.
9588  *
9589  * @param node Target node object.
9590  * @return Return whether the node is a Tag created by C-API,
9591  *         true represents created by C-API, false represents not created by C-API.
9592  * @since 14
9593  */
9594 bool OH_ArkUI_NodeUtils_IsCreatedByNDK(ArkUI_NodeHandle node);
9595 
9596 /**
9597  * @brief Get the type of node.
9598  *
9599  * @param node Target node object.
9600  * @return Return the type of the node.
9601  *         For specific open types, refer to {@link ArkUI_NodeType}. For unopened nodes, return -1.
9602  * @since 14
9603  */
9604 int32_t OH_ArkUI_NodeUtils_GetNodeType(ArkUI_NodeHandle node);
9605 
9606 /**
9607  * @brief Get the node handle by id. This interface only works on the main thread.
9608  *
9609  * @param id The id of the target node handle.
9610  * @param node The handle of target node handle.
9611  * @return Error code.
9612  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9613  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9614  * @since 15
9615  */
9616 int32_t OH_ArkUI_NodeUtils_GetAttachedNodeHandleById(const char* id, ArkUI_NodeHandle* node);
9617 
9618 /**
9619  * @brief Get the node handle by uniqueId.
9620  *
9621  * @param uniqueId The uniqueId of the target node handle.
9622  * @param node The handle of target node handle.
9623  * @return Error code.
9624  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9625  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9626  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if the CAPI init error.
9627  * @since 20
9628  */
9629 int32_t OH_ArkUI_NodeUtils_GetNodeHandleByUniqueId(const uint32_t uniqueId, ArkUI_NodeHandle* node);
9630 
9631 /**
9632  * @brief Get the uniqueId of the target node handle.
9633  *
9634  * @param node The ArkUI-NodeHandle pointer.
9635  * @param uniqueId The uniqueId of the target node handle, default value is -1.
9636  * @return Error code.
9637  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9638  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9639  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if the CAPI init error.
9640  * @since 20
9641  */
9642 int32_t OH_ArkUI_NodeUtils_GetNodeUniqueId(ArkUI_NodeHandle node, int32_t* uniqueId);
9643 
9644 /**
9645  * @brief Get info of the window to which the node belongs.
9646  *
9647  * @param node Target node object.
9648  * @param info Window info. Use {@link OH_ArkUI_HostWindowInfo_Destroy} to release memory.
9649  * @return Error code.
9650  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9651  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9652  *         {@link ARKUI_ERROR_CODE_NODE_NOT_ON_MAIN_TREE} The node is not mounted.
9653  * @since 15
9654  */
9655 int32_t OH_ArkUI_NodeUtils_GetWindowInfo(ArkUI_NodeHandle node, ArkUI_HostWindowInfo** info);
9656 
9657 /**
9658  * @brief Move the node handle to target parent node as child.
9659  *
9660  * @param node The node handle of the node to move.
9661  * @param target_parent The node handle of target parent.
9662  * @param index Indicates the index which the node is moved to. If the value is a nagative number of invalid, the
9663  *              node is moved to the end of the target parent node.
9664  * @return Error code.
9665  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9666  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9667  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if the CAPI init error.
9668  * @since 16
9669  */
9670 int32_t OH_ArkUI_NodeUtils_MoveTo(ArkUI_NodeHandle node, ArkUI_NodeHandle target_parent, int32_t index);
9671 
9672 /**
9673  * @brief Triggers node updates in the current frame.
9674  *
9675  * When node attributes are modified after the current frame's build phase (i.e., after
9676  * the unified processing of dirty nodes), the node updates will be deferred to the next
9677  * frame. This function forces immediate node updates within the current frame to
9678  * ensure rendering effects are applied synchronously.
9679  *
9680  * @param node ArkUI_NodeHandle pointer.
9681  * @return Error code.
9682  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
9683  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9684  * @since 21
9685  */
9686 int32_t OH_ArkUI_NativeModule_InvalidateAttributes(ArkUI_NodeHandle node);
9687 
9688 /**
9689  * @brief The event called when the sliding operation offset changes.
9690  *
9691  * @param node Indicates the target node.
9692  * @param userData Indicates the custom data to be saved.
9693  * @param onFinish Callback Events.
9694  *        offset Slide offset.
9695  * @return Error code.
9696  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
9697  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9698  *         {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} The component does not support this event.
9699  * @since 12
9700  */
9701 int32_t OH_ArkUI_List_CloseAllSwipeActions(ArkUI_NodeHandle node, void* userData, void (*onFinish)(void* userData));
9702 
9703 /**
9704 * @brief Obtain the UIContext pointer to the page where the node is located.
9705 *
9706 * @param node The node.
9707 * @return The UIContext pointer.
9708 *         If a null pointer is returned, it may be because the node is empty.
9709 * @since 12
9710 */
9711 ArkUI_ContextHandle OH_ArkUI_GetContextByNode(ArkUI_NodeHandle node);
9712 
9713 /**
9714  * @brief The event called when the system color mode changes.
9715  *        Only one system color change callback can be registered for the same component.
9716  *
9717  * @param node Indicates the target node.
9718  * @param userData Indicates the custom data to be saved.
9719  * @param onColorModeChange Callback Events.
9720  * @return Error code.
9721  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
9722  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9723  *         {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} The component does not support this event.
9724  * @since 12
9725  */
9726 int32_t OH_ArkUI_RegisterSystemColorModeChangeEvent(
9727     ArkUI_NodeHandle node, void* userData, void (*onColorModeChange)(ArkUI_SystemColorMode colorMode, void* userData));
9728 
9729 /**
9730  * @brief Unregister the event callback when the system color mode changes.
9731  *
9732  * @param node Indicates the target node.
9733  * @since 12
9734  */
9735 void OH_ArkUI_UnregisterSystemColorModeChangeEvent(ArkUI_NodeHandle node);
9736 
9737 /**
9738  * @brief The event called when the system font style changes.
9739  *        Only one system font change callback can be registered for the same component.
9740  *
9741  * @param node Indicates the target node.
9742  * @param userData Indicates the custom data to be saved.
9743  * @param onFontStyleChange Callback Events.
9744  * @return Error code.
9745  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
9746  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9747  *         {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} The component does not support this event.
9748  * @since 12
9749  */
9750 int32_t OH_ArkUI_RegisterSystemFontStyleChangeEvent(ArkUI_NodeHandle node, void* userData,
9751     void (*onFontStyleChange)(ArkUI_SystemFontStyleEvent* event, void* userData));
9752 
9753 /**
9754  * @brief Unregister the event callback when the system font style changes.
9755  *
9756  * @param node Indicates the target node.
9757  * @since 12
9758  */
9759 void OH_ArkUI_UnregisterSystemFontStyleChangeEvent(ArkUI_NodeHandle node);
9760 
9761 /**
9762  * @brief Retrieve the font size value for system font change events.
9763  *
9764  * @param event Indicates a pointer to the current system font change event.
9765  * @return Updated system font size scaling factor. Default value: 1.0.
9766  *         -1 indicates a retrieval error.
9767  * @since 12
9768  */
9769 float OH_ArkUI_SystemFontStyleEvent_GetFontSizeScale(const ArkUI_SystemFontStyleEvent* event);
9770 
9771 /**
9772  * @brief Retrieve the font thickness values for system font change events.
9773  *
9774  * @param event Indicates a pointer to the current system font change event.
9775  * @return The updated system font thickness scaling factor. Default value: 1.0.
9776  *         -1 indicates a retrieval error.
9777  * @since 12
9778  */
9779 float OH_ArkUI_SystemFontStyleEvent_GetFontWeightScale(const ArkUI_SystemFontStyleEvent* event);
9780 
9781 /**
9782  * @brief Registers a callback for node when layout is completed.
9783  *
9784  * @param node Indicates the target node.
9785  * @param userData Indicates the custom data used in onLayoutCompleted callback function.
9786  * @param onLayoutCompleted Indicates the function when layout completed is callback.
9787  * @return error code
9788  *         {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9789  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter is incorrect.
9790  * @since 15
9791  */
9792 int32_t OH_ArkUI_RegisterLayoutCallbackOnNodeHandle(ArkUI_NodeHandle node,
9793     void* userData, void (*onLayoutCompleted)(void* userData));
9794 
9795 
9796 /**
9797  * @brief Registers a callback for node when draw is completed.
9798  *
9799  * @param node Indicates the target node.
9800  * @param userData Indicates the custom data used in onDrawCompleted callback function.
9801  * @param onDrawCompleted Indicates the function when draw completed is callback.
9802  * @return error code
9803  *         {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9804  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter is incorrect.
9805  * @since 15
9806  */
9807 int32_t OH_ArkUI_RegisterDrawCallbackOnNodeHandle(ArkUI_NodeHandle node,
9808     void* userData, void (*onDrawCompleted)(void* userData));
9809 
9810 /**
9811  * @brief Unregisters the layout completed callback for node.
9812  *
9813  * @param node Indicates the target node.
9814  * @return error code
9815  *         {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9816  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter is incorrect.
9817  * @since 15
9818  */
9819 int32_t OH_ArkUI_UnregisterLayoutCallbackOnNodeHandle(ArkUI_NodeHandle node);
9820 
9821 /**
9822  * @brief Unregisters the draw completed callback for node.
9823  *
9824  * @param node Indicates the target node.
9825  * @return error code
9826  *         {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9827  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter is incorrect.
9828  * @since 15
9829  */
9830 int32_t OH_ArkUI_UnregisterDrawCallbackOnNodeHandle(ArkUI_NodeHandle node);
9831 
9832 /**
9833  * @brief Get the snapshot pixelmap for the given node synchronously, will get error if the node is not on the
9834  * tree or is not rendered yet.
9835  * Note: the pixelmap should be released through OH_PixelmapNative_Release when it's not used any more.
9836  *
9837  * @param node Indicates the target node.
9838  * @param snapshotOptions the given configuration for taking snapshot, can be null for using default.
9839  * @param pixelmap Pixelmap pointer created by system, it's the out result.
9840  * @return Returns the result code.
9841  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9842  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9843  *         Returns {@link ARKUI_ERROR_CODE_INTERNAL_ERROR} if the snapshot taking failed will null pixelmap returned.
9844  *         Returns {@link ARKUI_ERROR_CODE_COMPONENT_SNAPSHOT_TIMEOUT} if the snapshot taking is timeout.
9845  * @since 15
9846  */
9847 int32_t OH_ArkUI_GetNodeSnapshot(ArkUI_NodeHandle node, ArkUI_SnapshotOptions* snapshotOptions,
9848     OH_PixelmapNative** pixelmap);
9849 
9850 /**
9851  * @brief Set the cross-language option of the target node handle.
9852  *
9853  * @param node The target node handle.
9854  * @param option The cross-language option {@link ArkUI_CrossLanguageOption}.
9855  * @return Error code.
9856  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9857  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9858  * @since 15
9859  */
9860 int32_t OH_ArkUI_NodeUtils_SetCrossLanguageOption(ArkUI_NodeHandle node, ArkUI_CrossLanguageOption* option);
9861 
9862 /**
9863  * @brief Get the cross-language option of the target node handle.
9864  *
9865  * @param node The target node handle.
9866  * @param option The cross-language option {@link ArkUI_CrossLanguageOption}.
9867  * @return Error code.
9868  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9869  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9870  * @since 15
9871  */
9872 int32_t OH_ArkUI_NodeUtils_GetCrossLanguageOption(ArkUI_NodeHandle node, ArkUI_CrossLanguageOption* option);
9873 
9874 /**
9875  * @brief Obtains the index of the current FrameNode's first child node which is on the tree.
9876  *
9877  * @param node Indicates the target node.
9878  * @param index The index of the subnode.
9879  * @return Error code.
9880  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9881  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9882  * @since 15
9883  */
9884 int32_t OH_ArkUI_NodeUtils_GetFirstChildIndexWithoutExpand(ArkUI_NodeHandle node, uint32_t* index);
9885 
9886 /**
9887  * @brief Obtains the index of the current FrameNode's last child node which is on the tree.
9888  *
9889  * @param node Indicates the target node.
9890  * @param index the index of the subnode.
9891  * @return Error code.
9892  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9893  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9894  * @since 15
9895  */
9896 int32_t OH_ArkUI_NodeUtils_GetLastChildIndexWithoutExpand(ArkUI_NodeHandle node, uint32_t* index);
9897 
9898 /**
9899  * @brief Obtains a subnode by position with the expand mode.
9900  *
9901  * @param node Indicates the target node.
9902  * @param position Indicates the position of the subnode.
9903  * @param subnode The pointer to the subnode.
9904  * @param expandMode Indicates the expand mode. {@link ArkUI_ExpandMode}.
9905  * @return Error code.
9906  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9907  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9908  * @since 15
9909  */
9910 int32_t OH_ArkUI_NodeUtils_GetChildWithExpandMode(ArkUI_NodeHandle node, int32_t position,
9911     ArkUI_NodeHandle* subnode, uint32_t expandMode);
9912 
9913 /**
9914  * @brief Obtain the position of the component layout area relative to the window.
9915  * The relative position of the layout area does not include graphic variation attributes, such as translation.
9916  *
9917  * @param node ArkUI_NodeHandle pointer.
9918  * @param globalOffset The offset value of the component handle relative to the window, in px.
9919  * @return Error code.
9920  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
9921  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9922  * @since 15
9923  */
9924 int32_t OH_ArkUI_NodeUtils_GetPositionToParent(ArkUI_NodeHandle node, ArkUI_IntOffset* globalOffset);
9925 
9926 /**
9927  * @brief Run a custom function inside the UIContext scope.
9928  *
9929  * @param uiContext ArkUI_ContextHandle.
9930  * @param userData Indicates the pointer to the custom data.
9931  * @param callback The custom function.
9932  * @return Returns the result code.
9933  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9934  *         Returns {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if the CAPI init error.
9935  *         Returns {@link ARKUI_ERROR_CODE_UI_CONTEXT_INVALID} if the uiContext is invalid.
9936  *         Returns {@link ARKUI_ERROR_CODE_CALLBACK_INVALID} if the callback function is invalid.
9937  * @since 20
9938  */
9939 int32_t OH_ArkUI_RunTaskInScope(ArkUI_ContextHandle uiContext, void* userData, void(*callback)(void* userData));
9940 
9941 
9942 /**
9943  * @brief Adds the polymorphic style states supported by the component. To handle states efficiently, specify the
9944  * states of interest and the corresponding handler. When a state of interest occurs, the handler will be executed.
9945  *  - You can adjust the UI style based on the current state within the callback. If this API is called multiple
9946  * times on the same node, the last set of states and handler will take precedence.
9947  *  - Some component types have default system handling for certain states. For example, the <b>Button</b>
9948  * component has a default style effect for the PRESSED state. When custom state handling is implemented on such
9949  * components, the default style effect will be applied first, followed by the custom style changes, resulting in
9950  * a combined effect. To disable the default style effects, set <b>excludeInner</b> to <b>true</b>, if this is allowed
9951  * by the system implementation.
9952  *  - And when this API is called, the provided handler function will be executed immediately.
9953  *  - There is no need to explicitly register a listener for the NORMAL state. Once a non-NORMAL state is registered,
9954  * the system will automatically notify your application when the state changes back to NORMAL.
9955  *
9956  * @param node Target node.
9957  * @param uiStates Target UI states to be handled on the node.
9958  *        The combined result of all target UI states can be calculated using the <b>|</b> operator.
9959  *        Example: <b>targetUIStates = ArkUI_UIState::PRESSED | ArkUI_UIState::FOCUSED</b>.
9960  * @param statesChangeHandler Handler for UI state changes.
9961  *        It returns the current UI status. The value is the result of combining all current state enum values using the
9962  *        <b>|</b> operator. You can determine the state using the <b>&</b> operator.
9963  *        Example: <b>if (currentStates & ArkUI_UIState::PRESSED == ArkUI_UIState::PRESSED)</b>
9964  *        However, for checking the normal state, use the equality operator directly.
9965  *        Example: <b>if (currentStates == ArkUI_UIState::NORMAL)</b>.
9966  * @param excludeInner Whether to disable the default state styles.
9967  * @param userData Custom data used in the <b>onDrawCompleted</b> callback.
9968  * @return Returns the result code.
9969  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9970  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs. * @since 20
9971  */
9972 ArkUI_ErrorCode OH_ArkUI_AddSupportedUIStates(ArkUI_NodeHandle node, int32_t uiStates,
9973     void (statesChangeHandler)(int32_t currentStates, void* userData), bool excludeInner, void* userData);
9974 
9975 /**
9976  * @brief Removes registered UI states. When all states registered using <b>OH_ArkUI_AddSupportedUIStates</b>
9977  * are removed, the registered <b>stateChangeHandler</b> will no longer be executed.
9978  *
9979  * @param node Target node.
9980  * @param uiStates Target UI states to be removed.
9981  * @return Returns the result code.
9982  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9983  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9984  * @since 20
9985  */
9986 ArkUI_ErrorCode OH_ArkUI_RemoveSupportedUIStates(ArkUI_NodeHandle node, int32_t uiStates);
9987 
9988 /**
9989  * @brief Post UI task to background threads.
9990  *
9991  * @param context UIContext pointer of the page where the UI task located.
9992  * @param asyncUITaskData Parameter of asyncUITask and onFinish.
9993  * @param asyncUITask Function executed by a background thread.
9994  * @param onFinish Function executed by UI thread after async UI task is executed.
9995  * @return Returns the result code.
9996  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9997  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9998  * @since 20
9999  */
10000 int32_t OH_ArkUI_PostAsyncUITask(ArkUI_ContextHandle context, void* asyncUITaskData,
10001     void (*asyncUITask)(void* asyncUITaskData), void (*onFinish)(void* asyncUITaskData));
10002 
10003 /**
10004  * @brief Post UI task to UI thread.
10005  *
10006  * @param context UIContext pointer of the page where the UI task located.
10007  * @param taskData Parameter of task.
10008  * @param task Function executed by UI thread.
10009  * @return Returns the result code.
10010  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
10011  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
10012  * @since 20
10013  */
10014 int32_t OH_ArkUI_PostUITask(ArkUI_ContextHandle context, void* taskData, void (*task)(void* taskData));
10015 
10016 /**
10017  * @brief Post UI task to UI thread and wait until UI task finished.
10018  *
10019  * @param context UIContext pointer of the page where the UI task located.
10020  * @param taskData Parameter of task.
10021  * @param task Function executed by UI thread.
10022  * @return Returns the result code.
10023  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
10024  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
10025  * @since 20
10026  */
10027 int32_t OH_ArkUI_PostUITaskAndWait(ArkUI_ContextHandle context, void* taskData, void (*task)(void* taskData));
10028 
10029 /**
10030  * @brief Sets the inverse color algorithm for components and instances.
10031  *
10032  * @param uiContext Indicates the context in which the inverse color feature should take effect. If the value is null,
10033  *                  the feature applies to the entire application process.
10034  * @param forceDark Indicates whether the inverse color feature is enabled.
10035  * @param nodeType Indicates the component type for which to enable the inverse color feature. If the value is null,
10036  *                 enabling the feature for all components.
10037  * @param colorInvertFunc Indicates the user-defined inverse color algorithm.
10038  * @return Returns the error code.
10039  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
10040  *         Returns {@link ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
10041            Returns {@link ARKUI_ERROR_CODE_FORCE_DARK_CONFIG_INVALID} if force dark config is invalid.
10042  * @since 20
10043  */
10044 int32_t OH_ArkUI_SetForceDarkConfig(ArkUI_ContextHandle uiContext, bool forceDark, ArkUI_NodeType nodeType,
10045     uint32_t (*colorInvertFunc)(uint32_t color));
10046 
10047 #ifdef __cplusplus
10048 }
10049 #endif
10050 
10051 #endif // ARKUI_NATIVE_NODE_H
10052 /** @}*/
10053